Всем привет! У всех нас есть данные, которые хочется держать под контролем. Мы не хотим потерять к ним доступ и не хотим, чтобы доступ был у кого-то ещё. Где хранить такие данные? Я считаю, что Sia может стать идеальным местом для этого и расскажу, почему.


Sia

Disclaimer: Sia активно развивается и, по словам разработчиков, всё ещё не подходит для того, чтобы быть единственным местом для бекапа.


Sia (произносится "Сая") — это распределённая система на основе блокчейна, участники которой хранят информацию на жестких дисках друг друга за плату. Участник системы может решить быть только пользователем, загружающим данные (в терминологии Sia — renter), или же сервером, принимающим данные (в терминологии Sia — host), или совмещать эти две роли. Хосты заинтересованы в хранении данных, так как они уходят в убыток, если теряют данные. Это обеспечивается следующим образом: при заключении контракта на хранение данных хост вносит депозит и ежедневно подтверждает факт хранения загруженных данных; если он этого не делает, то лишается части депозита. Подробности процесса оставим на десерт :-)


Вычисление кодов Рида — Соломона


Чтобы данные уцелели даже в случае отказа нескольких хостов, используются коды Рида — Соломона. Данные загружаются на 40 хостов и остаются доступными, если хотя бы 10 из этих хостов доступны. Избыточность хранения составляет 3x. В будущем ожидается рост uptime хостов, после чего избыточность можно будет снизить.


В Sia используется свой альткоин — Siacoin. Есть свой блокчейн, в котором хранятся как обычные транзакции, так и контракты на хранение файлов. (Блокчейн биткоина не подошёл бы для Sia, так как в нём нет возможности заключать такие контракты.) Есть и свой explorer, и майнеры, и биржи для обмена — одним словом, всё, что прилагается к альткоину.


Страница Siacoin на бирже Poloniex
Страница Siacoin на бирже Poloniex.


Так почему мне нравится хранить данные в такой системе? А вы не задумывались, какие ещё способы есть в нашем распоряжении? Есть огромное количество способов, имещих единую точку отказа. А единая точка отказа оправдывает своё название и рано или поздно отказывает. Кроме того, такие системы тяготеют к централизации и отказу от анонимности и становятся удобным местом для насаждения государственного контроля за данными пользователя. Мне претит мысль о том, что кто-то может лишить меня доступа к моим же данным. Какой же выбор остаётся у людей, желающих децентрализованно хранить данные? Например, покупать место или серверы в нескольких централизованных системах. Для большинства людей это означает огромные накладные расходы в виде потраченного времени и денег, особенно если делать это анонимно.


Пара слов о том, почему так важна анонимность при хранении данных. Если государство знает о твоей собственности, то на самом деле она тебе не принадлежит, так как государство определяет правила игры и завтра может решить забрать её у тебя (или частично забрать, обложив налогом). Например, в США изымали золото у людей во времена Великой депрессии. Единственный надёжный способ обезопасить собственность — это отвязать её от любой информации, которой располагает государство.


Когда я осознал это, я решил было сделать систему, лишённую этих недостатков: децентрализованную, анонимную и надёжную. Сначала я решил проверить, нет ли чего готового на гитхабе. И нашёл Sia — именно то, что нужно! С точки зрения пользователя, Sia — это готовый аналог покупки кучи серверов для ручной загрузки данных. И аналог более эффективный, так как один сервер хранит данные тысяч пользователей. Калькулятор стоимости хранения на сайте Sia показывает, что хранение 5Тб в течение месяца обойдётся в 10 долларов. (Disclaimer: реальная цена будет выше из-за комиссий на создание контрактов и тройной избыточности хранения, но всё равно остаётся очень и очень привлекательной.)


Как загрузить файлы в Sia


Sia-UI


См. также руководство на официальном сайте.


  1. Скачать и запустить Sia-UI.
  2. Купить сиакоины.
  3. Загрузить файлы, используя интерфейс Sia-UI.

Все приватные ключи, использующиеся в кошельке, получаются из seed, который программа выдаёт в начале работы. Для восстановления доступа к сиакоинам кошелька (но пока, к сожалению, не к файлам) достаточно знать этот seed.


Если честно, Sia-UI я ни разу не запускал, так как я живу в командной строке, а Sia предоставляет отличные инструменты для этого: siad и siac. (Кстати, весь код Sia написан на Go, что не может не радовать.) Основы работы с siad и siac можно почерпнуть из статьи про запуск хоста и из хеплов этих программ. Программу siad обычно достаточно просто запустить, а взаимодействовать с ним уже через siac.


Примеры команд:


  • siac wallet unlock — разблокировать кошелёк (требуется ввод seed),
  • siac wallet balance — показать текущий баланс кошелька,
  • siac renter setallowance money time_period — заключить контракты с хостами,
  • siac renter upload /path/to/source/file path/in/sia — загрузить файл в Sia,
  • siac renter contracts — вывести все заключённые контракты с хостами.

siac взаимодействует с siad через HTTP API. С помощью него можно строить свои системы, использующие Sia в качестве хранилища. Команда Sia делает ставку на то, что в будущем компании будут хранить свои данные в Sia.


