CN111654393B - 区块链组网方法及系统 - Google Patents

区块链组网方法及系统 Download PDF

Info

Publication number
CN111654393B
CN111654393B CN202010429957.3A CN202010429957A CN111654393B CN 111654393 B CN111654393 B CN 111654393B CN 202010429957 A CN202010429957 A CN 202010429957A CN 111654393 B CN111654393 B CN 111654393B
Authority
CN
China
Prior art keywords
node
consensus
candidate
fault
blockchain
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.)
Active
Application number
CN202010429957.3A
Other languages
English (en)
Other versions
CN111654393A (zh
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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202010429957.3A priority Critical patent/CN111654393B/zh
Publication of CN111654393A publication Critical patent/CN111654393A/zh
Application granted granted Critical
Publication of CN111654393B publication Critical patent/CN111654393B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明提供一种区块链组网方法及系统。该区块链组网方法包括:非故障共识节点关闭与故障共识节点之间的交易共识通路;候补节点与非故障共识节点之间建立交易共识通路以成为新共识节点;与故障共识节点锚定的候补节点与新共识节点建立数据同步通路。本发明可以确保区块链稳定,提高共识效率和节点容量。

Description

区块链组网方法及系统
技术领域
本发明涉及区块链技术领域,具体地,涉及一种区块链组网方法及系统。
背景技术
区块链是一种由多个节点共同维护数据的分布式网络系统,分为公有链、联盟链、私有链三种,其中较为流行的是公有链和联盟链。公有链是一种可用性极高的系统,任意节点出现故障、退出对整个网络的运行影响较小。联盟链则对节点数量有要求,不允许节点随意退出,但在阈值以内的节点出现故障时,系统依然可以正常运行。阈值由共识协议决定,区块链主流的共识协议是拜占庭容错协议,拜占庭容错协议的容错阈值是总节点数量的33%(精确的值是f=(N-1)/3,N是节点数量),如果联盟链有10个节点,那么容错阈值是3,即3个或以内的节点故障时系统依然可以正常运作,4个或以上节点故障时系统才失去服务能力。因此联盟链也具有较高的可用性。
但是,传统的区块链存在如下问题:
1、出现节点级故障时,系统的稳定性有所削弱。
当区块链少于容错阈值的个别节点故障时,虽然区块链并不会陷入失效状态,但是系统参与共识的节点数量变少,系统的稳定性依然有所削弱。
2、节点数量多时共识效率急剧下降,网络所能容纳的节点数量受到限制。
区块链主流的共识协议是拜占庭容错协议,这种协议的共识过程是拜占庭三阶段共识,涉及到全部节点到全部节点的广播,N个节点的网络总的广播次数为2×N2次。N较大时系统整体性能比较低,实践经验中网络节点数量N一般应小于20,N>20时系统的共识效率会急剧降低。这决定了区块链能容许的节点数量是有限的,系统无法允许太多机构加入,限制了区块链的发展规模。
发明内容
本发明实施例的主要目的在于提供一种区块链组网方法及系统,以确保区块链稳定,提高共识效率和节点容量。
为了实现上述目的,本发明实施例提供一种区块链组网方法,区块链中的区块链节点包括共识节点和与共识节点锚定的候补节点,方法包括:
非故障共识节点关闭与故障共识节点之间的交易共识通路;
候补节点与非故障共识节点之间建立交易共识通路以成为新共识节点;
与故障共识节点锚定的候补节点与新共识节点建立数据同步通路。
本发明实施例还提供一种区块链组网系统,区块链中的区块链节点包括共识节点和与共识节点锚定的候补节点,系统包括:
非故障共识节点,用于关闭与故障共识节点之间的交易共识通路;
候补节点,用于与非故障共识节点之间建立交易共识通路以成为新共识节点;
与故障共识节点锚定的候补节点,用于与新共识节点建立数据同步通路。
本发明实施例的区块链组网方法及系统中的非故障共识节点关闭与故障共识节点之间的交易共识通路,候补节点与非故障共识节点之间建立交易共识通路以成为新共识节点,与故障共识节点锚定的候补节点与新共识节点建立数据同步通路,可以确保区块链稳定,提高共识效率和节点容量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中区块链组网方法的流程图;
图2是本发明实施例中区块链组网系统的示意图;
图3是本发明实施例中位于双园区的区块链的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
鉴于目前现有技术的稳定性不足,共识效率低且所能容纳的节点数量受到限制,本发明实施例提供一种区块链组网方法,以确保区块链稳定,提高共识效率和节点容量。以下结合附图对本发明进行详细说明。
图1是本发明一实施例中区块链组网方法的流程图。如图1所示,区块链组网方法包括:
S101:非故障共识节点关闭与故障共识节点之间的交易共识通路。
例如,共有A、B、C和D四个共识节点,当共识节点A故障时,非故障共识节点B、C、和D关闭与故障共识节点A之间的交易共识通路。
在执行S101之前,还包括:区块链节点从网络节点信息表中删除故障共识节点的信息,从共识组中删除故障共识节点的编号。
每个区块链节点均存储有网络节点信息表,共识组和候补队列。网络节点信息表中写有全部区块链节点的节点信息,包括节点编号、IP、节点类型等。共识组中写有共识节点的节点编号,候补队列按候补节点加入区块链的顺序写有候补节点的节点编号。共识节点的数量需要满足拜占庭容错协议的要求,候补节点的数量则不受限制。
S102:候补节点与非故障共识节点之间建立交易共识通路以成为新共识节点。
具体实施时,候补队列中的第一个候补节点与非故障共识节点之间建立交易共识通路,共识节点数量不会减少,以确保共识节点数量稳定,符合拜占庭容错协议的节点数量要求,令区块链具有高可用性。
例如,候补队列中的第一个候补节点A’与非故障共识节点B、C和D之间建立交易共识通路,成为新共识节点A’。此时共有A’、B、C和D四个共识节点。
S103:与故障共识节点锚定的候补节点与新共识节点建立数据同步通路。
具体实施时,S103包括:共识节点(包括新共识节点和非故障共识节点)将候补节点的编号写入共识组,并向非共识节点广播写入编号后的共识组。与故障共识节点锚定的候补节点根据写入编号后的共识组与新共识节点建立数据同步通路。
例如,A’、B、C和D将A’的编号写入共识组,并向区块链中除A’、B、C和D的共识节点广播写入A’编号后的共识组。写入编号后的共识组包括编号A’、B、C和D。与故障共识节点A锚定的候补节点为E、F和G,则E、F和G根据写入编号后的共识组与新共识节点A’建立数据同步通路,E、F和G成为与A’锚定的候补节点。
其中,共识节点和与共识节点锚定的候补节点之间的数据同步通路可以确保候补节点的数据与共识节点的数据一致。当共识节点在达成拜占庭协议,执行交易生成新区块时,会通过数据同步通路将新区块推送给锚定的候补节点。候补节点也可以通过拉取操作获取任意共识节点的特定区块信息。
当候补队列中的第一个候补节点A’为故障共识节点A锚定的候补节点包括A时,由于A故障,所以在执行S101时,A的数据可能与B、C、D的数据不一致。当A的数据与B、C、D的数据不一致时,同步A数据的A’的数据也与B、C、D的数据不一致,此时与A’锚定的其中一个候补节点会在执行监察功能时将A’作为故障共识节点并进行广播,重新执行S101-S103。
共识节点执行交易生成新区块的步骤包括:外部系统向区块链中的一个共识节点发起交易请求,该共识节点将交易请求广播至共识组中的其他共识节点以根据共识算法对交易达成共识,达成共识的共识节点执行交易,生成交易结果。共识节点根据交易的信息和交易结果生成新区块,写入共识节点的本地区块链,同时通过数据同步通路将新区块推送给锚定的候补节点。候补节点在接收到新区块后将其写入本地区块链。其中,当区块链中的一个共识节点无法达成共识,则此共识节点故障,执行S101。
例如,外部系统向区块链中的一个共识节点B发起交易请求,共识节点B将交易请求广播至共识节点A、C和D以根据共识算法对交易达成共识,达成共识的共识节点A、B、C和D执行交易,生成交易结果,根据交易的信息和交易结果生成新区块,A、B、C和D分别将新区块写入本地区块链,同时通过数据同步通路将新区块推送给与自身锚定的候补节点,候补节点在接收到新区块后将其写入本地区块链。当共识节点A无法达成共识时,共识节点A故障,执行S101。
图1所示的区块链组网方法的执行主体为区块链节点,区块链节点包括共识节点和与共识节点锚定的候补节点。由图1所示的流程可知,本发明实施例的区块链组网方法中的非故障共识节点关闭与故障共识节点之间的交易共识通路,候补节点与非故障共识节点之间建立交易共识通路以成为新共识节点,与故障共识节点锚定的候补节点与新共识节点建立数据同步通路,可以在共识节点故障时将候补节点切换为共识节点以确保区块链稳定,提高共识效率和节点容量。公有链中故障节点的退出对整个网络的运行影响较小,而联盟链则对节点数量有要求,不允许节点随意退出;故障的区块链节点对联盟链的影响远大于公有链,相比于公有链,联盟链更容易超过容错阈值,丧失可用性。因此本发明主要应用于联盟链。
图2是本发明实施例中区块链组网系统的示意图。如图2所示,区块链中的区块链节点为共识节点201和候补节点202,共识节点201位于共识组中,候补节点202位于候补队列中。共识节点201之间建立有交易共识通路203,共识节点之间通过交易共识通路203对交易达成共识;共识节点与锚定的候补节点之间建立有数据同步通路204,共识节点通过数据同步通路将新区块推送给锚定的候补节点;各个区块链节点之间建立有节点心跳通路205。区块链节点通过节点心跳通路向区块链中的其他区块链节点广播心跳信息,同时接收其他区块链节点发来的心跳信息,得到全部区块链节点的可用性。当区块链节点持续若干个心跳周期停止对外发送心跳信息,则其他区块链节点认为该区块链节点为故障区块链节点。当故障区块链节点为故障共识节点时,执行S101。
一实施例中,当故障区块链节点为故障候补节点时,还包括:
区块链节点从网络节点信息表中删除故障候补节点的信息,从候补队列中删除故障候补节点的编号;与故障候补节点锚定的共识节点从锚定关系表中删除故障候补节点的编号,关闭与故障候补节点之间的数据同步通路。
例如,当候补节点A’故障时,区块链中除A’之外的节点从各自的网络节点信息表中删除A’的信息,从各自的候补队列中删除A’的编号,与A’锚定的共识节点A还从锚定关系表中删除A’的编号,关闭与A’之间的数据同步通路。
当故障共识节点排除故障重新加入区块链时,将作为待组网节点加入候补队列,成为候补节点。一实施例中,待组网节点加入区块链网络的步骤包括:
1、待组网节点从区块链中的一个共识节点或区块链中的一个候补节点中获取网络节点信息表以将待组网节点信息广播至网络节点信息表中的区块链节点;
例如,待组网节点A’从区块链中的一个共识节点或区块链中的一个候补节点中获取网络节点信息表以将A’信息广播至网络节点信息表中的区块链节点(即区块链中的全部区块链节点)。
2、网络节点信息表中的区块链节点将待组网节点信息中待组网节点的编号加入候补队列并与待组网节点建立节点心跳通路。
例如,区块链节点将A’信息中的A’的编号加入候补队列,每个区块链节点均与A’建立节点心跳通路。
其中,候补节点位于候补队列,将待组网节点的编号加入候补队列,即将待组网节点作为候补节点加入候补队列的末尾,不改变共识节点的数量,因此共识效率不会因区块链节点数量的增加而降低。网络节点信息表中的区块链节点还将待组网节点信息添加至网络节点信息表中。
3、待组网节点从共识节点中获取锚定关系表以与锚定关系表中锚定的候补节点最少的共识节点建立数据同步通路。
其中,每个共识节点均存储有锚定关系表,锚定关系表中写有与共识节点锚定的所有候补节点的节点编号。
例如,共识节点A、B、C和D中的A锚定的候补节点的数量最少,则A’与A建立数据同步通路。
待组网节点作为新加入的候补节点需要同步大量数据,此时新加入的候补节点会将需要同步的数据分为多份并封装为数据同步请求,向其他区块链节点发出数据同步请求。收到数据同步请求的区块链节点会将对应的数据片返回至新加入的候补节点,新加入的候补节点拼接数据片,得到需要同步的数据。故障候补节点在故障掉线后重新加入区块链网络后也会进行数据同步。
例如,新加入的候补节点将需要同步的数据分为五份,分别封装为五个数据同步请求。将第一个数据同步请求发送至第一个区块链节点,将第二个数据同步请求发送至第二个区块链节点,将第三个数据同步请求发送至第三个区块链节点,将第四个数据同步请求发送至第四个区块链节点,将第五个数据同步请求发送至第五个区块链节点。收到数据同步请求的区块链节点会返回数据同步请求对应的数据片。新加入的候补节点接收来自五个区块链节点的五个数据片,拼接五个数据片得到需要同步的数据。通过向不同的区块链节点请求不同的数据可以提高数据同步速度。
本发明还设有节点监察机制定时监察共识节点是否故障。一实施例中,判断故障共识节点的步骤还包括:
候补节点定时从区块链中的一个非锚定的共识节点中获取区块链信息;其中,区块链信息包括区块链高度和哈希值。
当候补节点的区块链信息与区块链中的一个非锚定的共识节点的区块链信息不一致时,候补节点从锚定的共识节点和其他非锚定的共识节点中获取区块链信息;
当其他非锚定的共识节点的区块链信息均一致,但其他非锚定的共识节点的区块链信息与锚定的共识节点的区块链信息不一致时,表明锚定的共识节点出现故障,候补节点将锚定的共识节点作为故障共识节点。
例如,与共识节点A锚定的候补节点A’定时从共识节点B中获取区块链信息。当A’的区块链信息与B的区块链信息不一致时,A’分别从A以及共识节点C和D中获取它们各自的区块链信息。当C的区块链信息和D的区块链信息一致且C的区块链信息或D的区块链信息与A的区块链信息不一致时,A’将A作为故障共识节点。
一实施例中,候补节点将锚定的共识节点作为故障共识节点之后,还包括:
候补节点发起举报操作,将锚定的共识节点的编号广播至区块链中该候补节点以外的区块链节点;
该候补节点以外的区块链节点根据该编号获取该共识节点的区块链信息;
当该共识节点的区块链信息与其他区块链节点的区块链信息不一致时,该候补节点以外的区块链节点将该共识节点作为故障共识节点,执行S101。
例如,当A’将A作为故障共识节点之后,A’发起举报操作,将A的编号广播至区块链中A’以外的区块链节点。A’以外的区块链节点根据A的编号获取A的区块链信息。当A’以外的区块链节点的区块链信息与A的区块链信息不一致时,A’以外的区块链节点将A作为故障共识节点,执行S101。
现有技术还存在不能在双园区的数据中心内实现应对园区级灾难的系统高可用的问题。在实际运作中,企业会在其数据中心搭建联盟链(区块链),在同一个数据中心园区的不同的服务器上运行不同的区块链节点。当宕机服务器的数量不超过容错阈值时,联盟链依然能正常运作。但是,如果出现园区级灾难,如电力故障、网络故障、误操作导致整个园区所有服务器宕机时,无论一个联盟链是由多少个区块链节点组成,它都会失去可用性。为了提高数据中心的可靠性,一般会采用双园区的形式建立数据中心。数据中心由两个供电、网络独立的机房组成,一个园区出现园区级灾难时,另外一个园区依然能正常工作,保证信息服务的高可用。但是,传统的联盟链实现方案并不能利用双园区机制实现高可用,因为一般的方案是将节点平均分配到两个园区,每个园区50%。任意园区发生园区级灾难都会导致联盟链失去50%节点,超过了容错阈值,联盟链同样会丧失可用性。
图3是本发明实施例中位于双园区的区块链的示意图。如图3所示,该区块链一共有10个区块链节点,其中4个共识节点,6个候补节点,平均部署在A园区和B园区上,每个园区存在2个共识节点,3个候补节点。当A园区出现园区级灾难时,B园区会基于动态组网策略将2个候补节点调整为共识节点,依然满足4个共识节点的要求,从而保持区块链和数据中心的可用性,实现了应对园区级灾难的高可用。
根据拜占庭容错协议,共识节点数量N=4时,容错数量f=(N-1)/3=1,区块链至少要3个共识节点为可用共识节点。因此本发明最大可支持7个区块链节点同时失效。
作为对比,同样包含10个区块链节点的传统区块链架构中的10个区块链节点均为共识节点,N=10,容错数量f=(N-1)/3=3,仅能支持3个区块链节点同时失效,可见本发明的可用性远比节点数量相同的传统区块链架构要高。
这一点可以通过量化分析进一步证明。设区块链节点的故障是独立事件,若一个区块链节点故障的概率为E,那么N个区块链节点的网络中有f个或f个以上区块链节点同时故障的概率为
Figure BDA0002500183620000081
这也就是区块链失去可用性的概率。设E=1%,则拥有10个区块链节点的传统区块链失去可用性的概率为P4=2.00128E-06,而拥有10个区块链节点(4个共识节点、6个候补节点)的本发明失去可用性的概率为P8=4.42036E-15。由此可见,以10个区块链节点为例,本发明将区块链的可用性大幅度提高了9个数量级。
此外,根据拜占庭容错算法的三阶段共识流程,对于一笔交易,共识节点间需要进行的网络通讯次数为:CN=(N-1)+N×(N-1)×2=2×N2-N-1,网络通讯次数CN越大,表示区块链达成一次共识所耗费的网络资源越多、时间越长、效率也越低。本发明示例中的N=4,因此C4=27;而传统的区块链架构中N=10,C10=189,因此本发明节省了网络资源时间,效率也高于传统区块链。
当区块链节点的数量N进一步增长时,传统区块链的网络通讯次数CN会随着区块链节点的数量呈指数级增长,最终导致区块链达成交易共识需要的时间太长而无法适应于企业的应用场合,而本发明的网络通讯次数CN不依赖于总体区块链节点的数量,而是取决于共识节点的数量。当共识节点的数量不变时,网络通讯次数CN保持为一个常量,因此本发明可以支持的区块链节点的数量远远超过传统区块链。
综上,本发明实施例的区块链组网方法中的非故障共识节点关闭与故障共识节点之间的交易共识通路,候补节点与非故障共识节点之间建立交易共识通路以成为新共识节点,与故障共识节点锚定的候补节点与新共识节点建立数据同步通路,可以在共识节点故障时将候补节点切换为共识节点以确保区块链稳定,提高共识效率和节点容量。另外,当本申请部署于双园区组成的数据中心时,可应对园区级灾难,保持高可用。
基于同一发明构思,本发明实施例还提供了一种区块链组网系统,由于该系统解决问题的原理与区块链组网方法相似,因此该系统的实施可以参见方法的实施,重复之处不再赘述。
如图2所示,区块链中的区块链节点包括共识节点201和与共识节点锚定的候补节点202,区块链组网系统包括:
非故障共识节点,用于关闭与故障共识节点之间的交易共识通路;
候补节点,用于与非故障共识节点之间建立交易共识通路以成为新共识节点;
与故障共识节点锚定的候补节点,用于与新共识节点建立数据同步通路。
在其中一种实施例中,候补节点位于候补队列,系统还包括:
待组网节点,用于:从区块链中的一个共识节点或区块链中的一个候补节点中获取网络节点信息表以将待组网节点信息广播至网络节点信息表中的区块链节点;从共识节点中获取锚定关系表以与锚定关系表中锚定的候补节点最少的共识节点建立数据同步通路;
区块链节点用于将待组网节点信息中待组网节点的编号加入候补队列并与待组网节点建立节点心跳通路。
在其中一种实施例中,候补节点包括获取模块,用于当候补节点的区块链信息与区块链中的一个非锚定的共识节点的区块链信息不一致时,从锚定的共识节点和其他非锚定的共识节点中获取区块链信息;
候补节点还包括故障判定模块,用于当其他非锚定的共识节点的区块链信息与锚定的共识节点的区块链信息不一致时,将锚定的共识节点作为故障共识节点。
在其中一种实施例中,候补节点还包括广播模块,用于:将锚定的共识节点的编号广播至区块链中该候补节点以外的区块链节点;
区块链中该候补节点以外的区块链节点用于:根据该编号获取该共识节点的区块链信息;当该共识节点的区块链信息与其他区块链节点的区块链信息不一致时,将该共识节点作为故障共识节点。
在其中一种实施例中,还包括:
与故障候补节点锚定的共识节点,用于从锚定关系表和候补队列中删除故障候补节点的编号,关闭与故障候补节点之间的数据同步通路。
综上,本发明实施例的区块链组网系统中的非故障共识节点关闭与故障共识节点之间的交易共识通路,候补节点与非故障共识节点之间建立交易共识通路以成为新共识节点,与故障共识节点锚定的候补节点与新共识节点建立数据同步通路,可以在共识节点故障时将候补节点切换为共识节点以确保区块链稳定,提高共识效率和节点容量。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的各种说明性的逻辑块,或单元,或装置都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。

Claims (8)

1.一种区块链组网方法,其特征在于,所述区块链中的区块链节点包括共识节点和与所述共识节点锚定的候补节点,每个区块链节点均存储有网络节点信息表、 共识组和候补队列,所述方法包括:
非故障共识节点关闭与故障共识节点之间的交易共识通路;
候补节点与所述非故障共识节点之间建立交易共识通路以成为新共识节点;
所述新共识节点和与所述故障共识节点锚定的候补节点建立数据同步通路;
当所述故障共识节点排除故障重新加入区块链时,将作为待组网节点加入候补队列,成为候补节点;
所述候补节点位于所述候补队列,所述方法还包括:
待组网节点从所述区块链中的一个共识节点或所述区块链中的一个候补节点中获取所述网络节点信息表以将待组网节点信息广播至所述网络节点信息表中的区块链节点;
所述区块链节点将所述待组网节点信息中待组网节点的编号加入所述候补队列并与所述待组网节点建立节点心跳通路;
所述待组网节点从所述共识节点中获取锚定关系表以与所述锚定关系表中锚定的候补节点最少的共识节点建立数据同步通路。
2.根据权利要求1所述的区块链组网方法,其特征在于,还包括:
当所述候补节点的区块链信息与所述区块链中的一个非锚定的共识节点的区块链信息不一致时,所述候补节点从锚定的共识节点和其他非锚定的共识节点中获取区块链信息;
当所述其他非锚定的共识节点的区块链信息与所述锚定的共识节点的区块链信息不一致时,所述候补节点将锚定的共识节点作为所述故障共识节点。
3.根据权利要求2所述的区块链组网方法,其特征在于,还包括:
所述候补节点将锚定的共识节点的编号广播至所述区块链中该候补节点以外的区块链节点;
所述区块链中该候补节点以外的区块链节点根据该编号获取该共识节点的区块链信息;
当该共识节点的区块链信息与其他区块链节点的区块链信息不一致时,所述区块链中该候补节点以外的区块链节点将该共识节点作为所述故障共识节点。
4.根据权利要求1所述的区块链组网方法,其特征在于,还包括:
与故障候补节点锚定的共识节点从所述锚定关系表和所述候补队列中删除故障候补节点的编号,关闭与所述故障候补节点之间的数据同步通路。
5.一种区块链组网系统,其特征在于,所述区块链中的区块链节点包括共识节点和与所述共识节点锚定的候补节点,每个区块链节点均存储有网络节点信息表、 共识组和候补队列,所述系统包括:
非故障共识节点,用于关闭与故障共识节点之间的交易共识通路;
候补节点,用于与所述非故障共识节点之间建立交易共识通路以成为新共识节点;
与所述故障共识节点锚定的候补节点,用于与所述新共识节点建立数据同步通路;
当所述故障共识节点排除故障重新加入区块链时,将作为待组网节点加入候补队列,成为候补节点;
所述候补节点位于候补队列,所述系统还包括:
待组网节点,用于:从所述区块链中的一个共识节点或所述区块链中的一个候补节点中获取网络节点信息表以将待组网节点信息广播至所述网络节点信息表中的区块链节点;从所述共识节点中获取锚定关系表以与所述锚定关系表中锚定的候补节点最少的共识节点建立数据同步通路;
所述区块链节点用于将所述待组网节点信息中待组网节点的编号加入所述候补队列并与所述待组网节点建立节点心跳通路。
6.根据权利要求5所述的区块链组网系统,其特征在于:
所述候补节点包括获取模块,用于当所述候补节点的区块链信息与所述区块链中的一个非锚定的共识节点的区块链信息不一致时,从锚定的共识节点和其他非锚定的共识节点中获取区块链信息;
所述候补节点还包括故障判定模块,用于当所述其他非锚定的共识节点的区块链信息与所述锚定的共识节点的区块链信息不一致时,将锚定的共识节点作为所述故障共识节点。
7.根据权利要求6所述的区块链组网系统,其特征在于:
所述候补节点还包括广播模块,用于将锚定的共识节点的编号广播至所述区块链中该候补节点以外的区块链节点;
所述区块链中该候补节点以外的区块链节点用于:根据该编号获取该共识节点的区块链信息;当该共识节点的区块链信息与其他区块链节点的区块链信息不一致时,将该共识节点作为所述故障共识节点。
8.根据权利要求5所述的区块链组网系统,其特征在于,还包括:
与故障候补节点锚定的共识节点,用于从所述锚定关系表和所述候补队列中删除故障候补节点的编号,关闭与所述故障候补节点之间的数据同步通路。
CN202010429957.3A 2020-05-20 2020-05-20 区块链组网方法及系统 Active CN111654393B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010429957.3A CN111654393B (zh) 2020-05-20 2020-05-20 区块链组网方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010429957.3A CN111654393B (zh) 2020-05-20 2020-05-20 区块链组网方法及系统

Publications (2)

Publication Number Publication Date
CN111654393A CN111654393A (zh) 2020-09-11
CN111654393B true CN111654393B (zh) 2023-01-06

Family

ID=72345922

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010429957.3A Active CN111654393B (zh) 2020-05-20 2020-05-20 区块链组网方法及系统

Country Status (1)

Country Link
CN (1) CN111654393B (zh)

Families Citing this family (1)

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

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108134706A (zh) * 2018-01-02 2018-06-08 中国工商银行股份有限公司 区块链多活高可用系统、计算机设备以及方法
CN109688012A (zh) * 2018-12-29 2019-04-26 杭州趣链科技有限公司 一种联盟链节点热备切换的方法
CN110572287A (zh) * 2019-09-05 2019-12-13 腾讯科技(深圳)有限公司 数据容灾方法、装置、计算机设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111630826B (zh) * 2019-06-05 2022-07-29 创新先进技术有限公司 共识系统和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108134706A (zh) * 2018-01-02 2018-06-08 中国工商银行股份有限公司 区块链多活高可用系统、计算机设备以及方法
CN109688012A (zh) * 2018-12-29 2019-04-26 杭州趣链科技有限公司 一种联盟链节点热备切换的方法
CN110572287A (zh) * 2019-09-05 2019-12-13 腾讯科技(深圳)有限公司 数据容灾方法、装置、计算机设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
区块链共识算法的发展现状与展望;袁勇等;《自动化学报》;20180927(第11期);第93-104页 *

Also Published As

Publication number Publication date
CN111654393A (zh) 2020-09-11

Similar Documents

Publication Publication Date Title
CN111475576B (zh) 基于区块链的分布式数据库存储方法及系统
EP3279794B1 (en) Time-based node election method and apparatus
US9054958B2 (en) System and method for reducing information loss in an aggregated information handling system
JP2019513259A (ja) 高可用性サーバクラスタを拡張する方法及び装置
US9917884B2 (en) File transmission method, apparatus, and distributed cluster file system
CN107453929B (zh) 集群系统自构建方法、装置及集群系统
US11068499B2 (en) Method, device, and system for peer-to-peer data replication and method, device, and system for master node switching
CN106933843B (zh) 数据库心跳检测方法以及装置
CN109173270B (zh) 一种游戏服务系统和实现方法
CN102984501A (zh) 一种网络视频录像集群系统
US20060117101A1 (en) Node discovery and communications in a network
WO2016177130A1 (zh) 通讯节点的选择方法及装置
CN111552701B (zh) 确定分布式集群中数据一致性的方法及分布式数据系统
CN109391691A (zh) 一种单节点故障下nas服务的恢复方法及相关装置
CN106230622B (zh) 一种集群实现方法及装置
CN105827678A (zh) 一种基于高可用架构下的通信方法和节点
US8676751B2 (en) High availability database systems and methods
CN111654393B (zh) 区块链组网方法及系统
CN104468302A (zh) 一种令牌的处理方法、装置及消息处理集群
CN104052799B (zh) 一种利用资源环实现高可用存储的方法
US20200412603A1 (en) Method and system for managing transmission of probe messages for detection of failure
CN115292340B (zh) 基于分布式网络编码的区块链存储优化方法及装置
CN104079663A (zh) 分布式实时同步网络系统及其通告数据的方法
CN111796768B (zh) 分布式服务协调方法、装置及系统
CN113010337B (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
GR01 Patent grant
GR01 Patent grant