CN113014635A - 区块链系统的节点类型划分方法、装置及区块链系统 - Google Patents

区块链系统的节点类型划分方法、装置及区块链系统 Download PDF

Info

Publication number
CN113014635A
CN113014635A CN202110195468.0A CN202110195468A CN113014635A CN 113014635 A CN113014635 A CN 113014635A CN 202110195468 A CN202110195468 A CN 202110195468A CN 113014635 A CN113014635 A CN 113014635A
Authority
CN
China
Prior art keywords
node
block
information
verification
nodes
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
CN202110195468.0A
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.)
Zhuo Erzhi Lian Wuhan Research Institute Co Ltd
Original Assignee
Zhuo Erzhi Lian Wuhan Research Institute Co Ltd
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 Zhuo Erzhi Lian Wuhan Research Institute Co Ltd filed Critical Zhuo Erzhi Lian Wuhan Research Institute Co Ltd
Priority to CN202110195468.0A priority Critical patent/CN113014635A/zh
Publication of CN113014635A publication Critical patent/CN113014635A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/104Peer-to-peer [P2P] networks
    • H04L67/1042Peer-to-peer [P2P] networks using topology management mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

本发明实施例公开了一种区块链系统的节点类型划分方法、装置及区块链系统,所述方法包括:获取备选节点基于共识机制对存储在存储到区块链上的区块信息的验证参与状况信息;根据所述验证参与状况信息,将区块链系统中区块节点至少划分为监督节点和普通节点;其中,所述监督节点,用于广播待存储到区块链上的区块信息;所述普通节点,至少用于基于共识机制对所述监督节点广播的待存储到区块链上的区块信息进行验证。

Description

