当前页面已进入跨页知识网络层:不仅展示本页拓扑,还明确它在整站里的分类、被哪些页面引用、又继续指向哪些专题与证据页。
flowchart TD
subgraph Layer0["第0层: Reachability / NAT 自检"]
NAT["AutoNAT / Reachability 状态"] --> Strategy{"评估 NAT 与连接策略"}
end
subgraph Layer1["第1层: 智能合约发现"]
Contract["ContractDiscovery"] --> PeerBook["DiscoveryManager PeerBook"]
end
subgraph Layer2["第2层: DHT 发现"]
DHT["Bootstrapper + DHTDiscoveryAdapter"] --> PeerBook
end
subgraph Layer3["第3层: DNS 发现族"]
DNS["DNS TXT Discovery"] --> PeerBook
DNSSRV["DNS Seed SRV Discovery"] --> PeerBook
end
subgraph Layer4["第4层: mDNS 本地发现"]
MDNS["mDNS Discovery"] --> PeerBook
end
subgraph Layer5["第5层: Seed Nodes 兜底"]
Seed["SeedDiscovery / 可达性探测"] --> PeerBook
end
PeerBook --> ConnMgr["SmartConnectionManager"]
Strategy --> ConnMgr
ConnMgr --> PeerID["PeerID Registry"]
ConnMgr --> Tunnel["Tunnel URL Registry"]
subgraph ConnectFlow["连接建立与降级升级"]
PeerID --> P2P["tryP2PConnect -> libp2p NewStream"]
Tunnel --> HTTP["tryHTTPConnect -> HTTP Tunnel"]
ConnMgr --> P2P
ConnMgr --> HTTP
P2P --> Success["优先使用 P2P SmartConnection"]
HTTP --> Fallback["P2P 失败时降级 HTTP"]
Fallback --> Upgrade["autoUpgradeLoop 周期升级回 P2P"]
Upgrade --> Success
end
subgraph HolePunch["Relay / 打洞 / 监控"]
Success --> Relay["Circuit Relay v2"]
Relay -.-> DCUtR["DCUtR / Hole Punching"]
Success --> Monitor["RTT 监控 / 健康检查 / 重连"]
end