Для хранения данных необходима информация, находящаяся в папке renter/. Есть планы о восстановлении данных исключительно из seed (см. в разделе "планы").


По желанию можно сохранить информацию об объёме загруженного с помощью siac renter export и загрузить её в "пузомерку": rankings.sia.tech.


rankings


Как запустить свой хост Sia


siad


Хост Sia будет приносить доход в сиакоинах своему владельцу. Это неплохой способ монетизировать неиспользуемые части жестких дисков. Оплачивается не только хранение, но и трафик.


Про запуск своего сервера есть целая статья. Я тут опять пробегусь по верхам.


  1. Нужны программы siad и siac. Программа siad запускается, а все действия осуществляются через siac. Надо подождать, пока siad скачает блокчейн. Это занимает несколько часов, есть планы по значительному ускорению.
  2. Завести адрес (siac wallet address), закинуть на него сиакоинов, купленных любым способом.
  3. Добавить папку: siac host folder add /path/to/dir size
  4. Назначить цену за хранение, загрузку и выгрузку данных: siac config.
  5. Опубликовать информацию о хосте: siac host announce.

Через некоторое время хост начнёт получать контракты и на него будут загружать данные.


Доходы хостеров можно посмотреть на сайте siahub.info. Пример графика доходов хоста, на который загружено 585 из доступных 999 Гб:


siahub


Данный хост получает 57 сиакоинов каждый день. 1 сиакоин сегодня стоит примерно 1.5 цента, а значит этот хост ежедневно получает примерно 50 рублей. Пусть есть NAS на 4Тб за 20к рублей. При аналогичном проценте заполнения он выдавал бы примерно 200 рублей в день, то есть 6к рублей в месяц — неплохая окупаемость.


Доказательство хранения


image


В Sia хосты регулярно доказывают, что хранят загруженные данные. Это важный момент, так как иначе недобросовестные хосты могли бы сбрасывать все данные в /dev/null, продолжая получать плату. Выше я обещал рассказать, как устроено доказательство хранения. Это подробно описано в статье от создателя Sia. Ниже моё объяснение на пальцах.


Данные контракта можно представить как массив из фрагментов одинакового размера. Устроим древовидное хеширование этих фрагментов. Для этого рассчитаем сильные криптографические хеши этих фрагментов. Потом разобъем полученные хеши на пары и рассчитаем хеши от соединённых хешей каждой пары. Полученные хеши снова разобьём на пары и так, пока не получим один хеш. Он-то и хранится в контракте и обновляется, когда пользователь загружает новые данные по этому контракту. Теперь вернёмся к отдельному фрагменту файла и проследим его "путь" до корня дерева. На каждом шагу в хеширование будет "примешиваться" хеш, приходящий от другой группы фрагментов. Если мы предоставим данный фрагмент и эти дополнительные хеши, находящиеся на пути от фрагмента до корня, то сможем доказать, что данный фрагмент присутствует на данной позиции в данных. Подделка такого доказательства равносильна нахождению коллизии хеш-функции.


Как же это применяется в Sia? Номер фрагмента, хранение которого хост должен доказать, определяется в зависимости от хешей предыдущих блоков, поэтому его сложно предсказать заранее. В определённый промежуток времени (по блокам, а не по часам) хост должен загрузить доказательство хранения выбранного фрагмента, иначе он теряет деньги.


У внимательного читателя мог возникнуть вопрос — а что, если зловредный хост будет хранить данные, но не будет давать их скачивать пользователю? Или просто иметь низкий uptime, из-за чего пользоваться им будет невозможно. Для борьбы с этим в Sia придумали систему рейтинга хостов. Каждый запущенный клиент вычисляет этот рейтинг независимо, в том числе измеряет uptime, поэтому лучше дать программе поработать вхолостую перед заключением контрактов, чтобы набралась статистика по хостам. Все факторы, влияющие на рейтинг, разбираются в статье про рейтинг. Рейтинги хостов можно смотреть командой siac hostdb -v и на сайте siahub.info.


Siafund


В Siacoin есть одна особенность, которую я не встречал раньше в альткоинах. Siafund — это особый вид ресурсов, который может храниться в том же блокчейне и на таких же адресах, как и Siacoin. Адреса, на которых хранится Siafund, получают часть доходов хостов. Отчисления в размере 3.9% от выплат по успешным контрактам распределяются пропорционально между держателями Siafund. В природе существует ровно 10к Siafund. Большая их часть находится у разработчиков (Nebulous Inc.), но немногим больше 1000 были в своё время распроданы. Siafund продаются на бирже bitsquare.io и на канале #siafunds Slack-чата. В настоящее время цена одного Siafund составлет примерно 2 биткоина. Siafund'ы неделимы.


Siafund — это альтернатива предмайнингу собственной криптовалюты разработчиками альткоина. По задумке создателей, из-за высокой цены обладателями Siafund будут только люди, приверженные идеям проекта, включая разработчиков. Чем больше Sia будет использоваться для хранения файлов, тем больший доход будeт приносить Siafund.


Обозреватели сети


