Adamant IPFS Node: саморазворачивающийся узел для хранения и доставки файлов
Adamant IPFS Node — это саморазворачиваемый узел IPFS для хранения и доставки файлов приложений с фиксированным потреблением диска и детерминированной репликацией. Этот проект предоставляет REST API на базе Node.js и обеспечивает уникальный подход к управлению данными, отличаясь от стандартных решений, таких как Kubo.
Среди ключевых особенностей — контролируемая сетка пиров, управляемая жизненный цикл хранилища, а также механизмы для кросс-узловой репликации и восстановления. Это решение подойдет разработчикам, которые ищут гибкий и надежный способ хранения данных с возможностью ограничить использование диска, что может быть полезно для мобильных или веб-приложений.
Запуск осуществляется через Docker, а доступная документация поможет быстро начать. Имей в виду, что проект находится на этапе разработки, и ты не найдешь совместимость с Kubo, а также API, привычных для IPFS. Подходит для разработчиков, готовых внедрить собственное решение для хранения данных.
Общая информация
Проект ADAMANT IPFS Node представляет собой самостоянный узел хранения IPFS, предназначенный для доставки файлов в приложениях. Он содержит ограничение на использование дискового пространства и предоставляет функционал детерминированного воспроизведения, ремонта и контроля состояния здоровья, а также REST API.
Это независимый сервис на Node.js, который включает в себя узел Helia и хост libp2p, работающий через REST API на базе Express. Указанный узел не является оберткой для Kubo и не обеспечивает совместимый с Kubo API, а также не выступает в роли публичного шлюза IPFS. Узлы в развертывании обмениваются блоками, репликами и состоянием здоровья только между собой.
Функционал
- REST-загрузка многофайловых данных и загрузка с помощью CID.
- Контролируемая сетка узлов через TCP с шифрованием Noise и мультиплексированием Yamux.
- Цикл жизни хранимых данных с ограничениями по дисковому пространству и уровням трафика.
- Детерминированное размещение данных с использованием рендеву-хеширования.
- Кросс-узловая репликация и возможность возобновляемого ремонта.
- Контроль здоровья сети с достижениями и явной версией членства.
Установка и запуск
Для установки и запуска проекта можно использовать как исходный код, так и Docker.
Установка из исходников
git clone https://github.com/Adamant-im/ipfs-node.git
cd ipfs-node
nvm use
npm ci
npm run build
node dist/index.js
Перед запуском необходимо скопировать файл конфигурации:
cp config.default.json5 config.json5
Установка с помощью Docker
docker volume create ipfs-node-data
docker run -d \
--name ipfs-node \
--restart unless-stopped \
-v ipfs-node-data:/data \
-v "$PWD/config.json5:/app/config.json5:ro" \
-p 127.0.0.1:4000:4000 \
-p 4001:4001 \
ghcr.io/adamant-im/ipfs-node:
Не забудь заменить `
Ограничения
- Нет публичного участия в IPFS: не поддерживаются DHT, IPNS и публичные шлюзы.
- Нет совместимости с Kubo API, поэтому клиенты Kubo не могут работать с этой службой.
- Отсутствие идентификации конечного пользователя: загрузка и скачивание выполняются без аутентификации.
- Статические списки узлов: каждый узел должен содержаться в списках других узлов.
- Нет учета трафика для отдельных клиентов.
- Нет возможности устанавливать абсолютный каталог данных; хранилище всегда находится в `$HOME/
`.
Вывод
ADAMANT IPFS Node - это надежное решение для проектов, нуждающихся в ограниченном, частном и управляемом пространстве для хранения данных без сложности настройки публичного IPFS. Однако, если необходима общая функция публичного IPFS, данный проект не подойдет.
Открыть на GitHub: Adamant-im/ipfs-node →
RepoRadar