区块链系统的节点类型划分方法、装置及区块链系统
技术领域
本发明涉及网络技术领域,尤其涉及区块链系统的节点类型划分方法、装置及区块链系统。
背景技术
区块链系统中进行可信节点的选取时,通常采用共识算法。
共识算法是区块链系统的核心算法,主要分为三类:POW(Proof of Work,工作量证明),POS(PROOF OF STAKE,权益证明)和PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错算法)。其中,POW和POS主要运用在公有链中,该类算法需要算力消耗过大,在高交易量和低成本需求的联盟链中并不适用,而PBFT算法则可以很好地适应该场景。
但是,当区块链系统中的节点较多时,例如,联盟链的应用场景,PBFT算法可能表现出一些不足,如,PBFT算法通过共识选取无法判断主节点是否为错误节点,而通过主节点轮询判断错误节点耗时较长,导致系统效率较低,且可能给系统的安全性带来严重隐患。
发明内容
有鉴于此,本发明实施例期望提供一种区块链系统的节点类型划分方法、装置及区块链系统。
第一方面,本发明实施例提供了一种区块链系统的节点类型划分方法,所述方法包括:
获取备选节点基于共识机制对存储在存储到区块链上的区块信息的验证参与状况信息;
根据所述验证参与状况信息,将区块链系统中区块节点至少划分为监督节点和普通节点;其中,所述监督节点,用于广播待存储到区块链上的区块信息;所述普通节点,至少用于基于共识机制对所述监督节点广播的待存储到区块链上的区块信息进行验证。
上述方案中,所述根据所述验证参与状况信息,将区块链系统中区块节点至少划分为监督节点和普通节点,包括:
根据所述验证参与状况信息,确定所述备选节点的信誉值;
根据所述信誉值,将区块链系统中区块节点至少划分为监督节点和普通节点。
上述方案中,所述根据所述信誉值,将区块链系统中区块节点至少划分为监督节点和普通节点,包括:
将所述信誉值大于预设阈值的区块节点,确定为优节点;
将满足第一预设条件的优节点,确定为所述监督节点;
将除所述监督节点以外的区块节点,确定为普通节点。
上述方案中,所述将满足第一预设条件的优节点,确定为所述监督节点,包括如下至少之一:
将所述信誉值最大的优节点,确定为所述监督节点;
基于所述信誉值和权重,确定一所述优节点作为所述监督节点,其中,所述权重为预设的将所述区块节点确定为监督节点的概率。
上述方案中,所述验证参与状况信息包括以下至少之一:
验证参与信息,用于标识是否参与验证;
验证正确性信息,用于标识对区块信息验证的正确性;
验证及时性信息,用于标识对区块信息验证的及时性。
上述方案中,所述根据所述验证参与状况信息,确定所述备选节点的信誉值,包括以下至少之一:
若所述验证参与信息为指示参与验证,则基于第一调整值对所述区块节点的信誉值进行更新;
若所述验证参与信息为指示不参与验证,则将所述区块节点的信誉值更新为预设最小信誉值,所述预设最小信誉值用于指示不将所述区块节点确定为监督节点;
若所述验证正确性信息为指示验证正确,且所述验证及时性信息为指示验证及时,则基于第二调整值对所述区块节点的信誉值进行更新;
若所述验证正确性信息为指示验证正确,且所述验证及时性信息为指示验证不及时,则基于第三调整值对所述区块节点的信誉值进行更新;
若所述验证正确性信息为指示验证错误,则将所述区块节点的信誉值更新为所述预设最小信誉值。
第二方面,本发明实施例提供了一种区块链系统的节点类型划分装置,所述装置包括:
获取单元,用于获取备选节点基于共识机制对存储在存储到区块链上的区块信息的验证参与状况信息;
划分单元,用于根据所述验证参与状况信息,将区块链系统中区块节点至少划分为监督节点和普通节点;其中,所述监督节点,用于广播待存储到区块链上的区块信息;所述普通节点,至少用于基于共识机制对所述监督节点广播的待存储到区块链上的区块信息进行验证。
第三方面,本发明实施例提供了一种区块链系统,包括:
监督节点,为根据对存储在存储到区块链上的区块信息的验证参与状况信息从区块链系统的区块节点中选择的,用于对待存储到区块链上的待存储到区块链上的区块信息进行广播;
普通节点,为除所述监督节点以外的所述区块节点,至少与所述监督节点连接,至少用于基于共识机制对所述监督节点广播的待存储到区块链上的区块信息进行验证。
第四方面,本发明实施例提供了一种节点,所述节点包括:
存储器,用于执行可执行指令;
处理器,用于执行所述存储器中存储的所述可执行指令时,能够实现上述任一项提供的方法。
第五方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被执行后,能够实现上述任一项提供的方法。
本发明实施例根据备选节点基于共识机制对历史区块信息的验证参与状况信息,将区块链系统中区块节点至少划分为监督节点和普通节点,并在后续区块信息的验证过程中,使监督节点用于广播待存储到区块链上的区块信息,普通节点至少用于基于共识机制对监督节点广播的待存储到区块链上的区块信息进行验证。本发明实施例采用信誉值模型,基于共识机制对存储在存储到区块链上的区块信息的验证参与状况信息确定区块节点的信誉值,并进一步直接基于信誉值确定相对可信的区块节点作为监督节点,相对于传统PBFT算法采用的主节点轮询方式,无需通过轮询所有区块节点轮询来确定相对可信节点,减少了计算量,提高了共识验证效率。
附图说明
图1为本发明实施例提供的第一种区块链系统的节点类型划分方法的流程示意图;
图2为本发明实施例提供的区块链系统的结构示意图;
图3为本发明实施例提供的第二种区块链系统的节点类型划分方法的流程示意图;
图4为本发明实施例提供的第三种区块链系统的节点类型划分方法的流程示意图;
图5为原PBFS算法的消息处理过程示意图;
图6为本发明实施例提供的区块链系统的节点类型划分装置的结构示意图;
图7为本发明实施例提供的第四种区块链系统的节点类型划分方法的流程示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。
如图1所示,本发明实施例的一种区块链系统的节点类型划分方法,包括:
步骤S101:获取备选节点基于共识机制对存储在存储到区块链上的区块信息的验证参与状况信息;
步骤S102:根据所述验证参与状况信息,将区块链系统中区块节点至少划分为监督节点和普通节点;其中,所述监督节点,用于广播待存储到区块链上的待存储到区块链上的区块信息;所述普通节点,至少用于基于共识机制对所述监督节点广播的所述待存储到区块链上的区块信息进行验证。
本发明实施例的区块链系统的节点类型划分方法,可应用于包括多个区块节点的区块链系统。
在本发明实施例中,以如图2所示的区块链系统为例,对该区块链系统的节点类型划分进行说明。该区块链系统包括区块节点1、区块节点2……和区块节点N,一共N个区块节点,N个区块节点通过网络通信的形式连接,每个区块节点为接入网络中的计算设备,如服务器、用户终端等,区块节点和区块节点之间可进行点对点通信。
在上述步骤S101中,获取备选节点基于共识机制对存储在存储到区块链上的区块信息的验证参与状况信息。具体地,区块链系统基于存储在存储到区块链上的区块信息验证过程中各区块节点的参与状况,统计各区块节点的验证参与状况信息。
在本实施例中,区块链包括一系列按照产生的时间先后顺序相互接续的区块,区块中记录了区块信息。存储在存储到区块链上的区块信息为存储在区块链上的区块中的区块信息,待存储到区块链上的区块信息为待基于共识机制进行验证以存储至区块链上的区块中的区块信息。其中,存储在存储到区块链上的区块信息和待存储到区块链上的区块信息的具体内容可根据实际的业务场景而确定,例如,可以为交易记录、供区块节点的状态机执行的指令等。
所述验证参与状况信息至少包括两类,分别是:
第一类信息:指示对应区块节点是否有参与基于共识机制的验证;
第二类信息:指示对应区块节点参与基于共识机制验证得到的验证结果正确与否。
在本实施例中,根据实际应用的需要,备选节点包括区块链系统的部分或全部区块节点。例如,备选节点包括除已经被确定为错误区块节点以外的区块链系统中的区块节点;备选节点包括预设的区块链系统中的部分区块节点;备选节点包括区块链系统中的所有区块节点。
在一个实施例中,区块链系统基于存储在存储到区块链上的区块信息验证过程中各区块节点的参与状况,统计各区块节点的验证参与状况信息,并进一步基于验证参与状况信息,选择一个合适的区块节点作为监督节点,使监督节点用于广播待存储到区块链上的区块信息;以及,将除监督节点以外的区块节点作为普通节点,使普通节点至少用于基于共识机制对监督节点广播的待存储到区块链上的区块信息进行验证。
具体地,以如图2所示的区块链系统为例,区块链系统基于存储在存储到区块链上的区块信息的验证过程中各区块节点的参与状况,统计的各区块节点的验证参与状况信息。例如,获取的区块节点i参与存储在存储到区块链上的区块信息的验证过程的验证参与状况信息,包括:
区块节点i的第一类信息ai
区块节点i的第二类信息bi
其中,i表示区块链系统中区块节点的编号,i=1,……,N。
在本实施例中,共识机制包括PoW(Proof of Work,工作量证明)、PoS(Proof ofStake,权益证明)、DPoS(Delegate Proof of Stake,委托权益证明)、PBFT(PracticalByzantine Fault Tolerance,实用拜占庭容错算法)等。
在上述步骤S102中,根据所述验证参与状况信息,将区块链系统中区块节点至少划分为监督节点和普通节点;其中,所述监督节点,用于广播待存储到区块链上的区块信息;所述普通节点,至少用于基于共识机制对所述监督节点广播的所述待存储到区块链上的区块信息进行验证。
在一个实施例中,基于获取的各区块节点参与存储在存储到区块链上的区块信息的验证过程的验证参与状况信息,确定一个区块节点作为监督节点,并确定除监督节点以外的区块节点为普通节点。
在一个实施例中,首先,确定满足作为监督节点条件的区块节点,包括如下至少之一:
区块节点参与存储在存储到区块链上的区块信息的验证参与状况信息的第一类信息指示该区块节点有参与基于共识机制的验证;
区块节点参与存储在存储到区块链上的区块信息的验证参与状况信息的第二类信息指示该区块节点参与基于共识机制验证得到的验证结果正确。
其次,若存在多个满足作为监督节点条件的区块节点,则在该多个区块节点中按照如下方式之一确定一个区块节点作为监督节点:
随机选择一个区块节点作为监督节点;
将最近一次曾作为监督节点的区块节点作为监督节点;
根据预设优先级,选择一个优先级最高的区块节点作为监督节点。
在另一个实施例中,根据验证参与状况信息包括的第一类信息,和/或,第二类信息,分别为每个区块节点确定一个用于表征区块节点可信度的信誉值,以基于该信誉值确定监督节点。
具体地,基于区块节点参与存储在存储到区块链上的区块信息的验证参与状况信息的具体指示,对区块节点进行打分,并基于打分确定区块节点的信誉值。
例如,区块节点i参与存储在存储到区块链上的区块信息的验证过程的验证参与状况信息包括:
区块节点i的第一类信息ai
区块节点i的第二类信息bi
若第一类信息指示区块节点i有参与基于共识机制的验证,则为区块节点i打分为A1,若第一类信息指示区块节点i未参与基于共识机制的验证,则为区块节点i打分为A2;
若第二类信息指示区块节点i参与基于共识机制验证得到的验证结果正确,则为区块节点i打分为B1,若第二类信息指示参与基于共识机制验证得到的验证结果错误,则为区块节点i打分为B2。
那么,基于第一类信息对应的打分(A1或A2)和第二类信息对应的打分(B1或B2)进行加权求和,确定的加权求和的结果用于对区块节点i的信誉值进行更新。
最终,基于信誉值选取一个区块节点作为监督节点。
基于上述方法确定监督节点和普通节点后,区块链系统控制监督节点用于广播待存储到区块链上的区块信息;以及,控制普通节点基于共识机制对监督节点广播的待存储到区块链上的区块信息进行验证,并最终确定是否对待存储到区块链上的区块信息进行处理,例如,存储待存储到区块链上的区块信息、执行待存储到区块链上的区块信息等。
本发明实施例根据备选节点基于共识机制对历史区块信息的验证参与状况信息,将区块链系统中区块节点至少划分为监督节点和普通节点,并在后续区块信息的验证过程中,使监督节点用于广播待存储到区块链上的区块信息,普通节点至少用于基于共识机制对监督节点广播的待存储到区块链上的区块信息进行验证。本发明实施例采用信誉值模型,基于共识机制对存储在存储到区块链上的区块信息的验证参与状况信息,确定区块节点的信誉值,并进一步直接基于信誉值确定相对可信的区块节点作为监督节点,相对于传统PBFT算法采用的主节点视图轮询方式,无需通过轮询所有区块节点轮询来确定相对可信节点,减少了计算量,提高了共识验证效率。
在一个实施例中,上述区块链系统中,用于确定监督节点和普通节点的主体,可以为在区块链系统中专门设置的控制区块节点;也可以为上一个监督节点,例如,区块信息n的验证过程中,用于广播区块信息n的监督节点为区块节点L,则通过区块节点L,确定区块信息n+1验证过程中用于广播区块信息n+1的监督节点K,当然,在实际应用过程中,区块节点L和区块节点K可为同一区块节点;还可以为主节点,例如,在对区块链上的第一个区块信息进行验证时,可以以主节点视图轮询的方式确定主节点,该主节点基于第一个区块信息的验证参与状况信息,确定一个监督节点。
在一个实施例中,确定用于广播下一个区块信息的监督节点后,可在区块链网络中广播该监督节点信息,各区块节点接收广播的监督节点信息,并在区块链中更新存储该监督节点信息。
在一个实施例中,如图3所示,上述步骤S102,包括:
步骤S1021:根据所述验证参与状况信息,确定所述备选节点的信誉值;
步骤S1022:根据所述信誉值,将区块链系统中区块节点至少划分为监督节点和普通节点。
在上述步骤S1021中,根据获取的验证参与状况信息,确定备选节点的信誉值。
在一个实施例中,验证参与状况信息包括的第一类信息和第二类信息,则根据验证参与状况信息包括的第一类信息,和/或,第二类信息,分别为每个区块节点确定一个用于表征区块节点可信度的信誉值,以基于该信誉值确定监督节点。
具体地,基于区块节点参与存储在存储到区块链上的区块信息的验证参与状况信息的具体指示,对区块节点进行打分,并基于打分确定区块节点的信誉值。
例如,区块节点i参与存储在存储到区块链上的区块信息的验证过程的验证参与状况信息包括:
区块节点i的第一类信息ai
区块节点i的第二类信息bi
那么,预先设置有一套打分规则,例如:
若第一类信息ai指示满足第二预设条件,则为区块节点i打分为第一分值,若第一类信息ai指示满足第三预设条件,则为区块节点i打分为第二分值;
若第二类信息bi指示满足第四预设条件,则为区块节点i打分为第三分值,若第二类信息bi指示满足第五预设条件,则为区块节点i打分为第四分值。
那么,基于第一类信息对应的打分(第一分值或第二分值)和第二类信息对应的打分(第三分值或第四分值)进行加权求和,确定的加权求和的结果用于对区块节点i的信誉值进行更新。
当然,以上打分规则可以根据实际应用需要进行设置,如,还可以细化更为丰富的预设条件,以为区块节点提供更多层次的打分等。
按照上述打分规则,若确定区块节点i第一类信息和第二类信息对应的打分依次为:C1和C2,那么,区块节点i的打分总和为:f1*C1+f2*C2,其中,f1和f2为预设值,f1+f2=1,f1>0,f2>0,则可基于该打分总和更新区块节点i的信誉值,即,更新后的信誉值为当前信誉值与打分总和之和。
以下,给出几个具体的示例对信誉值的确定进行具体的说明:
假设第一类信息的取值可为指示参与验证和未参与验证,第二类信息包括第一验证子信息和第二验证子信息,其中,第一验证子信息指示对应区块节点是否验证正确,其取值可为指示验证正常和验证错误;第二验证子信息指示对应区块节点是否验证及时,其取值可为指示验证及时和验证不及时。那么,例如:
对于区块节点2,其第一类信息指示参与验证,第一验证子信息指示验证正确,第二验证子信息指示验证时延为T1,且依据上述预设打分规则,第一类信息对应获得的打分为5,第一验证子信息对应获得的打分为10,第二验证子信息对应获得的打分为8,那么,区块节点2的打分总和为23,相应地,区块节点2的信誉值在当前信誉值的基础上加上打分总和(23)。
对于区块节点5,其第一类信息指示参与验证,第一验证子信息指示验证正确,第二验证子信息指示验证时延为T2(T2>T1),且依据上述预设打分规则,第一类信息对应获得的打分为5,第一验证子信息对应获得的打分为10,第二验证子信息对应获得的打分为5,那么,区块节点5的打分总和为20,相应地,区块节点5的信誉值在当前信誉值的基础上加上打分总和(20)。
对于区块节点7,其第一类信息为指示未参与验证(如,未接收到对应区块节点的验证反馈),第一验证子信息和第二验证子信息为无效值,且依据预设打分规则,第一类信息对应获得的打分为-100,那么,区块节点7的打分总和为0,相应地,区块节点7的信誉值在当前信誉值的基础上加上打分总和(-100)。
对于区块节点10,其第一验证子信息为指示参与验证,第一验证子信息为指示验证正确,第二验证子信息验证时延为T3(T3>T2,且T3>预设最大验证时延),且依据预设打分规则,第一验证子信息对应获得的打分为5,第一验证子信息对应获得的打分为10,第二验证子信息对应获得的打分为0,那么,区块节点10的打分总和为15,相应地,区块节点10的信誉值在当前信誉值的基础上加上打分总和(15)。
总体而言,区块节点在参与验证且验证正确的前提下,验证时延越小,相应获得的打分越大,同时,对于区块节点不参与验证或验证错误的情况,该区块节点可能为错误节点或工作状态不正常,则将其打分置为一个较低的值,以尽可能避免将该区块节点确定为监督节点。
在一个实施例中,如图4所示,上述步骤S1022,根据所述信誉值,将区块链系统中区块节点至少划分为监督节点和普通节点,具体包括:
步骤S10221:将所述信誉值大于预设阈值的区块节点,确定为优节点;
步骤S10222:将满足第一预设条件的优节点,确定为所述监督节点;
步骤S10223:将除所述监督节点以外的区块节点,确定为普通节点。
在本实施例中,首先通过将信誉值大于预设阈值的区块节点确定为优节点,再在优节点中确定满足第一预设条件的优节点中确定监督节点,相当于通过对预设阈值进行控制,实现对监督节点的最低要求的限定,一方面,减少监督节点确定过程中的计算量;另一方面,在没有确定出优节点的极端情况下,即所有区块节点的信誉值都不大于预设阈值,及时进行告警提醒,以提醒用户对区块节点和/或区块链系统网络等进行检查。
在一个实施例中,上述步骤S10222,将满足第一预设条件的优节点,确定为所述监督节点,可包括如下方式之一:
方式一:将所述信誉值最大的优节点,确定为所述监督节点;
该方式中,直接从所有优节点中选择信誉值最大的区块节点作为监督节点。
方式二:基于所述信誉值和权重,确定一所述优节点作为所述监督节点,其中,所述权重为预设的将所述区块节点确定为监督节点的概率。
该方式中,用户根据实际的应用情况,分别为每个区块节点预先设置一权重,在确定监督节点时,基于区块节点的信誉值及其对应的权重进行确定。
具体地,对区块节点的信誉值及其预设的权重进行加权,将加权后值最大的区块节点作为监督节点。
例如,按照如下公式对区块节点的信誉值及其对应的权重进行加权:
k1*信誉值+k2*权重,其中,k1+k2=1,k1>0,k2>0。
在一个实施例中,所述验证参与状况信息,包括以下至少之一:
验证参与信息,用于标识是否参与验证;
验证正确性信息,用于标识对区块信息验证的正确性;
验证及时性信息,用于标识对区块信息验证的及时性。
具体地,以下以PBFS算法为例,对验证参与状况信息进行具体的解释。
如图5所示,PBFS算法的消息处理过程,其消息状态迁移路径为:request->pre-prepare->prepare->commit->reply,其中,
C代表Client,客户端向系统主节点(0:组长,也相当于本发明实施例的监督节点)发送一请求request,请求开始进入处理阶段;
pre-prepare:主节点参与把request分配一个唯一的编号request-number n,并把request跟n一起组成pre-prepare消息广播给所有成员(backup节点,相当于本申请的普通节点);
prepare:所有成员(backup节点),收到pre-prepare消息,依靠签名字段检查消息是否来源于主节点,确认无误,将request编号和本节点签名组成prepare消息,广播给其他所有成员,表示自己认可这请求编号和准备好了。
Commit:所有节点,若收到的prepare消息,依靠签名检查是否正确,若prepare消息数量超过全部节点数量的3分之二,则认为系统达成一致认可该请求和请求编号,对所有节点广播commit消息,表示该节点可以进行request的业务。
Reply:所有节点,若收到commit消息,依靠签名检查消息是否正确,若commit的消息数量超过所有节点的3分之一,则完成request要求的业务,并构建reply消息,直接回复给client。Client根据是否收到超过3分之1个节点的正确回复,判断系统是否完成了请求request。
本发明实施例中,验证参与信息可为指示参与验证或不参与验证;验证正确性信息可为指示验证正确或验证错误;验证及时性信息可为指示验证及时或验证不及时,或者,为具体的验证时延。
具体的,对应于上述PBFS算法的消息处理过程,在对一个区块信息进行验证的过程中,对于验证参与信息,若区块节点(监督节点)广播pre-prepare消息(相当于区块信息),收到区块节点(监督节点)广播pre-prepare消息,或,收到区块节点(普通节点)广播的prepare消息,则该区块节点的验证参与信息为指示参与验证,否则,为指示不参与验证。
对于验证正确性信息,若收到区块节点的reply消息,则该区块节点的验证正确性为指示验证正确,否则,为指示验证错误。
对于验证及时性信息,计算从广播/收到pre-prepare消息至收到区块节点的reply消息的时延,将该时延与预设时延进行比较,若该时延<预设时延,则该区块节点的验证及时性信息为指示验证及时,否则,为指示验证不及时;或者,验证及时性信息也可直接为计算确定的验证时延。这里,从广播/收到pre-prepare消息至收到区块节点的reply消息的时延,会受到区块节点的工作状态及通信链路质量的影响,若通信链路质量差,则相应时延就大,或者,若区块节点掉线,则区块节点将不参与验证,相应时延也会超过预设的最大等待时延。
在一个实施例中,上述步骤S1021,包括以下至少之一:
若所述验证参与信息为指示参与验证,则基于第一调整值对所述区块节点的信誉值进行更新;
若所述验证参与信息为指示不参与验证,则将所述区块节点的信誉值更新为预设最小信誉值,所述预设最小信誉值用于指示不将所述区块节点确定为监督节点;
若所述验证正确性信息为指示验证正确,且所述验证及时性信息为指示验证及时,则基于第二调整值对所述区块节点的信誉值进行更新;
若所述验证正确性信息为指示验证正确,且所述验证及时性信息为指示验证不及时,则基于第三调整值对所述区块节点的信誉值进行更新;
若所述验证正确性信息为指示验证错误,则将所述区块节点的信誉值更新为所述预设最小信誉值。
在一个实施例中,第二调整值大于第三调整值,第三调整值大于第一调整值,预设最小信誉值为一个小于预设阈值的值。
本实施例中,区块节点的信誉值在每个区块信息验证后,均基于该区块信息的验证参与状况信息进行更新。具体地,根据具体的验证参与信息、验证正确性信息和验证及时性信息,对区块节点的信誉值进行更新。
如图6所示,本发明实施例还提供了一种区块链系统的节点类型划分装置,所述装置包括:
获取单元10,用于获取备选节点基于共识机制对存储在存储到区块链上的区块信息的验证参与状况信息;
划分单元20,用于根据所述验证参与状况信息,将区块链系统中区块节点至少划分为监督节点和普通节点;其中,所述监督节点,用于广播待存储到区块链上的待存储到区块链上的区块信息;所述普通节点,至少用于基于共识机制对所述监督节点广播的所述待存储到区块链上的区块信息进行验证。
在一个实施例中,所述划分单元20,包括:
确定模块201,用于根据所述验证参与状况信息,确定所述备选节点的信誉值;
划分模块202,用于根据所述信誉值,将区块链系统中区块节点至少划分为监督节点和普通节点。
在一个实施例中,所述划分模块202,包括:
第一确定单元,用于将所述信誉值大于预设阈值的区块节点,确定为优节点;
第二确定单元,用于将满足第一预设条件的优节点,确定为所述监督节点。
第三确定单元,用于将除所述监督节点以外的区块节点,确定为普通节点。
在一个实施例中,第一确定单元具体用于按照如下至少之一方法确定监督节点:
将所述信誉值最大的优节点,确定为所述监督节点;
基于所述信誉值和权重,确定一所述优节点作为所述监督节点,其中,所述权重为预设的将所述区块节点确定为监督节点的概率。
在一个实施例中,确定模块201,具体用于按照以下方法确定信誉值:
若所述验证参与信息为指示参与验证,则基于第一调整值对所述区块节点的信誉值进行更新;
若所述验证参与信息为指示不参与验证,则将所述区块节点的信誉值更新为预设最小信誉值,所述预设最小信誉值用于指示不将所述区块节点确定为监督节点;
若所述验证正确性信息为指示验证正确,且所述验证及时性信息为指示验证及时,则基于第二调整值对所述区块节点的信誉值进行更新;
若所述验证正确性信息为指示验证正确,且所述验证及时性信息为指示验证不及时,则基于第三调整值对所述区块节点的信誉值进行更新;
若所述验证正确性信息为指示验证错误,则将所述区块节点的信誉值更新为所述预设最小信誉值。
如图2所示,本发明实施例还提供了一种区块链系统,包括:
监督节点50,为根据对存储在存储到区块链上的区块信息的验证参与状况信息从区块链系统的区块节点中选择的,用于对待存储到区块链上的待存储到区块链上的区块信息进行广播;
普通节点60,为除所述监督节点以外的所述区块节点,至少与所述监督节点连接,至少用于基于共识机制对所述监督节点广播的所述待存储到区块链上的区块信息进行验证。
在一个实施例中,所述监督节点50还用于,根据区块链系统中区块节点基于共识机制对所述待存储到区块链上的区块信息的验证参与状况信息,从区块链系统的区块节点中选择用于对下一个待确认的区块信息进行广播的监督节点。
本发明实施例还提供一种节点,该所述节点包括:
存储器,用于执行可执行指令;
处理器,用于执行所述存储器中存储的所述可执行指令时,能够实现前述一个或多个技术方案提供的区块链系统的节点类型划分方法。
本发明实施例还提供一种计算机存储介质,该计算机存储介质存储有计算机可执行指令;所述计算机可执行指令被处理器执行后,能够实现前述一个或多个技术方案提供的表情信息选取方法。
所述计算机存储介质可为:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质等存储介质,可选为非瞬间存储介质。
以下,以一个具体示例对本发明实施例区块链系统的节点类型划分方法进行说明:
本发明实施例区块链系统的节点类型划分方法对PBFT算法进行了改进,引入了监督节点,系统首信誉值模型进行激励参与共识,并基于此模型设计节点选择策略,选取监督节点并进行恶意节点的初步判断。整体思路为:根据信誉值算法选择监督节点,将监督节点作为可信节点向其它节点(普通节点)广播消息,其他节点通过拜占庭容错的方法对消息达成共识。具体如图7所示,包括如下步骤:
S1:系统初始化,设定监督者选举规则;
在系统中设定信誉值计算模型,同时根据信誉值的变动情况对节点类型进行划分,选取监督节点。
信誉值计算是一种用于提高区块节点共识积极性的奖励机制。当区块节点主动签名转发消息,那么它的信誉值将会增加,相反则会减少,如果区块节点长期处于无响应的状态,由于各种延迟可能影响区块节点的性能,因此设定信誉值会随着时间衰减,降低区块节点惰性,提高区块节点共识效率。信誉值变化算法根据区块节点类型的不同可以分为2类:监督节点信誉值变化算法和普通节点信誉值变化算法。监督节点主动将待存储到区块链上的区块信息广播给普通节点,则信誉值会增加。对于普通节点,基于共识机制对接收到的监督节点广播的区块信息进行验证,验证正确后会有信誉值的提升。针对验证过程中发现的拜占庭错误节点,系统将会直接将其信誉值置0(即,预设最小信誉值,预设最小信誉值也可为其他值),区块节点掉线、不广播消息、广播不一样的消息和共识时延大于T(预设最大验证时延)都可能被当做拜占庭错误节点。
计算区块节点的信誉值,并基于信誉值对区块节点进行分类,将所有区块节点按信誉值与预设阈值的大小关系确定优节点,当然,根据实际应用需要,还可以设置更多梯度的预设阈值(如第一预设阈值、第二预设阈值等,第一预设阈值大于第二预设阈值,并进一步基于第一预设阈值、第二预设阈值划分劣节点、错误节点等),如果当前监督节点或优节点不积极参与共识,那么,它们将在下一轮次验证过程中被调整为劣节点或错误节点,相反也同样成立。
S2:监督节点处理客户端请求request;
从优节点中选取区块节点作为监督节点。
当客户端有数据更新或变动(通常为对数据的增删改查)的请求时,需要通过客户端将请求信息发送给监督节点,监督节点在收到来自客户端的request消息后,开始验证该消息,验证通过后对该消息进行签名,将客户请求信息转为统一的格式的pre-prepare消息,并记录。
S3:监督节点广播pre-prepare消息;
监督节点将pre-prepare消息广播给所有普通节点。
S4:普通节点通过拜占庭容错达成共识;
所有普通节点收到pre-prepare消息,依靠签名字段检查消息是否来源于监督节点,确认无误,则结合本节点签名组成prepare消息,并广播给其他所有区块节点(包括监督节点和其他普通节点);
所有普通节点在收到验证过的prepare消息后,发送commit消息给其他所有区块节点。同时,每个区块节点在收到commit消息后,将消息中包含的区块信息添加到本地区块链中,并发送reply消息给客户端。
这里,当错误节点数小于一定的数量时,系统可以正确的达成共识。
本发明实施例是集中式中央节点和分布式节点共同作用的的共识方法,即通过信誉值模型直接确定监督节点,不需要循环产生,并且,普通节点基于共识机制对监督节点广播的待存储到区块链上的区块信息进行验证,以达成共识。而原拜占庭共识算法采用主节点轮询的方式,依次以每一个区块节点作为主节点进行一轮共识验证,每一轮共识验证过程中,单个区块节点验证比对自己收到的主节点广播的区块信息与其他节点发来的commit消息,判断该主节点试图下的错误节点,最后,将每一轮的试图汇总,进行拜占庭容错的判断,从而判断错误节点。本方案将监督者节点作为可信节点,不用多轮轮询主节点来发现错误节点,通过一轮的广播过程即可进行拜占庭算法,进行判断。同时本方案的激励与惩罚方式可以尽可能降低区块节点作恶的概率,使网络中的区块节点尽可能多参与共识验证。
S5:节点同步信息,信息回复给客户端;
将经过公示确认的消息在所有区块节点中同步,链上数据更新,惩罚错误节点,将正确的消息返回给客户端。
本发明实施例中,信誉惩罚机制使得节点作恶要付出高昂代价,监督者模型使共识节点成为作恶节点的概率不断降低。而且,引入监督者缩短了交易确认时间,每一轮留给节点可能作恶的时间进一步缩减,区块链中诚实节点比例越来越大。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些端口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种区块链系统的节点类型划分方法,其特征在于,所述方法包括:
获取备选节点基于共识机制对存储在存储到区块链上的区块信息的验证参与状况信息;
根据所述验证参与状况信息,将区块链系统中区块节点至少划分为监督节点和普通节点;其中,所述监督节点,用于广播待存储到区块链上的区块信息;所述普通节点,至少用于基于共识机制对所述监督节点广播的待存储到区块链上的区块信息进行验证。
2.根据权利要求1所述的方法,其特征在于,所述根据所述验证参与状况信息,将区块链系统中区块节点至少划分为监督节点和普通节点,包括:
根据所述验证参与状况信息,确定所述备选节点的信誉值;
根据所述信誉值,将区块链系统中区块节点至少划分为监督节点和普通节点。
3.根据权利要求2所述的方法,其特征在于,所述根据所述信誉值,将区块链系统中区块节点至少划分为监督节点和普通节点,包括:
将所述信誉值大于预设阈值的区块节点,确定为优节点;
将满足第一预设条件的优节点,确定为所述监督节点;
将除所述监督节点以外的区块节点,确定为普通节点。
4.根据权利要求3所述的方法,其特征在于,所述将满足第一预设条件的优节点,确定为所述监督节点,包括如下至少之一:
将所述信誉值最大的优节点,确定为所述监督节点;
基于所述信誉值和权重,确定一所述优节点作为所述监督节点,其中,所述权重为预设的将所述区块节点确定为监督节点的概率。
5.根据权利要求2所述的方法,其特征在于,所述验证参与状况信息包括以下至少之一:
验证参与信息,用于标识是否参与验证;
验证正确性信息,用于标识对区块信息验证的正确性;
验证及时性信息,用于标识对区块信息验证的及时性。
6.根据权利要求5所述的方法,其特征在于,所述根据所述验证参与状况信息,确定所述备选节点的信誉值,包括以下至少之一:
若所述验证参与信息为指示参与验证,则基于第一调整值对所述区块节点的信誉值进行更新;
若所述验证参与信息为指示不参与验证,则将所述区块节点的信誉值更新为预设最小信誉值,所述预设最小信誉值用于指示不将所述区块节点确定为监督节点;
若所述验证正确性信息为指示验证正确,且所述验证及时性信息为指示验证及时,则基于第二调整值对所述区块节点的信誉值进行更新;
若所述验证正确性信息为指示验证正确,且所述验证及时性信息为指示验证不及时,则基于第三调整值对所述区块节点的信誉值进行更新;
若所述验证正确性信息为指示验证错误,则将所述区块节点的信誉值更新为所述预设最小信誉值。
7.一种区块链系统的节点类型划分装置,其特征在于,所述装置包括:
获取单元,用于获取备选节点基于共识机制对存储在存储到区块链上的区块信息的验证参与状况信息;
划分单元,用于根据所述验证参与状况信息,将区块链系统中区块节点至少划分为监督节点和普通节点;其中,所述监督节点,用于广播待存储到区块链上的区块信息;所述普通节点,至少用于基于共识机制对所述监督节点广播的待存储到区块链上的区块信息进行验证。
8.一种区块链系统,其特征在于,包括:
监督节点,为根据对存储在存储到区块链上的区块信息的验证参与状况信息从区块链系统的区块节点中选择的,用于对待存储到区块链上的待存储到区块链上的区块信息进行广播;
普通节点,为除所述监督节点以外的所述区块节点,至少与所述监督节点连接,至少用于基于共识机制对所述监督节点广播的待存储到区块链上的区块信息进行验证。
9.一种节点,其特征在于,所述节点包括:
存储器,用于执行可执行指令;
处理器,用于执行所述存储器中存储的所述可执行指令时,实现权利要求1至6任一项所提供的方法。
10.一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被执行后,能够实现权利要求1至6任一项所提供的方法。
CN202110195468.0A 2021-02-19 2021-02-19 区块链系统的节点类型划分方法、装置及区块链系统 Pending CN113014635A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110195468.0A CN113014635A (zh) 2021-02-19 2021-02-19 区块链系统的节点类型划分方法、装置及区块链系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110195468.0A CN113014635A (zh) 2021-02-19 2021-02-19 区块链系统的节点类型划分方法、装置及区块链系统

