关于YOUChain协议版本升级和软件版本升级

区块链网络由一个个独立工作却又相互联系的节点组成。各个节点必须基于相同的逻辑及参数来处理链上数据,所有涉及到链上数据变更的处理逻辑以及相关参数,可以统称为广义的“共识协议”。

在YOUChain网络中,我们称之为YOUChain协议

YOUChain协议 升级机制

YOUChain协议 的升级,是基于链上治理、多数共识的机制实现的。

具体为:

  1. Block ProposerBP 发现本地有新版本的协议,并且当前不存在进行中的升级提议时,其将提议一个 YOUChain协议 升级(同一高度,至多只有一个升级提议);
  2. 该提议将由接下来的 UpgradeVoteRounds (当前为 10000 )个区块的BP进行投票;一个BP发现本地存在所提议要升级到的YOUChain协议版本时,将会投一票;
  3. 投票周期截止时,如果票数超过 UpgradeThreshold(当前为 8000),则升级提议生效;否则该提议作废(此时清空当前升级提议信息);
  4. 升级提议生效后,还要经过 UpgradeWaitRounds(当前为 10000)个区块,才会切换使用新的YOUChain协议 (此时清空当前升级提议信息)。

当一个YOUChain协议完成升级切换后,如果某个节点本地还没有新的协议版本,将会遇到包含如下内容的Crit级别日志,导致节点程序退出(因为此时该节点已经无法正确处理或验证链上数据):

YOUChain protocol version not exists, may be you should update the client    version=*

YOUChain协议版本升级和软件版本升级 的关系

  1. YOUChain协议版本升级,必然是由软件版本升级导致的;
  2. 软件版本升级 不一定包含 YOUChain协议版本升级。

go-youchain团队在release一个新的软件版本(即链程序版本)时,将会标示是否涉及YOUChain协议升级。

若涉及YOUChain协议升级,则需要社区密切关注,并自行判断是否升级链程序。

重要提示

若大多数节点升级了包含YOUChain协议升级的软件版本,则在YOUChain协议升级提议生效后,社区所有节点都应该升级到该软件版本,否则节点将无法正常运行!