ADAMANT IPFS Nodeの初のタグ付きリリースであり、公開された最初のコンテナイメージです。これはアプリケーションファイル配信用の自己ホスト型IPFSストレージノードであり、ディスク使用量の制限、決定論的なレプリケーション、修復機能、ヘルスチェックポイント、およびREST APIを備えています。Kuboのラッパーではなく、Node.jsとHeliaによるスタンドアロンサービスです。
実行方法
docker volume create ipfs-node-data
docker run -d \
--name ipfs-node \
--restart unless-stopped \
--stop-timeout 20 \
-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:0.1.0
このイメージには設定ファイルが含まれていないため、/app/config.json5にマウントしてください。HOMEは/dataに設定されており、単一の/dataボリュームでブロックストア、データストア、libp2pピアID、ピンセット、ライフサイクルレジストリ、修復カーソル、ヘルスチェックポイントを保持します。リポジトリ内のdocker/config.example.json5は、どのネットワークにも参加しないスタンドアロンの開始点として利用できます。linux/amd64およびlinux/arm64向けにビルドされており、非特権ユーザーとして実行されます。また、SBOMと出所証明(provenance attestation)が添付されています。
機能概要
このノードは、マルチパートファイルのRESTアップロードと、CIDによるコンテンツアドレス指定でのダウンロードを提供します。TCP上でNoiseとYamuxを使用した制御されたピアメッシュを維持し、identifyおよびpingプロトコルのみを登録します。ストレージのライフサイクルは、ディスク予約、集約リクエスト制限、TTL付きの一時アップロード、およびウォーターマーク駆動のガベージコレクションによって制限されます。配置はランデブーハッシュによる決定論的な手法で行われ、ファイルの経過時間に応じてコピー数が減少します。ノード間レプリケーションと再開可能な修復サイクルは、ハンドシェイクによって認証されたlibp2pプロトコル上で動作します。ネットワーク対応のヘルスチェックポイントは、単調増加する高さと明示的なメンバーシップエポックを保持します。エンドポイントごとのレート制限とアドミッションコントロールが、同時アップロードおよびダウンロードに適用されます。
制限事項
DHT、IPNS、パブリックゲートウェイ、およびKubo APIは含まれていません。ここに保存されたコンテンツはパブリックIPFSネットワークにはアナウンスされず、パブリックネットワーク上にのみ存在するコンテンツをこのノード経由で取得することもできません。制御されたピアトポロジにより、コンテンツルーティングメタデータの公開範囲は削減されますが、それ自体でデプロイメントがプライベート、匿名、トラストレス、または検閲耐性を持つものになるわけではありません。アップロードとダウンロードは設計上認証不要であり、唯一の認証情報は管理キー1つのみです。アップローダー署名による削除(#27)、ピア探索(#28)、トラフィックアカウンティング(#29)、絶対データディレクトリ(#30)、およびパブリックネットワークとの相互運用性(#31)は今後の課題です。