Skip to content

add SWIP-61: BPS multihop — FCFS multicast tree - #105

Draft
zelig wants to merge 1 commit into
masterfrom
swip-61-bps-multihop
Draft

add SWIP-61: BPS multihop — FCFS multicast tree#105
zelig wants to merge 1 commit into
masterfrom
swip-61-bps-multihop

Conversation

@zelig

@zelig zelig commented Aug 5, 2026

Copy link
Copy Markdown
Member

Extends SWIP-60 (#104): removes the singlehop audience ceiling. A full node at capacity answers Subscribe by probing its own subtree over existing streams and returning the two shallowest attachment points — the joiner attaches to both, so every node keeps two parents (typically sisters): churn is masked, not suffered, self-healing is re-running the join, and withholding shows by comparing feeds. Join is ideally a two-step process regardless of tree size.

Key properties: forwarders are subscribers (accepting your first child = becoming a relay); no standing control state — idle cohorts are silent, probes carry depth in the frame itself; no depth bound (per-hop pricing steers joins rootward; closed cohorts are structurally singlehop); CohortSpec untouched; three control frames (Reparent, Probe, Candidates) fill the reserved Broadcast range; single new Ack field. Unmodified SWIP-60 clients attach as conformant (single-parented) leaves.

Deliberately out of scope (own SWIPs): bandwidth incentives, message history (pre-subscription delivery), broker discovery (SWIP-59, #103), NAT traversal (transport: circuit relay + DCUtR).

Wire: assets/swip-61/bps.proto — the SWIP-60 proto with the multihop control plane filled in. Implementation groundwork: bee ethersphere/bee#5435.

🤖 Generated with Claude Code

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant