比特币核心的 checkblockindex、checkaddrman、checkmempool 会在运行中反复核对内部数据结构是否自洽,默认只在 regtest 打开。本文按 v31.0 源码说明三个开关分别检查什么、网络属性如何决定默认值,以及什么场景值得手动打开。
汇总与「节点运维」相关的文章,帮助你系统了解该主题。
比特币核心的 checkblockindex、checkaddrman、checkmempool 会在运行中反复核对内部数据结构是否自洽,默认只在 regtest 打开。本文按 v31.0 源码说明三个开关分别检查什么、网络属性如何决定默认值,以及什么场景值得手动打开。
比特币核心的 -capturemessages 开关把每条收发对等网络消息按对端分目录写入 message_capture 下的 dat 文件。本文依据 v31.0 源码说明落盘结构、写入时点选择、能回答的三类排障问题,以及磁盘与隐私两条纪律。
比特币核心每小时把学到的费率经验刷进 fee_estimates.dat,但超过 60 小时的文件启动时直接不读,避免给出过期估算。本文按源码梳理这一保质期的动机、间歇开机节点的估算抖动成因,以及 acceptstalefeeestimates 只在 regtest 生效的定位。
比特币核心用 minimumchainwork 给合法链的累计工作量设地板,低于它的链不值得处理。本文依据 v31.0 源码说明该常量的来源与随版本上调的原因、它在初始块下载与跳过脚本校验中的作用,以及与 assumevalid 的位置概念之分。
比特币核心 v28.0 起,getblockchaininfo、getnetworkinfo、getmininginfo 的 warnings 字段返回全部生效告警的数组,不再只挑一条。本文按发布说明与源码梳理数组化理由、-deprecatedrpc=warnings 临时退路的两个陷阱,以及脚本改造三原则。
比特币核心 v31.0 在检测到总内存不低于 4096 MB 时把状态数据库缓存默认值从 450 MB 抬到 1024 MB。本文依据源码梳理这条条件默认值、它与内存池共享内存的关系,以及不同内存机器的取值建议。
比特币核心默认在数据目录写 bitcoind.pid,-pid 参数可改路径。本文依据 v31.0 源码说明相对路径如何按网络隔离、为什么它不承担防止重复启动的职责,以及多实例运维时脚本读 PID 文件的正确姿势。
比特币核心 v31.0 移除了 -maxorphantx 启动参数,残留配置会让节点拒绝启动。本文按发布说明与源码梳理该参数原本控制的孤儿交易缓存、失效与删除的时间线,以及升级前的参数自查方法。
比特币核心提供 -stopatheight 与 -stopafterblockimport 两个调试类启动参数,让节点在指定区块高度或磁盘区块导入完成时自动退出。本文依据 v31.0 源码说明两者语义差异、帮助隐藏原因与脚本使用注意事项。
EIP-7935 是随 Fusaka 落地的信息类决议:建议执行层客户端把默认区块 gas 上限从 36M 一路调到 60M,用分叉日程强制协调各家默认配置。本文讲清为什么一次改默认值也要立 EIP、客户端各自为政的协调旧账与压力测试脚本里的安全边界。