На siapulse.com и siahub.info есть красивые карты хостов.


map


Хосты уже есть на всех материках, кроме Африки. Общее количество активных — 275. В том числе хосты есть в нескольких городах России и Украины. Приглашаю всех, кому нужна помощь с запуском хоста и вообще с Sia, на каналы Slack-чата, включая #help, #russian и #farming.


Планы


Некоторые планы из официального roadmap:


  • возможность поделиться загруженным файлом с другим пользователем Sia (в следующем релизе) и с кем угодно (через 2 года).
  • Загрузка частей файла.
  • Эффективное хранение маленьких файлов.
  • Стримминг видео.
  • Автоматическое назначение цены хостом.
  • Восстановление файлов из seed.
  • Поддержка мобильных и других легковесных клиентов.

Сообщество



Спасибо всем, кто дочитал до конца!

Поделиться с друзьями
-->

Комментарии (54)


  1. kolpeex
    04.06.2017 20:36

    Тривиальные подсчеты не сходятся.
    «Хранение 5 ТБ в месяц обойдется в $10».
    Хм, допустим.
    «Пусть есть NAS на 4Тб за 20к рублей. При аналогичном проценте заполнения он выдавал бы примерно 200 рублей в день»
    Это 2,5 ТБ, то есть 400 рублей за 5 ТБ видимо можно получить.

    Хранить за 600 рублей в месяц, а получать за хранение 400 рублей в день.
    Откуда же халява?


    1. starius
      04.06.2017 20:49

      Дело в том, что хосты назначают разные цены. На вкладке "Prices" на siapulse.com можно видеть распределение цен: от 50 до 5000 сиакоинов за Тб в месяц:



      siahub.info говорит, что медиана цены за терабайт-месяц сейчас $10.9.


      Курс скачет, так что цифры могут съезжать в ту или иную сторону.


  1. wikipro
    04.06.2017 20:58

    Вот у меня вопрос: В блокчейне перед записью в блокчейн надо выполнить вычисление хешей чтобы "подтвердить выполненную работу", в качестве платы за хранение блокчейна и вычисление хешей "выдаётся" биткойн. Можно ли вычисление хешей заменить например чемто более полезным, например вычислением энергий связей белковых молекул (напримерhttps://ru.wikipedia.org/wiki/Folding@home — чтото типа этого) или аналогичными вычислениями ?


    1. starius
      04.06.2017 21:16

      Хоть это и оффтоп, но тема-то интересная, особенно про белки.


      Посмотрите Proof of Importance, используемый в криптовалюте NEM. Как я понял, это способ вообще убрать энергоёмкую работу.


      Про фолдинг белковых молекул. В традиционном Proof of Work хеширование входа с разными значениями nonce происходит, пока не будет получен хеш, меньший опредённого значения (зависящего от текущей сложности майнинга). Если придумаете аналог этого сравнения хеша с малым значением для задачи фолдинга, то теоретически задачу фолдинга можно было бы подключить. Хеширование будет заменено на вычисление некой характеристики от молекулы, а блок будет собираться, когда эта величина будет попадать в определённые пределы.


      1. vakimov
        05.06.2017 17:22

        На сколько я понимаю, тут еще важно, чтобы результат вычисления зависил от хеша транзакции. А как его привязать к расчету каких-то физических свойств?


    1. alex1603
      10.06.2017 18:33

      Есть же Гридкоин вы можете помогать любым институтам и сами выбирать проект которому хотите помогать в расчетах! Гугл в помощь!


  1. hostsuki
    04.06.2017 21:01

    как раз месяц назад заказы пошли.
    покупаем такие
    https://squadra-group.com/servers/supermicro/supermicro-sc836e2-r800b (128GB)
    http://www.regard.ru/catalog/tovar176684.htm (16шт)
    138200+215040 = 353240
    запиливаем себе в коло
    И еще знаю чувака, который собственно и привел клиентов — он 12 компов в отдельной комнате запилил.


  1. RainbowJose
    04.06.2017 21:01
    -11

    image
    Серьезно? Спасибо, не надо. Очередная софтина с кучей пафоса, обещаний, какие-то койны туда засунули, которые купить на бирже нужно, какие-то свистелки, перделки, блокчейн, а в итоге мы имеем клиент на UWP, и, внимание, демон(!) на UWP. Полный отрыв от реальности. Идите в жопу, пионеры.


    1. starius
      04.06.2017 21:06
      +2

      в итоге мы имеем клиент на UWP, и, внимание, демон(!) на UWP

      Поясните вашу мысль. Что именно вам не нравится?


      Код демона написан на Go с отличным покрытием тестами. Код лежит на гитхабе: https://github.com/NebulousLabs/Sia/. Если не хотите использовать готовые бинари, скачайте и соберите код одной командой:


      $ go get github.com/NebulousLabs/Sia/...


      1. RainbowJose
        04.06.2017 21:19
        -10

        Далеко пойдете.


    1. bogolt
      04.06.2017 22:37
      -1

      А что такое UWP? University Of Wisconsin?


      1. RainbowJose
        04.06.2017 22:48

        Universal Windows Platform


        1. Metallikus
          05.06.2017 13:28

          Надо было ставить linux

          :-)


    1. raidhon
      04.06.2017 22:47

      Открываем http://coinmarketcap.com/ находим валюту Siacoin смотрим капитализацию $405095144.
      У пионеров и без вас все хорошо.
      Так что идите в жопу Вожатый!!


      1. RainbowJose
        04.06.2017 22:56
        -1

        Сейчас бы валюты по капитализации оценивать. А у Doge 355M, и что? Мало ли сколько там монет нагенерено. Весь этот проект — шиза без задач. Операторам большого количества данных такое не нужно, а обычным пользователям с этим работать невозможно. PoС может и неплохой, но не более.


        1. raidhon
          05.06.2017 00:12
          +2

          А почем их ещё оценивать, слова валюта вам ничего не говорит?
          Вам в голову не приходило что это реальные 355М что их можно поменять на доллары или рубли или любую другую валюту?
          Общая капитализация криптовалют 90$ миллиардов это тоже вам нагенерировали?
          Банки переходят на блокчейн или пачками подключаются к готовой технологии такой как Ripple.


          Любой может зайти на криптовалютную биржу и начать зарабатывать на обмене.
          У меня друг путешествует и на это живет, причем очень не плохо.
          300$ в день.
          Дневной объем торгов только одной биржы Poloniex — $811,444,895.
          Это тоже вам нагенерировали.
          Выньте голову из задницы и перестаньте чушь нести.


          SC валюта новая как и её технология, время появится перепишут на QT.
          Пока и так нормально.


          1. RainbowJose
            05.06.2017 06:37

            Чтобы их продать — нужно сначала чтобы их у вас купили, кажется, вы это упускаете.
            Во-вторых: ваш друг не зарабатывает «прямо сейчас, 300$ в день, реально работает», а играет на спекуляциях с высокими рисками.


            1. starius
              05.06.2017 12:45

              Чтобы их продать — нужно сначала чтобы их у вас купили, кажется, вы это упускаете.

              Желающих купить хватает. На Poloniex прямо сейчас открыто ордеров на покупку сиакоинов на 1966 биткоинов.


              Во-вторых: ваш друг не зарабатывает «прямо сейчас, 300$ в день, реально работает», а играет на спекуляциях с высокими рисками.

              Если вы про меня, то оба варианта мимо. Моя цель — получить анонимную систему для хранения файлов, а не подзаработать.


  1. ProRunner
    04.06.2017 22:05
    +1

    Что неудобно в Sia-UI, так это скорость первоначальной синхронизации — минимум несколько часов, а то и день-два. До этого не сможете пользоваться sia, и даже узнать адрес кошелька для заливки денег, без которых ей тоже пользоваться нельзя.

    Ну и слишком длинные пути для конвертации фиата в сиакоины. Как минимум сначала купить BTC, перевести его на биржу с SC, сконвертировать и вывести себе на кошелёк.

    Всё пока слишком сложно для рядовых пользователей. На данный момент сиа именно как хранилищем, а не просто спекуляцией с криптовалютой, пользуется не так много людей, думаю.

    Есть ещё прямой конкурент со своим альткоином — https://storj.io/


    1. starius
      04.06.2017 22:58

      Поддерживаю про время изначальной загрузки. Её можно значительно ускорить, если переместить папку в RAM-диск или в SSD-диск. После изначальной загрузки папку можно переместить назад. Причина в том, что программа синхронизирует файл после каждого блока. Я работаю над пул-реквестом, который это в определённой степени исправляет, но пока он не готов.


      Купить сиакоины действительно непросто. Мне наиболее удобным показался https://shapeshift.io (всё быстро и нет регистрации), но он временно не работает с Sia. Помимо перечисленных на http://sia.tech/ru/get-siacoin/ способов есть ещё https://bitsquare.io/, который представляет собой децентрализованный обменник. Я им не пользовался и не могу его рекомендовать, но говорят, что там можно менять фиат напрямую на сиакоины (и на биткоины тоже).


      Есть ещё прямой конкурент со своим альткоином — https://storj.io/

      Про него часто вспоминают, но у него есть фундаментальный недостаток — взаимодействие пользователя с сервером происходит через их серверы. К чему приводит подобная централизация, мы уже знаем на примере скайпа, который когда называли p2p-сетью.


      Кстати, storj вроде как переходит на эзереумы со своего альткоина.


    1. ValdikSS
      07.06.2017 17:13
      +1

      А есть аналог без блокчейна вообще — Tahoe-LAFS.

      Распределенное избыточное шифрованное (end-to-end) хранилище файлов, где storage-ноды хранят кусочки файлов, не зная их содержимое. Клиент сам шифрует файлы перед загрузкой и расшифровывает после скачивания.
      Уже существует коммерческий облачный провайдер, предоставляющий серверы LAFS: https://leastauthority.com/

      Архитектура Tahoe-LAFS

      Работает через обычный интернет, через Tor и через I2P. В I2P есть большой пул серверов, на данный момент доступна 31 storage node. С I2P, во-первых, можно не заботиться о маршрутизируемом (белом) IP-адресе, а во-вторых, можно настраивать анонимность так, как вам хочется. Не хотите, чтобы узнали IP-адрес вашей ноды? Установите количество хопов в 2 или 3. Не нужна анонимность, но нужна скорость? Установите количество хопов в 0.
      Подключайтесь!

      Установка
      Чтобы запустить Tahoe-LAFS и подключиться к I2P-пулу, сначала нужно скачать и установить I2P, включить SAM Application Bridge в I2P на странице http://127.0.0.1:7657/configclients.
      Инструкция по установке Tahoe-LAFS: http://tahoe-lafs.readthedocs.io/en/latest/INSTALL.html

      Команда для создания сторадж-ноды (такой ноды, на которую другие люди смогут загружать файлы) следующая:

      tahoe create-node --hide-ip -n MyStorageNodeName -i pb://exupps5kk3amc5iq4q6f5ahggkm4s5fl@i2p:oj7cffq5fnk46iw3i3h2sdgncxrqbxm7wh6i4h2cbpmqsydygkcq.b32.i2p/introducer --listen=i2p

      Если хотите запустить только клиентскую ноду (другие пользователи не смогут загружать файлы на ваш компьютер), то команда следующая:
      tahoe create-client --hide-ip -n MyStorageNodeName -i pb://exupps5kk3amc5iq4q6f5ahggkm4s5fl@i2p:oj7cffq5fnk46iw3i3h2sdgncxrqbxm7wh6i4h2cbpmqsydygkcq.b32.i2p/introducer

      После этого можно заходить на http://localhost:3456, создавать папки, загружать файлы, качать что угодно.

      Типы ссылок
      Существует три типа ссылок: ссылка на чтение, запись и проверку, только на чтение и проверку, и только на проверку. Файлы удаляются storage-нодами через какое-то время, и клиент, загрузивший файлы, должен сам их обновлять, чтобы их не удалили с нод. В программу, которая будет обновлять файлы, можно закидывать проверочные ссылки, и программы смогут их обновлять, при этом не зная содержимое контента по этой ссылке. Если у вас украдут данные из подобной программы, файлы не получится ни скачать, ни модифицировать.

      В качестве теста, можете скачать Вестник I2P. Он загружен на 10 различных storage-нод, а для скачивания нужно только 3 из них:
      URI:DIR2-RO:gyha34rsxjreiodztnjp5sgtlm:bjkvheafzqa4jnb2b2ln47xjapcalsed4zuaasnejgwom5u4ppvq

      А еще в Tahoe-LAFS можно хостить статичные сайты и удобно их обновлять.


      1. starius
        13.06.2017 16:40

        Это примерно то, что я хотел делать до того, как нашел Sia. Только я хотел делать на onion-сайтах, но это не меняет сути. И я натыкался на Tahoe-LAFS в моменты, когда Sia мне казалась так себе и я начинал искать замену. Реализация Sia действительно сыровата, но две идеи из Sia очень удачны: оплата хранения непосредственно ноде и внесение нодой депозита. Обе они направлены на повышение надёжности хранения и противодействие участникам, желающим задосить систему.

        Если предоставлять ноды Tahoe-LAFS бесплатно, то любой может задосить их, продолжая загружать случайные данные, пока не заполнит все ноды полностью. Вариант со своими нодами (и любой системой поверх их) я рассматривал выше и он мне не нравится, так как это или слишком дорого или недостаточно надёжно. Кроме того пропадает «эффект толпы» — если уж нарушитель доберётся до серверов, то будет точно знать, что это файлы ваши. Это сродни запуску своего персонального Tor. А вариант с коммерческим облачным провайдером мне нравится ещё меньше — как и в любом облачном провайдере что-нибудь пойдёт не так (они заблокируют аккаунт, или их взломают, или кто-нибудь получит ордер и заставит их выдать/удалить данные) и всё. Централизация, одним словом.


  1. boolive
    05.06.2017 00:31

    Если курс меняется, то цена за хранение данных тоже? Или как-то балансируется с курсом?


    1. starius
      05.06.2017 02:53

      Уже заключенные контракты обслуживаются на условиях, на которых их заключали.
      Протокол позволяет удалить все данные из контракта, хотя в софте это пока не реализовано.


      Что касается цен для будущих контрактов (именно они отображаются на siahub и siapulse), то их пока выставляет владелец хоста, но в roadmap есть пункт про автоматическое выставление цены хостом.


  1. rPman
    05.06.2017 01:22
    +2

    Данные шифруются перед отправкой в хранилище или их нужно шифровать самостоятельно? А то единственный намек на шифрование в статье — теги.

    все еще не понимаю, как происходит выбор, с каким хостом будет заключен контракт?

    можно больше подробностей по поводу наказания за uptime? например поврежденное хранилище, т.е. какой то процент данных испорчен, считается ли это потерей всей суммы контракта? или только как понижение рейтинга каждый раз как идет попытка запроса к этим поврежденным данным?) как много денег будет потеряно при полном отключении?

    есть ли наказание за низкую скорость? как вообще учитывается скорость сетевого канала? грубо говоря, один хост с большим аптаймом сидит на 3g, а другой, с низким, стоит в датацентре.

    siaс кеширует данные (сохраненные файлы) локально или на каждый запрос лезет в сеть? как именно идет учет и оплата за сетевой трафик?

    Если я хочу продлить контракт, мне его нужно будет перезаключить и перезалить данные?

    Про seafund: я правильно посчитал, что сеть возвращает с каждого 1$ в контрактах 0,0000039$, а если верить этой статистике, при заключенных контрактах на $47435/месяц, потребуется примерно пол года (10000/(47435*0,039)~5,4 месяца), чтобы отбить вложения, а затем пожизненно получать доход, при условии неизменности курса btc/sc конечно же?

    p.s. И про ответственность — за наличие у вас на диске запрещенных (преступных, классический CP, например) данных вас могут не иллюзорно наказать, и юридически, полученный за это доход, только усугубит ситуацию. И не важно, знал ли я что храню или нет.

    Отсюда вопрос — есть ли в планах поддержка i2p или хотя бы tor сети? Только ли кошелек на хосте хранит связь с содержимым, т.е. возможно ли, имея доступ к каталогу хранилища, определить, какие контракты его сейчас используют? Т.е. нужно ли шифровать содержимое каталога-хранилища или достаточно защитить кошелек?


    1. starius
      05.06.2017 04:19

      Данные шифруются перед отправкой в хранилище или их нужно шифровать самостоятельно?

      Шифруются локально перед отправкой.


      все еще не понимаю, как происходит выбор, с каким хостом будет заключен контракт?

      Клиент собирает список хостов и вычисляет для них рейтинг. Что влияет на рейтинг, описано в статье про рейтинг. Если интересно посмотреть на код, то ниже я привожу пару ссылок.


      Хосты для контрактов выбираются в функции SelectRandom, которая отбирает хост с вероятностью, пропорциональной рейтингу, а рейтинг вычисляет функция calculateHostWeight, которая учитывает размер депозита (collateral), цену, объем свободного места, версию софта, возраст хоста и его uptime.


      можно больше подробностей по поводу наказания за uptime?

      Думаю, вам будет интересно взглянуть на выдачу siac hostdb -v.


      В крайней правой колонке видны нули и единицы — это успехи и отказы сканирований доступности хоста. За само сканирование отвечает функция managedScanHost. Видно, что она просто соединяется с хостом и проверяет, что он отвечает на запрос. Данные при этом не проверяются.


      например поврежденное хранилище, т.е. какой то процент данных испорчен, считается ли это потерей всей суммы контракта? или только как понижение рейтинга каждый раз как идет попытка запроса к этим поврежденным данным?) как много денег будет потеряно при полном отключении?

      Если данные пропали, то это повляет на доказательства хранения, а не на рейтинг. Так как для доказательства выбирается случайный фрагмент данных, то ожидаемое число потерянных доказательств хранения будет пропорционально объёму потерянных данных. За каждое неотправленное вовремя доказательство хранения хост лишается части прибыли и депозита. В контракте прописывается максимальное число неотправленных вовремя доказательств, после которых контракт разрывается. Оставшиеся средства с разорванного контракта теряются (если верить старой статье, то они уходят на "missed proof address", который по сути является чёрной дырой).


      есть ли наказание за низкую скорость? как вообще учитывается скорость сетевого канала? грубо говоря, один хост с большим аптаймом сидит на 3g, а другой, с низким, стоит в датацентре.

      Пока это прямо не учитывается, но есть планы по снижению latency до нескольких десятков миллисекунд, так что это будет учитываться. Пока плохое сетевое соединение может косвенно выходить боком через сорвавшиеся замеры uptime или запросы на формирование контрактов и загрузку данных (если канал был в этот момент переполнен).


      siaс кеширует данные (сохраненные файлы) локально или на каждый запрос лезет в сеть?

      На протокольном уровне хост предоставляет клиенту сущность, из которой можно читать из любого места, писать в конец, вставлять в середину и удалять из середины. За скачивание и загрузку данных взимается плата в соответствии с тарифом, установленным хостом. Одновременно с любой платной операцией клиент загружает новую подписанную версию контракта, где в пользу хоста списано чуть больше денег, чем в прошлый раз. Перед началов работы хост проверяет соответствие этих данных оказываемой услуге.


      Пртокол общения клиента и хоста документирован. Список возможных действий пользователя с контрактом можно посмотреть в коде (ActionDelete, ActionInsert, ActionModify и DownloadAction).


      А вот в софте хранение файлов пока реализовано довольно топорно: можно хранить только файлы, копии которых есть локально. Это число недоработка софта, в следующем релизе есть планы по избавлению от необходимости хранить копии файлов локально. А там недалеко и до подгрузки нужных частей в режиме реального времени. К слову, siac точно ничего не кеширует, так как ему негде — от посылает siad'у имя файла, который надо загрузить или в который записать скачанное. В API, на котором они разговаривают, чисто нет другого способа работы с файлами. Надеюсь, это скоро исправят.


      Если я хочу продлить контракт, мне его нужно будет перезаключить и перезалить данные?

      Контракты продлеваются автоматически, если всё идёт хорошо. Перезаливать данные не надо.


      Про seafund: я правильно посчитал, что сеть возвращает с каждого 1$ в контрактах 0,0000039$, а если верить этой статистике, при заключенных контрактах на $47435/месяц, потребуется примерно пол года (10000/(47435*0,039)~5,4 месяца), чтобы отбить вложения, а затем пожизненно получать доход, при условии неизменности курса btc/sc конечно же?

      3.9% распределяются равномерно между 10'000 SF. Взяв за основу доход хостов 47к долларов в месяц, один Siafund получает 0.039 / 10000 * 47000 = 0.18 доллара в месяц. Цена Siafund составляет 2-3 биткоина, то есть порядка 5к долларов в лучшем случае. При текущих темпах окупаться будет ой как долго. Поэтому Siafund покупают те, кто верит в будущее Sia. По оценке создателей через 10 лет доход хостов будет исчислять миллиардами долларов.


      p.s. И про ответственность — за наличие у вас на диске запрещенных (преступных, классический CP, например) данных вас могут не иллюзорно наказать, и юридически, полученный за это доход, только усугубит ситуацию. И не важно, знал ли я что храню или нет.

      Этот вопрос не раз обсуждался в чате. Насколько я помню выводы, в свободном мире за это не наказывают, так как человек не знает, что он хранит. А в остальных странах могут и просто так за содержание выходной ноды тора наказать. Можно снизить вероятность проблем, зашифровав жесткий диск.


      Отсюда вопрос — есть ли в планах поддержка i2p или хотя бы tor сети?

      Обсуждение идёт в https://github.com/NebulousLabs/Sia/issues/1785
      Можете добавить свои соображения туда, чтобы поддержать предложение?


      Только ли кошелек на хосте хранит связь с содержимым, т.е. возможно ли, имея доступ к каталогу хранилища, определить, какие контракты его сейчас используют? Т.е. нужно ли шифровать содержимое каталога-хранилища или достаточно защитить кошелек?

      Помимо кошелька и папки-хранилище есть ещё папка host c метаинформацией хоста. Думаю, что если шифровать, то всё целиком. Пользователь может вместо нормальных данных (а в норме данные зашифрованы) загрузить CP и сам же рассказать полиции об этом, а полиция вместо ареста этого пользователя может сделать обыск хоста и найти фрагменты этих данных в хранилище. Если вы считаете, что полиция способна фабриковать дела, то лучше всё зашифровать. Или держать хост анонимно, кстати.


      1. rPman
        05.06.2017 15:50

        Еще вопрос про дедупликацию
        если контракт заключается с конкретным хостом, то как выбираются сервера для дедупликации?


    1. VlasovVV
      05.06.2017 04:25

      Скорость интернет канала, как я понимаю, не сильно критична (ну 1-2 мбит/с, конечно, не пойдет), потому что в таком случае ты будешь просто самый последний получать данные от, в том числе, других сидов.
      Поправьте, если я не прав.


      1. starius
        05.06.2017 04:28

        Скорость действительно не критична. Хосты не обмениваются данными, кроме того из-за использования кодов Рида — Соломона все 40 кусков файла, попадающие на 40 серверов, разные, а не копии одной и той же информации.


  1. dmitryloktionov
    05.06.2017 02:54
    +1

    Я просто оставлю это здесь.
    https://nextcloud.com/blog/introducing-cloud-storage-in-the-blockchain-with-sia-and-nextcloud/


    1. dmitryloktionov
      14.06.2017 00:07

      https://siawiki.tech/ Еще немного инфы.


  1. beho1der
    05.06.2017 05:54

    А возможно начать предоставлять место без внесения сиакоинов на кошелек?


    1. ProRunner
      05.06.2017 07:22

      Нет


    1. starius
      05.06.2017 12:51

      Если бы это было возможно, то можно было бы саботировать работу системы, добавляя хосты, которые заведомо не сохраняют загруженные данные. В худшем случае такие хосты ещё бы и доход приносили.


  1. Dmitry_4
    05.06.2017 06:59

    1. Чрезвычайно дорого. Можно купить внешние диски и хранить их на работе, в гараже, в банке, у знакомых и т.д.


    2. Очень напоминает торрент.


    1. starius
      05.06.2017 13:21

      1. $10 за терабайт в месяц — дорого? Хранить данные на внешних дисках не так надёжно (так как все они окажутся, скорее всего, в одном городе) и не так безопасно (так как они могут попасть в руки полиции) и по цене будет не оптимально, если данные не занимают весь диск целиком. По сути Sia — это продолжение вашего жёсткого диска, размазанное по разным странам и скрытое от посторонних глаз.


      2. В торренте множество сидов раздают один и тот же файл, а в Sia файлы всё-таки конкретного пользователя. Хотя идеи реализовать шаринг есть — тогда это будет "торрент" с оплатой за скачивание.


  1. vikarti
    05.06.2017 07:19
    +1

    Контракт на хранение заключается на сколько? С помесячной оплатой и автоматическим продлением?
    А если допустим у меня узел. Я хочу поднять цены. И для старых пользователей тоже. Я могу отказаться продлевать его БЕЗ потери депозита?
    А уменьшить размер депозита до минимально-возможного (какого?)?


    1. starius
      05.06.2017 13:23

      Хосты могут выбрать максимальный срок контракта. Дело в том что до завершения контракта средства, полученные хостом и его депозит, заблокированы. Обе стороны могут решить перестать продлевать контракт. У хоста даже есть специальная команда, которая переводит его в режим "доработки" уже сделанных контрактов без возможности открывать новые. Это нужно чтобы отключить хост без потери денег.
      Размер депозита также выбирается хостом на усмотрение хозяина.


  1. Halt
    05.06.2017 09:35
    +1

    Скажите, а в чем принципиальное отличие от других аналогов, например maidsafe? Ну кроме того, что Sia гораздо менее удобна и понятна конечному пользователю.

    Особенно в плане «запустил — работает».


    1. starius
      05.06.2017 13:33

      Про safe слышу впервые. В названии статьи есть "обработка данных", а не только хранение. По поводу удобства: проект находится в очень ранней стадии, поэтому удивительно, что вообще есть GUI. А в командной строке у них всё как раз "запустил — работает", говорю как пользователь.


      1. Halt
        05.06.2017 13:36

        Просто из описания у меня сложилось впечатление, чтобы начать работу нужно сначала закинуть средства, потом еще шуровать кошельками и т.д.


    1. Sjam
      07.06.2017 13:42

      Судя по сайту, проект неживой


      1. Halt
        07.06.2017 13:54

        Maidsafe? Да нет, буквально на той неделе с разработчиками общался.


  1. VlasovVV
    05.06.2017 13:12

    Какую минимальную сумму надо внести на счет, чтобы открыть хост?


    1. starius
      05.06.2017 13:35

      Раньше говорили 50KS, но сейчас она очевидно меньше.
      Думаю, не меньше 2KS, но это цифра с потолка и зависит от размера хоста и депозита. Чем больше денег, тем больше можно открыть контрактов при том же размере депозита. Если слишком сильно снижать депозит, то упадает рейтинг хоста и с ним будут заключать мало контрактов.


      1. Temtaime
        06.06.2017 00:27

        Что за 2KS? 2000 SC? Т.е. по текущему курсу около $30?


  1. itforge
    05.06.2017 18:07

    Напоминает разработку Ричарда Хендрикса из сериала Silicon Valley :)


    1. mrWhiteMe
      10.06.2017 18:33

      Только там еще сжатие прикручено было и хранить данные можно и на мобилках :) А так да, тоже подумал сразу о них.


  1. Sjam
    05.06.2017 20:57

    Хотелось бы уточнить такие моменты.
    1. файлы шифруются, но как они хранятся на удаленных хостах. Т.е. получает ли к ним кто-то доступ кроме отправителя?
    2. go get — кажется только забирает исходники. Кажется, go run build собирает в бинарники. (не спец по go, только учусь)
    3. чем это лучше syngthing? ведь все равно масса дополнительных звеньев.


    1. redmanmale
      06.06.2017 13:00

      <sarcasm>
      3. Лучше тем, что здесь криптовалюта, блокчейн, контракты, explorer, и майнеры, и биржи для обмена — одним словом, всё, что прилагается к альткоину.
      В общем, всё то, на чём все сейчас хайпят.
      </sarcasm>

      И да, syngthing намного удобнее для пользователя.


    1. Sjam
      10.06.2017 18:32

      4. как будет решаться вопрос с курсом. Не может ли получится так, что условно «вчера» хранение стоило условно 10$, а «завтра» стоимость будет >100$ за такой же объем данных?


      1. starius
        10.06.2017 23:27

        1. Чтобы скачать кусок данных, надо прислать хосту обновлённую версию контракта (в которой в пользу хоста было бы списано больше денег). Для этого надо обладать приватным ключом, который есть на клиенте.
          Место в исходниках: https://git.io/vHD7M


        2. go get скачивает и собирает. Если передать флаг -d, то он не будет собирать.


        3. Не слышал раньше о syncthing. Судя по описанию, надо иметь несколько своих машин, между которыми данные и синхронизируются. В Sia даные загружаются на машины других людей — это намного надёжнее, так как машины оказываются в разных странах и "вытравить" данные из них намного сложнее, чем со всех машин одного человека.


        4. Цена хранения в сиакоинах фисируется в момент заключения контракта. Те сиакоины были куплены (и истрачены на контракты) в момент, когда курс был ещё $10. Хосты могут отвечать на изменение курса изменением цены — это будет влиять на последующие контракты.


  1. che_guevara100
    10.06.2017 18:32

    Можно ли открыть хост на NAS, подключенному к роутеру? Что для этого нужно сделать?


    1. starius
      13.06.2017 16:42

      Хосту нужна папка, чтобы хранить загруженные данные. Если NAS виден из роутера как папка, доступная на чтение и запись, и на роутере хватит ресурсов, то должно взлететь. Посмотрите на minebox — это проект как раз по запуску Sia на NAS.