以太坊节点之间靠三样东西互相定位:签过名的节点记录 ENR、Kademlia 式发现协议 discv4 与 discv5,以及写在记录里的能力宣告。EIP-778 与 devp2p 规范里的 discv5 怎么协作,又和 RLPx 传输层怎么分层。
汇总与「P2P网络」相关的文章,帮助你系统了解该主题。
以太坊节点之间靠三样东西互相定位:签过名的节点记录 ENR、Kademlia 式发现协议 discv4 与 discv5,以及写在记录里的能力宣告。EIP-778 与 devp2p 规范里的 discv5 怎么协作,又和 RLPx 传输层怎么分层。
比特币核心的默认联网结构:八条全中继出站连接、两条只收块连接、一条探测连接,加上两百条总连接上限。这份槽位表决定了你的节点怎么找邻居、谁替你转发交易,以及改默认值会带来什么连带后果。
EIP-7642 把以太坊 eth 协议升到 eth/69:握手状态消息不再携带合并后已无意义的总难度,改为报告节点实际能提供的首个与最新区块范围,同时从收据传输里删掉可重算的布隆字段。本文拆解这两处精简的动机与影响。
比特币节点的 ping 消息早期只是一句“还活着吗”,对端回 pong 即可。BIP 31 给它加了一个 64 位随机数:pong 必须原样回声,客户端从此能测往返时延,也能分辨休眠后残存的假活连接。本文拆解这条 2012 年小规范的设计与现状。
一笔交易的输入还找不到时,比特币节点不会立刻丢弃它,而是放进一个专门的等待区,边找父交易边收着。本文拆解这个孤儿交易池的容量边界、29.0 与 30.0 版本的规则变化,以及它对转账排查的实际意义。
对端节点发来无效数据时,比特币核心如何记账、断连与冷却。本文梳理从早期积分封禁制到新版本一经违规即断开规则的演变,以及普通运维者该如何看待日志里的Misbehaving记录。
比特币节点对付捣乱对端的方式是静默劝退:验证失败或协议违规会触发断连并进入本机会话级的不鼓励集合,重启即忘;只有管理员手动封禁才生成带到期时间的持久记录。本文拆解这套 discouragement 机制的行为来源、默认时长档位、权限白名单的例外通道,以及跑公网节点时误伤与自己挨断都是同一套机制造成的。
比特币节点不直接推整个区块,而是先互相递一张清单:inv 消息报出我有哪笔交易、哪个区块的哈希,对方再按需回一条 getdata 点名要货。本文按点对点协议参考拆解这套问询式广播的两步结构,以及为什么 getdata 要不到已剪枝的历史区块、mempool 消息和 inv 怎么配合。
比特币节点之间发的每一条消息,都是 4 字节网络魔数、12 字节命令名、4 字节长度、4 字节校验和加负载的固定结构。本文按 developer.bitcoin.org 参考手册逐字段拆解这个封包格式,解释校验和为何只取双重 SHA256 的前四字节、多字节整数为什么按小端传输,以及封包结构本身不承担验证责任这件事意味着什么。
节点不必等低费交易送上门再拒绝。BIP133 的 feefilter 消息让节点把自己当前的最低接收费率提前告诉对端,省掉一轮无效的邀请与请求。本文拆解它的动机、量化加噪的隐私考量,以及这个机制会暴露什么。