株式会社NiMiLのロゴ

DAG・UnixFS・IPLD 【IPFSとFilecoin勉強記録】

公開 2021/7/17:更新 2021/7/22
アイキャッチ画像

FilecoinとIPFSの勉強の参考サイト

FilecoinとIPFSについて学習するに際しての記録です。日本語情報が全くないので記事にまとめて行って振り返られるようにしたいです。また、Dappを作る上でデータストレージとして利用したいとざっくり考えているので、その調査も兼ねています。

得られたことをまとめていきます。
筆者はFilecoinやIPFSの勉強を始めるときに、以下ぐらいの知識があるベースで記事を書いていきます.

このテーマに関連する知識としてはこのぐらいです。

httpの方はこちらから https://proto.school/verifying-storage-on-filecoin

  • Bitcoinのアルゴリズムの理解(ざっくり)
  • コンセンサスアルゴリズムの理解(PoCやPoS)
  • IPFSにファイルをアップロードしたことがある(go-ipfsを使用)
  • 現状のwebの構成の大体の理解
    • dns
    • 2021年現在のwebがサーバーとクライアントで動いていることの理解

データ格納の準備

ファイルコインネットワークにファイルを格納する前に、必ず「Filecoin Piece」に変換しなければならない。

ファイルの変換の第一段階として、IPLD DAGを作るためにUnixFS(フォーマットの名前)に基づいてまとめ上げられます。

全く理解できなかったので、それぞれの用語について調べました。

DAG(Directed Acyclic Graph)有向非巡回グラフ

全体感を把握するにはこちらの記事→ https://aire-voice.com/dag/3779/
もう少し詳しくてわかりやすい記事→ https://ascii.jp/elem/000/001/938/1938955/

これ以外にも色々と記事があったが、数分のブラウジングでは全体像を掴むだけで詳しく処理のフローを理解するには至らなかった

UnixFS

ipfsプロトコルと深く関係している。ipfsにファイルをアップロードするときにも、巨大なファイルをアップロードしたい時がある。ブロックのサイズに上限がある関係で、それを分割して詰め込まなければならない。分割されたデータ同士を関係づける必要がある。

分割されたデータを関係づけるためのメタデータを含んだフォーマットのことをUnixFSと呼ぶ。

Unixとあるぐらいなので、Unixのファイルシステムと似ている←一緒ではない。

ipfsにファイルをアップロードするということは、ブロックを作ることである。らしい。

IPLD

ざっくりいうと

コンテンツ指向のルーティングにおける共通の仕様

The data model of the content-addressable web. It allows us to treat all hash-linked data structures as subsets of a unified information space, unifying all data models that link data with hashes as instances of IPLD.
IPLD - The data model of the content-addressable web - IPLD

公式サイトでは、

IPLD is the data model of the content-addressable web. It allows us to treat all hash-linked data structures as subsets of a unified information space, unifying all data models that link data with hashes as instances of IPLD.

と書かれていました。

Google翻訳はこれ

IPLDは、コンテンツアドレス可能なWebのデータモデルです。これにより、ハッシュにリンクされたすべてのデータ構造を統合された情報スペースのサブセットとして扱い、データとハッシュをリンクするすべてのデータモデルをIPLDのインスタンスとして統合できます。

わからなかったので補足したいが、難しかったので随時追記していこうと思う。

コンテンツ指向のプロトコルにおけるwebのデータモデルの一つである。
InterPlanetary Linked Data.とあるように、異なる世界線(gitからbitcoinとか、bitcoinからethereumなど)のコンテンツでもリンクさせられるらしい。

(https://proto.school/merkle-dags/08 より引用して意訳)
Merkle-DAGベースのデータ形式とその正式な記述のエコシステムを開発し、幅広いデータ交換をサポートするための共通様式がIPLD。「CIDがコンテンツアドレスデータを参照するための共通様式を提供するのと同様に、IPLDは、コンテンツアドレスデータ構造を構造化および通信するための正式なスキーマとして共通フォーマットを定義します。」

まとめ

全貌を理解する必要はないかもしれないが、個人的に楽しいのでどんどんふかぼってしまう。内容の薄い記事になってしまったが、更新の動機付けにもなるので公開していきましょう!

CATEGORIES

分類は、世界の見方

TAGS

記憶の糸をたぐりましょう
twitter icon
instagram icon
友だち追加
twitter iconinstagram icon友だち追加