Skip to content

Commit df16512

Browse files
committed
chore: add toc
1 parent 4fcf469 commit df16512

File tree

1 file changed

+30
-7
lines changed

1 file changed

+30
-7
lines changed

ROADMAP.md

+30-7
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,36 @@
11

2-
# js-libp2p roadmap Q4’22/Q1’23
2+
# js-libp2p roadmap Q4’22/Q1’23 <!-- omit in toc -->
3+
34
```
45
Date: 2022-10-07
56
Status: In Progress
67
Notes: This document is still in review will may be heavily modified based on stakeholder feedback. Please add any feedback or questions in:
78
https://github.com/libp2p/js-libp2p/issues/1438
89
```
910

11+
## Table of Contents <!-- omit in toc -->
12+
13+
- [About the Roadmap](#about-the-roadmap)
14+
- [Sections](#sections)
15+
- [Done criteria](#done-criteria)
16+
- [🛣️ Milestones](#️-milestones)
17+
- [2022](#2022)
18+
- [Early Q4 (October)](#early-q4-october)
19+
- [Mid Q4 (November)](#mid-q4-november)
20+
- [End of Q4 (December)](#end-of-q4-december)
21+
- [2023](#2023)
22+
- [Early/Mid Q1](#earlymid-q1)
23+
- [End of Q1 (March)](#end-of-q1-march)
24+
- [Early Q2 (April)](#early-q2-april)
25+
- [Up Next](#up-next)
26+
- [Roadmap Appendix](#roadmap-appendix)
27+
- [A. 📺 Universal Browser Connectivity](#a--universal-browser-connectivity)
28+
- [B. 🥊 Decentralized Hole Punching](#b--decentralized-hole-punching)
29+
- [C. 🧪 Future-proof Testing](#c--future-proof-testing)
30+
- [Libp2p Project Roadmap](#libp2p-project-roadmap)
31+
1032
## About the Roadmap
33+
1134
### Sections
1235
This document consists of two sections: [Milestones](#Milestones) and the [Roadmap Appendix](#Roadmap-Appendix)
1336

@@ -47,7 +70,7 @@ Others supporting projects (like testing or benchmarking) will have different cr
4770

4871
#### Early/Mid Q1
4972
- C.2 🧪 Future-proof Testing - **Test DHT Server Mode at scale**
50-
-
73+
-
5174
#### End of Q1 (March)
5275
- B.3 🥊 Decentralized Hole Punching - **Add QUIC Transport**
5376

@@ -58,8 +81,8 @@ Others supporting projects (like testing or benchmarking) will have different cr
5881
#### Up Next
5982
- A.3 📺 Universal Browser Connectivity - **WebRTC for Browser to Browser**
6083

61-
# Roadmap Appendix
62-
## A. 📺 Universal Browser Connectivity
84+
## Roadmap Appendix
85+
### A. 📺 Universal Browser Connectivity
6386
<!--- TODO: Link to GitHub Epic -->
6487

6588
**Why**: A huge part of “the Web” is happening inside the browser. As a universal p2p networking stack, libp2p needs to be able to offer solutions for browser users.
@@ -70,7 +93,7 @@ Others supporting projects (like testing or benchmarking) will have different cr
7093
2. [WebRTC for Browser to Server](https://github.com/little-bear-labs/js-libp2p-webrtc/pull/4): This will cover the browsers that don't support WebTransport (most notable is iOS Safari). This is getting close to finalized.
7194
3. WebRTC for Browser to Browser: Even though this use case is made possible by [webrtc-star](https://github.com/libp2p/js-libp2p-webrtc-star) and [webrtc-direct](https://github.com/libp2p/js-libp2p-webrtc-direct) currently, they are a less than ideal solutions. Both libraries have shortcomings, aren't implemented in other languages, and don't employ newer libp2p advancements such as Circuit Relay v2, DCUtR, and authentication via Noise. Therefore, we want to support WebRTC Browser to Browser as a first class transport in js-libp2p and deprecate the previous libraries. This is beginning to be [specified here](https://github.com/libp2p/specs/pull/412).
7295

73-
## B. 🥊 Decentralized Hole Punching
96+
### B. 🥊 Decentralized Hole Punching
7497
<!--- TODO: Link to GitHub Epic -->
7598
**Why**: P2P networks can have a combination of both public and private nodes. While private nodes can dial nodes on the public Internet, they are unreachable from the outside as they are behind a NAT or a firewall. We need a mechanism to dial them. A [previous DHT crawl found that almost 63%](https://github.com/libp2p/specs/blob/master/ROADMAP.md#-hole-punching-on-tcp-and-quic) of the network was undialable. This project aims to implement Decentralized Hole Punching in js-libp2p and bring it to parity with the Go and Rust implementations.
7699

@@ -81,13 +104,13 @@ Others supporting projects (like testing or benchmarking) will have different cr
81104
4. Hole Punching - Use [DCUtR](https://github.com/libp2p/specs/blob/master/relay/DCUtR.md) to synchronize hole punching
82105

83106

84-
## C. 🧪 Future-proof Testing
107+
### C. 🧪 Future-proof Testing
85108
<!--- TODO: Link to GitHub Epic -->
86109
**Why**: JS support doesn't exist in Testground yet. In addition to the work to get generic JS test runners, we need support in Testground.
87110

88111
**Goal**:
89112
1. [Browser Environment Tests](https://github.com/testground/testground/issues/1386): Add support for testing browser features within a browser environment.
90113
2. Test DHT Server Mode at scale: Requires adding support for js-libp2p in Testground. Server mode is implemented but we need a way to ensure it works and to do that we need a very large network testbed (>20 node at least; ideally 100/1000+.)
91114

92-
## Libp2p Project Roadmap
115+
### Libp2p Project Roadmap
93116
Roadmap items in this document were sourced from our the overarching libp2p project roadmap: https://github.com/libp2p/specs/blob/master/ROADMAP.md

0 commit comments

Comments
 (0)