IBD不只是下载文件。Full Node根据历史构建经过验证的UTXO集合;旧脚本检查还取决于assumevalid设置。
节点发现对等节点地址并同步区块头。区块头连接历史并包含Proof of Work,但本身不能证明区块内所有交易都有效。 [Bitcoin Developer Guide — Initial Block Download] [Satoshi Nakamoto — Bitcoin whitepaper]
累计工作量确定待验证的候选分支。区块头数量最多或对等节点的声称,都不能代替工作量和完整区块检查。 [Bitcoin Developer Guide — Initial Block Download] [Bitcoin Core — validation] [Satoshi Nakamoto — Bitcoin whitepaper]
可从多个对等节点并行下载区块。将区块连接到有效链必须尊重先前状态:缺少所需历史就无法验证交易输出。 [Bitcoin Developer Guide — Initial Block Download] [Bitcoin Core — validation]
Full Node检查结构、Merkle root、花费规则和发行限制等。共识规则按高度与激活情况适用;区块头不等于完整验证。 [Bitcoin Core — validation] [Bitcoin Core — chainstate]
连接区块时删除已花费输出并加入新的UTXO。数据库表示当前可花费的输出,而不是所有历史交易或地址余额账本。 [Bitcoin Core — validation] [Bitcoin Core — chainstate]
在已知历史足够深等条件下,assumevalid可跳过旧脚本检查。这不表示无检查地接受任意历史;assumevalid=0关闭此优化。 [Bitcoin Core — validation]
修剪在处理完成后删除旧区块文件,保留UTXO集合和必要元数据。它节省长期磁盘空间,但普通IBD仍需获取并处理历史。 [Bitcoin Core — validation] [Bitcoin Core — chainstate]
Bitcoin Core v29.0使用链尖年龄、最低工作量和加载状态;标志结束后,在该进程中不再变回true。这是运行启发式条件,不是知道全球最新链尖的证明。 [Bitcoin Core — validation] [Bitcoin Core — getblockchaininfo]
耗时取决于处理器、内存、磁盘、网络和节点可用性。getblockchaininfo的verificationprogress估计验证工作量,不是保证完成时间,也不只是已下载字节比例。 [Bitcoin Developer Guide — Initial Block Download] [Bitcoin Core — getblockchaininfo]
AssumeUTXO可利用受支持的UTXO快照更早在链尖运行。历史在后台验证,结果与快照比较;更早可用并不代表历史验证已经完成。 [Bitcoin Core — validation] [Bitcoin Core — AssumeUTXO design]
要获得更完整的理解,请将本词条与以下词条结合阅读: 修剪节点, AssumeUTXO, 区块传播, 紧凑区块中继. 反向关联还来自: 修剪节点, AssumeUTXO.