mirror of
https://github.com/vacp2p/roadmap.git
synced 2026-01-09 21:58:07 -05:00
P2P Updates (#316)
This commit is contained in:
@@ -21,40 +21,42 @@ This deliverable continues the work started in 2025q2
|
||||
### Routing table and RPC Protocol
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q2-nimlibp2p-kad-dht:routing-and-rpc`
|
||||
* owner:
|
||||
* status: 50%
|
||||
* owner: gabe/rramos
|
||||
* status: 75%
|
||||
* start-date: 2025-04-08
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Implement Kademlia’s XOR-based routing table with bucket management. Define RPC messages (`PING`, `SET_VALUE`, `GET_VALUE`, `SET_PROVIDERS`, `GET_PROVIDERS`, `FIND_NODE`) for node communication.
|
||||
Implement Kademlia’s XOR-based routing table with bucket management. Define RPC messages (`PING`, `SET_VALUE`, `GET_VALUE`, `ADD_PROVIDERS`, `GET_PROVIDERS`, `FIND_NODE`) for node communication.
|
||||
|
||||
#### Deliverables
|
||||
|
||||
|
||||
- [vacp2p/nim-libp2p#1454](https://github.com/vacp2p/nim-libp2p/pull/1454) feat(kad-dht): routing table
|
||||
- [vacp2p/nim-libp2p#1453](https://github.com/vacp2p/nim-libp2p/pull/1453) feat(kad-dht): protobuffers
|
||||
- [vacp2p/nim-libp2p#1455](https://github.com/vacp2p/nim-libp2p/pull/1455) feat(kad-dht): handler
|
||||
- [vacp2p/nim-libp2p#1744](https://github.com/vacp2p/nim-libp2p/pull/1744) feat(kad): add ping
|
||||
|
||||
### Bootstrapping & Lookup Mechanism
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q4-nimlibp2p-kad-dht:bootstraping-and-lookup`
|
||||
* owner:
|
||||
* status: 35%
|
||||
* owner: rramos
|
||||
* status: 100%
|
||||
* start-date: 2025-05-05
|
||||
* end-date:
|
||||
* end-date: 2025-08-18
|
||||
|
||||
#### Description
|
||||
Enable nodes to join the network via bootstrap peers. Implement iterative lookup for efficient key
|
||||
discovery and retrieval
|
||||
|
||||
#### Deliverables
|
||||
|
||||
- [vacp2p/nim-libp2p#1624](https://github.com/vacp2p/nim-libp2p/pull/1624) feat(kad-dht): findPeer
|
||||
|
||||
|
||||
### Network Maintenance & Node Management
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q4-nimlibp2p-kad-dht:network-maintenance-node-management`
|
||||
* owner:
|
||||
* status: not started
|
||||
* start-date:
|
||||
* status: 50%
|
||||
* start-date: 2025-10-08
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
@@ -62,29 +64,33 @@ Handle bucket refresh, node eviction, and periodic pings to maintain an active r
|
||||
Implement bucket splitting and adaptive refresh strategies.
|
||||
|
||||
#### Deliverables
|
||||
|
||||
- [vacp2p/nim-libp2p#1746](https://github.com/vacp2p/nim-libp2p/pull/1746) chore(kad): routing table eviction policy
|
||||
|
||||
|
||||
### Data Storage & Replication
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q4-nimlibp2p-kad-dht:data-storage`
|
||||
* owner:
|
||||
* status: started
|
||||
* owner: gabe
|
||||
* status: 90%
|
||||
* start-date: 2025-07-28
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Implement the logic for `SET_VALUE` and `SET_PROVIDERS`. Store key-value pairs with expiration and replication mechanisms.
|
||||
Implement the logic for `SET_VALUE` and `ADD_PROVIDERS`. Store key-value pairs with expiration and replication mechanisms.
|
||||
Ensure values persist despite churn, using periodic re-publication and redundancy strategies
|
||||
|
||||
#### Deliverables
|
||||
- [vacp2p/nim-libp2p#1582](https://github.com/vacp2p/nim-libp2p/pull/1582) feat(kad): Initial unstable putval api
|
||||
- [vacp2p/nim-libp2p#1749](https://github.com/vacp2p/nim-libp2p/pull/1749) chore(kad): tidy up putVal
|
||||
- [vacp2p/nim-libp2p#1773](https://github.com/vacp2p/nim-libp2p/pull/1773) feat(kad): addProvider
|
||||
- [vacp2p/nim-libp2p#1789](https://github.com/vacp2p/nim-libp2p/pull/1789) feat(kad): add ProviderManager
|
||||
|
||||
|
||||
### Data Retrieval
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q4-nimlibp2p-kad-dht:data-retrieval`
|
||||
* owner:
|
||||
* status: not started
|
||||
* owner: gabe
|
||||
* status: 60%
|
||||
* start-date: 2025-07-28
|
||||
* end-date:
|
||||
|
||||
@@ -92,13 +98,33 @@ Ensure values persist despite churn, using periodic re-publication and redundanc
|
||||
Implement the logic for `GET_VALUE` and `GET_PROVIDERS`. Implement validation and quorum mechanisms for queries
|
||||
|
||||
#### Deliverables
|
||||
- [vacp2p/nim-libp2p#1764](https://github.com/vacp2p/nim-libp2p/pull/1764) chore(kad): add alpha handling
|
||||
- [vacp2p/nim-libp2p#1750](https://github.com/vacp2p/nim-libp2p/pull/1750) feat(kad): add getValue
|
||||
- [vacp2p/nim-libp2p#1765](https://github.com/vacp2p/nim-libp2p/pull/1765) chore(kad): getVal loop improvements
|
||||
|
||||
|
||||
### Discovery
|
||||
* fully qualified name: `vac:p2p:ift:2025q4-nimlibp2p-kad-dht:discovery`
|
||||
* owner:
|
||||
* status: 15%
|
||||
* start-date: 2025-07-20
|
||||
* owner: gabe
|
||||
* status: 0%
|
||||
* start-date:
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Extend nim-libp2p discovery mechanism by providing a discovery interface that will use Kademlia DHT to advertise nodes and find peers
|
||||
Extend nim-libp2p discovery mechanism by providing a discovery interface that will use Kademlia DHT to advertise nodes and find peers
|
||||
|
||||
#### Deliverables
|
||||
|
||||
|
||||
|
||||
### Interop
|
||||
* fully qualified name: `vac:p2p:ift:2025q4-nimlibp2p-kad-dht:interop`
|
||||
* owner: gabe
|
||||
* status: 0%
|
||||
* start-date:
|
||||
* end-date:
|
||||
|
||||
#### Description
|
||||
Ensure interop is achieved between nim-libp2p's kad-dht implementation and other libp2p implementations
|
||||
|
||||
#### Deliverables
|
||||
@@ -42,19 +42,17 @@ Q4 as specs update was not completed
|
||||
### Stream Reuse
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q4-nimlibp2p-mix:stream-reuse`
|
||||
* owner:
|
||||
* status: not started
|
||||
* start-date:
|
||||
* end-date:
|
||||
* owner: rramos
|
||||
* status: completed
|
||||
* start-date: 2025-10-13
|
||||
* end-date: 2025-10-22
|
||||
|
||||
#### Description
|
||||
Implement long-lived stream reuse between mix nodes, by establishing a persistent stream between mix peers.
|
||||
Maintain a queue of outgoing Sphinx packets per peer, and dispatch them over the persistent stream. [vacp2p/mix#88](https://github.com/vacp2p/mix/issues/88)
|
||||
|
||||
#### Deliverables
|
||||
- Persistent streams established between peers
|
||||
- Packet queue mechanism implemented
|
||||
- Test units
|
||||
- [vacp2p/nim-libp2p#1753](https://github.com/vacp2p/nim-libp2p/pull/1753) feat(mix): reuse streams
|
||||
|
||||
|
||||
### Rate limit publishing
|
||||
|
||||
@@ -23,8 +23,8 @@ In Q3 we discovered critical deficiencies in nim-quic, including runtime instabi
|
||||
### Quic Stabilization
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q4-nimlibp2p-quic:stabilization`
|
||||
* owner: rramos
|
||||
* status: not started
|
||||
* owner: vlado/rramos
|
||||
* status: started
|
||||
* start-date: 2025/10/01
|
||||
* end-date:
|
||||
|
||||
@@ -38,12 +38,17 @@ Resolve runtime crashes, race conditions and excessive memory use in nim-quic. T
|
||||
### Replace OpenSSL by AWS-LC / BoringSSL
|
||||
|
||||
* fully qualified name: `vac:p2p:ift:2025q4-nimlibp2p-quic:openssl-replacement`
|
||||
* owner:
|
||||
* status: not started
|
||||
* owner: rramos
|
||||
* status: completed
|
||||
* start-date: 2025/10/01
|
||||
* end-date:
|
||||
* end-date: 2025/10/15
|
||||
|
||||
#### Description
|
||||
Replace the openssl dependency in nim-quic and related libraries with BoringSSL or AWS-LC. The goal is to reduce the need of runtime dependencies by statically linking any of these libraries
|
||||
|
||||
#### Deliverables
|
||||
- [vacp2p/nim-ngtcp2#22](https://github.com/vacp2p/nim-ngtcp2/pull/22) feat: compile boringssl using assembly files (except windows)
|
||||
- [vacp2p/nim-ngtcp2#21](https://github.com/vacp2p/nim-ngtcp2/pull/21) feat: replace picotls by BoringSSL
|
||||
- [vacp2p/nim-quic#140](https://github.com/vacp2p/nim-quic/pull/140) feat: use BoringSSL
|
||||
- [vacp2p/nim-libp2p#1782](https://github.com/vacp2p/nim-libp2p/pull/1782) chore: remove libp2p_quic_support compile flag, and openssl dependency
|
||||
- [vacp2p/nim-libp2p#1761](https://github.com/vacp2p/nim-libp2p/pull/1761) feat: use BoringSSL for certificate ops
|
||||
@@ -17,6 +17,19 @@ Major future work items on nim-libp2p (also beyond this reporting period are cap
|
||||
|
||||
[[p2p/preview|Roadmap Preview]]
|
||||
|
||||
### 2025q4
|
||||
|
||||
#### `ift:`
|
||||
* [[p2p/ift/2025q4-nimlibp2p-quic|2025q4-nimlibp2p-quic]]
|
||||
* [[p2p/ift/2025q4-nimlibp2p-kademlia|2025q4-nimlibp2p-kademlia]]
|
||||
* [[p2p/ift/2025q4-nimlibp2p-c-bindings|2025q4-nimlibp2p-c-bindings]]
|
||||
* [[p2p/ift/2025q4-nimlibp2p-ipv6|2025q4-nimlibp2p-ipv6]]
|
||||
* [[p2p/ift/2025q4-nimlibp2p-maintenance|2025q4-nimlibp2p-maintenance]]
|
||||
* [[p2p/ift/2025q4-nimlibp2p-mix|2025q4-nimlibp2p-mix]]
|
||||
* [[p2p/ift/2025q4-nimlibp2p-webtransport|2025q4-nimlibp2p-webtransport]]
|
||||
|
||||
|
||||
|
||||
### 2025q3
|
||||
|
||||
#### `ift:`
|
||||
|
||||
Reference in New Issue
Block a user