比特币代码分析8 区块校验和确认
admin
2023-02-18 10:20:04
0

比特币节点接收到一个区块以后,都会进行校验和确认,如下参考网络图:
比特币代码分析8 区块校验和确认

关键看看对区块中的交易进行进一步的校验代码:
1.// First transaction must be coinbase, the rest must not be
2.if (vtx.empty() || !vtx[0].IsCoinBase())

  1. return error("CheckBlock() : first tx is not coinbase");
    4.for (int i = 1; i < vtx.size(); i++)
  2. if (vtx[i].IsCoinBase())
  3. return error("CheckBlock() : more than one coinbase");
  4. 8.// Check transactions 循环检查所有的交易,这一步骤很关键,所以交易不能随便改,大家都在检查
    9.foreach(const CTransaction& tx, vtx)

  5. if (!tx.CheckTransaction())
  6. return error("CheckBlock() : CheckTransaction failed");
  7. 13.// Check proof of work matches claimed amount
    14.if (CBigNum().SetCompact(nBits) > bnProofOfWorkLimit)

  8. return error("CheckBlock() : nBits below minimum work");
    16.if (GetHash() > CBigNum().SetCompact(nBits).getuint256())
  9. return error("CheckBlock() : hash doesn't match nBits");
  10. 19.// Check merkleroot
    20.if (hashMerkleRoot != BuildMerkleTree())

  11. return error("CheckBlock() : hashMerkleRoot mismatch");

相关内容

热门资讯

进口马铃薯“逐颗检查”?岛内名... 海峡导报综合报道 新党籍台北市议员侯汉廷指控,民进党为配合“台美贸易协定(ART)”,放宽174项农...
燃气灶的火为什么会突然灭掉 原因是燃气灶的电池没有电了,需要拆掉电池盒更换一个新的电池;还有可能是燃气用完了,可以充值燃气;还有...
燃气灶的控制器坏了怎么修 控制器内部都是由复杂的电子元件组成的,所以当燃气灶的电子控制器坏了,一般都是需要直接更换燃气灶的控制...
燃气灶为什么外圈蓝火苗内圈红火... 燃气灶充分燃烧的情况下应该是呈蓝色火焰,这个时候产生的热能值最高,也最安全。出现“红火”主要是以下原...
燃气灶一用中间就没火是什么原因 原因可能是电池没电了,建议更换电池解决一下;还有就是点火针发方向可能倾斜,建议调整点火针的方向,对准...
燃气灶为什么外圈没火 原因可能是因为点火针位置不当,通常情况下点火针与火盖之间的距离控制在4至6毫米,且需要对准火孔,而且...
批民进党当局完全脱离民意,蓝营... 海峡导报综合报道 国民党台北市议员参选人李明璇6日提及台湾地区领导人赖清德以及台行政机构负责人卓荣泰...
五月天“宠己”正当时 【核心提示】消费是经济发展的晴雨表。如今,有人为一场演唱会奔赴一座城;有人心甘情愿为宠物买单;也有人...
全国智能化医疗器械标准化工作组... 【大河财立方消息】近日,市场监管总局批准筹建全国智能化医疗器械标准化工作组,由国家药监局负责管理。全...
中原追风记①丨风电“三大件”齐... 【开栏的话】风光无限的中国,有一个“追风”的河南。广袤的中原大地之上,无论田野与山间,巍然挺立着一道...