#ipfs 

Снова попытка IPFS

https://ipfs.tech/
Я не раз писал про мои попытки попробовать IPFS. Либо он шёл в жопу,
когда я замечал, что при попытке сборки он что-то самостоятельно лезет
качать из Интернета. Либо оно не собиралось на FreeBSD (есть только
_linux.go файлы). Либо падало при попытке запуска демонов/утилит.

На фоне того, что теперь не только зарубежные ресурсы стали блокировать
российские сети, но ещё и РКН начал с нашей стороны, доступность всяких
CDN-ов стала плачевна. На OVH имеется зеркало NNCP сайта. В
087600cd166642c95809f63d4de0342d705d1c6a писал, что оно у меня ниоткуда
не доступно. Владелец пока не отвечает есть ли у него SSH доступ до
меня, дабы rsync запустить и подтвердить что зеркало либо полезно, либо
бесполезно, ибо не может быть обновлено. Судя по журналам почтового
сервера, почта к нему ушла.

А параллельно про себя думал: а как ещё можно захостить программы, если
вот в мире все стороны режут доступность сетей друг друга?

Волонтёры, самостоятельно предлагающие поднять на своих мощностях
ресурсы (как было с NNCP) -- тут всё ok, всё понятно, лишь бы была
связанность между моими серверами и волонтёрскими.

Самостоятельно приобретать какую-нибудь VPS за рубежом на Западе --
будучи под санкциями, невозможно. Использовать бесплатные для свободного
ПО ресурсы: SourceForge, GitHub и подобные -- в любой момент
отрубят/отожмут, чисто лотерея, ибо санкции. Не Западных ресурсов я не
знаю подобных.

Не раз видел сайты, которые готовы что-то сзеркалировать, просто надо с
ними связаться по почте и всё обсудить. "Без регистрации и SMS". Что-то
промежуточное между инициативными волонтёрами и коммерческими
компаниями. Но, опять же, я только на Западе видел такие предложения.
Хотя и не скажу что особо рыскал среди китайских или индийских доменах.
Они часто не на английском.

Все мои сайты доступны через Yggdrasil сеть. Нужно к домену добавить
"y." префикс. Этот вариант с повышенной возможностью связанности. Но,
требует использования далеко не каждому знакомой overlay сети.

Вспомнил про BitTorrent, но в нём же проблема останется со связанностью:
кто-то сможет подключиться ко мне, к seeder-у, а кто-то нет. Но если
будет промежуточный посредник, скачавший файл, то возможно с него
остальные смогут забрать.

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

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

Очередная попытка его собрать и использовать. И... если закрыть глаза на
то, что есть скрипт на bash (уроды) используемый во время сборки,
тривиально который бы можно было переписать на POSIX shell, то собралось
без нареканий. За столько лет что ли появился опыт или квалифицированные
разработчики по Go у них?

Пока вполне себе вроде бы работает. Даже через сторонние сайты убедился,
что размещаемые мною файлы доступны. Память чуть-чуть отъедает со
временем, но терпимо. На VPS с 1GB RAM не запустишь: прожорливый.

Много версий всяких форматов у них за это время появилось. Всякий
функционал разнообразный. С одной стороны и хочется сказать что bloated,
но с другой стороны никто не заставляет же использовать всё это, не
относящееся к основной задаче. В целом глаз ни за что не зацепился ярой
неприязнью.

Конфигурационный файл из коробки надо править: отключать телеметрию (о
которой они сами при запуске предупреждают, молодцы!), использование
DoH, чужих делегированных серверов, всякие QUIC/WebSocket (идут нафиг
все эти web-технологии), MDNS, выпуск TLS сертификатов для узла через
ACME протокол (ага, через Let's Encrypt). Приятно, что нет hard-code на
SHA2 хэш -- можно использовать по умолчанию и BLAKE2/BLAKE3/SHA3 всякие.
Есть даже потуги в использовании Noise вместо TLS.

Буду пробовать размещать tarball-ы в IPFS, добавляя ссылки на них в
Metalink4 файлы. Не уверен во всём этом. Работают ли на практике relay
узлы? Всё же, IPFS гораздо более сложная штука чем BitTorrent, даже с
DHT и v2 фичами. Но вроде стала достаточно работоспособной и buildable
на практике, не забывает об обратной совместимости.

    <metalink xmlns="urn:ietf:params:xml:ns:metalink">
      <file name="goredo-2.9.1.tar.zst">
        <hash type="...">...</hash>
        <signature mediatype="application/pgp-signature"><![CDATA[...</signature>
        <signature mediatype="application/ssh-signature"><![CDATA[...</signature>
        <size>493289</size>
        <url priority="1" location="ru">http://www.goredo.cypherpunks.su/download/goredo-2.9.1.tar.zst</url>
        <url priority="2" location="ru">https://www.goredo.cypherpunks.su/download/goredo-2.9.1.tar.zst</url>
        <url location="ru">http://y.www.goredo.cypherpunks.su/download/goredo-2.9.1.tar.zst</url>
        <url>ipfs://bafykbzaceafd7rqlggzbpqrk6ienp7ahetos4areeipits4cqhrpfew6q3fp4/goredo-2.9.1.tar.zst</url>
      </file>
      <file name="goredo-2.9.1.tar.zst.asc">
        <identity>LibrePGP detached signature</identity>
        <size>265</size>
        <url priority="1" location="ru">http://www.goredo.cypherpunks.su/download/goredo-2.9.1.tar.zst.asc</url>
        <url priority="2" location="ru">https://www.goredo.cypherpunks.su/download/goredo-2.9.1.tar.zst.asc</url>
        <url location="ru">http://y.www.goredo.cypherpunks.su/download/goredo-2.9.1.tar.zst.asc</url>
        <url>ipfs://bafykbzaceafd7rqlggzbpqrk6ienp7ahetos4areeipits4cqhrpfew6q3fp4/goredo-2.9.1.tar.zst.asc</url>
      </file>
      <file name="goredo-2.9.1.tar.zst.cm">
        <identity>KEKS/CM detached signature</identity>
        [...]
      </file>
      <file name="goredo-2.9.1.tar.zst.sig">
        <identity>OpenSSH signature</identity>
        [...]
      </file>
    </metalink>

    [оставить комментарий]