EIP-1559的基础费调整只参考上一个区块的用量,理论上给了出块人与用户合谋压低基础费的空间。EIP-7378提出把公式里的单块用量换成指数移动平均,让单块空块的影响被摊薄。本文拆解这条公式的改动点、它针对的贿赂攻击路径,以及这条提案目前停在什么状态。
EIP-1559的基础费调整只参考上一个区块的用量,理论上给了出块人与用户合谋压低基础费的空间。EIP-7378提出把公式里的单块用量换成指数移动平均,让单块空块的影响被摊薄。本文拆解这条公式的改动点、它针对的贿赂攻击路径,以及这条提案目前停在什么状态。
stop 不是拔电源。本文按 v31.0 源码 init.cpp 的 Shutdown 函数逐段走关停流水线:先关对外接口,再断网络,等后台初始化线程收工,然后依次落内存池、费用估计、链状态,最后才删 pid 文件写下 Shutdown done。理解这个顺序,才能理解为什么优雅停机下次启动快、强杀要补账。
一条地址进了 addrman 之后时间戳不是写死的:在线判定、一小时与二十四小时的更新门槛、两小时来源罚时、自报免罚、成功连接后的二十分钟刷新。本文按 v31.0 源码 addrman.cpp 拆这套时间重写规则,解释本机时钟偏差怎么让邻居名单老化,以及用哪个 RPC 观察分桶状态。
共识校验不看输入有多少条,反序列化却先把尺寸声明框死在约 3354 万以内,标准政策和权重预算再把现实数字砍到几千。本文拆开这条"没有条数上限的上限",按共识、协议、政策三层各自算一遍账,再讲巨型输入在 sigops 预算和手续费上的现实约束。
不少教程说 debug.log 满了会自动改名轮转,v31.0 源码里已经没有这套逻辑,日志只会被追加。真正自动缩文件的是启动时的 shrinkdebugfile:超过阈值只保留末尾一段。本文核对瘦身触发条件、默认值的开关联动、日志去向配置,以及排障前该先留哪一段。
邻居发来一千条地址,节点并不照单全收,也不按来的顺序处理。本文按 v31.0 源码 net_processing 的 addr 分支逐步走一遍:条数违规、随机洗牌、限速令牌、服务位筛查、时间钳制、封禁名单、中继条件、可达网络过滤,最后才是带时间罚的分桶入库,每一步丢掉的地址去了哪里。
入站槽位满了,新连接进来之前节点要先做一次淘汰赛。本文按 v31.0 源码 eviction.cpp 的执行顺序拆这份保护清单:免驱逐白名单、出站全保、四个网组位、八条低延迟、最近送交易的、最近送新区块的、按在线时长和弱势网络配比保护,最后才是同网组择优动手。
区块规则对交易条数没有直接上限,条数天花板完全由每笔交易有多小决定。本文用 65 字节政策地板、400 万权重上限和区块预留权重三段约束做一次思想实验,再解释为什么实链每块条数比理论值小两个数量级,以及用哪个 RPC 能看真实分布。