- PVSM.RU - https://www.pvsm.ru -
Всем привет!
У всех нас есть данные, которые хочется держать под контролем. Мы не хотим потерять к ним доступ и не хотим, чтобы доступ был у кого-то ещё. Где хранить такие данные? Я считаю, что Sia [1] может стать идеальным местом для этого и расскажу, почему.
Disclaimer: Sia активно развивается и, по словам разработчиков, всё ещё не подходит для того, чтобы быть единственным местом для бекапа.
Sia [1] (произносится "Сая") — это распределённая система на основе блокчейна, участники которой хранят информацию на жестких дисках друг друга за плату. Участник системы может решить быть только пользователем, загружающим данные (в терминологии Sia — renter), или же сервером, принимающим данные (в терминологии Sia — host), или совмещать эти две роли. Хосты заинтересованы в хранении данных, так как они уходят в убыток, если теряют данные. Это обеспечивается следующим образом: при заключении контракта на хранение данных хост вносит депозит и ежедневно подтверждает факт хранения загруженных данных; если он этого не делает, то лишается части депозита. Подробности процесса оставим на десерт :-)
Чтобы данные уцелели даже в случае отказа нескольких хостов, используются коды Рида — Соломона [2]. Данные загружаются на 40 хостов и остаются доступными, если хотя бы 10 из этих хостов доступны. Избыточность хранения составляет 3x. В будущем ожидается рост uptime хостов, после чего избыточность можно будет снизить.
В Sia используется свой альткоин — Siacoin. Есть свой блокчейн, в котором хранятся как обычные транзакции, так и контракты на хранение файлов. (Блокчейн биткоина не подошёл бы для Sia, так как в нём нет возможности заключать такие контракты.) Есть и свой explorer [3], и майнеры, и биржи для обмена — одним словом, всё, что прилагается к альткоину.
Страница Siacoin на бирже Poloniex.
Так почему мне нравится хранить данные в такой системе? А вы не задумывались, какие ещё способы есть в нашем распоряжении? Есть огромное количество способов, имещих единую точку отказа [4]. А единая точка отказа оправдывает своё название и рано или поздно отказывает [5]. Кроме того, такие системы тяготеют к централизации и отказу от анонимности и становятся удобным местом для насаждения государственного контроля за данными пользователя. Мне претит мысль о том, что кто-то может лишить меня доступа к моим же данным. Какой же выбор остаётся у людей, желающих децентрализованно хранить данные? Например, покупать место или серверы в нескольких централизованных системах. Для большинства людей это означает огромные накладные расходы в виде потраченного времени и денег, особенно если делать это анонимно.
Пара слов о том, почему так важна анонимность при хранении данных. Если государство знает о твоей собственности, то на самом деле она тебе не принадлежит, так как государство определяет правила игры и завтра может решить забрать её у тебя (или частично забрать, обложив налогом). Например, в США изымали золото у людей [6] во времена Великой депрессии. Единственный надёжный способ обезопасить собственность — это отвязать её от любой информации, которой располагает государство.
Когда я осознал это, я решил было сделать систему, лишённую этих недостатков: децентрализованную, анонимную и надёжную. Сначала я решил проверить, нет ли чего готового на гитхабе. И нашёл Sia — именно то, что нужно! С точки зрения пользователя, Sia — это готовый аналог покупки кучи серверов для ручной загрузки данных. И аналог более эффективный, так как один сервер хранит данные тысяч пользователей. Калькулятор стоимости хранения на сайте Sia [1] показывает, что хранение 5Тб в течение месяца обойдётся в 10 долларов. (Disclaimer: реальная цена будет выше из-за комиссий на создание контрактов и тройной избыточности хранения, но всё равно остаётся очень и очень привлекательной.)
См. также руководство на официальном сайте [7].
Все приватные ключи, использующиеся в кошельке, получаются из seed, который программа выдаёт в начале работы. Для восстановления доступа к сиакоинам кошелька (но пока, к сожалению, не к файлам) достаточно знать этот seed.
Если честно, Sia-UI я ни разу не запускал, так как я живу в командной строке, а Sia предоставляет отличные инструменты для этого: siad [11] и siac [12]. (Кстати, весь код Sia написан на Go, что не может не радовать.) Основы работы с siad
и siac
можно почерпнуть из статьи про запуск хоста [13] и из хеплов этих программ. Программу 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 [14]. С помощью него можно строить свои системы, использующие Sia в качестве хранилища. Команда Sia делает ставку на то, что в будущем компании будут хранить свои данные в Sia.
Для хранения данных необходима информация, находящаяся в папке renter/
. Есть планы о восстановлении данных исключительно из seed (см. в разделе "планы").
По желанию можно сохранить информацию об объёме загруженного с помощью siac renter export
и загрузить её в "пузомерку": rankings.sia.tech [15].
Хост Sia будет приносить доход в сиакоинах своему владельцу. Это неплохой способ монетизировать неиспользуемые части жестких дисков. Оплачивается не только хранение, но и трафик.
Про запуск своего сервера есть целая статья [13]. Я тут опять пробегусь по верхам.
siad
и siac
. Программа siad
запускается, а все действия осуществляются через siac
. Надо подождать, пока siad
скачает блокчейн. Это занимает несколько часов, есть планы по значительному ускорению.siac wallet address
), закинуть на него сиакоинов, купленных любым способом [9].siac host folder add /path/to/dir size
siac config
.siac host announce
.Через некоторое время хост начнёт получать контракты и на него будут загружать данные.
Доходы хостеров можно посмотреть на сайте siahub.info [16]. Пример графика доходов хоста [17], на который загружено 585 из доступных 999 Гб:
Данный хост получает 57 сиакоинов каждый день. 1 сиакоин сегодня стоит примерно 1.5 цента, а значит этот хост ежедневно получает примерно 50 рублей. Пусть есть NAS на 4Тб за 20к рублей. При аналогичном проценте заполнения он выдавал бы примерно 200 рублей в день, то есть 6к рублей в месяц — неплохая окупаемость.
В Sia хосты регулярно доказывают, что хранят загруженные данные. Это важный момент, так как иначе недобросовестные хосты могли бы сбрасывать все данные в /dev/null, продолжая получать плату. Выше я обещал рассказать, как устроено доказательство хранения. Это подробно описано в статье [18] от создателя Sia. Ниже моё объяснение на пальцах.
Данные контракта можно представить как массив из фрагментов одинакового размера. Устроим древовидное хеширование [19] этих фрагментов. Для этого рассчитаем сильные криптографические хеши этих фрагментов. Потом разобъем полученные хеши на пары и рассчитаем хеши от соединённых хешей каждой пары. Полученные хеши снова разобьём на пары и так, пока не получим один хеш. Он-то и хранится в контракте и обновляется, когда пользователь загружает новые данные по этому контракту. Теперь вернёмся к отдельному фрагменту файла и проследим его "путь" до корня дерева. На каждом шагу в хеширование будет "примешиваться" хеш, приходящий от другой группы фрагментов. Если мы предоставим данный фрагмент и эти дополнительные хеши, находящиеся на пути от фрагмента до корня, то сможем доказать, что данный фрагмент присутствует на данной позиции в данных. Подделка такого доказательства равносильна нахождению коллизии хеш-функции.
Как же это применяется в Sia? Номер фрагмента, хранение которого хост должен доказать, определяется в зависимости от хешей предыдущих блоков, поэтому его сложно предсказать заранее. В определённый промежуток времени (по блокам, а не по часам) хост должен загрузить доказательство хранения выбранного фрагмента, иначе он теряет деньги.
У внимательного читателя мог возникнуть вопрос — а что, если зловредный хост будет хранить данные, но не будет давать их скачивать пользователю? Или просто иметь низкий uptime, из-за чего пользоваться им будет невозможно. Для борьбы с этим в Sia придумали систему рейтинга хостов. Каждый запущенный клиент вычисляет этот рейтинг независимо, в том числе измеряет uptime, поэтому лучше дать программе поработать вхолостую перед заключением контрактов, чтобы набралась статистика по хостам. Все факторы, влияющие на рейтинг, разбираются в статье про рейтинг [20]. Рейтинги хостов можно смотреть командой siac hostdb -v
и на сайте siahub.info [16].
В Siacoin есть одна особенность, которую я не встречал раньше в альткоинах. Siafund [21] — это особый вид ресурсов, который может храниться в том же блокчейне и на таких же адресах, как и Siacoin. Адреса, на которых хранится Siafund, получают часть доходов хостов. Отчисления в размере 3.9% от выплат по успешным контрактам распределяются пропорционально между держателями Siafund. В природе существует ровно 10к Siafund. Большая их часть находится у разработчиков (Nebulous Inc.), но немногим больше 1000 были в своё время распроданы. Siafund продаются на бирже bitsquare.io [22] и на канале #siafunds Slack-чата [23]. В настоящее время цена одного Siafund составлет примерно 2 биткоина. Siafund'ы неделимы.
Siafund — это альтернатива предмайнингу собственной криптовалюты разработчиками альткоина. По задумке создателей, из-за высокой цены обладателями Siafund будут только люди, приверженные идеям проекта, включая разработчиков. Чем больше Sia будет использоваться для хранения файлов, тем больший доход будeт приносить Siafund.
На siapulse.com [24] и siahub.info [16] есть красивые карты хостов.
Хосты уже есть на всех материках, кроме Африки. Общее количество активных — 275. В том числе хосты есть в нескольких городах России и Украины. Приглашаю всех, кому нужна помощь с запуском хоста и вообще с Sia, на каналы Slack-чата [23], включая #help, #russian и #farming.
Некоторые планы из официального roadmap [25]:
Жду всех в Slack-чате [23]. Спасибо всем, кто дочитал до конца!
Автор: Boris Nagaev
Источник [30]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/rezervnoe-kopirovanie/257075
Ссылки в тексте:
[1] Sia: https://sia.tech
[2] коды Рида — Соломона: https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%B4_%D0%A0%D0%B8%D0%B4%D0%B0_%E2%80%94_%D0%A1%D0%BE%D0%BB%D0%BE%D0%BC%D0%BE%D0%BD%D0%B0
[3] explorer: https://explore.sia.tech/
[4] единую точку отказа: https://en.wikipedia.org/wiki/Single_point_of_failure
[5] рано или поздно отказывает: https://habrahabr.ru/post/322932/
[6] изымали золото у людей: https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D1%84%D0%B8%D1%81%D0%BA%D0%B0%D1%86%D0%B8%D1%8F_%D0%B7%D0%BE%D0%BB%D0%BE%D1%82%D0%B0_%D1%83_%D0%BD%D0%B0%D1%81%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%A1%D0%A8%D0%90_%D0%B2_1933_%D0%B3%D0%BE%D0%B4%D1%83
[7] руководство на официальном сайте: https://sia.tech/ru/get-started/
[8] Sia-UI: https://sia.tech/ru/apps/#ui
[9] Купить сиакоины: https://sia.tech/ru/get-siacoin
[10] используя интерфейс Sia-UI: https://blog.sia.tech/getting-started-with-private-decentralized-cloud-storage-c9565dc8c854
[11] siad: https://github.com/NebulousLabs/Sia/tree/master/siad
[12] siac: https://github.com/NebulousLabs/Sia/tree/master/siac
[13] статьи про запуск хоста: https://blog.sia.tech/how-to-run-a-host-on-sia-2159ebc4725
[14] HTTP API: https://github.com/NebulousLabs/Sia/blob/master/doc/API.md
[15] rankings.sia.tech: https://rankings.sia.tech/
[16] siahub.info: http://siahub.info/
[17] хоста: http://siahub.info/host/762
[18] статье: https://www.sia.tech/whitepaper.pdf
[19] древовидное хеширование: https://ru.wikipedia.org/wiki/TTH
[20] статье про рейтинг: https://forum.sia.tech/topic/1037/the-hosting-handbook
[21] Siafund: https://siawiki.tech/wallet/siafund
[22] bitsquare.io: https://bitsquare.io/
[23] Slack-чата: https://slackin.sia.tech/
[24] siapulse.com: http://siapulse.com/
[25] официального roadmap: https://trello.com/b/Io1dDyuI/sia-public-roadmap
[26] Блог: https://blog.sia.tech/
[27] форум: https://forum.sia.tech/
[28] Twitter: https://twitter.com/siatechhq
[29] Github: https://github.com/NebulousLabs/Sia
[30] Источник: https://habrahabr.ru/post/330140/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.