-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Open
Description
Hi everyone,
We have developed a native transport for SCION (a path-aware, next-gen Internet architecture) in go-libp2p. We want to align with the core team before opening a PR, as our implementation introduces some unique multipath behaviors.
1. SCION Addressing (Multiaddr)
To enable dialing and listening on SCION, we have defined a new multiaddr format that encapsulates the SCION ISD-AS (Isolation Domain - Autonomous System) identifier.
Format: /scion/<ISD-AS>/<Host-Multiaddr>
Example:
For a node in ISD 19, AS ffaa:1:f, wrapping a standard UDP/IP endpoint:
/scion/19-ffaa:1:f/ip4/10.0.0.1/udp/123
Status:
- We have registered the codec in multicodec PR #325.
- We have submitted a PR to implement this in go-multiaddr: multiformats/go-multiaddr#285.
- Note: The merge of the
go-multiaddrPR is currently a blocker for opening our PR againstgo-libp2p, as the transport relies on validation logic within that library.
2. Multipath Transport (QUIC)
To leverage SCION's multipath capabilities, our transport differs from standard QUIC:
- Path Pinning: Instead of migrating a single connection, we establish distinct QUIC connections for each available SCION path.
- Pooling: These connections are pooled to allow upper layers (like Bitswap) to stripe requests across multiple paths simultaneously.
- Current Code: netsys-lab/go-libp2p/feature/scion-quic-transport, needs to be rebased on newest version of go-libp2p
Questions for Maintainers:
- Architecture: Do you see any issues with our "connection pooling" approach (multiple physical connections per logical peer) fitting into the current
Transportinterfaces? - Dependencies: Since we rely on the unmerged
go-multiaddrPR, what is the preferred workflow for proposing the transport implementation here? - External Components: Any concerns regarding a transport that relies on communication with a local daemon (the SCION dispatcher)?
Thanks!
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels