Skip to content

Commit ddc4783

Browse files
feat(p2p): roadmap 2026Q4 (#533)
1 parent 3c9fe2f commit ddc4783

20 files changed

Lines changed: 1218 additions & 0 deletions
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
3+
title: Anoncomms Consulting
4+
tags:
5+
- "2026q4"
6+
- "p2p"
7+
- "ift"
8+
draft: false
9+
description: TBD
10+
11+
---
12+
13+
`ift-ts:p2p:ift:2026q4-anoncomms-consulting`
14+
15+
## Description
16+
17+
TBD
18+
19+
## Task List
20+
21+
### Consulting
22+
23+
* fully qualified name: `ift-ts:p2p:ift:2026q4-anoncomms-consulting:consulting`
24+
* owner: not assigned yet
25+
* status: not started
26+
* start-date: 2026/10/01
27+
* end-date: 2026/12/31
28+
29+
#### Description
30+
31+
TBD
32+
33+
#### Deliverables
34+
35+
TBD
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
3+
title: DST Automated Workflow
4+
tags:
5+
- "2026q4"
6+
- "p2p"
7+
- "ift"
8+
draft: false
9+
description: Deploy nim-libp2p master to the Lab and report regression failures automatically
10+
11+
---
12+
13+
`ift-ts:p2p:ift:2026q4-dst-automated-workflow`
14+
15+
## Description
16+
17+
Automate deployments of the latest nim-libp2p master to the Lab and execute
18+
basic regression tests. When results deviate from expected behavior, open an
19+
issue automatically in the nim-libp2p repository for triage.
20+
21+
## Task List
22+
23+
### Lab Deployment And Regression Runs
24+
25+
* fully qualified name: `ift-ts:p2p:ift:2026q4-dst-automated-workflow:deployment-tests`
26+
* owner: not assigned yet
27+
* status: not started
28+
* start-date: 2026/10/01
29+
* end-date: 2026/12/31
30+
31+
#### Description
32+
33+
Deploy the latest master revision to the Lab and trigger basic regression
34+
tests. Define expected outcomes and retain the tested revision, configuration,
35+
and results so failures can be reproduced.
36+
37+
#### Deliverables
38+
39+
- Automated Lab deployment and basic regression workflow
40+
- Documented expected results and retained run artifacts
41+
42+
43+
### Automatic Regression Issues
44+
45+
* fully qualified name: `ift-ts:p2p:ift:2026q4-dst-automated-workflow:issue-reporting`
46+
* owner: not assigned yet
47+
* status: not started
48+
* start-date: 2026/10/01
49+
* end-date: 2026/12/31
50+
51+
#### Description
52+
53+
Compare regression results with expected outcomes and automatically create
54+
nim-libp2p issues for deviations. Include the tested revision, failing checks,
55+
and links to logs, and avoid repeatedly filing the same unresolved failure.
56+
57+
#### Deliverables
58+
59+
- Automatic issue creation for regression deviations
60+
- Reproducible triage details and duplicate-issue handling
61+
- Workflow checks demonstrating expected-result and regression-result paths
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
---
2+
3+
title: GossipSub Interoperability Framework
4+
tags:
5+
- "2026q4"
6+
- "p2p"
7+
- "ift"
8+
draft: false
9+
description: Expand continuous GossipSub interoperability testing across implementations
10+
11+
---
12+
13+
`ift-ts:p2p:ift:2026q4-gossipsub-interop`
14+
15+
## Description
16+
17+
Evolve the existing GossipSub test plan into a reusable unified-testing
18+
framework, using [libp2p/test-plans#850](https://github.com/libp2p/test-plans/pull/850)
19+
as a starting point. Cover Go, Rust, JS, Python, Nim, Zig, and future
20+
implementations in mixed-language topologies across TCP, WebSocket, and native
21+
QUIC. Use unified-testing for protocol and transport debugging.
22+
23+
Note that large-scale Shadow simulation seems to not work correctly with QUIC
24+
25+
## Task List
26+
27+
### Implementation And Transport Matrix
28+
29+
* fully qualified name: `ift-ts:p2p:ift:2026q4-gossipsub-interop:matrix`
30+
* owner: not assigned yet
31+
* status: not started
32+
* start-date: 2026/10/01
33+
* end-date: 2026/12/31
34+
35+
#### Description
36+
37+
Build an extensible test matrix that runs mixed-language topologies and
38+
automatically exercises transport combinations. Ensure the framework can be
39+
used continuously by maintainers across implementations.
40+
41+
#### Deliverables
42+
43+
- Mixed-language GossipSub scenarios across the listed implementations
44+
- Automated TCP, WebSocket, and native QUIC combinations where supported
45+
- Documented workflow for adding implementations and running tests
46+
47+
48+
### Protocol Stability And Fault Injection
49+
50+
* fully qualified name: `ift-ts:p2p:ift:2026q4-gossipsub-interop:stability`
51+
* owner: not assigned yet
52+
* status: not started
53+
* start-date: 2026/10/01
54+
* end-date: 2026/12/31
55+
56+
#### Description
57+
58+
Validate scoring, mesh maintenance, IHAVE/IWANT behavior, duplicate suppression,
59+
and consistent propagation. Run long-lived scenarios with joins, leaves,
60+
disconnects, reconnects, and churn, plus delayed peers, partitions, intermittent
61+
connectivity, and reconnect storms.
62+
63+
#### Deliverables
64+
65+
- Protocol behavior assertions across implementations
66+
- Long-running mesh stability and fault-injection scenarios
67+
- Reproducible failure reports for interoperability regressions
68+
69+
70+
### Metrics And Dashboard
71+
72+
* fully qualified name: `ift-ts:p2p:ift:2026q4-gossipsub-interop:reporting`
73+
* owner: not assigned yet
74+
* status: not started
75+
* start-date: 2026/10/01
76+
* end-date: 2026/12/31
77+
78+
#### Description
79+
80+
Collect propagation latency, throughput, duplicate rate, and bandwidth use.
81+
Present standardized results so maintainers can compare releases and identify
82+
interoperability regressions.
83+
84+
#### Deliverables
85+
86+
- Comparable performance metrics from framework runs
87+
- Standardized dashboard with release comparisons and regression visibility
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
3+
title: Logos Core Consulting
4+
tags:
5+
- "2026q4"
6+
- "p2p"
7+
- "ift"
8+
draft: false
9+
description: TBD
10+
11+
---
12+
13+
`ift-ts:p2p:ift:2026q4-logos-core-consulting`
14+
15+
## Description
16+
17+
TBD
18+
19+
## Task List
20+
21+
### Consulting
22+
23+
* fully qualified name: `ift-ts:p2p:ift:2026q4-logos-core-consulting:consulting`
24+
* owner: not assigned yet
25+
* status: not started
26+
* start-date: 2026/10/01
27+
* end-date: 2026/12/31
28+
29+
#### Description
30+
31+
TBD
32+
33+
#### Deliverables
34+
35+
TBD
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
3+
title: Logos Delivery Consulting
4+
tags:
5+
- "2026q4"
6+
- "p2p"
7+
- "ift"
8+
draft: false
9+
description: Support Logos Delivery with pluggable libp2p, nim-ffi, and module API integration
10+
11+
---
12+
13+
`ift-ts:p2p:ift:2026q4-logos-delivery-consulting`
14+
15+
## Description
16+
17+
Provide consulting to Logos Delivery as they make libp2p pluggable, tracked in
18+
[logos-delivery#4341](https://github.com/logos-messaging/logos-delivery/issues/4341).
19+
Coordinate the integration with the Logos libp2p module, support nim-ffi design
20+
and code reviews, and help the team understand the API the module offers.
21+
22+
This as an ongoing consulting commitment, adding specific follow-up tasks
23+
as requirements and priorities become clearer during Q4.
24+
25+
## Task List
26+
27+
### Consulting
28+
29+
* fully qualified name: `ift-ts:p2p:ift:2026q4-logos-delivery-consulting:consulting`
30+
* owner: not assigned yet
31+
* status: not started
32+
* start-date: 2026/10/01
33+
* end-date: 2026/12/31
34+
35+
#### Description
36+
37+
Work with the Logos Delivery team on the interfaces and integration needs for
38+
pluggable libp2p. Explain the Logos libp2p module API, identify missing capabilities,
39+
and review opportunities to modify or simplify it based on Delivery's needs.
40+
41+
Review nim-ffi pull requests and discuss or propose changes where needed,
42+
including the proposed use of polling instead of callbacks. Coordinate resulting
43+
API and integration decisions with Delivery and capture concrete follow-up work
44+
as it is agreed.
45+
46+
#### Deliverables
47+
48+
- Consulting and review support for the pluggable libp2p work in logos-delivery#4341
49+
- nim-ffi PR reviews and design feedback, including evaluation of polling instead of callbacks
50+
- Module API guidance and agreed changes or simplifications for Delivery integration
51+
- Links to reviews, decisions, and follow-up issues or PRs as work is completed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
3+
title: Explicit DHT Publication Outcomes
4+
tags:
5+
- "2026q4"
6+
- "p2p"
7+
- "ift"
8+
draft: false
9+
description: Expose local storage and remote publication results from putValue
10+
11+
---
12+
13+
`ift-ts:p2p:ift:2026q4-nimlibp2p-dht-publication-outcomes`
14+
15+
## Description
16+
17+
Make putValue results distinguish local storage from remote publication.
18+
Aggregate remote write acknowledgements so callers can identify successful
19+
peers, quorum failures, and partial or complete success. A mismatching
20+
acknowledgement must be reflected in the result rather than only logged.
21+
22+
## Task List
23+
24+
### Publication Result Model
25+
26+
* fully qualified name: `ift-ts:p2p:ift:2026q4-nimlibp2p-dht-publication-outcomes:result-model`
27+
* owner: not assigned yet
28+
* status: not started
29+
* start-date: 2026/10/01
30+
* end-date: 2026/12/31
31+
32+
#### Description
33+
34+
Define results that expose whether local storage succeeded, whether publication
35+
was attempted, which peers acknowledged the record, and whether the requested
36+
quorum was met. Specify partial success and complete failure semantics.
37+
38+
#### Deliverables
39+
40+
- Documented publication result types and quorum semantics
41+
- Caller-visible local storage, publication, and successful-peer information
42+
43+
44+
### Acknowledgement Aggregation And Tests
45+
46+
* fully qualified name: `ift-ts:p2p:ift:2026q4-nimlibp2p-dht-publication-outcomes:aggregation`
47+
* owner: not assigned yet
48+
* status: not started
49+
* start-date: 2026/10/01
50+
* end-date: 2026/12/31
51+
52+
#### Description
53+
54+
Aggregate remote write outcomes into the final putValue result. Treat mismatching
55+
acknowledgements as unsuccessful writes and cover local failures, no publication,
56+
partial acknowledgements, quorum failure, and complete success.
57+
58+
#### Deliverables
59+
60+
- putValue implementation reporting aggregate publication outcomes
61+
- Tests for mismatching acknowledgements and each result category
62+
- Usage examples showing how callers interpret results
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
3+
title: Early Multiplexer Negotiation
4+
tags:
5+
- "2026q4"
6+
- "p2p"
7+
- "ift"
8+
draft: false
9+
description: Negotiate the multiplexer during the security handshake
10+
11+
---
12+
13+
`ift-ts:p2p:ift:2026q4-nimlibp2p-early-muxer-negotiation`
14+
15+
## Description
16+
17+
Reduce TCP/WebSocket connection establishment by one network round trip by
18+
selecting the multiplexer during the security handshake. Extend the Noise
19+
handshake payload and connection upgrader so compatible peers can avoid the
20+
separate multistream-select exchange that follows the security handshake.
21+
22+
## Task List
23+
24+
### Handshake Negotiation And Upgrade
25+
26+
* fully qualified name: `ift-ts:p2p:ift:2026q4-nimlibp2p-early-muxer-negotiation:implementation`
27+
* owner: not assigned yet
28+
* status: not started
29+
* start-date: 2026/10/01
30+
* end-date: 2026/12/31
31+
32+
#### Description
33+
34+
Add multiplexer negotiation to the Noise handshake and pass the selection to
35+
the muxed upgrader. Preserve the separate negotiation path when peers do not
36+
support early negotiation or no early selection is available.
37+
38+
#### Deliverables
39+
40+
- Noise payload extension and upgrader integration
41+
- Fallback behavior for existing peers
42+
- Tests for compatible peers and negotiation fallback
43+
44+
45+
### Connection Setup Validation
46+
47+
* fully qualified name: `ift-ts:p2p:ift:2026q4-nimlibp2p-early-muxer-negotiation:validation`
48+
* owner: not assigned yet
49+
* status: not started
50+
* start-date: 2026/10/01
51+
* end-date: 2026/12/31
52+
53+
#### Description
54+
55+
Exercise TCP and WebSocket connections with early negotiation enabled and with
56+
legacy peers. Verify that successful early selection removes the separate
57+
multiplexer negotiation round trip and establishes usable streams.
58+
59+
#### Deliverables
60+
61+
- Interop coverage for early and legacy negotiation paths
62+
- Connection traces or measurements confirming the saved round trip

0 commit comments

Comments
 (0)