Publications (1)

Publication Number Publication Date
CN113014635A true CN113014635A (zh) 2021-06-22

Family

ID=76405159

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110195468.0A Pending CN113014635A (zh) 2021-02-19 2021-02-19 区块链系统的节点类型划分方法、装置及区块链系统

Country Status (1)

Country Link
CN (1) CN113014635A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113923275A (zh) * 2021-10-11 2022-01-11 卓尔智联(武汉)研究院有限公司 区块链协商方法、电子设备及计算机可读存储介质
CN113949709A (zh) * 2021-10-13 2022-01-18 甘肃同兴智能科技发展有限责任公司 一种提高区块链网络安全性的共识方法及系统
CN114218612A (zh) * 2021-12-14 2022-03-22 河北省科学院应用数学研究所 一种适用于联盟链高频交易场景的共识方法
CN115150135A (zh) * 2022-06-22 2022-10-04 国网数字科技控股有限公司 一种适用于分布式电力交易的区块链共识方法和装置
CN115664684A (zh) * 2022-12-27 2023-01-31 湖南工商大学 融合数字证据的共识协议运行方法、装置及相关设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109831425A (zh) * 2019-01-25 2019-05-31 中国联合网络通信集团有限公司 区块链共识方法、装置、设备及计算机可读存储介质
WO2019210714A1 (zh) * 2018-05-03 2019-11-07 中国银联股份有限公司 一种区块链共识方法、记账节点及节点
CN110784346A (zh) * 2019-10-18 2020-02-11 深圳供电局有限公司 一种基于信誉值的pbft共识系统及方法
CN111510502A (zh) * 2020-04-28 2020-08-07 吉林科创电力有限公司 一种基于动态信誉值的pbft共识传播优化方法
CN112073483A (zh) * 2020-08-28 2020-12-11 武汉大学 基于信誉与委员会背书机制的权威证明共识方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019210714A1 (zh) * 2018-05-03 2019-11-07 中国银联股份有限公司 一种区块链共识方法、记账节点及节点
CN109831425A (zh) * 2019-01-25 2019-05-31 中国联合网络通信集团有限公司 区块链共识方法、装置、设备及计算机可读存储介质
CN110784346A (zh) * 2019-10-18 2020-02-11 深圳供电局有限公司 一种基于信誉值的pbft共识系统及方法
CN111510502A (zh) * 2020-04-28 2020-08-07 吉林科创电力有限公司 一种基于动态信誉值的pbft共识传播优化方法
CN112073483A (zh) * 2020-08-28 2020-12-11 武汉大学 基于信誉与委员会背书机制的权威证明共识方法及系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113923275A (zh) * 2021-10-11 2022-01-11 卓尔智联(武汉)研究院有限公司 区块链协商方法、电子设备及计算机可读存储介质
CN113923275B (zh) * 2021-10-11 2023-11-28 卓尔智联(武汉)研究院有限公司 区块链协商方法、电子设备及计算机可读存储介质
CN113949709A (zh) * 2021-10-13 2022-01-18 甘肃同兴智能科技发展有限责任公司 一种提高区块链网络安全性的共识方法及系统
CN114218612A (zh) * 2021-12-14 2022-03-22 河北省科学院应用数学研究所 一种适用于联盟链高频交易场景的共识方法
CN114218612B (zh) * 2021-12-14 2023-10-20 河北省科学院应用数学研究所 一种适用于联盟链高频交易场景的共识方法
CN115150135A (zh) * 2022-06-22 2022-10-04 国网数字科技控股有限公司 一种适用于分布式电力交易的区块链共识方法和装置
CN115664684A (zh) * 2022-12-27 2023-01-31 湖南工商大学 融合数字证据的共识协议运行方法、装置及相关设备
CN115664684B (zh) * 2022-12-27 2023-04-18 湖南工商大学 融合数字证据的共识协议运行方法、装置及相关设备

