logo好方法网

一种区块链中节点的新特征同步生效的实现方法和系统


技术摘要:
本发明提出了一种区块链中节点的新特征同步生效的方法,包括:S1,设定节点的特性生效机制,在该机制中,每个特性具有编号,在区块中添加新的字段,其中所述特性指的是共识相关的修改;S2,添加一个新的特性,将新特性添加到节点已支持的特性列表中,在对应逻辑处根据  全部
背景技术:
区块链是一个分布式的共享账本和数据库,具有去中心化、不可篡改、可追溯、集 体维护、公开透明等特点。区块链的应用越来越广,受到了广泛关注。 区块链通过多节点投票共识的方式进行集体维护,为网络提供了去中心化的特 性,但是同时给区块链的功能升级带来了困难。 在中心化网络中,要对服务器节点进行升级比较简单,因为管理员可以操控所有 的服务节点,最简单的就是暂时停止对外服务来做功能升级,待升级结束后重新开放服务。 但是区块链网络中的节点升级就没有这么简单,原因如下: 1.区块链是去中心化的,而整体停止对外服务是一种中心化的操作; 2.如果不停止对外服务,那么只能先更新部分节点到新版本,这时如果新版本中 的修改与旧版本的共识不一致,就会出现共识无法达成的情况; 区块链的共识算法分为确定性共识和概率性共识两大类,前者以各种BFT(拜占庭 容错)算法为代表,包括pbft、dpos等,后者以PoW(工作量证明)为代表。 概率性共识基本都用在公有链中,一般通过软/硬分叉来进行版本升级。硬分叉 中,新旧版本无法兼容,会产生两条链;软分叉不会产生两条链,但是旧版本需要兼容新的 版本,所以新版本改动限制很大,无法对旧的数据结构、共识机制作出修改,只能在原有数 据结构上进行微调整。 确定性共识在联盟链与私有链中应用比较广泛,也可以用在公有链中,共识节点 的数量一般是已知的,去中心化程度一般没有概率性共识高。针对此类共识,版本的升级不 需要出现分叉,主要考虑的是如何实现新的修改如何在所有共识节点间同步生效的问题。 在一些专利中,有一些区块链升级的方法,比如,客户端发起一个新版本升级的交 易,由区块链进行投票,投票通过则使用新版本的逻辑,不通过,仍使用旧版本的逻辑,或 者,在新的版本中硬编码一个将来的区块号,在这一区块上启用新版本或者发起对新版本 的投票,例如见中国专利申请CN108958787A,但是这些做法使得每次有共识相关的升级都 要进行额外的操作。
技术实现要素:
本发明主要解决确定性共识算法中版本升级新的修改生效的问题,为此,提出一 种区块链中节点的新特征同步生效的实现方法,包括: S1,设定节点的特性生效机制,在该机制中,每个特性具有编号,在区块中添加新 的字段,其中所述特性指的是共识相关的修改; S2,添加一个新的特性,将新特性添加到节点已支持的特性列表中,在对应逻辑处 4 CN 111596937 A 说 明 书 2/6 页 根据特性启用情况判断使用新特性逻辑还是旧的逻辑; 本发明还提出一种区块链中节点的新特征同步生效的系统,所述系统包括区块链 节点,所述节点能够实现如下步骤: S1,节点具有特性生效机制,在该机制中,每个特性具有编号,在区块中添加新的 字段,其中所述特性指的是共识相关的修改; S2,当添加加一个新的特性时,将新特性添加到节点已支持的特性列表中,在对应 逻辑处根据特性启用情况判断使用新特性逻辑还是旧的逻辑; S3,当进行区块链版本升级时,每个共识节点各自更新,来生效特性。 本发明解决了共识相关的修改需要在所有节点间同步生效的问题,而且新的修改 不需要额外的操作,共识节点管理者只需像中心化系统中替换自己的节点版本到新版本然 后重启即可。在整个升级过程中,区块链服务不需要停止,也就是热升级。 本发明的有益效果还包括: 1)增加了特性启用机制,当有新的共识相关修改时,只按照本发明的方法即可添 加新的特性; 2)区块链版本升级操作简单,只需要分批升级各个节点,特性即可自动启用; 3)避免了升级过程中区块链服务停止的问题; 4)节点共识过程中可判断当前节点是否过期,并在接收交易时返回节点已过期的 错误来提醒节点管理员升级节点。 附图说明 为了更容易理解本发明,将通过参照附图中示出的
下载此资料需消耗2积分,
分享到:
收藏