Пробую ещё раз IPFS. Скачал обновлённую версию go-ipfs. Инициализировать не стал, хранилище оставил то же, что было инициализировано в 2019г. Чуть подтюнил конфиг, применил профиль lowpower. По дефолту он потреблял многовато ресурсов. Ладно, вроде терпимо, так проц хотя бы не грузит, потребляет около 300МБ, но оптимизировать потребление ресурсов последние годы не в моде. Ладно, думаю пока оставить.
Попробовал расшарить через него видос. Гейт от Cloudflare оказался не пригоден для раздачи видео, выдаёт сообщение ipfs: video streaming is not allowed при обращении к файлу. В общем, с гейтами оказалось не всё так хорошо, надёжных, в том плане что проработали бы долго, очень мало. В основном какие-то энтузиастские серверы, которые завтра могут или лежать, или вовсе свернуться. Пришлось использовать https://gateway.ipfs.io
, развёрнутый разработчиками IPFS. Но один гейт на весь интернет такое себе...
Кстати, с гейтом Cloudflare есть ещё странность. Для некоторых ссылок он иногда начинает возвращать пустой ответ с кодом 200, при том что ранее по той же ссылке контент отдавался нормально. Через жопу у них в сделано что-то в общем. У них, кстати, есть ещё гейт на домене cf-ipfs.com
Можно нагуглить ещё гейтов, но там с надёжностью обычно ещё хуже. Гейт gateway.pinata.cloud
для моего видоса вовсе на следующий день стал выдавать ошибку There have been too many requests for this content in a short period of time.
To avoid rate limiting for content retrieval, please utilize a dedicated gateway: https://pinata.cloud/documentation#DedicatedGateways.
Вообще предполагается что веб гейты это временный костыль, в идеале поддержку IPFS следует добавить в сами браузеры, чтобы там работало из коробки. Но это маловероятно что произойдёт, Гугл точно этого делать не будет, ему это не выгодно, Apple тоже. Mozilla в плане фич не очень поворотлива в последнее время. Есть расширения для браузеров, но это не то, не будешь же ты каждому предлагать установить расширение чтобы они могли воспользоваться твоей ссылкой, проще веб гейтом воспользоваться. Кстати, из известных браузеров IPFS из коробки поддерживают Brave и Opera для Android.
Попользовавшись несколько месяцев, заметил такие нюансы. Если файл уже был мной ранее опубликован в сети, позже к нему доступ получить сложнее чем в первый раз. В первый раз файл хотя бы находится через DHT в течение пары минут. Если про файл забыть на несколько дней, на то чтобы его повторно достать из сети, может уйти полчаса, если он больше нигде не закеширован. Странный их DHT какой-то. В итоге пришёл к тому что если необходимо чтобы файл был доступен на гейтах, следует как-то автоматизировать его регулярное кеширование на сторонних гейтах. Ну это не сложно сделать, повесил себе такую задачку в крон.
Главное неудобство этой системы это content based адресация. То есть ссылка на файл привязана к его содержимому. Поменял содержимое, поменялась и ссылка (файл следует добавить заново). По старой ссылке будет продолжать отдаваться старая версия. Для решения этой проблемы у них есть IPNS, но оно работает ещё медленней.
Не понравилось что по дефолту добавляемый файл копируется внутрь хранилища. Оно там разбивается на куски по 256kb. В результате файл на дисках будет занимать двойное место. Впрочем, у команды add
есть ключ --nocopy
, с которым файл внутрь хранилища не копируется. Эта опция помечена как экспериментальная, но вроде работает, я пользуюсь.
Можно расшаривать директорию с вложенными другими директориями. То есть таким образом можно захостить там целый статичный сайт.
Что позабавило, несмотря на все бла-бла-бла на сайте проекта, сами они свой основной сайт не сервят через IPFS ))
В общем, оставил себе, пользуюсь для расшаривания статичных файлов. Какого-то другого применения ему для себя я не нашёл, но и это уже неплохо. Это отличная альтернатива файлошаринг хостингам уходящей эпохи web 2.0.