fshy

fshy / Egress and tunnels / Storage

libp2p circuit-relay

github.com · Egress and tunnels, Storage · 2 records · JSON

libp2p circuit-relay v2 Egress and tunnels

fails: quotaanonymousno cardDper-object-cap

github.com/libp2p/specs/blob/master/relay/circuit-v2.md · relay (protocol) · egress/libp2p-circuit-relay-v2 · JSON · compare

Free tierwhatever the relay operator allows; the reference implementations cap a circuit by default
unit none; metered on downloaded-bytes
Pricenone stated
Per-object cap128 KiB per direction per relayed connection by default (131072 bytes)
Retention2 minutes per relayed connection by default
Egressnot applicable: the protocol's own default ends a circuit at 128 KiB per direction
Identityanonymous peers are identified by a generated keypair
Limits
  • per-object-cap 128 KiB per direction per relayed connection by default source
  • retention-clamped 2 minutes per relayed connection by default source
the 128 KiB value is defined in both reference implementations and their wording differs. go-libp2p's Data field comment reads 'The limit of data relayed (on each direction) before resetting the connection', which is where the per-direction qualifier comes from; js-libp2p defines DEFAULT_DATA_LIMIT = 1 << 17 with '128k is the default data limit' and no per-direction language
Bindingper-object-cap
Interfaceunknown /libp2p/circuit/relay/0.2.0/hop and /stop
Toolingjs-libp2p, go-libp2p
Composes withcomposes with nothing at this volume: 128 KiB per circuit means a 1 GiB object needs 8,192 relayed connections, so it is a NAT-traversal primitive and not a transport.
Reliabilitythe limits are defaults an operator can raise; the reference implementations ship them at these values
NotesArchitecturally excluded from bulk, not merely slow: 128 KiB is 2^17 bytes, so 1 TiB needs 8.4 million relayed connections. The free tier is genuine and the capacity is zero.
Evidence rungdocumented
Checked2026-10-23 (live); stale on 2026-11-22
Parsed numbers
  • $.limits[0].value limit:per-object-cap 128.0 KiB
  • $.limits[1].value limit:retention-clamped 2.0 minutes
Evidence (2)
datesourcewhat it proved
2026-10-22github.com/libp2p/js-libp2p/blob/master/packages/transport-cDEFAULT_DATA_LIMIT = BigInt(1 << 17) and DEFAULT_DURATION_LIMIT = 2 * minute, with the comment '128k is the default data limit'
2026-10-22github.com/libp2p/go-libp2p/blob/master/p2p/protocol/circuitquoted from the Data field comment: 'Data is the limit of data relayed (on each direction) before resetting the connection', 'Defaults to 128KB', with Data: 1 << 17 in the default Resources literal
More fields (3)
{
 "stale_after_days": 180,
 "bytes_transit": "yes",
 "transit_note": "a relayed circuit carries bytes in both directions, capped at 128 KiB per direction by default"
}
Unknown or withheld values (1)
  • $.interface interface-unknown

libp2p circuit-v2 public relays Storage

fails: quotaemail?card?R

github.com/libp2p/js-libp2p/blob/master/packages/transport-c · rejected-provider · storage/libp2p-circuit-v2-public-relays · JSON · compare

Free tierDefault relay limits are signalling-grade, not transport-grade: 128 KiB of data and 2 minutes per relayed connection. Fine for hole-punching, useless for bytes.
unit none; metered on none
Pricenone stated
Per-object capnot recorded
Retentionnot recorded
Egressnot recorded
Identityemail (placeholder) not published
Bindingnone no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit
Interfaceunknown
Toolingnot recorded
Composes withnot recorded
ReliabilityDefault relay limits are signalling-grade, not transport-grade: 128 KiB of data and 2 minutes per relayed connection. Fine for hole-punching, useless for bytes.
NotesDefault relay limits are signalling-grade, not transport-grade: 128 KiB of data and 2 minutes per relayed connection. Fine for hole-punching, useless for bytes.
Evidence rungreported
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (2)
datesourcewhat it proved
2026-10-21github.com/libp2p/js-libp2p/blob/master/packages/transport-cDefault relay limits are signalling-grade, not transport-grade: 128 KiB of data and 2 minutes per relayed connection. Fine for hole-punching, useless for bytes.
2026-10-21github.com/libp2p/specs/blob/master/relay/circuit-v2.mdcited as the basis of the rejection: Default relay limits are signalling-grade, not transport-grade: 128 KiB of data and 2 minutes per relayed connection. Fine for hole-punching, useless for bytes.
More fields (1)
{
 "dead_end": {
  "failure_class": "quota",
  "why": "Default relay limits are signalling-grade, not transport-grade: 128 KiB of data and 2 minutes per relayed connection. Fine for hole-punching, useless for bytes.",
  "retry_when": null,
  "first_recorded": "2026-10-21"
 }
}
Unknown or withheld values (15)
  • $.chaining not-recorded
  • $.confidence_note withheld
  • $.egress.terms not-recorded
  • $.extras.dead_end.retry_when process
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.interface interface-unknown
  • $.interface_detail withheld
  • $.limits_note process
  • $.per_object_cap.notes not-recorded
  • $.per_object_cap.stated not-recorded
  • $.retention.notes process
  • $.retention.stated not-recorded
  • $.tooling not-recorded