Bitcoin Core的区块链参数:hashAssumeValid(哈希假定有效),fCheckpointsEnabled(检查点)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yzpbright/article/details/82491592

这些参数的初始化都在src/init.cpp的AppInitParameterInteraction()方法中

检查点

    fCheckpointsEnabled = gArgs.GetBoolArg("-checkpoints", DEFAULT_CHECKPOINTS_ENABLED);

-checkpoints,该变量默认为1,表示不验证当前已经存在的链;如果为0,表示要检查一些校验点的区块信息是否正确,所有校验点的信息也都保存在chainparams中的checkpointdata中。

哈希假定有效

    hashAssumeValid = uint256S(gArgs.GetArg("-assumevalid", chainparams.GetConsensus().defaultAssumeValid.GetHex()));
    if (!hashAssumeValid.IsNull())
        LogPrintf("Assuming ancestors of block %s have valid signatures.\n", hashAssumeValid.GetHex());
    else
        LogPrintf("Validating signatures for all blocks.\n");

-assumevalid=blockid ,表示在blockid之前的所有区块都假设正确的,也就是不用再去验证。如果没有设置,那么就要验证之前所有区块的签名信息。

我们可以看到 assumevalid 参数的默认值可以通过chainparams.GetConsensus().defaultAssumeValid.GetHex()获得

参考:
从零到壹学习比特币源码解析第九讲:比特币源码解析-006
比特币源码研读之十二

猜你喜欢

转载自blog.csdn.net/yzpbright/article/details/82491592
今日推荐