bitcoin中的软分叉机制之BIP9

BIP9是bitcoin中用来软分叉的协议,详细可以看

https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki#Abstract

BIP9中,version的状态有DEFINED, STARTED, FAILED, LOCK_IN, ACTIVE. 状态转换图如下

bitcoin中的软分叉机制之BIP9_第1张图片

其中threshold值得是在连续的N个块内,至少需要有M个块使用该版本,具体为在mainnet中N=2016, M=2016*95%, 在testnet中

N=2016,M=2016*75%——threshold的设置可以参考bip34。这意味着threshold可以更改,但是必须要将BIP9中的warning mechanism考虑进去,所谓的warning mechanism是指除了希望完成的version迭代,还有一些不知道的version bit被置位,当这种情况出现时,系统应该通知所有的节点这个未知的版本消息。

BIP9的优点

1、后向兼容

因为每一个使用bip9的version bit是有时间限制的,无论version是否成功更改,都会有一个time out 的时间。这意味这version bit可以复用

2、区块即投票

version state的转化统计的时区块中使用对应版本的区块数,这在一个开源且共同维护的一个系统中尤其重要。

3、parallel version bit

不同的版本可以同时进行,只要使用的时不冲突的version bit.相比于以前的单纯比较version的值而言,显得更加高效灵活。

BIP具体的实现细节这里不再赘述,大家可以去看看GitHub上的详细介绍~

------------------------------------------------------------------------------------------------------------------------------------

转载请注明出处https://blog.csdn.net/ganzr/article/details/84935513

你可能感兴趣的:(bitcoin)