====== IPLD (Interplanetary Linked Data) ====== * Merkle DAG(Directed Acyclic Graph) を利用した汎用的で分散可能なデータレイヤー * :!: 抽象的な分散可能データ構造を提供する仕様とも言える * IPFS は IPLD 上に構築されている * Git も DAG を利用しているため、IPLD 上に Git を構築することは容易 * :!: 何日とかでなく何時間レベルで実装できるとのこと * IPLD には「Codec」と呼ばれる仕組みがあり、抽象的な DAG データ構造を具体的なデータ構造に encode できる * [[https://ipld.io/docs/codecs/known/dag-json/|DAG-JSON]]: DAG のデータを JSON にエンコードする * [[https://ipld.io/docs/codecs/known/dag-cbor/|DAG-CBOR]]: DAG のデータを CBOR にエンコードする * [[https://ipld.io/specs/codecs/dag-pb/spec/|DAG-PB]]: DAG のデータを [[https://developers.google.com/protocol-buffers/|Protocol Buffers]] にエンコードする(これが IPFS の実体 :!:) * :!: IPLD 上に構築されたデータ(IPFSなど)は、当然 IPLD という共通仕様に則っているため、相互連携ができる! まとめると * IPLD は分散コンピューティングにおけるデータ永続化のプロトコル・共通仕様となることを目指している? と思われる。 ===== 参考 ===== * [[https://ipld.io/docs/|IPLD docs]] * [[https://docs.ipfs.io/concepts/merkle-dag/|Merkle Directed Acyclic Graphs (DAGs)]] * [[https://media.consensys.net/ever-wonder-how-merkle-trees-work-c2f8b7100ed3|Ever Wonder How Merkle Trees Work?]] 「Ever Wonder How Merkle Trees Work?」で紹介されている図。 {{https://miro.medium.com/max/1400/0*lR_IMzUjQUJgXq5A.png}}