We track the development of the libp2p project through Github issues and Waffle.io. See our waffle board at: https://waffle.io/libp2p/libp2p
- Milestone 1 - JS and Go libp2p interop
- Milestone 2 - Improve Connectivity of go-libp2p/go-ipfs
- Milestone 3 - Standardize Organization
- Milestone 4 - libp2p.io
- Milestone 5 - Developer Experience
- Milestone 6 - Move DHT to use IPRS
- Milestone 7 - Break DHT into Peer Routing and Content Routing
- Milestone 8 - Packet Switching / Overlay Network
Summary: Achieve interoperability between the JS and Go implementations, specificially with secio.
- Tasks
- Migration to pull-streams (track: ipfs/js-ipfs#403). Also part of js-ipfs Milestone 2
- js-secio - https://github.com/libp2p/js-libp2p-secio
- Interop tests (track: https://github.com/ipfs/js-libp2p-ipfs/issues/15)
- Integrate the
ping protocol
in js-libp2p (track: ipfs-inactive/js-libp2p-ipfs-nodejs#13)
- Dependencies:
- n/a
- Requirements by other projects
- js-ipfs and go-ipfs interop
n/a
Summary: Improve the connectivity of go-libp2p. Have the technical discussions that will enable us to follow a plan to achieve a better connected graph.
- Tasks
- Technical Discussion: Define a strategy for connection closing
- Implement the strategy for connection closing in go-libp2p
- Technical Discussion: Definte a strategy for Relay (or multiple Relay)
- Implement Relay in go-libp2p
- Technical Discussion: Improve NAT Traversal
- Improve NAT traversal in go-libp2p
- Dependencies
- n/a
- Requirements by other projects
- n/a
n/a
Summary: The main goal of this milestone is to get the libp2p organization cleaned up and provide an easier dev experience.
- Tasks
- Standardize all READMEs and repositories in the libp2p organization
- Use standard-readme for all READMEs
- Look at project-repos.ipfs.io to ensure green across the board.
- Point to IPFS community guidelines for the libp2p project
- Standardize all READMEs and repositories in the libp2p organization
- Dependencies
- n/a
- Requirements by other projects
- n/a
Having the community guidelines pointed to, and creating custom ones as needed, should be the priority.
Summary: The main goal of this milestone is to get more developers excited about libp2p and learn how to use it.
- Tasks
- libp2p.io - https://github.com/libp2p/libp2p-website
- Dependencies
- n/a
- Requirements by other projects
- n/a
The website should be launched, accessible, and thoughtful.
Summary: Get libp2p into a state that is super easy to use and understand.
- Tasks
- Examples
- How to use js-libp2p (dial, multi transport, stream muxing, identify, protocol multiplexing)
- How to use go-libp2p (everything js-libp2p + DHT)
- Spec
- Move spec to the libp2p org
- Revisit and improve
- interface-libp2p
- Make js-libp2p-ipfs and js-libp2p-ipfs-browser use it
- Create js-libp2p, a base class that other libp2p builds can reuse
- Examples
- Dependencies
- n/a
- Requirements by other projects
- /na
n/a
Summary: Currently our records are simple protobufs that get stored in the datastore. With this milestone, any record (provider or IPNS) will be a full IPLD object that follows the IPRS spec.
- Tasks
- Technical Discussion: Decide if whether we should support two types of records or simply create another universe of the DHT
- Migrate go-ipfs to use IPRS
- js-libp2p-dht (also known as dht legacy)
- Dependencies
- n/a
- Requirements by other projects
- n/a
n/a
Summary: n/a
- Tasks
- Technical Discussion: Revisit proposed spec
- Dependencies
- n/a
- Requirements by other projects
- n/a
This milestone is still very green, however something we know for sure we want to do.
Summary: The packet switched overlay network
- Tasks
- Packet switch implemented and integrated into go-ipfs
- Dependencies
- Multigram specced and implemented in Golang
- Requirements by other projects
- n/a
The overlay network will not have any multi-hop routing for now. We only introduce the packet switch and continue being a direct single-hop network.