chore: p2p commitments for q3

This commit is contained in:
Richard Ramos
2025-06-18 17:18:48 -04:00
parent 90df11ab05
commit 7b354445f0
9 changed files with 557 additions and 0 deletions

View 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

View 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

View 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

View 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 Kademlias 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

View 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

View 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

View 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

View File

@@ -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:`

View 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