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

技术编号:25438512 阅读:35 留言:0更新日期:2020-08-28 22:26
本发明专利技术提出了一种区块链中节点的新特征同步生效的方法,包括:S1,设定节点的特性生效机制,在该机制中,每个特性具有编号,在区块中添加新的字段,其中所述特性指的是共识相关的修改;S2,添加一个新的特性,将新特性添加到节点已支持的特性列表中,在对应逻辑处根据特性启用情况判断使用新特性逻辑还是旧的逻辑;S3,进行区块链版本升级:每个共识节点各自更新,来生效特性。本发明专利技术还对应提出一种系统。本发明专利技术通过增加特性启用机制,当有新的共识相关修改时,即可添加新的特性。

【技术实现步骤摘要】
一种区块链中节点的新特征同步生效的实现方法和系统
本专利技术涉及区块链
,更具体的,本专利技术涉及一种区块链中节点的新特征同步生效的实现方法和系统。
技术介绍
区块链是一个分布式的共享账本和数据库,具有去中心化、不可篡改、可追溯、集体维护、公开透明等特点。区块链的应用越来越广,受到了广泛关注。区块链通过多节点投票共识的方式进行集体维护,为网络提供了去中心化的特性,但是同时给区块链的功能升级带来了困难。在中心化网络中,要对服务器节点进行升级比较简单,因为管理员可以操控所有的服务节点,最简单的就是暂时停止对外服务来做功能升级,待升级结束后重新开放服务。但是区块链网络中的节点升级就没有这么简单,原因如下:1.区块链是去中心化的,而整体停止对外服务是一种中心化的操作;2.如果不停止对外服务,那么只能先更新部分节点到新版本,这时如果新版本中的修改与旧版本的共识不一致,就会出现共识无法达成的情况;区块链的共识算法分为确定性共识和概率性共识两大类,前者以各种BFT(拜占庭容错)算法为代表,包括pbft、dpos等,后者以PoW(工作量证明)为代表。概率性共识基本都用在公有链中,一般通过软/硬分叉来进行版本升级。硬分叉中,新旧版本无法兼容,会产生两条链;软分叉不会产生两条链,但是旧版本需要兼容新的版本,所以新版本改动限制很大,无法对旧的数据结构、共识机制作出修改,只能在原有数据结构上进行微调整。确定性共识在联盟链与私有链中应用比较广泛,也可以用在公有链中,共识节点的数量一般是已知的,去中心化程度一般没有概率性共识高。针对此类共识,版本的升级不需要出现分叉,主要考虑的是如何实现新的修改如何在所有共识节点间同步生效的问题。在一些专利中,有一些区块链升级的方法,比如,客户端发起一个新版本升级的交易,由区块链进行投票,投票通过则使用新版本的逻辑,不通过,仍使用旧版本的逻辑,或者,在新的版本中硬编码一个将来的区块号,在这一区块上启用新版本或者发起对新版本的投票,例如见中国专利申请CN108958787A,但是这些做法使得每次有共识相关的升级都要进行额外的操作。
技术实现思路
本专利技术主要解决确定性共识算法中版本升级新的修改生效的问题,为此,提出一种区块链中节点的新特征同步生效的实现方法,包括:S1,设定节点的特性生效机制,在该机制中,每个特性具有编号,在区块中添加新的字段,其中所述特性指的是共识相关的修改;S2,添加一个新的特性,将新特性添加到节点已支持的特性列表中,在对应逻辑处根据特性启用情况判断使用新特性逻辑还是旧的逻辑;本专利技术还提出一种区块链中节点的新特征同步生效的系统,所述系统包括区块链节点,所述节点能够实现如下步骤:S1,节点具有特性生效机制,在该机制中,每个特性具有编号,在区块中添加新的字段,其中所述特性指的是共识相关的修改;S2,当添加加一个新的特性时,将新特性添加到节点已支持的特性列表中,在对应逻辑处根据特性启用情况判断使用新特性逻辑还是旧的逻辑;S3,当进行区块链版本升级时,每个共识节点各自更新,来生效特性。本专利技术解决了共识相关的修改需要在所有节点间同步生效的问题,而且新的修改不需要额外的操作,共识节点管理者只需像中心化系统中替换自己的节点版本到新版本然后重启即可。在整个升级过程中,区块链服务不需要停止,也就是热升级。本专利技术的有益效果还包括:1)增加了特性启用机制,当有新的共识相关修改时,只按照本专利技术的方法即可添加新的特性;2)区块链版本升级操作简单,只需要分批升级各个节点,特性即可自动启用;3)避免了升级过程中区块链服务停止的问题;4)节点共识过程中可判断当前节点是否过期,并在接收交易时返回节点已过期的错误来提醒节点管理员升级节点。附图说明为了更容易理解本专利技术,将通过参照附图中示出的具体实施方式更详细地描述本专利技术。这些附图只描绘了本专利技术的典型实施方式,不应认为对本专利技术保护范围的限制。图1为本专利技术的整体方案流程图。图2为特性生效的流程图。图3为本专利技术中特性的添加流程图。图4为节点版本已过期,需要升级时的交易发送流程图。图5为区块链版本升级的操作流程图。图6为区块链单个节点的升级流程图。具体实施方式下面参照附图描述本专利技术的实施方式,其中相同的部件用相同的附图标记表示。在不冲突的情况下,下述的实施例及实施例中的技术特征可以相互组合。区块链节点程序的修改,可以分为与共识相关的修改与共识无关的修改。这里只考虑共识相关的修改,比如使用新的共识算法、区块头中增加一个字段、增加新的交易类型、某种交易的共识逻辑发生变化等。本专利技术中的特性(feature)指的是共识相关的修改。特性按照功能区分,比如:出块时间调整与添加一种新的交易类型,这是两个不相关的功能,不能用一个特性表示。如图1所示,本专利技术的方法包括:S1.设定节点的特性生效机制,在这一机制中,给每个特性编号,在区块中添加新的字段,确定特性生效的逻辑。S2.添加新特性:在节点实现了特性生效机制后,添加一个新的特性,将新特性添加到节点已支持特性列表中,在对应逻辑处根据特性启用情况判断使用新特性逻辑还是旧的逻辑。S3.进行区块链版本升级:每个共识节点的维护者各自更新自己维护的节点即可,特性自动生效,可以通过接口查询当前已启用的特性列表。步骤S2和S3可以重复多次。在图1中,步骤S1中的给节点添加特性生效机制的步骤包括:S11,对节点的每一个特性设置一个特性名与唯一编号,如表1所示;S12,增加第一数据结构,该第一数据结构表示该节点支持的特性列表;S13,在区块世界状态中增加第二数据结构,该第二数据结构表示已启用的特性列表。标识类型特性名featureName字符串唯一编号featureIDhash表1支持的特性列表可以是一个key-value结构:{“featureID1”:”featureName1”“featureID2”:”featureName2”...}已启用的特性列表可以是一个线性列表结构:[“featureID1”,“featureID2”,]图1中的步骤S1还包括特性生效过程S14-S16,如图2所示。S14.构造一种针对特性的交易类型,这一交易为区块链内部发起的交易,交易中主要字段包括:{“TxType”:”EnableFeature”,“FeatureId”:”xxxx...”}S15.每个节点在当前共识的区块号为设定数字(如256)的整数倍时,对当前版本支持并且未启用的特性发起内部本文档来自技高网
...

