Block

Block结构

Block

几点注意:

nBits的上限是0x1D00FFFF,无下限,但显而易见,负值无意义,所以代码实现时有对负值的特殊处理。

nNonce是4字节,显然无法覆盖256位的hash target,因此还要别的手段来扩大hash范围,详见挖矿。

区块头举例

Block Header

说下版本号

最初是版本1

2012年9月,BIP34提出coin base中加入块高度等规则,这引入了一个软分叉,Bitcoin Core 0.7.0版本引进这个提议。

Bitcoin Core 0.7.0及以上版本约定在块高度224,412开始,拒绝接受版本号为2却不遵守BIP34的新块。

并约定从227,930开始拒绝版本号为1的新块。

什么是软分叉

当软件升级后,老的节点不感知新软件的变动,新的交易和块在老节点上依然可以校验通过,这叫软分叉

拿上面的BIP34来讲,块高度字段是添加在coinbase的scriptPub中的,而这个字段老版本不做校验,因此在224,412到227,930的这三周内,老节点和新节点在同一条链上,给老节点最后的升级机会,否责227,930后将会出现分叉,老节点新生成的块将会无效。

为什么是老的链无效而不是新的链无效?

算力投票的结果,如果大部分矿工都支持version2,那么BIP32得以通过,新链是合法链。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • block headers 以80字节的格式进行序列化,然后作为比特币工作量验证算法的一部分进行哈希处理,使序列化...
    wolf4j阅读 848评论 2 2
  • 综述 不需要改变任何现存的共识规则,来增大比特币的交易吞吐量。 动机 比特币网络的吞吐量与它重新定向和拒绝服务限制...
    路之遥_其漫漫_阅读 928评论 0 0
  • 超级个体的【每日一问】:7/30 有哪3个工具或者方法是极大程度提高你的工作效率的利器? 【答】: 1.电动车(快...
    伽蓝214阅读 185评论 0 0
  • 中午番茄说与他一起进行志愿服务的学弟可能患上癫痫病。学弟就在他旁边倒地抽搐,一开始番茄还以为他在搞笑,就继续背...
    番茄妈阅读 177评论 0 0
  • 小时候总喜欢问十万个为什么,为什么天上有星星,为什么小鸟飞的那么高,为什么爸爸妈妈不亲自送我上幼儿园,开家长会,为...
    邱敏V塑缔造你的美丽阅读 409评论 0 0