Skip to content

feat: PIN discovery — WSS bootstrap, diagnostics, listen config, bootstrap service#5

Merged
moukrea merged 5 commits intomainfrom
feat/pin-discovery
Mar 29, 2026
Merged

feat: PIN discovery — WSS bootstrap, diagnostics, listen config, bootstrap service#5
moukrea merged 5 commits intomainfrom
feat/pin-discovery

Conversation

@moukrea
Copy link
Copy Markdown
Owner

@moukrea moukrea commented Mar 29, 2026

Summary

  • Add WSS bootstrap addresses (/tcp/443/wss/) for all 4 IPFS bootstrap nodes — bridges the TCP↔WSS DHT overlay gap so browser clients can find provider records published by native hosts
  • Add bootstrap connection diagnostic logging in the browser transport — peer:connect/peer:disconnect events with 15s health summary
  • Add listen_addresses option to CairnConfig — allows callers to specify explicit interfaces instead of binding 0.0.0.0 (useful for skipping Docker bridges)
  • New cairn-bootstrap service — lightweight Kademlia-only node on TCP+QUIC+WSS with Ed25519 keys, Dockerfile, README

Test plan

  • cargo build -p cairn-p2p passes
  • cargo test -p cairn-p2p — 32/32 tests pass
  • npx tsc --noEmit on TS package passes
  • cargo build -p cairn-bootstrap passes
  • Cross-project: jaunt-host and jaunt-client build with updated cairn

moukrea added 5 commits March 29, 2026 23:22
Add /tcp/443/wss/ addresses for all 4 IPFS bootstrap nodes in the Rust
DEFAULT_BOOTSTRAP_NODES so the host publishes provider records to peers
reachable by browsers via WebSocket.

Add bootstrap connection diagnostic logging in the browser transport:
peer:connect/disconnect events for bootstrap peers, 15s health check
summary. This makes it visible when the browser's DHT routing table
stays empty.
Optional Vec<String> of explicit multiaddr listen addresses. When set,
cairn binds only to those addresses instead of 0.0.0.0 on all
interfaces. Allows callers to skip unwanted interfaces (e.g., Docker
bridges) that slow down startup with mDNS on 25+ interfaces.
Lightweight cairn-p2p node that listens on TCP, QUIC, and WebSocket,
participates in the Kademlia DHT, and bridges the TCP↔WSS overlay gap.

Provider records published by native hosts (TCP/QUIC) become
discoverable by browser clients (WSS) through this bootstrap node.
Uses Ed25519 keys for universal client compatibility.
@moukrea moukrea merged commit a5c4838 into main Mar 29, 2026
11 of 12 checks passed
@moukrea moukrea deleted the feat/pin-discovery branch March 29, 2026 22:33
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