Similar Documents

Publication Publication Date Title
CN112039964B (zh) 一种基于区块链的节点信誉共识方法
CN113014635A (zh) 区块链系统的节点类型划分方法、装置及区块链系统
Yun et al. DQN-based optimization framework for secure sharded blockchain systems
CN110796547A (zh) 一种基于联盟区块链的改进的实用拜占庭容错系统
CN110602217B (zh) 基于区块链的联盟管理方法、装置、设备及存储介质
CN112883114A (zh) 应用于区块链的交易处理方法和装置
CN112118239B (zh) 区块链共识方法及装置、电子设备、存储介质
US20050132154A1 (en) Reliable leader election in storage area network
CN109255713A (zh) 一种区块链网络中某一时间段内记账权的获取方法
CN109982435A (zh) 基于区块链的频谱接入和管理方法
CN113660125B (zh) 一种基于随机可信委员会的共识方法及装置
CN111182510A (zh) 一种基于区块链的工业物联网节点共识方法
CN113422805B (zh) 一种基于可验证随机函数的分片共识方法
CN113645190A (zh) 一种考虑节点信誉的拜占庭容错共识方法及区块链
CN110661656B (zh) 一种区块链快速共识方法及装置
CN114003584A (zh) 一种基于演化博弈的拜占庭容错共识方法
CN110445795A (zh) 一种区块链认证唯一性确认方法
CN112749968A (zh) 基于区块链的业务数据记录方法及装置
CN108648076B (zh) 一种选举共识节点及生成节点信息表格的方法及系统
CN112511312A (zh) 一种可组装的共识方法及系统
CN116582550A (zh) 基于信任评估组建跨链系统的方法、交易传递方法、装置
CN115065689B (zh) 一种基于历史评价的联盟链区块数据存储方法及系统
CN116015672A (zh) 一种基于信誉模型的pbft共识机制
CN112258184B (zh) 冻结区块链网络的方法、装置、电子设备及可读存储介质
CN115002120B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210622

RJ01 Rejection of invention patent application after publication