关于YOUChain协议版本升级和软件版本升级
区块链网络由一个个独立工作却又相互联系的节点组成。各个节点必须基于相同的逻辑及参数来处理链上数据,所有涉及到链上数据变更的处理逻辑以及相关参数,可以统称为广义的“共识协议”。
在YOUChain网络中,我们称之为YOUChain协议
。
YOUChain协议
升级机制
YOUChain协议
的升级,是基于链上治理、多数共识的机制实现的。
具体为:
- 当
Block Proposer
即BP
发现本地有新版本的协议,并且当前不存在进行中的升级提议时,其将提议一个YOUChain协议
升级(同一高度,至多只有一个升级提议); - 该提议将由接下来的
UpgradeVoteRounds
(当前为10000
)个区块的BP
进行投票;一个BP
发现本地存在所提议要升级到的YOUChain协议
版本时,将会投一票; - 投票周期截止时,如果票数超过
UpgradeThreshold
(当前为8000
),则升级提议生效;否则该提议作废(此时清空当前升级提议信息); - 升级提议生效后,还要经过
UpgradeWaitRounds
(当前为10000
)个区块,才会切换使用新的YOUChain协议
(此时清空当前升级提议信息)。
当一个YOUChain协议
完成升级切换后,如果某个节点本地还没有新的协议版本,将会遇到包含如下内容的Crit
级别日志,导致节点程序退出(因为此时该节点已经无法正确处理或验证链上数据):
YOUChain protocol version not exists, may be you should update the client version=*
YOUChain协议版本升级和软件版本升级 的关系
- YOUChain协议版本升级,必然是由软件版本升级导致的;
- 软件版本升级
不一定包含
YOUChain协议版本升级。
go-youchain
团队在release一个新的软件版本(即链程序版本)时,将会标示是否涉及YOUChain协议升级。
若涉及YOUChain协议升级,则需要社区密切关注,并自行判断是否升级链程序。
重要提示
若大多数节点升级了包含YOUChain协议升级的软件版本,则在YOUChain协议升级提议生效后,社区所有节点都应该升级到该软件版本,否则节点将无法正常运行!