Git Product home page Git Product logo

specs's Introduction

IPFS Specifications

This repository contains the specs for the IPFS Protocol and associated subsystems.

Documentation and Community

Looking for user support?

See Documentation, Discussion Forums, and other Community Resources instead.

Understanding the meaning of the spec badges and their lifecycle

We use the following label system to identify the state of each spec:

  • wip - A work-in-progress, possibly to describe an idea before actually committing to a full draft of the spec.
  • draft - A draft that is ready to review. It should be implementable.
  • reliable - A spec that has been adopted (implemented) and can be used as a reference point to learn how the system works.
  • stable - We consider this spec to close to final, it might be improved but the system it specifies should not change fundamentally.
  • permanent - This spec will not change.
  • deprecated - This spec is no longer in use.

Nothing in this spec repository is permanent or even stable yet. Most of the subsystems are still a draft or in reliable state.

Index

The specs contained in this and related repositories are:

  • IPFS Protocol:
  • User Interface (aka Public APIs):
  • Data Formats:
    • IPLD - InterPlanetary Linked Data.
      • DAG-CBOR - binary format, supporting the complete IPLD Data Model, with excellent performance, and suitable for any job.
      • DAG-JSON - human-readable format, supporting almost the complete IPLD Data Model, and very convenient for interoperability, development, and debugging.
      • DAG-PB - a binary format for specific limited structures of data, which is highly used in IPFS and UnixFS.
      • CAR - transport format used to store content addressable objects in the form of IPLD block data as a sequence of bytes; typically as an application/vnd.ipld.car file with a .car extension
    • Self Describing Formats (multiformats):
      • multihash - self-describing hash digest format.
      • multiaddr - self-describing addressing format.
      • multicodec - self-describing protocol/encoding streams (note: a file is a stream).
      • multistream - multistream is a format -- or simple protocol -- for disambiguating, and layering streams. It is extremely simple.
  • Files / Mutable File System:
  • Storage Layer:
  • Block Exchanges:
    • Bitswap - BitTorrent-inspired exchange
  • Key Management:
    • KeyStore - Key management on IPFS
    • KeyChain - Distribution of cryptographic Artifacts
  • Networking layer:
    • libp2p - libp2p is a modular and extensible network stack, built and use by IPFS, but that it can be reused as a standalone project. Covers:
  • Records, Naming and Record Systems:
  • Other/related/included:
    • PDD - Protocol Driven Development

Contribute

contribute

Suggestions, contributions, criticisms are welcome. Though please make sure to familiarize yourself deeply with IPFS, the models it adopts, and the principles it follows. This repository falls under the IPFS Code of Conduct.

InterPlanetary Improvement Process (IPIP)

  • Want to propose a change to an existing specification?
  • Or add a new protocol?

See:

Accepted proposals can be found in the IPIP/ directory.

specs's People

Contributors

achingbrain avatar ajnavarro avatar alexey-n-chernyshov avatar aschmahmann avatar daviddias avatar dignifiedquire avatar elavoie avatar findkiko avatar hacdias avatar hsanjuan avatar ivilata avatar jbenet avatar jesseweinstein avatar juliangruber avatar lidel avatar mildred avatar momack2 avatar mr0grog avatar noffle avatar reidlw avatar ribasushi avatar richardlitt avatar sidharder avatar stebalien avatar swedneck avatar vasco-santos avatar whyrusleeping avatar willscott avatar wking avatar xioustic avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.