比特币核心用 txrequest 为每个交易与对端的组合记 reqtime 与 expiry 两本账,配合 preferred 优先与候选随机抽签决定向谁发 getdata。本文按源码注释拆解五态状态机与反封锁概率。
汇总与「P2P网络」相关的文章,帮助你系统了解该主题。
比特币核心用 txrequest 为每个交易与对端的组合记 reqtime 与 expiry 两本账,配合 preferred 优先与候选随机抽签决定向谁发 getdata。本文按源码注释拆解五态状态机与反封锁概率。
比特币核心挑选外连对端时会跳过一份坏端口清单,写在源码树 doc/p2p-bad-ports.md 里。本文按该文档与选边逻辑拆解:哪些端口在名单上、为什么 8333 之外的监听端口会让节点收不到主动入站、误挂非比特币服务的端口为何收到陌生连接。
EIP-7639 提议给以太坊节点通信加一个 eth/70 版本:在这个版本上,节点不再请求也不再回答巴黎升级(合并)之前区块的正文与收据查询。提案给出的直接动机是数据体积——2024 年前后客户端历史数据约 500 GB,其中近 400 GB 来自合并前。本文讲清这条历史停供线划在哪里、影响哪些 p2p 消息、为什么以合并为界,以及全量同步将因此改走哪条路。
Waku 是从以太坊 Whisper 独立出来的去中心化消息传输协议:静态存储节点加全节点的混合网络,为 dApp 消息提供带历史回溯的中继。本文讲清它的节点角色划分、与链的分工,以及为什么一个消息层值得从共识客户端里搬出来单独做一个协议家族。
比特币节点主动发起的连接分成几个用途明确的池子:八个全中继出站连接、两个只听块不传交易的专用块中继连接、以及定期体检地址库的探测连接;入站连接填充总上限的剩余槽位,当前源码默认总连接数二百(早年默认一百二十五)。这套配额是同步速度、带宽与抗指纹攻击之间的工程折中。本文解释每类连接的作用与调参取舍。
Whisper 是 EIP-627 定义的分布式消息协议:节点之间转发带主题标签的加密信封,发送方不需要知道接收方的网络地址。它曾以 shh 接口内嵌在早期以太坊客户端里,后从主线移除,思路由 Waku 等独立协议延续。本文讲清它的信封结构、主题订阅、功率因子设计,以及这条路线为什么最终搬出共识客户端。
每次握手,比特币节点都会把一串类似 /Satoshi:x.y.z/ 的字符串递给对方。它怎么读、哪些字符是Reserved保留符号、为什么协议专门规定不能拿它决定行为,本文依据 BIP14 原文拆解这串网络 census 里最常被误读的字段。
两个以太坊节点建立一条加密连接要跑几步ECIES加密的认证握手,随后所有流量被切成带序号和校验的帧,多路子协议共用一条管道。RLPx的名字来自RLP序列化,规范版本目前是5。
2017年的EIP-706给以太坊节点网络DEVp2p整体装上snappy压缩:握手后在加密前压包、解密后解压,初始同步下载量从三十三吉字节降到十三吉字节。它放弃的方案和它防的解压炸弹同样值得讲。
闪电节点断线重连后不知道错过了哪些通道更新,靠query_channel_range按区块区间盘点邻居、回带时间戳或校验和、缺什么补什么。这套对账机制决定了图谱同步的速度与流量。