比特币改进协议BIP 9 简述

姜家志 发布在 技术指南 20207

首先明白:软分叉升级主要是在原有的主链上增加共识规则。 1

软分叉的目的是为了让老版本的客户端能够兼容。我们人为设定一个开始时间和结束时间,表示在这个范围内,我们进行软分叉升级,我们规定每到 2016 的整数倍作为一个升级的周期,那么在这个周期内,如果有 80% 的算力认可我的提议,那么就代表升级成功,将该提议添加为共识规则的一部分,如果不够 80%,就进入下一个周期,也就是,在结束时间到达之前,我有可能已经升级成功,也有可能升级不成功。在升级过程中,没有成功的 block,我按照原先的规则保留,但是升级成功之后,假设我又来了之前的一个 block,我会进行check,然后将其抛弃掉。

在主链中,我每要加入进去一个块,我就会进行一次 check,看其是否符合当前的共识规则。但是如果在周期内的话,会有 cache 所以,咱们只需要知道最后一个块的状态信息,剩余在这个周期内的所有块都保存和它一样的状态信息。

这里需要注意一个问题,我比较的时间并不是结束的时间,而是中位数时间(结束时间所在的块往前数 10 个块,加上本身是 11 个块),因为每一个块的时间是矿工随意填写的一个值,所以我拿到这 11 个块之后,进行一次排序,取第 6 个块的时间来作为我真正需要去比较的时间,众所周知,6 个块的时候,我这个链就处于一个稳定的状态,所以,这种方式能够有效的降低随意性。

2

- bits:标识位,代表我需要增加哪些共识规则

- startTime:开始时间

- endTime:结束时间

version是一个32字节的bit,前三位是固定的:001,第5为是0或者1,1代表赞成,0代表不赞成。

3

本文链接:https://www.8btc.com/article/165110
转载请注明文章出处

文章标签: BIP
评论
登录 账号发表你的看法,还没有账号?立即免费 注册