版权声明:本文为博主原创文章,未经博主允许不得转载。 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()获得