Merge pull request #51 from libp2p/replace-remove-stale-roadmap
Bring ROADMAP.md up to date with current practicesmaster
commit
a2ffdeee3e
346
ROADMAP.md
346
ROADMAP.md
|
@ -2,348 +2,6 @@
|
|||
|
||||
> We track the development of the libp2p project through Github issues and [Waffle.io](https://waffle.io/libp2p/libp2p). See our waffle board at: [https://waffle.io/libp2p/libp2p](https://waffle.io/libp2p/libp2p)
|
||||
|
||||
--------------------------------------------------------------------------------------------------------------------------------
|
||||
--------------------------------------------------------------------------------------------------------------------------------
|
||||
For higher level planning, we use [OKRs](https://github.com/libp2p/pm/tree/master/OKRs).
|
||||
|
||||
# 2016 Q3
|
||||
|
||||
## Milestone - JS and Go libp2p interop
|
||||
|
||||
> Summary: Achieve interoperability between the JS and Go implementations, specificially with secio.
|
||||
|
||||
- Tasks
|
||||
- [x] Migration to pull-streams (track: https://github.com/ipfs/js-ipfs/issues/403). Also part of js-ipfs Milestone 2
|
||||
- [x] js-secio - https://github.com/libp2p/js-libp2p-secio
|
||||
- [x] Interop with Go
|
||||
- [x] Verify that it interops
|
||||
- [ ] Automated tests(track: https://github.com/ipfs/js-libp2p-ipfs/issues/15)
|
||||
- [ ] Integrate the `ping protocol` in js-libp2p (track: https://github.com/ipfs/js-libp2p-ipfs/pull/13)
|
||||
- Dependencies:
|
||||
- n/a
|
||||
- Requirements by other projects
|
||||
- js-ipfs and go-ipfs interop
|
||||
|
||||
### Notes `NA`
|
||||
### Expected date of completion: `Q3`
|
||||
|
||||
--------------------------------------------------------------------------------------------------------------------------------
|
||||
--------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
# 2016 Q4
|
||||
|
||||
## Milestone - libp2p interfaces
|
||||
|
||||
> Summary: Review and converge both go and js interfaces
|
||||
|
||||
### Leads
|
||||
|
||||
- David
|
||||
- Juan
|
||||
|
||||
### Tasks
|
||||
|
||||
### Notes
|
||||
|
||||
### Expected date of completion: `Week 2 - October 24`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
## Milestone - interface-xtp
|
||||
|
||||
> Summary: ship xTP interface
|
||||
|
||||
### Leads
|
||||
|
||||
- David
|
||||
- Juan
|
||||
|
||||
### Tasks
|
||||
|
||||
### Notes
|
||||
|
||||
### Expected date of completion: `Week 4 - November 7`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
## Milestone - Documentation of the libp2p modules
|
||||
|
||||
> Summary: Create easy to write documentation for libp2p modules that is searchable.
|
||||
|
||||
### Leads
|
||||
|
||||
- Friedel
|
||||
|
||||
### Tasks
|
||||
|
||||
### Notes
|
||||
|
||||
### Expected date of completion: `Week 5 - November 14`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
## Milestone - Standardize Organization and libp2p/libp2p org clean up
|
||||
|
||||
> Summary:
|
||||
|
||||
### Leads
|
||||
|
||||
- Richard
|
||||
|
||||
### 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
|
||||
|
||||
### Notes
|
||||
|
||||
Having the community guidelines pointed to, and creating custom ones as needed, should be the priority.
|
||||
|
||||
### Expected date of completion: `Week 5 - November 14`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
## Milestone - libp2p.io
|
||||
|
||||
> Summary: We need to ship a first version of the libp2p.io website
|
||||
|
||||
### Leads
|
||||
|
||||
- @VictorBjelkholm
|
||||
|
||||
### Tasks
|
||||
|
||||
- [ ] Agree and create tasks about what's missing for first version
|
||||
- [ ] Agree on where to take inspiration
|
||||
- [ ] Come up with site structure (sitemap)
|
||||
- [ ] Have content written and integrated
|
||||
- [ ] Setup Libp2p examples
|
||||
- [ ] Deploy and setup CD for shipping website
|
||||
|
||||
### Notes
|
||||
|
||||
|
||||
The website should be launched, accessible, and thoughtful.
|
||||
|
||||
libp2p.io has it's repository here: https://github.com/libp2p/libp2p-website
|
||||
|
||||
### Expected date of completion: `Week 6 - November 21`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
## Milestone - Ship Private Networks
|
||||
|
||||
> Summary: have pre-shared key based private networks in go-libp2p and go-ipfs
|
||||
|
||||
### Leads
|
||||
|
||||
- Kuba
|
||||
|
||||
### Tasks
|
||||
- [x] Choose crypto primitive - XSalsa20 - https://github.com/ipfs/notes/issues/177#issuecomment-255588927
|
||||
- [x] Get review on the crypto
|
||||
- [x] Decide on format for key file in ipfs repo - https://github.com/ipfs/notes/issues/177#issue-183845331
|
||||
- [x] Write a spec/manual
|
||||
- [ ] Publish the spec/manual
|
||||
- [ ] Implementation:
|
||||
- [x] Create private networks interface - https://github.com/libp2p/go-libp2p-interface-pnet/
|
||||
- [x] Finish private netwroks interface
|
||||
- [x] Finish private networks implementation - https://github.com/libp2p/go-libp2p-pnet
|
||||
- [x] Integrate private networks interface with go-libp2p-swarm and go-ipfs
|
||||
- [ ] Error propagation cleanup
|
||||
- [ ] Key generation tooling
|
||||
- [x] Tests for private networks
|
||||
|
||||
### Notes
|
||||
|
||||
### Expected date of completion: `Week 7 - November 28`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
## Milestone - ship js-libp2p-dht
|
||||
|
||||
> Summary:
|
||||
|
||||
### Leads
|
||||
|
||||
- David
|
||||
|
||||
### Tasks
|
||||
|
||||
### Notes
|
||||
|
||||
### Expected date of completion: `Week 9 - December 12`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
## Milestone - Packet Switching #1
|
||||
|
||||
> Summary: low-level groundwork for the packet switched overlay network
|
||||
|
||||
### Leads
|
||||
|
||||
- Lars
|
||||
|
||||
### Tasks
|
||||
|
||||
- [ ] multigram spec and go-multigram implementation - https://github.com/multiformats/multigram
|
||||
- [ ] message-oriented interfaces in libp2p
|
||||
- [ ] go-udp-transport implementation
|
||||
- [ ] message-oriented /ping implementation
|
||||
|
||||
### Notes
|
||||
|
||||
This milestone makes libp2p capable of datagrams, or message-oriented communication.
|
||||
It fleshes out the interfaces through libp2p and the transports, and enables message-based protocols up to the swarm layer.
|
||||
|
||||
More milestones in Q1/2017 will implement:
|
||||
- The switch
|
||||
- Send/receive messages through a route over the network of peers.
|
||||
- The actual overlay routing
|
||||
- Find and maintain routes through the network.
|
||||
- IP/Ethernet through a TUN/TAP interface
|
||||
- Transport capabilities:
|
||||
- Can this transport do streams, i.e. reliable plus ordered?
|
||||
- Selective reliability upgrade
|
||||
- Swarm protocols should use a reliability layer of their own if they need a stream, and the transport doesn't take care of it.
|
||||
- Even for mostly message-based protocols it sometimes makes sense to briefly have a stream.
|
||||
- Messages over streams
|
||||
- Put framing around messages so that we can send/receive them even if we only a have a stream-based transport which doesn't technically do message-based.
|
||||
|
||||
### Expected date of completion: `Week 10 - December 19`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
## Milestone - Write libp2p-relay spec
|
||||
|
||||
> Summary:
|
||||
|
||||
### Leads
|
||||
|
||||
- David
|
||||
- Juan
|
||||
|
||||
### Tasks
|
||||
|
||||
### Notes
|
||||
|
||||
### Expected date of completion: `Week 12 - January 2`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
||||
## Milestone - Ship libp2p-relay
|
||||
|
||||
> Summary:
|
||||
|
||||
### Leads
|
||||
|
||||
- David
|
||||
- Jeromy
|
||||
|
||||
|
||||
### Tasks
|
||||
|
||||
### Notes
|
||||
|
||||
### Expected date of completion: `Week 13 - January 9`
|
||||
|
||||
|
||||
--------------------------------------------------------------------------------------------------------------------------------
|
||||
--------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
# CACHED MILESTONES (for later re-evaluation)
|
||||
|
||||
## Milestone - Developer Experience
|
||||
|
||||
> 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
|
||||
- [ ] make go-libp2p have a top level, easy to use package
|
||||
- [ ] add examples for each of the go-libp2p- repos
|
||||
|
||||
### Notes `NA`
|
||||
|
||||
### Expected date of completion: `NA`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
## Milestone - Move DHT to use IPRS
|
||||
|
||||
> 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)
|
||||
|
||||
### Notes `NA`
|
||||
|
||||
### Expected date of completion: `NA`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
## Milestone - Break DHT into Peer Routing and Content Routing
|
||||
|
||||
> Summary: `NA`
|
||||
|
||||
### Tasks
|
||||
|
||||
- [ ] Technical Discussion: Revisit proposed spec
|
||||
|
||||
### Notes
|
||||
|
||||
This milestone is still very green, however something we know for sure we want to do.
|
||||
|
||||
### Expected date of completion: `NA`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
## Milestone - Improve Connectivity of go-libp2p/go-ipfs
|
||||
|
||||
> 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
|
||||
- https://github.com/libp2p/go-libp2p/issues/45
|
||||
- https://github.com/ipfs/go-ipfs/issues/3065
|
||||
- https://github.com/ipfs/notes/issues/110
|
||||
- [ ] Implement the strategy for connection closing in go-libp2p
|
||||
- [ ] Technical Discussion: Definte a strategy for Relay (or multiple Relay)
|
||||
- https://github.com/ipfs/notes/issues/110
|
||||
- [ ] Implement Relay in go-libp2p
|
||||
- [ ] Technical Discussion: Improve NAT Traversal
|
||||
- https://github.com/ipfs/notes/issues/110
|
||||
- https://github.com/ipfs/go-ipfs/issues/2509
|
||||
- [ ] Improve NAT traversal in go-libp2p
|
||||
|
||||
### Notes `NA`
|
||||
|
||||
### Expected date of completion: `NA`
|
||||
For feature completeness, we are tracking in [REQUIREMENTS.md](https://github.com/libp2p/libp2p/blob/master/REQUIREMENTS.md).
|
||||
|
|
Loading…
Reference in New Issue