Bitcoin Core v31.0 保留了 -checkpoints 作为隐藏参数:设置它不会改变任何行为,只会在启动时给出一条无效警告。本文按 v31.0 源码核对这条警告的两处代码落点,并回顾硬编码检查点如何被 assumevalid 一族的假设机制接替。
Bitcoin Core v31.0 保留了 -checkpoints 作为隐藏参数:设置它不会改变任何行为,只会在启动时给出一条无效警告。本文按 v31.0 源码核对这条警告的两处代码落点,并回顾硬编码检查点如何被 assumevalid 一族的假设机制接替。
比特币节点默认按累计工作量选链,工作量相同的平局则由到达顺序决定。preciousblock 把指定块标记为视同更早收到,从而在本轮运行里改变这台节点的平局裁决。本文按 v31.0 源码核对该命令的三条语义承诺、与 invalidateblock 的分野,以及它为什么不能跨重启。
-rpcwhitelist 给指定 RPC 用户声明可调用的方法清单,同一用户多条清单取交集;-rpcwhitelistdefault 控制未写清单用户的默认待遇,默认从严。本文按 v31.0 源码核对这两条参数的反直觉默认语义、与 rpcauth 的配合姿势,以及批量调用逐条过闸的行为。
bitcoin-cli -getinfo 用一条 JSON-RPC 批量数组向服务端同时请求网络、链与钱包信息,再在本地拼成人类可读的输出;帮助文本明确警告各字段可能取自不同时刻。本文按 v31.0 源码核对它的请求序列、失败形态与适合与不适合的使用场景。
以太坊工作量证明时代,难度调整只看相邻区块的时间差,故意压着不发块再抢发能抬高叔块率、变相压低难度。EIP-100把含叔块的区块按更高权重计入难度公式,让出块节奏无法被叔块操纵。本文讲清这条2016年提案的算式改动、它堵住的漏洞,以及它在权益证明时代成了历史。
EVM操作码空间里,0xfe被正式指定为INVALID无效指令:碰到它执行就立刻中止、Gas全部烧完。EIP-141把这件事写成规范只有几行字,但它给调试、编译器防御和合约保险丝提供了一个统一的中止信号。本文讲清0xfe的来历、它和REVERT的分工,以及为什么一个永远不会被正常执行的操作码值得单独写一条提案。
以太坊每次协议升级背后都有一份元提案:定代号、列时间表、登记收录哪些EIP、追踪从提案到进主网的每一步。这套写法出自2017年的EIP-233。本文讲清硬分叉元提案的结构、时间线上四个关键节点、EIP在开发者会议里的三种去向,以及为什么后来那些大升级都照这个模板立档。
合约调用另一个合约后,返回数据不必提前猜长度也能完整取回,靠的是EIP-211加的两条指令:RETURNDATASIZE量尺寸、RETURNDATACOPY搬数据,数据存在一块每次调用后自动覆写的虚拟缓冲区里。本文讲清这套机制补上的坑、和calldata相似的记账方式,以及它如何让通用转发合约这类模式成为可能。