CN114584450A - 双层区块链系统及共识方法 - Google Patents

双层区块链系统及共识方法 Download PDF

Info

Publication number
CN114584450A
CN114584450A CN202210211594.5A CN202210211594A CN114584450A CN 114584450 A CN114584450 A CN 114584450A CN 202210211594 A CN202210211594 A CN 202210211594A CN 114584450 A CN114584450 A CN 114584450A
Authority
CN
China
Prior art keywords
node
layer
block chain
nodes
semi
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210211594.5A
Other languages
English (en)
Inventor
伍唤宇
赵鹏桥
袁江
肖果
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Construction Bank Corp
Original Assignee
China Construction Bank Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Construction Bank Corp filed Critical China Construction Bank Corp
Priority to CN202210211594.5A priority Critical patent/CN114584450A/zh
Publication of CN114584450A publication Critical patent/CN114584450A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/30Decision processes by autonomous network management units using voting and bidding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Technology Law (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Hardware Redundancy (AREA)

Abstract

本申请提供一种双层区块链系统及共识方法,双层区块链系统包括:区块链顶层以及区块链二层;区块链顶层包括至少一个全节点;区块链二层包括至少一个半连接节点;每一个全节点是多个半连接节点的领导节点;区块链顶层每隔第一预设时间,针对每一个全节点,将第二预设时间内全节点产生的事务信息打包成区块;区块链顶层将区块发送至每一个半连接节点进行验证,每一个半连接节点得到验证结果后,广播验证结果;若验证结果表明存在异常时,则调用区块链二层中的算法对全节点是否异常进行检测;若检测结果表明存在异常,则利用区块链二层中的算法对全节点进行变更。从而将不同能力的节点加入区块链平台的不同层次中,每一个层次都具备解决异常的能力。

Description

双层区块链系统及共识方法
技术领域
本申请涉及区块链技术领域,特别涉及一种双层区块链系统及共识方法。
背景技术
目前,区块链技术已经得到广泛应用,在银行中也已经有了落地的尝试。
然而,目前绝大部分的区块链结构都是单层的结构,不满足银行从总行 到各级支行的分层组织结构模型。而现有的分层区块链结构基本上只在系统 结构上采用分层的方法以达到提高吞吐量和降低存储冗余的效果,低层节点 单纯是跟随节点,完全由全节点代理,所有操作都只能通过特定的高层节点 代理完成,并不能提升系统的性能。
发明内容
有鉴于此,本申请提供一种双层区块链系统及共识方法,可以帮助不同 能力的节点加入区块链平台的不同层次中,同时每一个层次都具备解决异常 的能力,达到更高的吞吐量和扩展能力。
本申请第一方面提供了一种双层区块链系统,包括:
区块链顶层以及区块链二层;其中,所述区块链顶层包括至少一个全节 点;所述区块链二层包括至少一个半连接节点;所述半连接节点不参与共识 算法,需所述全节点代理转发数据;每一个所述全节点是多个所述半连接节 点的领导节点;
所述区块链顶层每隔第一预设时间,针对每一个所述全节点,将第二预 设时间内所述全节点产生的事务信息打包成区块;
所述区块链顶层将所述区块发送至每一个半连接节点进行验证,每一个 所述半连接节点得到验证结果后,广播所述验证结果;
若所述验证结果表明存在异常时,则调用区块链二层中的算法对所述全 节点是否异常进行检测;
若检测结果表明存在异常,则利用区块链二层中的算法对全节点进行变 更。
可选的,所述区块链顶层中的全节点之间采用实用拜占庭容错改进的多 层拜占庭容错共识算法。
可选的,所述区块链二层中的半连接节点采用部分视图切换算法,所述 区块链二层可以直接嵌入所述区块链顶层的共识算法中。
可选的,在半连接节点所属的全节点存在异常时,采用部分视图切换算 法更换全节点。
可选的,所述双层区块链系统,还包括:
若所述验证结果表明没有异常,则完成对所述区块的验证并进行添加所 述区块。
本申请第二方面提供了一种共识方法,包括:
区块链顶层每隔第一预设时间,针对每一个全节点,将第二预设时间内 所述全节点产生的事务信息打包成区块;
所述区块链顶层将所述区块发送至每一个半连接节点进行验证,每一个 所述半连接节点得到验证结果后,广播所述验证结果;
若所述验证结果表明存在异常时,则调用区块链二层中的算法对所述全 节点是否异常进行检测;
若检测结果表明存在异常,则利用区块链二层中的算法对全节点进行变 更。
可选的,所述区块链顶层中的全节点之间采用实用拜占庭容错改进的多 层拜占庭容错共识算法。
可选的,所述区块链二层中的半连接节点采用部分视图切换算法,所述 区块链二层可以直接嵌入所述区块链顶层的共识算法中。
可选的,在半连接节点所属的全节点存在异常时,采用部分视图切换算 法更换全节点。
可选的,所述共识方法,还包括:
若所述验证结果表明没有异常,则完成对所述区块的验证并进行添加所 述区块。
由以上方案可知,本申请提供一种双层区块链系统及共识方法,所述双 层区块链系统包括:区块链顶层以及区块链二层;其中,所述区块链顶层包 括至少一个全节点;所述区块链二层包括至少一个半连接节点;所述半连接 节点不参与共识算法,需所述全节点代理转发数据;每一个所述全节点是多 个所述半连接节点的领导节点;所述区块链顶层每隔第一预设时间,针对每 一个所述全节点,将第二预设时间内所述全节点产生的事务信息打包成区块; 所述区块链顶层将所述区块发送至每一个半连接节点进行验证,每一个所述半连接节点得到验证结果后,广播所述验证结果;若所述验证结果表明存在 异常时,则调用区块链二层中的算法对所述全节点是否异常进行检测;若检 测结果表明存在异常,则利用区块链二层中的算法对全节点进行变更。从而 达到可以帮助不同能力的节点加入区块链平台的不同层次中,同时每一个层 次都具备解决异常的能力,达到更高的吞吐量和扩展能力的目的。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不 付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种双层区块链系统的示意图;
图2为本申请另一实施例提供的一种共识方法的具体流程图;
图3为本申请另一实施例提供的一种第一算法模块的代码的示意图;
图4为本申请另一实施例提供的一种第二算法模块的代码的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而 不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做 出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要注意,本申请中提及的“第一”、“第二”等概念仅用于对不同的装置、 模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的 顺序或者相互依存关系,而术语“包括”、“包含”或者其任何其他变体意在涵盖 非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不 仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这 种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由 语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
目前,绝大部分的区块链结构都是单层的结构,不满足银行从总行到各 级支行的分层组织结构模型。而现有的分层区块链结构基本上只在系统结构 上采用分层的方法以达到提高吞吐量和降低存储冗余的效果,低层节点单纯 是跟随节点,完全由全节点代理,所有操作都只能通过特定的高层节点代理 完成,并不能提升系统的性能。
文献1(Du M,Chen Q,Ma X.MBFT:A New Consensus Algorithm for ConsortiumBlockchain[J].IEEE Access,2020,8:87665-87675.)中设计了一种新 颖的共识算法。采用了双层的区块链结构,将低层分为多个group,每个group 都连接到高层中。然而,文献1中仅对结构进行了改动,共识算法并未重新设 计。进一步地,LCG中某个group的节点必须通过primary节点广播消息到整个 group,并且依赖primary进行消息验证,却没有针对primary出错的容错方法, 也没有LCG的group中其他节点直接与HCG通讯的通道,同样没有针对网络负 载的优化。
文献2(Karumba S,Kanhere S S,Jurdak R,et al.HARB:A Hypergraph-basedAdaptive Consortium Blockchain for Decentralised Energy Trading[J].IEEEInternet ofThings Journal,2020.)中采用了三层网络结构,分别为underlay, overlay和contract layer。但是在文献2的分层模型中,三层模型更像网络七层 模型的上下层结构,也就是下层未上层提供接口,上层基于下层的服务创建 应用。文献2中的模型直接基于HyperledgerFabric框架,没有对共识算法进行 优化。
文献3(Khalid U,Asim M,Baker T,et al.A decentralized lightweightblockchain-based authentication mechanism for IoT systems[J].ClusterComputing,2020:1-21.)中采用了双层的结构,分为device layer和fog layer,同 类型的设备被分为一个group,例如智能家居设备、智能医院设备等。一个设 备可以连接到距离最近的fog节点。每个fog节点服务多个设备。Fog节点之间 相互通讯和同步。文献3中定义了三种通讯模式,雾节点到设备,设备到设备, 雾节点到雾节点。然而在雾节点-设备之间的通讯之间,设备无法与所有雾节 点联系,在自己目前的雾节点出现错误时没有办法进行容错,因此设备完全 依赖于它所属的雾节点。
文献4(刘炜,李阳,田钊,彭宇飞,佘维.IDDS:一种双链结构传染病数据共 享区块链模型[J/OL].计算机应用研 究:1-6[2021-01-20].https://doi.org/10.19734/j.issn.1001-3695.2020.01.0031.)设计 了双链的方案,分为slow chain和fast chain,在slow chain中分析实时病情,fast chain中快速收集病情信息。文献4中采用DPoS共识算法结合信誉积分的方法, 使用信誉积分作为奖惩机制。整个系统包含三类用户,从内到外分别是医疗 机构节点、疾控中心节点、边缘节点。但是在文献4中,边缘的节点依赖于内 部的节点,并且共识算法并不存在分层结构,没有针对不同层次进行优化。
可以看出,现有技术中存在以下缺点:
(1)目前的区块链系统结构大都是扁平结构,不满足银行各级组织的部 署需求。
(2)目前部分区块链系统采用了双层分层,但是基本都是功能上的分层, 并没有在结构上分层,虽然可以在功能上解耦合,但是无法提升性能。
(3)超级账本和国内自主研发的BCOS等联盟链框架采用的扁平式部署 方法不适用于存在层次等级的银行组织结构。
(4)目前不存在针对PBFT算法在多层模型下的容错优化方案。
因此,本申请实施例提供了一种双层区块链系统,以解决上述问题,如 图1所示,具体包括:
区块链顶层100以及区块链二层200。
其中,区块链顶层100包括至少一个全节点(FullNode),全节点拥有 全功能,并且可以作为半连接节点的代理节点;区块链二层200包括至少一 个半连接节点(semi-connected);半连接节点不参与共识算法,需全节点代 理转发数据;每一个全节点是多个半连接节点的领导节点(Semi-leader),如 图1所示,Full Node Z作为半连接节点SemiNode Z’,Semi Node Z”,Semi Node Z”’的领导节点;FullNode A作为半连接节点SemiNode A’的领导节点; FullNode B作为半连接节点Semi Node B’,Semi Node B”的领导节点。
需要说明的是,Semi-leader在正常情况下会帮semi-connected节点代理转 发其请求。
可选的,在本申请的另一实施例中,区块链顶层100中的全节点之间采 用实用拜占庭容错(Practical Byzantine Fault Tolerant,PBFT)改进的多层拜 占庭容错(Multi-layEr-Byzantine Fault Tolerant,ME-BFT)共识算法。
其中,PBFT起源于1999年,是分布式系统的共识算法,也是目前大部 分联盟链的算法基础,实现了在有限个节点下拜占庭将军问题,可以容忍1/3 的错误节点,也就是在拜占庭节点数量不大于1/3的情况下整个系统可以达到 共识。算法中分为两个角色,主节点和普通节点。主节点轮流担任。在正常 工作时,主节点接受客户端的事物请求,并为该请求设置编号,广播pre-prepare 消息。当原主节点出现错误并且被发现时,其余普通节点会发送view-change 消息,并在view-change过程后选出新的主节点。新的主节点当选时,根据自 己收集到的view-change消息发送new-view消息,让其他节点同步数据。对 于主节点,如果发生宕机、作恶、不反馈、篡改等错误或者恶意行为,会被 follower察觉,从而提出重新选举,切换到新的主节点。
需要说明的是,在本申请的具体实现过程中,区块链顶层100的全节点, 适合部署在银行高可用云平台或者省分行机房。
可选的,在本申请的另一实施例中,区块链二层200中的半连接节点采 用部分视图切换(semi-view change)算法,区块链二层可以直接嵌入区块链 顶层100共识算法中。
需要说明的是,在本申请的具体实现过程中,区块链二层200中的半连 接节点适合部署在网点、营业部等具有网络连接但不具备计算能力和存储能 力的部门。
可选的,在本申请的另一实施例中,在半连接节点所属的全节点存在异 常时,采用部分视图切换算法更换全节点。区块链顶层100中的视图更换协 议和PBFT相同。
在本申请的具体实现过程中,通过算法模块对异常进行检测,算法模块 分为第一算法模块和第二算法模块。
第一算法模块分为三个执行阶段:
第一执行阶段:区块链顶层100每隔第一预设时间,针对每一个全节点, 将第二预设时间内全节点产生的事务信息打包成区块。
其中,第一预设时间由技术人员或相关有权限的工作人员进行预先设置、 更改的,此处不做限定。
同样,第二预设时间由技术人员或相关有权限的工作人员进行预先设置、 更改的,此处不做限定。
需要说明的是,第一预设时间与第二预设时间可以相同也可以不相同。
区块链顶层100将区块发送至每一个半连接节点进行验证,每一个半连 接节点得到验证结果后,广播验证结果。
第二执行阶段:在每一个半连接节点接收到全节点(领导节点)所打包 的区块后,对其进行验证,并检查广播的验证结果,然后判断是进入第三执 行阶段还是对全节点(领导节点)进行验证,或提出对全节点(领导节点) 进行更换。
第三执行阶段:若验证结果表明没有异常(即第二执行阶段未发现问题), 则在第三执行阶段完成对第一执行阶段中全节点(领导节点)所打包的区块 的验证和添加。
若验证结果表明存在异常时(即第二执行阶段发现问题),则调用区块 链二层200中的算法(第二算法模块)对全节点(领导节点)是否异常进行 检测。
若检测结果表明存在异常,则利用区块链二层200中的算法(第二算法 模块)对全节点进行变更。
其中,第二算法模块分为两个部分:
第一部分:实时执行部分。在系统运行的过程中,实时执行部分一直运 行在半连接节点上,对半连接节点所属的全节点(领导节点)的恶意行为进 行检测。
第二部分:semi-view change方法。这个方法可以在任何时候被调用,可 以在第二算法模块中的第一部分中被调用,也可以在第一算法模块中调用。 这个方法由半连接节点和全节点(领导节点)一起执行,将协助第一算法模 块判断出导致系统错误的行为是出现在全节点(领导节点)还是总领导节点, 还是两者都存在,并在第二算法模块中对由全节点(领导节点)出现的恶意 行为(异常)导致系统出错的情况进行纠错。
可以看出,本申请将共识算法针对结构进行优化,达到高吞吐量、低延 迟的效果,并且在本发明所设计的共识算法中,不同于其他已有的文献,低 层节点并不单纯是跟随节点,完全由全节点代理,所有操作都只能通过特定 的高层节点代理完成,而是低层节点在系统正确运行的情况下可以通过特定 高层节点代理完成所有操作,在高层节点作恶或者出错的情况下低层节点可 以绕过代理节点完成视图更换操作。
如图3所示,为对第一算法模块的代码进行举例说明。如图4所示,为对 第二算法模块的代码进行举例说明。
其数据流程:第一算法模块(Algorithm 1)会在第38和第39行调用第二 算法模块(Algorithm 2)并收到第二算法模块(Algorithm 2)的处理结果。
当第二算法模块(Algorithm 2)收到第一算法模块(Algorithm 1)的调用 后,会进入第13行的函数,并在28行反馈处理结果。
由以上方案可知,本申请提供一种双层区块链系统包括:区块链顶层100 以及区块链二层200;其中,区块链顶层100包括至少一个全节点;区块链二 层200包括至少一个半连接节点;半连接节点不参与共识算法,需全节点代理 转发数据;每一个全节点是多个半连接节点的领导节点;区块链顶层100每隔 第一预设时间,针对每一个全节点,将第二预设时间内全节点产生的事务信 息打包成区块;区块链顶层100将区块发送至每一个半连接节点进行验证,每 一个半连接节点得到验证结果后,广播验证结果;若验证结果表明存在异常 时,则调用区块链二层200中的算法对全节点是否异常进行检测;若检测结果 表明存在异常,则利用区块链二层200中的算法对全节点进行变更。从而达到 可以帮助不同能力的节点加入区块链平台的不同层次中,同时每一个层次都 具备解决异常的能力,达到更高的吞吐量和扩展能力的目的。
本申请另一实施例提供了一种共识方法,应用于双层区块链系统,如图2 所示,具体包括:
S201、区块链顶层每隔第一预设时间,针对每一个全节点,将第二预设 时间内全节点产生的事务信息打包成区块。
其中,双层区块链系统包括:区块链顶层和区块链二层;区块链顶层包 括至少一个全节点(Full Node),全节点拥有全功能,并且可以作为半连接 节点的代理节点;区块链二层200包括至少一个半连接节点(semi-connected); 半连接节点不参与共识算法,需全节点代理转发数据;每一个全节点是多个 半连接节点的领导节点(Semi-leader),如图1所示,Full Node Z作为半连 接节点Semi Node Z’,Semi Node Z”,Semi Node Z”’的领导节点;FullNode A 作为半连接节点Semi Node A’的领导节点;FullNode B作为半连接节点Semi Node B’,Semi Node B”的领导节点。
需要说明的是,Semi-leader在正常情况下会帮semi-connected节点代理转 发其请求。
还需要说明的是,第一预设时间由技术人员或相关有权限的工作人员进 行预先设置、更改的,此处不做限定。
同样,第二预设时间由技术人员或相关有权限的工作人员进行预先设置、 更改的,此处不做限定。第一预设时间与第二预设时间可以相同也可以不相 同。
在本申请的具体实现过程中,区块链顶层的全节点,适合部署在银行高 可用云平台或者省分行机房。区块链二层中的半连接节点适合部署在网点、 营业部等具有网络连接但不具备计算能力和存储能力的部门。
S202、区块链顶层将区块发送至每一个半连接节点进行验证,每一个半 连接节点得到验证结果后,广播验证结果。
S203、若验证结果表明没有异常,则完成对区块的验证并进行添加区块。
S204、若验证结果表明存在异常时,则调用区块链二层中的算法对全节 点是否异常进行检测。
S205、若检测结果表明存在异常,则利用区块链二层中的算法对全节点 进行变更。
在本申请的具体实现过程中,通过算法模块对异常进行检测,算法模块 分为第一算法模块和第二算法模块。
第一算法模块分为三个执行阶段:
第一执行阶段:区块链顶层100每隔第一预设时间,针对每一个全节点, 将第二预设时间内全节点产生的事务信息打包成区块。
其中,第一预设时间由技术人员或相关有权限的工作人员进行预先设置、 更改的,此处不做限定。
同样,第二预设时间由技术人员或相关有权限的工作人员进行预先设置、 更改的,此处不做限定。
需要说明的是,第一预设时间与第二预设时间可以相同也可以不相同。
区块链顶层100将区块发送至每一个半连接节点进行验证,每一个半连 接节点得到验证结果后,广播验证结果。
第二执行阶段:在每一个半连接节点接收到全节点(领导节点)所打包 的区块后,对其进行验证,并检查广播的验证结果,然后判断是进入第三执 行阶段还是对全节点(领导节点)进行验证,或提出对全节点(领导节点) 进行更换。
第三执行阶段:若验证结果表明没有异常(即第二执行阶段未发现问题), 则在第三执行阶段完成对第一执行阶段中全节点(领导节点)所打包的区块 的验证和添加。
若验证结果表明存在异常时(即第二执行阶段发现问题),则调用区块 链二层200中的算法(第二算法模块)对全节点(领导节点)是否异常进行 检测。
若检测结果表明存在异常,则利用区块链二层200中的算法(第二算法 模块)对全节点进行变更。
其中,第二算法模块分为两个部分:
第一部分:实时执行部分。在系统运行的过程中,实时执行部分一直运 行在半连接节点上,对半连接节点所属的全节点(领导节点)的恶意行为进 行检测。
第二部分:semi-view change方法。这个方法可以在任何时候被调用,可 以在第二算法模块中的第一部分中被调用,也可以在第一算法模块中调用。 这个方法由半连接节点和全节点(领导节点)一起执行,将协助第一算法模 块判断出导致系统错误的行为是出现在全节点(领导节点)还是总领导节点, 还是两者都存在,并在第二算法模块中对由全节点(领导节点)出现的恶意 行为(异常)导致系统出错的情况进行纠错。
可选的,在本申请的另一实施例中,区块链顶层中的全节点之间采用实 用拜占庭容错(Practical Byzantine Fault Tolerant,PBFT)改进的多层拜占庭 容错(Multi-layEr-Byzantine Fault Tolerant,ME-BFT)共识算法。
可选的,在本申请的另一实施例中,区块链二层中的半连接节点采用部 分视图切换(semi-view change)算法,区块链二层可以直接嵌入区块链顶层 共识算法中。
可选的,在本申请的另一实施例中,在半连接节点所属的全节点存在异 常时,采用部分视图切换算法更换全节点。区块链顶层中的视图更换协议和 PBFT相同。
由以上方案可知,本申请提供一种共识方法:首先,区块链顶层每隔第 一预设时间,针对每一个所述全节点,将第二预设时间内所述全节点产生的 事务信息打包成区块;然后,所述区块链顶层将所述区块发送至每一个半连 接节点进行验证,每一个所述半连接节点得到验证结果后,广播所述验证结 果;若所述验证结果表明存在异常时,则调用区块链二层中的算法对所述全 节点是否异常进行检测;若检测结果表明存在异常,则利用区块链二层中的 算法对全节点进行变更。从而达到可以帮助不同能力的节点加入区块链平台的不同层次中,同时每一个层次都具备解决异常的能力,达到更高的吞吐量 和扩展能力的目的。
在本申请公开的上述实施例中,应该理解到,所揭露的装置和方法,也 可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的, 例如,附图中的流程图和框图显示了根据本公开的多个实施例的装置、方法 和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图 或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、 程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指 令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可 以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基 本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。 也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方 框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现, 或者可以用专用硬件与计算机指令的组合来实现。
另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独 立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形 成一个独立的部分。所述功能如果以软件功能模块的形式实现并作为独立的 产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的 理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技 术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一 个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机, 直播设备,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步 骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等 各种可以存储程序代码的介质。
专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领 域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不 脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将 不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新 颖特点相一致的最宽的范围。

Claims (10)

1.一种双层区块链系统,其特征在于,包括:
区块链顶层以及区块链二层;其中,所述区块链顶层包括至少一个全节点;所述区块链二层包括至少一个半连接节点;所述半连接节点不参与共识算法,需所述全节点代理转发数据;每一个所述全节点是多个所述半连接节点的领导节点;
所述区块链顶层每隔第一预设时间,针对每一个所述全节点,将第二预设时间内所述全节点产生的事务信息打包成区块;
所述区块链顶层将所述区块发送至每一个半连接节点进行验证,每一个所述半连接节点得到验证结果后,广播所述验证结果;
若所述验证结果表明存在异常时,则调用区块链二层中的算法对所述全节点是否异常进行检测;
若检测结果表明存在异常,则利用区块链二层中的算法对全节点进行变更。
2.根据权利要求1所述的双层区块链系统,其特征在于,所述区块链顶层中的全节点之间采用实用拜占庭容错改进的多层拜占庭容错共识算法。
3.根据权利要求2所述的双层区块链系统,其特征在于,所述区块链二层中的半连接节点采用部分视图切换算法,所述区块链二层可以直接嵌入所述区块链顶层的共识算法中。
4.根据权利要求3所述的双层区块链系统,其特征在于,在半连接节点所属的全节点存在异常时,采用部分视图切换算法更换全节点。
5.根据权利要求1所述的双层区块链系统,其特征在于,还包括:
若所述验证结果表明没有异常,则完成对所述区块的验证并进行添加所述区块。
6.一种共识方法,其特征在于,应用于双层区块链系统,包括:
区块链顶层每隔第一预设时间,针对每一个全节点,将第二预设时间内所述全节点产生的事务信息打包成区块;
所述区块链顶层将所述区块发送至每一个半连接节点进行验证,每一个所述半连接节点得到验证结果后,广播所述验证结果;
若所述验证结果表明存在异常时,则调用区块链二层中的算法对所述全节点是否异常进行检测;
若检测结果表明存在异常,则利用区块链二层中的算法对全节点进行变更。
7.根据权利要求6所述的共识方法,其特征在于,所述区块链顶层中的全节点之间采用实用拜占庭容错改进的多层拜占庭容错共识算法。
8.根据权利要求7所述的共识方法,其特征在于,所述区块链二层中的半连接节点采用部分视图切换算法,所述区块链二层可以直接嵌入所述区块链顶层的共识算法中。
9.根据权利要求8所述的共识方法,其特征在于,在半连接节点所属的全节点存在异常时,采用部分视图切换算法更换全节点。
10.根据权利要求6所述的共识方法,其特征在于,还包括:
若所述验证结果表明没有异常,则完成对所述区块的验证并进行添加所述区块。
CN202210211594.5A 2022-03-04 2022-03-04 双层区块链系统及共识方法 Pending CN114584450A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210211594.5A CN114584450A (zh) 2022-03-04 2022-03-04 双层区块链系统及共识方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210211594.5A CN114584450A (zh) 2022-03-04 2022-03-04 双层区块链系统及共识方法

Publications (1)

Publication Number Publication Date
CN114584450A true CN114584450A (zh) 2022-06-03

Family

ID=81778402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210211594.5A Pending CN114584450A (zh) 2022-03-04 2022-03-04 双层区块链系统及共识方法

Country Status (1)

Country Link
CN (1) CN114584450A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114862397A (zh) * 2022-07-06 2022-08-05 国网天津市电力公司培训中心 一种基于双链结构的双解耦区块链分布式方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108763302A (zh) * 2018-04-19 2018-11-06 深圳市网心科技有限公司 区块链共识处理方法、电子装置及计算机可读存储介质
WO2019232789A1 (zh) * 2018-06-08 2019-12-12 北京大学深圳研究生院 一种基于投票的共识方法
CN111355810A (zh) * 2020-03-17 2020-06-30 重庆邮电大学 一种基于信誉与投票机制的改进pbft共识方法
CN111858105A (zh) * 2020-08-26 2020-10-30 电子科技大学 基于改进多层pbft的个人档案许可链管理系统及方法
CN112235379A (zh) * 2020-09-30 2021-01-15 电子科技大学 一种区块链底层共享存储方法
CN113642019A (zh) * 2021-08-16 2021-11-12 中国人民解放军国防科技大学 一种双层分组拜占庭容错共识方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108763302A (zh) * 2018-04-19 2018-11-06 深圳市网心科技有限公司 区块链共识处理方法、电子装置及计算机可读存储介质
WO2019232789A1 (zh) * 2018-06-08 2019-12-12 北京大学深圳研究生院 一种基于投票的共识方法
CN111355810A (zh) * 2020-03-17 2020-06-30 重庆邮电大学 一种基于信誉与投票机制的改进pbft共识方法
CN111858105A (zh) * 2020-08-26 2020-10-30 电子科技大学 基于改进多层pbft的个人档案许可链管理系统及方法
CN112235379A (zh) * 2020-09-30 2021-01-15 电子科技大学 一种区块链底层共享存储方法
CN113642019A (zh) * 2021-08-16 2021-11-12 中国人民解放军国防科技大学 一种双层分组拜占庭容错共识方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114862397A (zh) * 2022-07-06 2022-08-05 国网天津市电力公司培训中心 一种基于双链结构的双解耦区块链分布式方法

Similar Documents

Publication Publication Date Title
CN105159603B (zh) 一种分布式数据存储系统的修复方法
Oggier et al. Byzantine fault tolerance of regenerating codes
CN102411639B (zh) 元数据的多副本存储管理方法和系统
CN114301972B (zh) 一种基于云边协同的区块链节点分级部署方法和系统
CN1317658C (zh) 利用机群节点相互备份的容错方法
CN112003716A (zh) 一种数据中心双活实现方法
CN108319618B (zh) 一种分布式存储系统的数据分布控制方法、系统及装置
WO2012069091A1 (en) Real time database system
CN114584450A (zh) 双层区块链系统及共识方法
CN113132176B (zh) 一种控制边缘节点的方法、节点及边缘计算系统
CN109165122B (zh) 一种提升基于区块链技术实现的应用系统同城多园区部署灾备能力的方法
Utard et al. Data durability in peer to peer storage systems
CN102984009B (zh) 一种基于P2P的VoIP系统容灾备份方法
CN102916830A (zh) 一种资源服务优化配置容错管理实现系统
WO2009113293A1 (ja) コンピュータリンク方法及びコンピュータシステム
CN101668028A (zh) 基于可扩展体系结构的分布式系统及该系统的应用方法
JP3910967B2 (ja) 2重化システム及び多重化制御方法
CN114328036A (zh) 一种硬件故障检测方法、系统及相关设备
CN109144781B (zh) 一种提升基于区块链技术实现的应用系统单园区部署灾备能力的方法
CN111917826A (zh) 一种基于区块链知识产权保护的pbft共识算法
CN101453354A (zh) 一种基于atca架构的高可用性系统
KR101588715B1 (ko) 클러스터링 알고리즘 중심의 의료정보시스템 메커니즘 설계 방법
CN114584474A (zh) 联盟区块链及分层部署方法
CN117221332B (zh) 基于多领导者拜占庭容错共识的高鲁棒性交易打包方法
CN115237682A (zh) 区块链节点故障同步方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination