Блокчейн + распределённое хранилище = Sia

    Всем привет! У всех нас есть данные, которые хочется держать под контролем. Мы не хотим потерять к ним доступ и не хотим, чтобы доступ был у кого-то ещё. Где хранить такие данные? Я считаю, что 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.
    • Поддержка мобильных и других легковесных клиентов.

    Сообщество



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

    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

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

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

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



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


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

      • 0

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

        • 0

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


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


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

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

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

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


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


                $ go get github.com/NebulousLabs/Sia/...
              • –1
                А что такое UWP? University Of Wisconsin?
              • НЛО прилетело и опубликовало эту надпись здесь
                • –1
                  Сейчас бы валюты по капитализации оценивать. А у Doge 355M, и что? Мало ли сколько там монет нагенерено. Весь этот проект — шиза без задач. Операторам большого количества данных такое не нужно, а обычным пользователям с этим работать невозможно. PoС может и неплохой, но не более.
                  • НЛО прилетело и опубликовало эту надпись здесь
                    • 0
                      Чтобы их продать — нужно сначала чтобы их у вас купили, кажется, вы это упускаете.
                      Во-вторых: ваш друг не зарабатывает «прямо сейчас, 300$ в день, реально работает», а играет на спекуляциях с высокими рисками.
                      • 0
                        Чтобы их продать — нужно сначала чтобы их у вас купили, кажется, вы это упускаете.

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


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

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

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

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

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

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

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


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


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

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


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

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

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

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

                    • 0

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


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

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

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

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

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

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

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

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

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

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

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


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

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


                        Хосты для контрактов выбираются в функции 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 и сам же рассказать полиции об этом, а полиция вместо ареста этого пользователя может сделать обыск хоста и найти фрагменты этих данных в хранилище. Если вы считаете, что полиция способна фабриковать дела, то лучше всё зашифровать. Или держать хост анонимно, кстати.

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

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

                          • 0

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

                        • +1
                          Я просто оставлю это здесь.
                          https://nextcloud.com/blog/introducing-cloud-storage-in-the-blockchain-with-sia-and-nextcloud/
                        • 0
                          А возможно начать предоставлять место без внесения сиакоинов на кошелек?

                          • 0
                            Нет
                            • 0

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

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


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


                                2. В торренте множество сидов раздают один и тот же файл, а в Sia файлы всё-таки конкретного пользователя. Хотя идеи реализовать шаринг есть — тогда это будет "торрент" с оплатой за скачивание.
                              • +1
                                Контракт на хранение заключается на сколько? С помесячной оплатой и автоматическим продлением?
                                А если допустим у меня узел. Я хочу поднять цены. И для старых пользователей тоже. Я могу отказаться продлевать его БЕЗ потери депозита?
                                А уменьшить размер депозита до минимально-возможного (какого?)?
                                • 0

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

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

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

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

                                    • 0
                                      Просто из описания у меня сложилось впечатление, чтобы начать работу нужно сначала закинуть средства, потом еще шуровать кошельками и т.д.
                                    • 0
                                      Судя по сайту, проект неживой
                                      • 0
                                        Maidsafe? Да нет, буквально на той неделе с разработчиками общался.
                                    • 0

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

                                      • 0

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

                                        • 0
                                          Что за 2KS? 2000 SC? Т.е. по текущему курсу около $30?
                                      • 0
                                        Напоминает разработку Ричарда Хендрикса из сериала Silicon Valley :)
                                        • 0
                                          Только там еще сжатие прикручено было и хранить данные можно и на мобилках :) А так да, тоже подумал сразу о них.
                                        • 0
                                          Хотелось бы уточнить такие моменты.
                                          1. файлы шифруются, но как они хранятся на удаленных хостах. Т.е. получает ли к ним кто-то доступ кроме отправителя?
                                          2. go get — кажется только забирает исходники. Кажется, go run build собирает в бинарники. (не спец по go, только учусь)
                                          3. чем это лучше syngthing? ведь все равно масса дополнительных звеньев.
                                          • 0
                                            <sarcasm>
                                            3. Лучше тем, что здесь криптовалюта, блокчейн, контракты, explorer, и майнеры, и биржи для обмена — одним словом, всё, что прилагается к альткоину.
                                            В общем, всё то, на чём все сейчас хайпят.
                                            </sarcasm>

                                            И да, syngthing намного удобнее для пользователя.
                                            • 0
                                              4. как будет решаться вопрос с курсом. Не может ли получится так, что условно «вчера» хранение стоило условно 10$, а «завтра» стоимость будет >100$ за такой же объем данных?
                                              • 0
                                                1. Чтобы скачать кусок данных, надо прислать хосту обновлённую версию контракта (в которой в пользу хоста было бы списано больше денег). Для этого надо обладать приватным ключом, который есть на клиенте.
                                                  Место в исходниках: https://git.io/vHD7M


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


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


                                                4. Цена хранения в сиакоинах фисируется в момент заключения контракта. Те сиакоины были куплены (и истрачены на контракты) в момент, когда курс был ещё $10. Хосты могут отвечать на изменение курса изменением цены — это будет влиять на последующие контракты.
                                            • 0
                                              Можно ли открыть хост на NAS, подключенному к роутеру? Что для этого нужно сделать?
                                              • 0
                                                Хосту нужна папка, чтобы хранить загруженные данные. Если NAS виден из роутера как папка, доступная на чтение и запись, и на роутере хватит ресурсов, то должно взлететь. Посмотрите на minebox — это проект как раз по запуску Sia на NAS.
                                              • +1
                                                В настоящий момент по ссылкам автора статьи средняя стоимость хранения террабайта данных составляет 150 sc или примерно 86 центов в месяц. Емкость сети достигла 3 петабайт при том что заполнена она лишь на 1%. Это и есть показатели доходности. Даже если найдется покупатель готовый платить 1$ За терабайт, вряд ли он купит у вас место. У лучших хостеров заполнение достигает 10 %. Грубо говоря, доходность этой затеи примерно равна нулю.

                                                Это конечно крайне позитивно для развития проекта, ведь что может быть лучше для потребителя, чем бесплатное предложение услуги? Вот только какой толк хостерам от участия в проекте, который не окупает даже электричества, не говоря уже о вложениях в оборудование и каналы связи?

                                                Кстати, сами авторы проекта, вероятно зарабатывают на майнинге и спекуляциях криптовалютой — токенам проекта. Я и сам заинтересовался SIA лишь потому что майню эти токены. Пусть рентеры и хостеры заказывают друг у друга бесплатную услугу, но для транзакций им нужны монеты, которые добывают майнеры. Вот они то и зарабатывают пока реальные деньги в этом проекте.
                                                • 0
                                                  У вас противоречие — предложение места больше чем спрос, значит эта цена безубыточна, и не важно почему, на интерес народ место расшаривает или оно просто так бесхозное валяется (я думаю именно это ключевой момент).

                                                  Инструментов по настройке хоста для получения дохода практически нет, а на глазок дело не благодарное. Еще хуже обстоит дело с покупкой места, там цена немного растет за счет комиссий на контракты (фактически первичное выделение места) плюс еще меньше инструментов по оптимизации доходов, чтобы не попадаться в ловушки цены 1кк sc за терабайт и не пропускать те предложения, что меньше 1sc.

                                                  Fees for Creating a Set of Contracts: 185.1 SC
                                                  Download 1 TB: 37.89 SC
                                                  Store 1 TB for 1 Month: 232.9 SC
                                                  Upload 1 TB: 36.57 SC

                                                  цены случайны, но порядок цен сохраняется.

                                                  Низкие цены на хранилище — это просто мега круто!
                                                  • 0
                                                    Если внимательно посмотреть статистику проекта, то примерно месяц назад стоимость аренды места резко обвалилась. Были предложения за сотни sc, а потом они резко упали до уровня 150 sc за терабайт в месяц.

                                                    Почему? На самом деле в середине мая на рынке криптовалют начался памп и все валюты подорожали в несколько раз. Но вот незадача, уже недели две как все цены падают вниз. Та же сиа подешевела с 20 долларов за 1000 до примерно 6. Но при этом стоимость контрактов на хранения не изменилась и просто уменьшилась в 4 раза. Никакой рыночной коррекции согласно курсу криптовалюты не наблюдается, а это значит что рыночные пооцессы ценообразования отсутствуют.

                                                    Кто все эти люди, которые шарят место для Сиа? Я не могу точно сказать, возможно они были введены в заблуждение статьями подобным этой. Тут написано, что хост заполненный на полтерабайта приносит 50 рублей в день. На самом деле по состоянию на конец июня 2017 такой доход будет за месяц. И то при условии, что найдется клиент, который заполнит именно ваш диск имея на выбор 99% свободных ресурсов сети на других хостах.

                                                    Я никоим образом не хочу сказать что Сиа неправильный или не нужный проект, просто обращаю внимание что коммерческий интерес там декларируется, но на данный момент отсутствует. Я просто выступаю за объективность, а не против идеи.
                                                    • 0
                                                      Кто все эти люди, которые шарят место для Сиа?

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


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

                                                      Вы не учли, что за это время число хостов выросло в несколько раз. Я начинал с 1500 монет за Тб в месяц и был в первых 40 хостах по рейтингу. Когда все снизили цены, я снизил до 500 монет и был ровно на 40-м месте. На днях обнаружил, что я уже вылез за сотню и снизил до 250 монет и я всё равно на 71 месте. Число 40 выбрал неспроста — столько контрактов создаёт пользователь.


                                                      Я не могу точно сказать, возможно они были введены в заблуждение статьями подобным этой.

                                                      Эта статья никого не вводит в заблуждение — на момент написания (полтора месяца назад) цифры были корректными. Если бы хостеры считали, что их ввели в заблуждение, в меня бы давно полетели помидоры и другие овощи в слаке или тут. Кстати, заходите — там есть живые хостеры помимо меня на #russian канале.


                                                      И то при условии, что найдется клиент, который заполнит именно ваш диск имея на выбор 99% свободных ресурсов сети на других хостах.

                                                      Один из моих хостов заполнен на 100% при объеме 100Гб. Такой малый хост заполняется относительно быстро. На другой хост залили 7 гигов, пока я писал этот комментарий.


                                                      Думаю, если к хранению файлов подключится хотя бы один бизнес, спрос на хосты резко возрастёт. Что для этого нужно, я уже писал — сделать удобный интерфейс для загрузки файлов.

                                                  • 0
                                                    Емкость сети достигла 3 петабайт при том что заполнена она лишь на 1%.

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


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

                                                  • 0
                                                    Классная тема!
                                                    Надо будет потестить, прояснить удобно ли пользоваться системой для бекапа мини хостинг.
                                                    Сейчас под бекап юзаю отдельный сервачек за 50$/мес, пару терабайт весь бекап реально весит.
                                                    Если в sia выйдет хранить дешевле, то почему бы и не сменить схему бекапа
                                                    При этом важные для меня факторы:
                                                    — бекап должен быстро извлекаться обратно при надобности (если у меня умер какой то прод сервер, мне то надо его быстро оживлять из бекапа)
                                                    — понять как использовать систему безопасно (есть прод сервер, на нем ежедневно меняются файлы и они должны уезжать в облако, но при этом облако должно «забирать» файлы и хранить дифы\снапшеты за указанный период, если прод сервер будет взломан, взломщики не должны получить возможность поудалять все бекапы из облака)

                                                    • 0
                                                      Нужно помнить, что резервирование всего 3-кратное, данные размазаны по 40 серверам, и никто ничего не гарантирует, в отличии от хостинга, с которым есть договор и желание следить за своей репутацией.
                                                      • 0
                                                        Как бы ни дорожил хостер репутацией, если винт сдох, то все.
                                                        А бывает что и рейдконтролер сдох и винты не хотят подниматься на другом рейд контролере.

                                                        Облачному хранилищу типа amazon s3 доверия на первый взгляд больше, чем отдельному серверу, но я вообще не уверен как там у них все внутри устроено, какие рейды и избыточность хранения информации.
                                                        • 0

                                                          Речь так или иначе идёт о вероятностях. При желании можно сделать размах кодов Рида-Соломона таким большим, что для потери данных из строя должны будут выйти сотни хостеров, вероятность чего ничтожна при их независимости. Договор и желание следить за репутацией это замечательно, но тоже ничего не гарантирует, прошу заметить. Возможность в случае чего засудить хостинг (если это и получится) не вернёт потерянные данные. Кроме того, в отношения с хостингом может вклиниться государство (ваше или хостинга) и решить изъять ваши данные или закрыть к ним доступ. Размазывая данные по 40 серверам, страхуются не только риски поломки жесткого диска или отключение хостинга, но и подобные малоприятные сюрпризы.

                                                          • 0
                                                            Само собой, я вообще считаю за децентрализованными хранилищами будущее.

                                                            C siacoin есть опасность системная, случится что то серьезное для ее экономики, курс рухнет или уязвимость найдут (например злоумышленник будет получать доступ к серверам с кошельками пользователей), и народ начнет массово приглушать хосты — плакали наши бакапы.
                                                            • 0

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


                                                              Насчет уязвимости — поэтому для поддержания работы сети и используется проверенный Proof of Work. Сейчас разработчики собирают деньги для производства ASIC-майнеров, чтобы независимо от колебаний курса всегда были узлы, поддерживающие работу. Уровень опасности тут не более, чем с выделенными/облачными хостингами. Да и в любом случае поговорка про яйца в одной корзине работает независимо от метода хранения бэкапов.

                                                      • 0
                                                        Пробую начать этим пользоваться. И опыт оказывается не таким уж простым.

                                                        https://www.youtube.com/watch?v=TCa_sHJn9Vs
                                                        https://www.youtube.com/watch?v=GYI6T-Jvo2I
                                                        • 0
                                                          Если запущен siad то sia-ui подхватывает его, а иначе запускает из под себя свой siad.
                                                          Sia-UI это графическая обёртка на электроне к siad.
                                                          Путь для сиада внутри Sia-UI можно изменить в директории куда по умолчанию выкачивает, там есть config.json где datadir путь к данным.
                                                          Этот путь для профиля ещё вшит в \resources\app\js\mainjs\config.js там можно задать свой и тогда при отсутствующем профиле будет уже правильный путь к данным.
                                                          • 0
                                                            По синхронизации, просто база всё время растёт, за сутки может в районе 1% увеличиться.
                                                            Консольная команда в терминале ui скорее всего не выполнилась из-за отличия версии ui и siad, желательно иметь одинаковые версии.
                                                            Клиент-то да сырой пока ещё, но лично я такой ошибки не ловил. Попробуйте полностью обновиться.

                                                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.