Web3 R&D概念実証① 分散コメント(IPFS + libp2p / モバイルR&D)
動画はこちら
これは何か
Webページ(URL)に紐づくコメントを、中央サーバを持たずに保存・同期できるかを検証したP2Pコメントボードのプロトタイプです。
端末自体がIPFSノードとしてネットワークに参加し、コメントはIPFSに保存、コメント参照情報(URL → CID)をピア間で同期する設計にしています。
目的(何を検証したかったか)
- 中央集権サービスに依存しない形で「URLに紐づく掲示板」を成立させられるか
- コンテンツ本体は分散ストレージ(IPFS)、参照情報はP2P(libp2p)で同期することで、
「特定の管理者が消す/改ざんする」前提に依存しない形を作れるか
※社会的な動機として「情報の改ざんや恣意的な抑制」に対する違和感がきっかけでしたが、本件はあくまで技術的な実験(R&D)として実装しています。
全体の挙動(ユーザーフロー)
- アプリ起動時にIPFSノードとしてネットワーク参加
- Google検索をアプリ内Viewに埋め込み、ブラウザのように検索・閲覧
- 任意サイトを開くと、そのURLに紐づく独自コメント欄を表示
- コメント投稿 → コメントデータをIPFSへ保存し、CID(IPFS hash)を取得
- 取得したCIDを、閲覧中のURLをキーにして端末内に保存(URL → CIDの対応)
- 「同期」ボタン押下で、libp2pで接続している他ノードへ
- 自分が保持しているURL→CID を送信
- 同時に、相手が保持しているURL→CID一覧の送付を要求
- 受信側は、送られてきたCIDを元にIPFSネットワークからコメントをダウンロード
- 受信側は、自分の保持しているURL→CID一覧も送り返し、相互に同期
設計上のポイント
1) データの役割分離(IPFSとP2Pの責務)
- IPFS:コメント本文などのコンテンツ本体(不変データ)を保持
- libp2p:URL→CIDの参照情報(メタデータ)をピア間で交換・同期
2) URLを掲示板のキーとして扱う
「サイトごとに掲示板が存在する」体験に寄せるため、キーをURLにしました。
これにより「閲覧中のページに対してコメントが紐づく」というUIを作りやすくなります。
スコープ / 位置づけ
- 研究用プロトタイプ(R&D)であり、一般公開・運用は想定していません
- 理由:悪用や無秩序を生みやすく、社会実装としては課題が多いと判断
得られたこと
- 端末参加型(IPFS node)+参照情報同期(libp2p)の組み合わせで、
「URLに紐づく分散コメント」を成立させる基本フローを実装 - 分散アプリに必要な設計論点(同期粒度、参照解決、拡散/悪用リスク等)を整理できた