mirror of
https://github.com/vacp2p/roadmap.git
synced 2026-01-07 23:04:01 -05:00
chore: p2p commitments for q3
This commit is contained in:
51
content/p2p/acz/2025q3-acz-consulting.md
Normal file
51
content/p2p/acz/2025q3-acz-consulting.md
Normal file
@@ -0,0 +1,51 @@
|
||||
---
|
||||
|
||||
title: ACZ Consulting
|
||||
tags:
|
||||
- "2025q3"
|
||||
- "p2p"
|
||||
- "acz"
|
||||
- "waku"
|
||||
draft: false
|
||||
description: P2P ad-hoc consulting for ACZ
|
||||
|
||||
---
|
||||
|
||||
`vac:p2p:acz:2025q3-acz-consulting`
|
||||
|
||||
P2P ad-hoc consulting for ACZ
|
||||
|
||||
## Description
|
||||
|
||||
P2P provides consulting and support to ACZ by addressing queries,
|
||||
formulating and designing strategies to utilize nim-libp2p and Waku more effectively,
|
||||
and removing blockers related to these products.
|
||||
Additionally, P2P offers guidance on resolving coding challenges that may arise during the development of these tasks.
|
||||
|
||||
## Task List
|
||||
|
||||
### Mix Consulting
|
||||
|
||||
* fully qualified name: `vac:p2p:acz:2025q2-acz-consulting:libp2p-mix-consulting`
|
||||
* owner: rramos
|
||||
* status: not started
|
||||
* start-date: 2025/07/01
|
||||
* end-date: 2025/09/30
|
||||
|
||||
#### Description
|
||||
Assist ACZ with the integration of mix with Waku. This task is primarily reactive, so aside from periodically checking in with the team to determine if assistance is needed, no additional actions are required unless requested
|
||||
|
||||
#### Deliverables
|
||||
|
||||
### de-MLS Consulting
|
||||
|
||||
* fully qualified name: `vac:p2p:acz:2025q2-acz-consulting:de-mls-consulting`
|
||||
* owner: rramos
|
||||
* status: not started
|
||||
* start-date: 2025/07/01
|
||||
* end-date: 2025/09/30
|
||||
|
||||
#### Description
|
||||
Assist ACZ with the integration of de-MLS with Waku. This task is primarily reactive, so aside from periodically checking in with the team to determine if assistance is needed, no additional actions are required unless requested
|
||||
|
||||
#### Deliverables
|
||||
35
content/p2p/ift/2025q3-gossipsub-perf-improvements.md
Normal file
35
content/p2p/ift/2025q3-gossipsub-perf-improvements.md
Normal file
@@ -0,0 +1,35 @@
|
||||
---
|
||||
|
||||
title: GossipSub Performance Improvements
|
||||
tags:
|
||||
- "2025q3"
|
||||
- "p2p"
|
||||
- "ift"
|
||||
draft: false
|
||||
description: GossipSub Performance Improvements
|
||||
|
||||
---
|
||||
|
||||
`vac:p2p:ift:2025q3-gossipsub-perf-improvements`
|
||||
|
||||
## Description
|
||||
|
||||
TODO
|
||||
|
||||
## Task List
|
||||
|
||||
|
||||
### TODO
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q3-gossipsub-perf-improvements:TODO`
|
||||
* owner:
|
||||
* status: not started
|
||||
* start-date: 2025/07/01
|
||||
* end-date: 2025/09/30
|
||||
|
||||
#### Description
|
||||
|
||||
TODO
|
||||
|
||||
#### Deliverables
|
||||
|
||||
49
content/p2p/ift/2025q3-nimlibp2p-autonat-v2.md
Normal file
49
content/p2p/ift/2025q3-nimlibp2p-autonat-v2.md
Normal file
@@ -0,0 +1,49 @@
|
||||
---
|
||||
|
||||
title: AutoNAT v2
|
||||
tags:
|
||||
- "2025q3"
|
||||
- "p2p"
|
||||
- "ift"
|
||||
draft: false
|
||||
description: Implement AutoNAT v2
|
||||
|
||||
---
|
||||
|
||||
`vac:p2p:ift:2025q3-nimlibp2p-autonat-v2`
|
||||
|
||||
Implement AutoNAT V2 based on the [libp2p specification](https://github.com/libp2p/specs/blob/master/autonat/autonat-v2.md).
|
||||
|
||||
## Task List
|
||||
|
||||
### Client
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q2-nimlibp2p-autonat-v2t:client`
|
||||
* owner: gabe
|
||||
* status:
|
||||
* start-date: 2025-07-01
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Implement client side, constructing and sending `DialRequest`, handling `DialDataRequest`/`DialDataResponse` exchange,
|
||||
validate nonce on `DialBack` and parse `DialResponse`.
|
||||
Ensure interop against other implementations
|
||||
|
||||
#### Deliverables
|
||||
|
||||
|
||||
|
||||
### Server
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q2-nimlibp2p-autonat-v2:server`
|
||||
* owner: gabe
|
||||
* status:
|
||||
* start-date: 2025-07-01
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Address selection, dial address, send `DialBack`, handle nonce and do amplification check.
|
||||
Ensure interop against other implementations
|
||||
|
||||
#### Deliverables
|
||||
|
||||
82
content/p2p/ift/2025q3-nimlibp2p-kademlia.md
Normal file
82
content/p2p/ift/2025q3-nimlibp2p-kademlia.md
Normal file
@@ -0,0 +1,82 @@
|
||||
---
|
||||
|
||||
title: Kademlia DHT
|
||||
tags:
|
||||
- "2025q3"
|
||||
- "p2p"
|
||||
- "ift"
|
||||
draft: false
|
||||
description: Implement Kademlia DHT
|
||||
|
||||
---
|
||||
|
||||
`vac:p2p:ift:2025q3-nimlibp2p-kad-dht`
|
||||
|
||||
Implement Kademlia Distributed Hash Table in nim-libp2p, based on the [libp2p specification](https://github.com/libp2p/specs/blob/master/kad-dht/) as an additional discovery mechanism.
|
||||
This commitment involves two main objectives: implementing nim-kademlia-dht, and integrating this in nim-libp2p
|
||||
This deliverable continues the work started in 2025q2
|
||||
|
||||
## Task List
|
||||
|
||||
### Routing table and RPC Protocol
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q2-nimlibp2p-kad-dht:routing-and-rpc`
|
||||
* owner: rramos
|
||||
* status: 50%
|
||||
* start-date: 2025-04-08
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Implement Kademlia’s XOR-based routing table with bucket management. Define RPC messages (`PING`, `STORE`, `FIND_NODE`,
|
||||
`FIND_VALUE`) for node communication.
|
||||
|
||||
#### Deliverables
|
||||
|
||||
|
||||
|
||||
### Bootstrapping & Lookup Mechanism
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q3-nimlibp2p-kad-dht:bootstraping-and-lookup`
|
||||
* owner: rramos
|
||||
* status: 35%
|
||||
* start-date: 2025-05-05
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Enable nodes to join the network via bootstrap peers. Implement iterative lookup for efficient key
|
||||
discovery and retrieval
|
||||
|
||||
#### Deliverables
|
||||
|
||||
|
||||
|
||||
### Network Maintenance & Node Management
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q3-nimlibp2p-kad-dht:network-maintenance-node-management`
|
||||
* owner: rramos
|
||||
* status: not started
|
||||
* start-date:
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Handle bucket refresh, node eviction, and periodic pings to maintain an active routing table.
|
||||
Implement bucket splitting and adaptive refresh strategies.
|
||||
|
||||
#### Deliverables
|
||||
|
||||
|
||||
|
||||
### Data Storage & Replication
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q3-nimlibp2p-kad-dht:data-storage`
|
||||
* owner: rramos
|
||||
* status: not started
|
||||
* start-date:
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Store key-value pairs with expiration and replication mechanisms. Ensure values persist despite churn, using periodic
|
||||
re-publication and redundancy strategies.
|
||||
|
||||
#### Deliverables
|
||||
|
||||
77
content/p2p/ift/2025q3-nimlibp2p-maintenance.md
Normal file
77
content/p2p/ift/2025q3-nimlibp2p-maintenance.md
Normal file
@@ -0,0 +1,77 @@
|
||||
---
|
||||
|
||||
title: Nim-libp2p maintenance
|
||||
tags:
|
||||
- "2025q3"
|
||||
- "p2p"
|
||||
- "ift"
|
||||
draft: false
|
||||
description: Maintain nim-libp2p through improvements, bug fixes, and user support
|
||||
|
||||
---
|
||||
|
||||
`vac:p2p:ift:2025q3-nimlibp2p-maintenance`
|
||||
|
||||
Maintain nim-libp2p through improvements, bug fixes, and user support
|
||||
|
||||
## Description
|
||||
|
||||
Continue supporting and maintaining the nim-libp2p repository through ongoing improvements, refactoring, and bug fixes.
|
||||
This includes a range of ad-hoc tasks critical to sustaining code quality, overall stability, correct functionality,
|
||||
and performance of the project.
|
||||
Additionally, it provides a platform for addressing small developer requests,
|
||||
ensuring that nim-libp2p remains functional and usable for its primary users — Nimbus and Waku — helping to meet their evolving needs."
|
||||
|
||||
## Task List
|
||||
|
||||
### Maintenance
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q3-nimlibp2p-maintenance:maintenance`
|
||||
* owner: rramos
|
||||
* status: not started
|
||||
* start-date: 2025/07/01
|
||||
* end-date: 2025/09/30
|
||||
|
||||
#### Description
|
||||
Maintain [nim-libp2p](https://github.com/vacp2p/nim-libp2p) repository via improvements, refactors and bug fixes.
|
||||
|
||||
#### Deliverables
|
||||
- [[Deliverable] Maintenance 2025Q3](TODO)
|
||||
|
||||
|
||||
|
||||
### Remove go-libp2p daemon
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q3-nimlibp2p-maintenance:go-libp2p-daemon`
|
||||
* owner:
|
||||
* status: not started
|
||||
* start-date:
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
The overall goal is simplify the developer experience and reinforce the
|
||||
self-sufficiency of the nim-libp2p codebase. For this the following tasks must be implemented:
|
||||
- Audit and remove the dependency on go-libp2p-daemon in examples and unit tests,
|
||||
replacing it with native nim-libp2p components wherever feasible.
|
||||
- Ensure all example code is runnable with a Nim-only toolchain.
|
||||
- Update CI workflows to eliminate installation of go-libp2p-daemon;
|
||||
if removal is impractical, implement caching to reduce execution time
|
||||
|
||||
|
||||
#### Deliverables
|
||||
|
||||
|
||||
|
||||
### Fix flaky tests
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q3-nimlibp2p-maintenance:flaky-tests`
|
||||
* owner:
|
||||
* status: not started
|
||||
* start-date:
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Systematically track flaky tests using CI logs and failure reports,
|
||||
and fix root causes where reproducible (e.g. race conditions, timeouts, dependency order)
|
||||
|
||||
#### Deliverables
|
||||
52
content/p2p/ift/2025q3-nimlibp2p-mix.md
Normal file
52
content/p2p/ift/2025q3-nimlibp2p-mix.md
Normal file
@@ -0,0 +1,52 @@
|
||||
---
|
||||
|
||||
title: Nim-libp2p Mix
|
||||
tags:
|
||||
- "2025q3"
|
||||
- "p2p"
|
||||
- "ift"
|
||||
draft: false
|
||||
description: stabilize and upstream mix in nim-libp2p
|
||||
|
||||
---
|
||||
|
||||
`vac:p2p:ift:2025q3-nimlibp2p-mix`
|
||||
|
||||
Stabilize mix in nim-libp2p
|
||||
|
||||
## Description
|
||||
|
||||
Bring initial mix support in nim-libp2p to prototype status—clean codebase, enforce style/CI, prep for PoCs; concurrently, work with ACZ to upstream the specs.
|
||||
|
||||
## Task List
|
||||
|
||||
### Maintenance
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q3-nimlibp2p-mix:mix-core`
|
||||
* owner:
|
||||
* status: not started
|
||||
* start-date:
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Get the core mix functionality in nim-libp2p as Prototype / Unstable state, this will allow mix to be used in PoCs or experiments. Some rough edges and minor issues expected, not recommended for production and API and internal structure subject to changes. Implement any needed refactorings, code cleanup and style conformity, as well as setting up the repository so CI tasks for running test units and ensuring code formatting is applied, and master branch protection is enabled.
|
||||
|
||||
#### Deliverables
|
||||
|
||||
|
||||
|
||||
### Specs
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q3-nimlibp2p-mix:specs`
|
||||
* owner:
|
||||
* status: not started
|
||||
* start-date:
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Collaborate with ACZ team into upstreaming initial mix design and rationale to
|
||||
`libp2p/spec` as proposal or draft PR.
|
||||
|
||||
|
||||
#### Deliverables
|
||||
|
||||
125
content/p2p/ift/2025q3-nimlibp2p-webtransport.md
Normal file
125
content/p2p/ift/2025q3-nimlibp2p-webtransport.md
Normal file
@@ -0,0 +1,125 @@
|
||||
---
|
||||
|
||||
title: nim-libp2p Webtransport
|
||||
tags:
|
||||
- "2025q3
|
||||
- "ift"
|
||||
draft: false
|
||||
description: Add webtransport support to nim-libp2p
|
||||
|
||||
---
|
||||
|
||||
`vac:p2p:ift:2025q3-nimlibp2p-webtransport`
|
||||
|
||||
Add webtransport support to nim-libp2p
|
||||
|
||||
## Description
|
||||
|
||||
Extend the number of transports supported by nim-libp2p via the developent of Webtransport,
|
||||
which would allow browsers to establish bidirectional stream connections to nim-libp2p servers
|
||||
This deliverable continues the work started in 2025q2
|
||||
|
||||
## Task List
|
||||
|
||||
### Wrapping nghttp3
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q3-nimlibp2p-webtransport:nghttp3-wrapping`
|
||||
* owner: vlado
|
||||
* status: 90%
|
||||
* start-date: 2025-04-11
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Create wrapper around the [nghttp3](https://github.com/ngtcp2/nghttp3) C library for Nim.
|
||||
|
||||
#### Deliverables
|
||||
- add nghttp3 wrapping with futhark [nim-nghttp3 #1](https://github.com/vacp2p/nim-nghttp3/pull/1)
|
||||
- ci: add ci for linux and mac [nim-nghttp3 #2](https://github.com/vacp2p/nim-nghttp3/pull/2)
|
||||
|
||||
### HTTP/3 Client
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q3-nimlibp2p-webtransport:http3-client`
|
||||
* owner: vlado
|
||||
* status: 25%
|
||||
* start-date: 2025-04-14
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Implement HTTP/3 Client following [draft-ietf-webtrans-http3-02](https://www.ietf.org/archive/id/draft-ietf-webtrans-http3-02.html) specification.
|
||||
This should be done as part of the [nim-quic](https://github.com/vacp2p/nim-quic) module.
|
||||
|
||||
#### Deliverables
|
||||
|
||||
### HTTP/3 Server
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q3-nimlibp2p-webtransport:http3-server`
|
||||
* owner: vlado
|
||||
* status:
|
||||
* start-date:
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Implement HTTP/3 Server following [draft-ietf-webtrans-http3-02](https://www.ietf.org/archive/id/draft-ietf-webtrans-http3-02.html) specification.
|
||||
This should be done as part of the [nim-quic](https://github.com/vacp2p/nim-quic) module.
|
||||
|
||||
#### Deliverables
|
||||
|
||||
### HTTP/3 Maintenance
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q3-nimlibp2p-webtransport:http3-maintenance`
|
||||
* owner: vlado
|
||||
* status:
|
||||
* start-date:
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Final improvements, code polishing and interoperability testing after Client and Server are merged.
|
||||
|
||||
|
||||
#### Deliverables
|
||||
|
||||
|
||||
|
||||
### Certificate generation
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q3-nimlibp2p-webtransport:certificate`
|
||||
* owner: vlado
|
||||
* status: not started
|
||||
* start-date:
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Certificate generation according to libp2p webtransport [specification](https://github.com/libp2p/specs/tree/master/webtransport)
|
||||
|
||||
#### Deliverables
|
||||
|
||||
|
||||
|
||||
### Key components implementation
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q3-nimlibp2p-webtransport:key-components`
|
||||
* owner: vlado
|
||||
* status: not started
|
||||
* start-date:
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Implement webtransport key components: Client, Server, Session
|
||||
|
||||
#### Deliverables
|
||||
|
||||
|
||||
|
||||
### Noise handshake and certificate validation
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q3-nimlibp2p-webtransport:handshake-and-cert-validation`
|
||||
* owner: vlado
|
||||
* status: not started
|
||||
* start-date:
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
1.3. Noise handshake and certificate validtion according to libp2p webtransport [specification](https://github.com/libp2p/specs/tree/master/webtransport)
|
||||
|
||||
#### Deliverables
|
||||
|
||||
@@ -17,6 +17,23 @@ Major future work items on nim-libp2p (also beyond this reporting period are cap
|
||||
|
||||
[[preview|Roadmap Preview]]
|
||||
|
||||
### 2025q3
|
||||
|
||||
#### `ift:`
|
||||
* [[p2p/ift/2025q3-gossipsub-perf-improvements|2025q3-gossipsub-perf-improvements]]
|
||||
* [[p2p/ift/2025q3-nimlibp2p-kademlia|2025q3-nimlibp2p-kademlia]]
|
||||
* [[p2p/ift/2025q3-nimlibp2p-maintenance|2025q3-nimlibp2p-maintenance]]
|
||||
* [[p2p/ift/2025q3-nimlibp2p-webtransport|2025q3-nimlibp2p-webtransport]]
|
||||
* [[p2p/ift/2025q3-nimlibp2p-autonat-v2|2025q3-nimlibp2p-autonat-v2]]
|
||||
* [[p2p/ift/2025q3-nimlibp2p-mix|2025q3-nimlibp2p-mix]]
|
||||
|
||||
#### `vac:`
|
||||
* [[p2p/vac/2025q3-nimlibp2p-test-coverage|2025q3-nimlibp2p-test-coverage]]
|
||||
|
||||
#### `acz:`
|
||||
* [[p2p/acz/2025q3-acz-consulting|2025q3-acz-consulting]]
|
||||
|
||||
|
||||
### 2025q2
|
||||
|
||||
#### `ift:`
|
||||
|
||||
69
content/p2p/vac/2025q3-nimlibp2p-test-coverage.md
Normal file
69
content/p2p/vac/2025q3-nimlibp2p-test-coverage.md
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
|
||||
title: nim-libp2p Test Coverage
|
||||
tags:
|
||||
- "2025q3"
|
||||
- "p2p"
|
||||
- "vac"
|
||||
draft: false
|
||||
description: nim-libp2p Test Coverage
|
||||
|
||||
---
|
||||
|
||||
`vac:p2p:vac:2025q3-nimlibp2p-test-coverage`
|
||||
|
||||
|
||||
nim-libp2p Improved Test Coverage
|
||||
|
||||
## Description
|
||||
Work closely with the QA and DST teams to identify key areas for improvement in the release and testing of nim-libp2p,
|
||||
ensuring better test coverage and reliability.
|
||||
|
||||
|
||||
## Task List
|
||||
|
||||
### Improve DST test node
|
||||
|
||||
* fully qualified name: `vac:p2p:vac:2025q3-test-coverage:dst-test-node`
|
||||
* owner:
|
||||
* status: not started
|
||||
* start-date:
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
DST uses this [node](https://github.com/vacp2p/dst-gossipsub-test-node/blob/dockerized/main.nim) to do regression testing
|
||||
on each libp2p release. DST team has suggested that we collaborate in the refactoring of the node to allow custom test
|
||||
scenarios via specifying arguments/flags:
|
||||
- Choose the multiplexer to use without having to recompile
|
||||
- Number of nodes to connect to
|
||||
- Message Ratio
|
||||
- Message Weight
|
||||
- Connection parameters (currently all nodes try to connect to other N nodes)
|
||||
- External script for message injection instead of cron job
|
||||
|
||||
#### Deliverables
|
||||
|
||||
|
||||
|
||||
### QA Consulting over test coverage
|
||||
|
||||
* fully qualified name: `vac:p2p:vac:2025q3-test-coverage:qa-consulting`
|
||||
* owner: vlado
|
||||
* status:
|
||||
* start-date: 2025-07-01
|
||||
* end-date:
|
||||
|
||||
P2P provides consulting and support to QA by addressing queries, reviewing, formulating and designing strategies to test
|
||||
nim-libp2p more effectively, as well as offering guidance on resolving coding challenges that may arise during the
|
||||
development of the test units.
|
||||
|
||||
#### Deliverables
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user