Немножко про ipns или как сделать себе несколько адресов в ipfs


Есть такая хорошая штука, как ipfs (межпланетная файловая система - InterPlanetary File System) - для того, чтоб делиться файлами со вселенной. Оную ipfs на голосе упоминали многократно. Я вот свою аватарку в ipfs загрузила, оттуда мы её и видим (через ipfs.io. Можно грузить свои, например, через http://xloem.ipfs.pics/, или таки поставить себе ipfs, и быть более уверенными, что картинки не пропадут - пока сами храните). В отличие от блокчейнов ipfs у меня не вызывает ужаса непонимания "где и как это всё предполагается хранить": неиспользуемое и никем не сберегаемое исчезает, никто не обещал вечность).

Основной вид адресов - по хешу содержимого. Многим прекрасен, но ужасен тем, что при любом изменении файла - меняется и адрес его. Что же делать бедным нам, если хочется публиковать что-то, что меняться должно? Бложик, например. ) Ответ - вторая система адресов, ipns. Хешу некоторого ключа можно поставить в соответствие хеш файла (каталога с файлами), и искать по хешу ключа. А когда у нас добавленный файл изменился - мы просто меняем тот хеш, который по этому ключу находится. Ключ обещает, что это всё тот же я, владелец ключа, поменял содержимое. Понятно, никак не гарантируя, что по этому адресу тот же файл - в отличие от имен ipfs.

В интернетах бегает уйма руководств, как опубликовать свой сайт в ipfs, если у тебя есть свой домен. И гораздо меньшее количество руководств, как опубликовать свой сайт в ipfs без такового. На всякий случай я тоже перескажу.
Если ipfs на компе уже стоит, и статический сайтик с относительными ссылками в нём - тоже есть, скажем, в каталоге site, то всё делается в две команды.

 ipfs -r add site/

Когда добавление отработало, добавило все файлы и выдало в конце строчку added QmXRbXcPSx4Kp4ZfX3vkxNZgHMyaunHVmbcLQ191ZMjDBu site/ (у вас будет другой хеш, разумеется), то следующая команда:

 ipfs name publish QmXRbXcPSx4Kp4ZfX3vkxNZgHMyaunHVmbcLQ191ZMjDBu

Результат которой - Published to QmaDL5isfAtMp9UtWtr4J2wEDw9Z5d6X8gg827ZZTKpoTk: /ipfs/QmXRbXcPSx4Kp4ZfX3vkxNZgHMyaunHVmbcLQ191ZMjDBu (опять же, хеши у вас свои). Если выдаст ошибку Error: selected encoding not supported - проверяйте, не потеряли ли символ-другой из хеша, не добавили ли лишнего. )
Теперь, если у вас благополучно работает ipfs-daemon, можно проверять, видно ли результат, пытаясь загрузить: https://gateway.ipfs.io/ipns/QmaDL5isfAtMp9UtWtr4J2wEDw9Z5d6X8gg827ZZTKpoTk. Некоторое время подумает, и покажет - если всё хорошо. И да, вот этот адрес в ipns заодно peer-id в сети ipfs, он же хеш публичного ключа. Адрес такой, что запомнить нереально, но кто ж нам мешает делать закладки? )

Ура, мы победили, всё работает.

А если я хочу ещё сайтик? Или если я хочу с кем-то поделиться периодически обновляемым файликом? И вообще, есть много "а если", которые меня могут заставить хотеть ещё адресов, которые в ipns, с изменяемым содержимым. Я уже видела в сети комментарии, мол, всё понял, на один узел один такой адрес, нужно больше компов. ) Больше компов хорошо, конечно, но всё гораздо проще.

  ipfs key gen --type=rsa --size=2048 onemorekey

Выдаст ещё один хеш ключа. И далее можно публиковать ещё что-то

  ipfs name publish --key=onemorekey /ipfs/ещё-что-то

И получить желаемое.

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


Comments 5


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

20.06.2017 17:24
0

Спасибо. Может, и пригодится когда-нибудь )

20.06.2017 17:41
0

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

20.06.2017 18:24
0

Спасибо, что одобрили пост. )
Думаю, чем больше авторов, тем больше шансов создать заповедник интересного для себя лично. Тогда не так будет волновать, что в целом по голосу... возможно. )))

21.06.2017 15:47
0