【技术保护点】
1.一种区块链中节点的新特征同步生效的实现方法,其特征在于,包括:/nS1,设定节点的特性生效机制,在该机制中,每个特性具有编号,在区块中添加新的字段,其中所述特性指的是共识相关的修改;/nS2,添加一个新的特性,将新特性添加到节点已支持的特性列表中,在对应逻辑处根据特性启用情况判断使用新特性逻辑还是旧的逻辑;/nS3,进行区块链版本升级:每个共识节点各自更新,来生效特性。/n

【技术特征摘要】
1.一种区块链中节点的新特征同步生效的实现方法,其特征在于,包括:
S1,设定节点的特性生效机制,在该机制中,每个特性具有编号,在区块中添加新的字段,其中所述特性指的是共识相关的修改;
S2,添加一个新的特性,将新特性添加到节点已支持的特性列表中,在对应逻辑处根据特性启用情况判断使用新特性逻辑还是旧的逻辑;
S3,进行区块链版本升级:每个共识节点各自更新,来生效特性。


2.根据权利要求1所述的方法,其特征在于,所述步骤S1包括:
S11,对节点的每一个特性设置一个特性名与唯一编号;
S12,增加第一数据结构,该第一数据结构表示该节点支持的特性列表;
S13,在区块世界状态中增加第二数据结构,该第二数据结构表示已启用的特性列表。


3.根据权利要求1所述的方法,其特征在于,所述步骤S1还包括:
S14.构造一种针对特性的交易类型,这一交易为区块链内部发起的交易;
S15.每个节点在当前共识的区块号为设定数字的整数倍时,对当前版本支持并且未启用的特性发起内部投票;
S16.包含特性启用交易的区块共识通过后,更新区块世界状态中的已启用的特性列表,添加新的已启用特性。


4.根据权利要求1所述的方法,其特征在于,所述步骤S2还包括:
S21,为新的特性起别名,计算特性的唯一ID;
S22,将特性别名与唯一ID按key-value形式添加到本地支持的特性列表中;
S23,添加特性的代码逻辑;
S24,添加判断特性是否已启用的逻辑,已启用则使用新特性逻辑,未启用则用旧的逻辑。


5.根据权利要求1所述的方法,其特征在于,所述步骤S3还包括:
S31,将区块链共识节点分成多个小组,每个小组中的节点数量不超过总节点数的设定比例;
S32,对各小组排序;
S33,各小组按顺序进行升级,一个小组内的所有节点升级完成后,下一小组进行升级。


6.一种区块...

【专利技术属性】
技术研发人员:路京磊吴飞鹏卢小明陈姝严挺陈鸿刚
申请(专利权)人:北京众享比特科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1