InterPlanetary Linked Data
Note that, as in many IPFS repositories, most of the work is happening in the issues or in active pull requests. Go take a look!
There are a variety of systems that use merkle-tree and hash-chain inspired datastructures (e.g. git, bittorrent, IPFS, tahoe-lafs, sfsro). IPLD defines:
- merkle-links: the core unit of a merkle-graph
- merkle-dag: any graphs whose edges are merkle-links.
- merkle-paths: unix-style paths for traversing merkle-dags with named merkle-links
- IPLD Data Model: a flexible, JSON-based data model for representing merkle-dags.
- IPLD Serialized Formats: a set of formats in which IPLD objects can be represented, for example JSON, CBOR, CSON, YAML, Protobuf, XML, RDF, etc.
- IPLD Canonical Format: a deterministic description on a serialized format that ensures the same logical object is always serialized to the exact same sequence of bits. This is critical for merkle-linking, and all cryptographic applications.
In short: JSON documents with named merkle-links that can be traversed.
IPLD is a multifaceted, distributed effort. Here are our current repositories:
- cid - Self-describing content-addressed identifiers for distributed systems
- interface-ipld-format - A interface you can follow to implement a valid IPLD format, resolvable through the IPLD Resolver (available in IPFS)
- ipld - This repo
- js-ipld-cli - Interact with IPLD on the command line
- js-ipld-dag-cbor - JavaScript implementation of the IPLD spec.
- js-ipld-dag-pb - JavaScript Implementation of the MerkleDAG Nodes with Protobuf.
- js-ipld-eth-block - JavaScript Implementation of the IPLD format - Ethereum Block
- js-ipld-resolver - JavaScript implementation of the IPLDService
- specs - The specifications for IPLD
- website - The official website for IPLD, at ipld.io
Please contribute! Look at the issues!
Check out our contributing document for more information on how we work, and about contributing in general. Please be aware that all interactions related to IPLD are subject to the IPFS Code of Conduct.
Small note: If editing the README, please conform to the standard-readme specification.
This repository is mainly documents. All of these are licensed under the CC-BY-SA 3.0 license, copyright Protocol Labs Inc.