CN113852470A - 提案广播方法、装置、设备和存储介质 - Google Patents
提案广播方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN113852470A CN113852470A CN202111125446.3A CN202111125446A CN113852470A CN 113852470 A CN113852470 A CN 113852470A CN 202111125446 A CN202111125446 A CN 202111125446A CN 113852470 A CN113852470 A CN 113852470A
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- slice
- slices
- proposal
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000003860 storage Methods 0.000 title claims abstract description 20
- 238000012795 verification Methods 0.000 claims abstract description 106
- 238000004891 communication Methods 0.000 claims abstract description 33
- 238000004590 computer program Methods 0.000 claims description 21
- 238000012163 sequencing technique Methods 0.000 claims description 17
- 238000010276 construction Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 8
- 238000012790 confirmation Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
- H04L9/3239—Cryptographic 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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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 involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3297—Cryptographic 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 involving time stamps, e.g. generation of time stamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic 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 Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种提案广播方法、装置、设备和存储介质,属于区块链技术领域。领导节点将提案划分为n个切片,将n个切片消息一一发送区块链系统中的n个节点,n个切片消息一一携带有n个切片。该n个节点中的每个节点均执行以下操作:在对接收到的切片消息中的切片验证通过后,将携带有该切片消息中的切片的回声消息分别发送给该n个节点中除自身之外的其他多个节点;在接收到回声消息后,对接收到的回声消息中的切片进行验证;若验证通过的切片的数量大于或等于第一数量阈值,则根据验证通过的所有切片构建该提案。本申请降低了领导节点的通信总量,使领导节点不容易达到带宽瓶颈,还充分利用了其他节点的闲置带宽,提高了资源利用率。
Description
技术领域
本申请涉及区块链技术领域,特别涉及一种提案广播方法、装置、设备和存储介质。
背景技术
区块链系统包括多个节点。每个节点产生的交易需要在得到区块链系统中的所有节点的共识之后,才能对该交易进行处理,并将该交易存储至区块链系统。
一般地,会从多个节点中选择一个节点作为领导节点,由领导节点将交易发送给区块链系统中的其它节点,使其它节点在获取该交易之后,对该交易验证,以此实现对该交易的共识。
上述方法中,领导节点直接将提案发送给其它节点,会使得领导节点的通信总量过高,使领导节点容易达到带宽瓶颈,从而制约区块链系统的性能。
发明内容
本申请提供了一种提案广播方法、装置、设备和存储介质,可以降低领导节点的通信总量,使领导节点不容易达到带宽瓶颈,还可以充分利用其他节点的闲置带宽,提高资源利用率,从而平衡了区块链系统中的各节点在提案广播过程中的通信负载,提高了区块链系统的性能。所述技术方案如下:
第一方面,提供了一种提案广播方法,应用于区块链系统,所述区块链系统包括n个节点,所述n个节点包括领导节点,所述领导节点用于广播提案,所述提案包括交易,所述n为大于或等于4的整数,所述方法包括:
所述领导节点将所述提案划分为n个切片,将n个切片消息一一发送给所述n个节点,所述n个切片消息一一携带有所述n个切片;
所述n个节点中的每个节点均执行以下操作:
在接收到切片消息后,对接收到的切片消息中的切片进行验证,在验证通过后,将回声消息分别发送给所述n个节点中除自身之外的其他多个节点,所述回声消息携带有接收到的切片消息中的切片;
在接收到回声消息后,对接收到的回声消息中的切片进行验证;
若验证通过的切片的数量大于或等于第一数量阈值,则根据验证通过的所有切片构建所述提案。
在本申请中,由于该n个节点中的每个节点在对接收到的切片消息中的切片验证通过之后,都会向该n个节点中除自身之外的其他多个节点发送回声消息,且该n个节点中的每个节点发送的回声消息中的切片不同,如此该n个节点中的每个节点都可以接收到多个不同的切片,从而能够构建出该提案。这种将提案进行切片再广播的方式,可以降低领导节点的通信总量,使领导节点不容易达到带宽瓶颈,还可以充分利用其他节点的闲置带宽,提高资源利用率,从而平衡了区块链系统中的各节点在提案广播过程中的通信负载,提高了区块链系统的性能。
第二方面,提供了一种区块链系统,包括n个节点,所述n个节点包括领导节点,所述领导节点用于广播提案,所述提案包括交易,所述n为大于或等于4的整数;
所述领导节点包括:
第一发送模块,用于将所述提案划分为n个切片,将n个切片消息一一发送给所述n个节点,所述n个切片消息一一携带有所述n个切片;
所述n个节点中的每个节点包括:
第二发送模块,用于在接收到切片消息后,对接收到的切片消息中的切片进行验证,在验证通过后,将回声消息分别发送给所述n个节点中除自身之外的其他多个节点,所述回声消息携带有接收到的切片消息中的切片;
验证模块,用于在接收到回声消息后,对接收到的回声消息中的切片进行验证;
构建模块,用于在验证通过的切片的数量大于或等于第一数量阈值的情况下,根据验证通过的所有切片构建所述提案。
第三方面,提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述的提案广播方法。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的提案广播方法。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述的提案广播方法的步骤。
可以理解的是,上述第二方面、第三方面、第四方面、第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链系统的结构示意图;
图2是本申请实施例提供的一种区块链的示意图;
图3是本申请实施例提供的一种交易共识过程的示意图;
图4是本申请实施例提供的一种提案广播方法的流程图;
图5是本申请实施例提供的一种默克尔树的示意图;
图6是本申请实施例提供的一种第二节点排序表的示意图;
图7是本申请实施例提供的一种提案广播过程的示意图;
图8是本申请实施例提供的一种Hotstuff共识算法的示意图;
图9是本申请实施例提供的一种区块链系统的结构示意图;
图10是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
应当理解的是,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在对本申请实施例进行解释说明之前,先对区块链的相关内容予以说明。
图1是本申请实施例提供的一种区块链系统的结构示意图。
参见图1,区块链系统100是指用于进行节点与节点之间数据共享的系统,区块链系统100中可以包括多个节点101,多个节点101可以是指区块链系统100中各个客户端。每个节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护区块链系统100内的共享数据。为了保证区块链系统100内的信息互通,区块链系统100中的每个节点101之间可以存在信息连接,节点101之间可以通过该信息连接进行信息传输。比如,当区块链系统100中的任意节点101接收到输入信息时,区块链系统100中的其他节点101便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得区块链系统100中全部节点101上存储的数据一致。
区块链系统100中的每个节点101均存储一条相同的区块链。下面以图2为例来对区块链的一种可能的结构进行说明,当然,实际应用中,根据不同的场景,区块链的结构也可以有所不同,本申请实施例对此不作限定。
参见图2,区块链由多个区块组成,创始块中包括区块头和区块主体。作为一种示例,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
区块链系统100具有分布式数据存储、点对点传输、共识机制、加密算法等计算机技术。区块链系统100是一个分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。这些特点保证了区块链的共享开放、真实完整和安全可靠。
下面对本申请实施例的应用场景予以说明。
区块链系统中的每个节点都有用于存储交易的交易池。区块链系统中的任意一个节点,在产生交易之后,会将该交易共享给区块链系统中的其他节点,以使区块链系统中的所有节点都存储有该交易,如此区块链系统中的每个节点的交易池中存储的交易都一致,以便于对交易池中的交易进行处理。对于交易池中任意一个待处理的交易来说,该交易需要在得到区块链系统中的所有节点的共识之后,才能对被处理,进而才能被存储至区块链。
一般地,采用Hotstuff共识算法、PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错)共识算法、Raft共识算法等基于领导节点的共识算法来对交易进行共识,在共识之后,对该交易进行处理,并将该交易存储至区块链。基于领导节点的共识算法中需要一个领导节点来主导共识过程。领导节点是根据领导选举方法从区块链系统中的多个节点中选举出来的节点,用于广播提案,该提案包括交易。
下面以Hotstuff共识算法为例来对交易共识过程进行说明:
图3是本申请实施例提供的一种交易共识过程的示意图。如图3所示,区块链系统包括领导节点、节点1、节点2和节点3。采用Hotstuff共识算法对某一轮的交易进行共识的操作可以包括如下步骤(1)-步骤(8):
(1)领导节点从自身的交易池中获取本轮需要处理的交易,将交易和每个节点在上一轮交易共识过程中的投票或超时信息携带于提案,将该提案发送给区块链系统中的其他节点(即,节点1、节点2、节点3);
(2)对于除领导节点之外的其他节点中的任意一个节点,这个节点对领导节点发送的提案进行验证(如,可以根据SafeNode-predicate(安全节点判定)规则检查该提案是否合法),若验证通过,则使用自身的私钥对该提案进行签名,得到第一投票消息,并将第一投票消息发送给领导节点;
(3)领导节点接收其他节点中的每个节点发送的第一投票消息,根据接收到的所有第一投票消息,得到第一签名信息,将第一签名信息携带于预确认消息,将该预确认消息发送给其他节点;
(4)对于其他节点中的任意一个节点,这个节点对领导节点发送的预确认消息中的签名进行验证,若验证通过,则使用自身的私钥对该预确认消息进行签名,得到第二投票消息,并将第二投票消息发送给领导节点;
(5)领导节点接收其他节点中的每个节点发送的第二投票消息,根据接收到的所有第二投票消息,得到第二签名信息,将第二签名信息携带于确认消息,并将该确认消息发送给其他节点;
(6)对于其他节点中的任意一个节点,这个节点使用自身的私钥对领导节点发送的确认消息进行签名,得到第三投票消息,并将第三投票消息发送给领导节点;
(7)领导节点接收其他节点中的每个节点发送的第三投票消息,根据接收到的所有第三投票消息,得到第三签名信息,将第三签名信息携带于执行消息,并将该执行消息发送给其他节点;
(8)对于其他节点中的任意一个节点,这个节点接收到领导节点发送的执行消息之后,执行该提案。
上述交易共识过程中,领导节点直接将提案发送给其他节点,使得领导节点的通信总量过高,使领导节点容易达到带宽瓶颈,从而制约区块链系统的性能。
为此,本申请实施例提供了一种提案广播方法,可以应用于基于领导节点的共识算法中,例如,可以应用于Hotstuff共识算法,也可以应用于PBFT共识算法、Raft共识算法等,本申请实施例对此不作限定。本申请实施例提供的提案广播方法可以降低领导节点的通信总量,使领导节点不容易达到带宽瓶颈,还可以充分利用其他节点的闲置带宽,提高资源利用率,从而提高了区块链系统的性能。如此,可以提高规模化的区块链系统在可用带宽受限情况下的吞吐量并降低延迟。
下面对本申请实施例提供的提案广播方法进行详细地解释说明。
图4是本申请实施例提供的一种提案广播方法的流程图。该方法应用于区块链系统,该区块链系统可以是图1所示的区块链系统100。该区块链系统可以包括n个节点,该n个节点包括领导节点,n为大于或等于4的整数。参见图4,该方法包括以下步骤。
步骤401:领导节点将提案划分为n个切片,将n个切片消息一一发送给n个节点。
领导节点是根据领导选举方法从区块链系统中的n个节点中选举出来的节点,用于广播提案。从区块链系统中的n个节点中选举领导节点的操作可以参考相关技术,本申请实施例对此不进行详细阐述。比如,可以给区块链系统中的n个节点中的每个节点进行编号,按照n个节点的编号顺序,依次由各个节点轮流当选领导节点,当然,也可以通过其他方式选举领导节点,本申请实施例对此不作限定。可选地,步骤401具体可以由领导节点中的协议模块来执行。
需要注意的是,该n个节点中有可能会存在恶意节点,恶意节点是指对区块链系统的安全造成恶意攻击的节点,也即,恶意节点会阻碍对提案进行共识。因而为保证后续有足够多的节点对提案进行共识,本申请实施例中在进行提案广播时,要保证有足够多的节点能够获取到该提案。假设本申请实施例中的恶意节点的数量为f个,一般地,f小于
提案可以包括本轮需要处理的交易,还可以包括上一轮交易共识过程中所有节点的投票,该投票可以包括对上一轮交易的处理结果。该提案可以划分为n个切片,该n个切片中的2f个切片是冗余切片,该n个切片中的任意n-2f个切片能够构建出该提案,f为正整数。
n个切片消息一一携带有n个切片,也即该n个切片消息中的每个切片消息中都包括一个切片、且每个切片消息中的切片不同。也即说明,n个切片消息和n个切片是一一对应的。
将n个切片消息一一发送给n个节点,也即将n个切片消息分别发送给n个节点,且n个节点中的每个节点得到的切片消息不同。
其中,领导节点将提案划分为n个切片的操作可以为:对该提案进行序列化,得到字节序列;对该字节序列进行擦除编码,得到n个切片。
字节序列是将该提案进行序列化之后得到的数据。领导节点对该提案进行序列化,也即是将该提案转化为可以存储或传输的字节序列。
擦除编码(Erasure Coding,EC)是一种提高数据冗余性和可靠性的数据存储方法。擦除编码用于将字节序列转化为n个切片。该n个切片中的2f个切片是冗余切片,该n个切片中的任意n-2f个切片能够构建出该字节序列,也就能够构建出该提案。
可选地,领导节点可以通过Hessian序列化的方法将该提案转化为字节序列,也可以通过Json序列化的方式将该提案转化为字节序列,当然也可以通过其它序列化方法将该提案转化为字节序列,本申请实施例对此不作限定。
可选地,领导节点可以通过Reed Solomon擦除编码(RES-EC)的方法,将字节序列转化为n个切片,后续,根据该n个切片中的任意n-2f个切片构建出该字节序列。
进一步地,领导节点将该n个切片消息一一发送给该n个节点之前,还可以以该n个切片中每个切片的哈希值为叶子节点值,构建默克尔树;对于该n个切片中的任意一个切片,领导节点将该默克尔树中与这个切片的验证相关的根节点值和树枝节点值确定为这个切片对应的验证信息,将这个切片和对应的验证信息携带于一个切片消息。
叶子节点值为该n个切片中每个切片的哈希值。默克尔树是根据该n个切片中每个切片的哈希值构建的,默克尔树包括叶子节点、树枝节点和根节点。
比如,假设该n个切片包括切片1、切片2、切片3、切片4。参见图5,图5是根据切片1、切片2、切片3、切片4的哈希值构建的默克尔树。具体地,将切片1的哈希值(即,hashA)、切片2的哈希值(即,hashB)、切片3的哈希值(即,hashC)、切片4的哈希值(即,hashD)作为叶子节点值,接着对hashA和hashB之和进行哈希运算,得到hashAB,作为树枝节点值;对hashC和hashD之和进行哈希运算得到hashCD,作为树枝节点值。此时hashAB、hashCD即为默克尔树的树枝节点上的值。然后,对hashAB和hashCD之和进行哈希运算,得到hashABCD,将hashABCD作为默克尔树的根节点值。如此,就可得到根据切片1、切片2、切片3、切片4的哈希值构建的默克尔树。
一个切片对应的验证信息是可以用于验证这个切片的信息,以防止这个切片在传输过程中被篡改。一个切片对应的验证信息可以为默克尔树中与这个切片的验证相关的根节点值和树枝节点值。也即是将该默克尔树中可以用于验证这个切片的根节点值和多个树枝节点值确定为这个切片对应的验证信息,也即说明,通过该默克尔树中用于验证这个切片的根节点值和多个树枝节点值可以对这个切片进行验证,以防止这个切片在传输过程中被篡改。
将这个切片和对应的验证信息携带于一个切片消息,也即说明,这个切片消息中包括这个切片和这个切片对应的验证信息,以便于接收这个切片消息的节点对这个切片进行验证,从而保证区块链系统的安全性。
该切片消息还可以包括领导节点的签名。例如,领导节点可以对这个切片和对应的验证信息进行哈希运算,得到哈希值,然后使用自身的私钥对该哈希值进行加密,得到签名,以便于接收到切片消息的节点可以验证该切片消息的发送者。
比如,参见图5,对于切片1,对切片1进行哈希运算,可以得到hashA,接着对hashA和hashB之和进行哈希运算可以得到hashAB,然后对hashAB和hashCD之和进行哈希运算可以得到hashABCD,因此,该默克尔树中与切片1的验证相关的树枝节点值为:hashB、hashCD。如此,该默克尔树中与这个切片的验证相关的根节点值和树枝节点值为:hashABCD、hashB、hashCD,也即,切片1对应的验证信息为:hashABCD、hashB、hashCD,将切片1、hashABCD、hashB、hashCD携带于一个切片消息。
可选地,领导节点可以存储n个切片消息中的任意一个切片消息,然后将除自身存储的这个切片消息之外的其余n-1个切片消息一一发送给除自身之外的其余n-1个节点,如此,n个节点中的每个节点都可以获取到不同的切片消息。
在领导节点将n个切片消息一一发送给n个节点之后,该n个节点中的每个节点均可以执行下述步骤402-步骤404:
步骤402:对于该n个节点中的任意一个节点,这个节点在接收到切片消息后,对接收到的切片消息中的切片进行验证,在验证通过后,将回声消息分别发送给该n个节点中除自身之外的其他多个节点。
该回声消息携带有接收到的切片消息中的切片,进一步还可以携带有该切片对应的验证信息。该回声消息用于将这个节点接收到的切片消息中的切片发送给其他n-1个节点。示例地,这个节点对接收到的切片消息中的切片验证通过之后,可以将该切片消息中的切片和对应的验证信息携带于回声消息。由于该n个节点中每个节点接收到的切片消息中的切片不同,且每个节点发送的回声消息中携带有每个节点接收到的切片消息中的切片,因此该n个节点中每个节点发送的回声消息不同。
其中,这个节点对接收到的切片消息中的切片进行验证的操作可以为:根据接收到的切片消息中的签名对发送者进行验证;根据接收到的切片消息中的验证信息对对应的切片进行验证。
区块链系统中的每个节点都存储有区块链系统中的所有节点的公钥,这个节点根据接收到的切片消息中的签名对发送者进行验证的操作可以为:根据领导节点的公钥对该切片消息中的签名进行解密,得到第一哈希值;将该切片消息中的切片和对应的验证信息进行哈希运算,得到第二哈希值;若第一哈希值与第二哈希值相同,则验证通过,确定该切片消息的发送者为领导节点,接着根据该切片消息中的验证信息对对应的切片进行验证;若第一哈希值与第二哈希值不同,则验证失败,确定该切片消息的发送者不为领导节点,丢弃该切片消息。
这个节点根据接收到的切片消息中的验证信息对对应的切片进行验证的操作可以为:根据该切片消息中的验证信息中的树枝节点值和该切片的哈希值计算得到第三哈希值;若第三哈希值与该验证信息中的根节点值相同,则确定该切片验证通过;若第三哈希值与该验证信息中的根节点值不同,则确定该切片验证失败。
示例地,参见图5,若这个节点接收到携带有包括切片1和对应的验证信息的切片消息,该验证信息中的根节点值为hashABCD,该验证信息中的树枝节点值依次为:hashB、hashCD。则这个节点根据该验证信息对切片1进行验证的操作可以为:对切片1进行哈希运算,得到hashE;对hashE和hashB之和进行哈希运算,得到hashEB;对hashEB和hashCD之和进行哈希运算,得到hashEBCD;若hashEBCD和hashABCD相同,则确定该切片验证通过,将回声消息分别发送给该n个节点中除自身之外的其他节点;若hashEBCD和hashABCD不同,则确定该切片验证失败,丢弃该切片消息,保证区块链系统的安全性。
这个节点将回声消息分别发送给该n个节点中除自身之外的其他多个节点可以有如下三种可能的情况:
第一种可能的情况中,这个节点将回声消息分别发送给该n个节点中除自身之外的其他n-1个节点。
这个节点将回声消息分别发送给该n个节点中除自身之外的其他n-1个节点,可以使其他n-1个节点获取到该回声消息中的切片。该n个节点中的每个节点都向其他n-1个节点发送回声消息,且该n个节点中的每个节点发送的回声消息中的切片不同,如此该n个节点中的每个节点都可以接收到n个切片,从而能够构建出该提案。这种情况下,即使该n个节点中存在f个恶意节点,也能够保证该n个节点中的每个节点都可以接收到n-f个切片,从而能够构建出该提案。
第二种可能的情况中,这个节点获取该n个节点中每个节点的通信状态;根据该n个节点中的每个节点的通信状态,对该n个节点进行排序;将回声消息分别发送给该n个节点中排序在前的n-2f个节点中除自身之外的其他每个节点。
一个节点的通信状态用于体现这个节点在区块链系统中通信时的状态。例如,可以通过网络感知来获取这个节点的通信状态,具体可以根据这个节点接收和发送消息的时间、验证失败的次数、延迟时间、与其他节点之间的网络距离等来确定这个节点的通信状态,当然也可以通过其它方法获取这个节点的通信状态,本申请实施例对此不作限定。
这个节点根据该n个节点中的每个节点的通信状态,对该n个节点进行排序,然后将回声消息分别发送给该n个节点中排序在前的n-2f个节点中除自身之外的其他每个节点,也即说明,将回声消息分别发送给该n个节点中通信状态较好的n-2f个节点中除自身之外的其他每个节点。如此,可以降低这个节点的通信总量,使这个节点不容易达到带宽瓶颈,以提高区块链系统的性能。
进一步地,这个节点将回声消息分别发送给该n个节点中排序在前的n-2f个节点中除自身之外的其他每个节点之后,还可以分别向该n个节点中排序在后的2f个节点中除自身之外的其他每个节点发送第一指示消息。
第一指示消息用于指示发送第一指示消息的节点已接收到领导节点发送的切片消息。比如,第一指示消息中可以携带该切片消息中的验证信息中的根节点值。
这个节点分别向该n个节点中排序在后的2f个节点中除自身之外的其他每个节点发送第一指示消息,是为了向接收到第一指示消息的节点告知自身已接收到领导节点发送的切片消息,便于后续接收到第一指示消息的节点在接收到足够数量的切片时,向这个节点告知自身已接收到足够数量的切片。
第三种可能的情况中,这个节点按照该n个节点的节点标识的顺序,对该n个节点的节点标识进行排序,得到第一节点排序表;将自身的节点标识在该n个节点的节点标识中所处的序次减1,得到m;将第一节点排序表中的该n个节点的节点标识循环右移m位,得到第二节点排序表;将回声消息分别发送给第二节点排序表中排序在前的n-f个节点标识中除自身的节点标识之外的其他每个节点标识所标识的节点。
一个节点的节点标识用于标识该节点,该n个节点中的每个节点均具有节点标识,该n个节点的节点标识具有顺序性。示例地,可以为该n个节点中的每个节点分配一个不同的编号,该n个节点的编号具有顺序性,以方便每个节点根据编号顺序对该n个节点进行排序。
该n个节点中的每个节点将自身的节点标识在该n个节点的节点标识中所处的序次减1,得到m,接着将第一节点排序表中的n个节点的节点标识循环右移m位,得到第二节点排序表,然后将回声消息分别发送给第二节点排序表中排序在前的n-f个节点标识中除自身的节点标识之外的其他每个节点标识所标识的节点。
由于该n个节点中的每个节点的节点标识不同,则该n个节点中每个节点将自身的节点标识在该n个节点的节点标识中所处的序次减1后得到的m的值不同,将第一节点排序表中的n个节点的节点标识循环右移m位后得到的第二节点排序表也不同,每个节点将回声消息分别发送给自身得到的第二节点排序表中排序在前的n-f个节点标识中除自身的节点标识之外的其他每个节点标识所标识的节点后,在自身的通信总量较小的情况下,能够保证该n个节点中的每个节点至少可以接收到n-f-1个回声消息,也即,能够保证该n个节点中的每个节点至少可以接收到n-f-1个切片,再加上自身接收的领导节点发送的切片信息中的切片,也就能够保证该n个节点中的每个节点都能够获取到n-f个切片。
比如,参见图6,n为6,6个节点包括节点1、节点2、节点3、节点4、节点5和节点6,f为1,n-f为5。这6个节点中的每个节点按照这6个节点的节点标识的顺序,对这6个节点的节点标识进行排序后,得到的第一节点排序表为节点1、节点2、节点3、节点4、节点5、节点6。
节点1的节点标识所处的序次为1,则得到的m为0,如此,得到的第二节点排序表为节点1、节点2、节点3、节点4、节点5、节点6。将回声消息分别发送给第二节点排序表中的排序在前的5个节点标识中除节点1的节点标识之外的其他每个节点标识所标识的节点,也即,将回声消息分别发送给节点2、节点3、节点4、节点5。
节点2的节点标识所处的序次为2,则得到的m为1,将第一节点排序表中的6个节点的节点标识循环右移1位,得到的第二节点排序表为节点6、节点1、节点2、节点3、节点4、节点5。将回声消息分别发送给第二节点排序表中的排序在前的5个节点标识中除节点2的节点标识之外的其他每个节点标识所标识的节点,也即,将回声消息分别发送给节点6、节点1、节点3、节点4。
节点3的节点标识所处的序次为3,则得到的m为2,将第一节点排序表中的6个节点的节点标识循环右移2位,得到的第二节点排序表为节点5、节点6、节点1、节点2、节点3、节点4。将回声消息分别发送给第二节点排序表中的排序在前的5个节点标识中除节点3的节点标识之外的其他每个节点标识所标识的节点,也即,将回声消息分别发送给节点5、节点6、节点1、节点2。
节点4的节点标识所处的序次为4,则得到的m为3,将第一节点排序表中的6个节点的节点标识循环右移3位,得到的第二节点排序表为节点4、节点5、节点6、节点1、节点2、节点3。将回声消息分别发送给第二节点排序表中的排序在前的5个节点标识中除节点4的节点标识之外的其他每个节点标识所标识的节点,也即,将回声消息分别发送给节点5、节点6、节点1、节点2。
节点5的节点标识所处的序次为5,则得到的m为4,将第一节点排序表中的6个节点的节点标识循环右移4位,得到的第二节点排序表为节点3、节点4、节点5、节点6、节点1、节点2。将回声消息分别发送给第二节点排序表中的排序在前的5个节点标识中除节点5的节点标识之外的其他每个节点标识所标识的节点,也即,将回声消息分别发送给节点3、节点4、节点6、节点1。
节点6的节点标识所处的序次为6,则得到的m为5,将第一节点排序表中的6个节点的节点标识循环右移5位,得到的第二节点排序表为节点2、节点3、节点4、节点5、节点6、节点1。将回声消息分别发送给第二节点排序表中的排序在前的5个节点标识中除节点6的节点标识之外的其他每个节点标识所标识的节点,也即,将回声消息分别发送给节点2、节点3、节点4、节点5。
综上,节点1可以接收到节点2、节点3、节点4和节点5分别发送的回声消息,节点2可以接收到节点1、节点3、节点4和节点6分别发送的回声消息,节点3可以接收到节点1、节点2、节点5和节点6分别发送的回声消息,节点4可以接收到节点1、节点2、节点5和节点6分别发送的回声消息,节点5可以接收到节点1、节点3、节点4和节点6分别发送的回声消息,节点6可以接收到节点2、节点3、节点4和节点5分别发送的回声消息。也即,每个节点至少可以接收到4个回声消息,即至少可以接收到4个切片。
步骤403:这个节点在接收到回声消息后,对接收到的回声消息中的切片进行验证。
这个节点会向其他节点发送回声消息,相应的,其他节点也会向这个节点发送回声消息。其他节点向这个节点发送的回声消息中携带有其他节点接收到的切片消息中的切片,进一步还可以携带有该切片对应的验证信息。
具体地,步骤403的操作可以为:这个节点根据接收到的回声消息中的验证信息对对应的切片进行验证。
这个节点根据接收到的回声消息中的验证信息对对应的切片进行验证的操作可以为:根据该回声消息中的验证信息中的树枝节点值和该切片的哈希值计算得到第四哈希值;若第四哈希值与该验证信息中的根节点值相同,则确定该切片验证通过;若第四哈希值与该验证信息中的根节点值不同,则确定该切片验证失败。
示例地,参见图5,若这个节点接收到携带有包括切片2和对应的验证信息的回声消息,该验证信息中的根节点值为hashABCD,该验证信息中的树枝节点值依次为:hashA、hashCD。则这个节点根据该验证信息对切片2进行验证的操作可以为:对切片2进行哈希运算,得到hashF;对hashF和hashA之和进行哈希运算,得到hashFA;对hashFA和hashCD之和进行哈希运算,得到hashFACD;若hashFACD和hashABCD相同,则确定该切片验证通过,保存该回声消息;若hashFACD和hashABCD不同,则确定该切片验证失败,丢弃该回声消息,保证区块链系统的安全性。
由于这个节点之前将回声消息分别发送给该n个节点中除自身之外的其他多个节点时有三种可能的情况。对应地,这个节点在接收到回声消息后,对接收到的回声消息中的切片进行验证之后,也有如下几种可能的情况:
第一种可能的情况中,若步骤402中这个节点将回声消息分别发送给该n个节点中除自身之外的其他n-1个节点。这种情况下,若这个节点验证通过的切片的数量大于或等于第二数量阈值,则分别向该n个节点中除自身之外的其他n-1个节点发送就绪消息;若验证通过的切片的数量小于第二数量阈值,且接收到的就绪消息的数量大于或等于第三数量阈值,则分别向其他n-1个节点发送就绪消息。
就绪消息用于向其他n-1个节点告知自身能够构建出该提案。
这个节点验证通过的切片的数量包括这个节点对接收到的切片消息中的切片验证通过的数量以及对接收到的回声消息中的切片验证通过的数量。
第二数量阈值大于第一数量阈值。第一数量阈值、第二数量阈值以及第三数量阈值均可以预先进行设置。第三数量阈值大于或等于第二数量阈值。
第一数量阈值是构建提案时至少所需的切片数量。比如,第一数量阈值可以为n-2f,如此能保证这个节点能够根据验证通过的所有切片构建出该提案。这种情况下,第二数量阈值可以为n-f,以使这个节点获取的验证通过的切片的数量至少为n-f。
例如,第二数量阈值为n-f,如此,即使区块链系统中存在f个恶意节点,这些恶意节点发送的回声消息有可能能够通过节点的验证,但是对构建提案没有任何帮助,此时也能够保证n-f个切片中的n-2f个切片是来自正常节点的,进而能够保证这个节点可以构建出该提案。这种情况下,这个节点分别向该n个节点中除自身之外的其他n-1个节点发送就绪消息。
第三数量阈值可以大于该n个节点中可能具有的恶意节点的数量。例如,第三数量阈值为f+1。如此即使该n个节点中存在f个恶意节点,在这个节点验证通过的切片的数量小于第二数量阈值,但接收到的就绪消息的数量大于或等于f+1的情况下,也能保证当前已经有一个正常节点验证通过的切片的数量大于或等于第二数量阈值。由于切片是通过该n个节点转发的,所以在已经有一个正常节点验证通过的切片的数量大于或等于第二数量阈值的情况下,这个节点虽然当前验证通过的切片的数量小于第二数量阈值,但是在后续接收到的切片的数量也能够大于或等于第二数量阈值。因此,这种情况下,这个节点也可以向该n个节点中除自身之外的其他n-1个节点发送就绪消息。
这个节点将回声消息分别发送给该n个节点中除自身之外的其他n-1个节点,能够保证该n个节点中的每个节点都可以接收到n个切片,从而能够构建出该提案。即使该n个节点中存在f个恶意节点,也能够保证该n个节点中的每个节点都可以接收到n-f个来自正常节点的切片,从而能够构建出该提案。因此,这个节点向该n个节点中除自身之外的其他n-1个节点发送就绪消息之后,可以直接执行步骤404,以在区块链系统中的所有节点都能够构建出该提案的情况下,构建该提案。
第二种可能的情况中,若步骤402中这个节点将回声消息分别发送给该n-1个节点中排序在前的n-2f个节点中除自身之外的其他每个节点。这种情况下,这个节点的操作可以包括如下步骤(1)-步骤(4):
(1)接收第一节点发送的第一指示消息。
第一节点是该n个节点中除自身之外的任意一个节点。第一指示消息用于指示发送第一指示消息的节点已获取到领导节点发送的切片消息。这个节点接收到第一节点发送的第一指示消息,说明第一节点接收到了领导节点发送的切片消息中的切片,但是未将该切片发送给这个节点。
(2)若验证通过的切片的数量和接收到的第一指示消息的数量之和大于或等于第二数量阈值,则分别向该n个节点中除自身之外的其他n-1个节点发送就绪消息;或者,若验证通过的切片的数量和接收到的第一指示消息的数量之和小于第二数量阈值,且接收到的就绪消息的数量大于或等于第三数量阈值,则分别向该n个节点中除自身之外的其他n-1个节点发送就绪消息;或者,若验证通过的切片的数量大于或等于第二数量阈值,则分别向该n个节点中除自身之外的其他n-1个节点发送就绪消息;若验证通过的切片的数量小于第二数量阈值,且接收到的就绪消息的数量大于或等于第三数量阈值,则分别向其他n-1个节点发送就绪消息。
验证通过的切片的数量和接收到的第一指示消息的数量之和大于或等于第二数量阈值,说明这个节点后续能够接收到的切片的数量大于或等于第二数量阈值,这种情况下,分别向该n个节点中除自身之外的其他n-1个节点发送就绪消息。
这个节点接收到的就绪消息的数量大于或等于第三数量阈值,能够保证当前已经有一个正常节点验证通过的切片的数量大于或等于第二数量阈值。由于切片是通过该n个节点转发的,所以在已经有一个正常节点验证通过的切片的数量大于或等于第二数量阈值的情况下,这个节点虽然当前验证通过的切片的数量和接收到的第一指示消息的数量之和小于第二数量阈值,但是在后续接收到的切片的数量也能够大于或等于第二数量阈值。因此,这种情况下,这个节点也可以分别向该n个节点中除自身之外的其他n-1个节点发送就绪消息。
(3)若验证通过的切片的数量大于或等于第一数量阈值,则向第一节点发送第二指示消息。
第二指示消息用于指示发送第二指示消息的节点已能够构建出该提案。
若这个节点验证通过的切片的数量大于或等于第一数量阈值,说明这个节点已经能够根据验证通过的所有切片构建出该提案,这种情况下,向给自身发送过第一指示消息的第一节点发送第二指示消息,以告知第一节点自身已经能够构建出该提案,以使第一节点后续不用向自身发送回声消息,如此降低了第一节点的通信总量,提高了区块链系统的性能。
(4)若接收到的就绪消息的数量大于或等于第四数量阈值,则从该2f个节点中除自身之外的节点中确定第二节点,将回声消息发送给第二节点。
第二节点是该n个节点中排序在后的2f个节点中除自身之外的未发送过第二指示消息的节点。也就是说,这个节点未向第二节点发送过自己接收到的切片消息中的切片,且第二节点自己也未从其他节点处接收到足够数量的切片。
第四数量阈值大于第三数量阈值,且小于或等于第二数量阈值。第四数量阈值可以预先进行设置,例如,第四数量阈值为2f+1,如此,若接收到的就绪消息的数量大于或等于2f+1,能够保证区块链系统中的f个恶意节点不能对正常节点造成影响,也即说明,正常节点接收到的切片的数量都能够大于或等于n-f,进而都能够构建出该提案。
若这个节点接收到的就绪消息的数量大于或等于第四数量阈值,还需要从该n个节点中排序在后的2f个节点中除自身之外的节点中确定出未发送过第二指示消息的节点(即,第二节点),将回声消息发送给第二节点,以保证第二节点也能够获得足够数量的切片来构建出该提案,从而保证能够有足够多的节点对该提案进行共识,并对该提案中的交易进行处理并存储至区块链。
需要说明的是,由于该n个节点中的每个节点确定出的其他各个节点的通信状态可能有所不同,则每个节点根据其他各个节点的通信状态得到的排序结果不同,如此,每个节点确定出的该n个节点中排序在前的n-2f个节点也不同,这种情况下,该n个节点中的每个节点发送回声消息的n-2f个节点有所不同。因此,为使该n个节点都能够构建出该提案,这个节点在接收到的就绪消息的数量大于或等于第四数量阈值的情况下,需要将回声消息发送给第二节点,使第二节点也能够构建出该提案,从而便于该n个节点能够对该提案进行共识。
这个节点执行完上述步骤(1)-步骤(4)的操作之后,可以直接执行步骤404,以在区块链系统中的所有节点都能够构建出该提案的情况下,构建该提案。
第三种可能的情况中,若步骤402中这个节点将回声消息分别发送给第二节点排序表中排序在前的n-f个节点标识中除自身的节点标识之外的其他每个节点标识所标识的节点。这种情况下,若这个节点验证通过的切片的数量大于或等于第二数量阈值,则分别向该n个节点中除自身之外的其他n-1个节点发送就绪消息;若验证通过的切片的数量小于第二数量阈值,且接收到的就绪消息的数量大于或等于第三数量阈值,则分别向其他n-1个节点发送就绪消息。
该n个节点中的每个节点都将回声消息分别发送给第二节点排序表中排序在前的n-f个节点标识中除自身的节点标识之外的其他每个节点标识所标识的节点,能够保证该n个节点中的每个节点接收到的切片的数量大于或等于n-f(第二数量阈值),从而能够构建出该提案。即使该n个节点中存在f个恶意节点,也能够保证该n个节点中的每个节点接收到的n-2f个切片是来自正常节点的,从而能够构建出该提案。因此,这个节点向该n个节点中除自身之外的其他n-1个节点发送就绪消息之后,可以直接执行步骤404,以在区块链系统中的所有节点都能够构建出该提案的情况下,构建该提案。
步骤404:若这个节点验证通过的切片的数量大于或等于第一数量阈值,则根据验证通过的所有切片构建该提案。
若这个节点验证通过的切片的数量大于或等于第一数量阈值,说明这个节点验证通过的切片已达到足够的数量,可以据此构建该提案。这个节点构建出该提案后,可以将该提案交给共识层,如此提案广播过程就结束了。
具体地,步骤404的操作可以为:若这个节点验证通过的切片的数量大于或等于第一数量阈值,且接收到的就绪消息的数量大于或等于第四数量阈值,则根据验证通过的所有切片构建该提案。
若这个节点验证通过的切片的数量大于或等于第一数量阈值,且接收到的就绪消息的数量大于或等于第四数量阈值,说明区块链系统中除f个恶意节点之外的其他所有节点接收到的切片的数量都大于或等于第二数量阈值,进而都能够根据验证通过的所有切片构建出该提案。
示例地,若第二数量阈值为n-f,第一数量阈值为n-2f,第四数量阈值为2f+1,则这个节点接收到的验证通过的切片的数量为n-f,能够构建出该提案的切片的数量为n-2f,在接收到的就绪消息的数量为2f+1时,能够保证区块链系统中除f个恶意节点之外的其他所有节点都能够接收到n-f个切片,进而能够构建出该提案。这种情况下,可以根据n-f个切片中的n-2f个切片构建出该提案,如此,不仅这个节点能够根据验证通过的切片构建该提案,而且该n个节点中除f个恶意节点之外的其他所有节点中的每个节点也都能够根据自身验证通过的切片构建该提案。
这个节点根据验证通过的所有切片构建该提案的操作可以为:对验证通过的所有切片进行擦除解码,得到字节序列;对该字节序列进行反序列化,得到该提案。
示例地,若在步骤401中字节序列是领导节点通过Reed Solomon擦除编码的方法转化为n个切片的,则这个节点可以通过Reed Solomon擦除解码的方法,将验证通过的所有切片转化为字节序列。若在步骤401中提案是领导节点根据Json序列化的方法转化为字节序列,则这个节点可以通过Json反序列化的方法,将字节序列转化为该提案。
下面结合图7来对本申请实施例的提案广播过程进行说明。图7中以区块链系统包括领导节点、节点1、节点2、节点3为例。
如图7所示,领导节点将提案划分为四个切片(即,切片1、切片2、切片3、切片4),存储携带切片4的切片消息,将携带切片1的切片消息发送给节点1,将携带切片2的切片消息发送给节点2,将携带切片3的切片消息发送给节点3。领导节点对携带切片4的切片消息进行验证,验证通过之后,将切片4携带于回声消息发送给除自身之外的其他多个节点(即,节点1、节点2、节点3);节点1在接收到携带切片1的切片消息后,对携带切片1的切片消息进行验证,验证通过之后,将切片1携带于回声消息发送给除自身之外的其他多个节点(即,领导节点、节点2、节点3);同理,节点2在接收到携带切片2的切片消息后,对切片2进行验证,验证通过之后,将切片2携带于回声消息发送给除自身之外的其他多个节点(即,领导节点、节点1、节点3);节点3在接收到携带切片3的切片消息后,对携带切片3的切片消息进行验证,验证通过之后,将切片3携带于回声消息发送给除自身之外的其他多个节点(即,领导节点、节点1、节点2)。如此,领导节点、节点1、节点2、节点3都获取到切片1、切片2、切片3、切片4。
领导节点在接收到节点1发送的携带切片1的回声消息后,对切片1进行验证,在接收到节点2发送的携带切片2的回声消息后,对切片2进行验证,在接收到节点3发送的携带切片3的回声消息后,对切片3进行验证,以防止切片在传输过程中被篡改,保证区块链系统的安全。领导节点在切片1、切片2、切片3、切片4都验证通过的情况下,向节点1、节点2、节点3发送就绪消息,告知节点1、节点2、节点3自身已能够构建出该提案。
同理,节点1在接收到领导节点发送的携带切片4的回声消息后,对切片4进行验证,在接收到节点2发送的携带切片2的回声消息后,对切片2进行验证,在接收到节点3发送的携带切片3的回声消息后,对切片3进行验证,以防止切片在传输过程中被篡改,保证区块链系统的安全。节点1在切片1、切片2、切片3、切片4都验证通过的情况下,向节点2、节点3、领导节点发送就绪消息,告知节点2、节点3、领导节点自身已能够构建出该提案。
同理,节点2在接收到领导节点发送的携带切片4的回声消息后,对切片4进行验证,在接收到节点1发送的携带切片1的回声消息后,对切片1进行验证,在接收到节点3发送的携带切片3的回声消息后,对切片3进行验证,以防止切片在传输过程中被篡改,保证区块链系统的安全。节点2在切片1、切片2、切片3、切片4都验证通过的情况下,向节点1、节点3、领导节点发送就绪消息,告知节点1、节点3、领导节点自身已能够构建出该提案。
同理,节点3在接收到领导节点发送的携带切片4的回声消息后,对切片4进行验证,在接收到节点1发送的携带切片1的回声消息后,对切片1进行验证,在接收到节点2发送的携带切片2的回声消息后,对切片2进行验证,以防止切片在传输过程中被篡改,保证区块链系统的安全。节点3在切片1、切片2、切片3、切片4都验证通过的情况下,向节点1、节点2、领导节点发送就绪消息,告知节点1、节点2、领导节点自身已能够构建出该提案。
接着,领导节点在自身已能够构建出提案、且也接收到节点1、节点2、节点3发送的就绪消息的情况下,根据切片1、切片2、切片3、切片4构建该提案。节点1在自身已能够构建出提案、且也接收到节点2、节点3、领导节点发送的就绪消息的情况下,根据切片1、切片2、切片3、切片4构建该提案。节点2在自身已能够构建出提案、且也接收到节点1、节点3、领导节点发送的就绪消息的情况下,根据切片1、切片2、切片3、切片4构建该提案。节点3在自身已能够构建出提案、且也接收到节点1、节点2、领导节点发送的就绪消息的情况下,根据切片1、切片2、切片3、切片4构建该提案。如此,是在节点1、节点2、节点3、领导节点都能够构建出该提案的情况下,构建该提案的。从而可以保证节点1、节点2、节点3、领导节点都能够获取到该提案。
下面结合图8来对本申请实施例提供的提案广播方法在交易共识过程中所处的阶段进行说明。图8所示的是本申请实施例中的提案广播方法应用于基于流水线的Hotstuff共识算法的示意图。
如图8所示,选举出第一轮领导节点后,第一轮领导节点将第一轮的提案对应的n个切片消息发送给区块链系统中的n个节点,以将第一轮的提案广播给该n个节点。之后,在对第一轮的提案进行共识的过程中,选举第二轮领导节点。选举出第二轮领导节点后,第二轮领导节点接收到第一轮领导节点发送的切片消息之后,不仅可以处理第一轮领导节点发送的切片消息,还可以将第二轮的提案对应的n个切片消息发送给区块链系统中的n个节点,以将第二轮的提案广播给该n个节点。同理,在对第二轮的提案进行共识的过程中,选举第三轮领导节点。选举出第三轮领导节点后,第三轮领导节点接收到第一轮领导节点发送的切片消息以及接收到第二轮领导节点发送的切片消息之后,不仅可以处理第一轮领导节点发送的切片消息、处理第二轮领导节点发送的切片消息,还可以将第三轮的提案对应的n个切片消息发送给区块链系统中的n个节点,以将第三轮的提案广播给该n个节点。以此类推,依次广播,实现流水线似的提案共识过程。从而,提高区块链系统处理提案的速率,提升区块链系统的性能。
需要说明的是,本申请实施例在领导节点将提案划分为n个切片之后,将领导节点视为一个普通节点,与区块链系统中的其他节点执行相同的操作,如此,可以进一步地降低领导节点的通信总量,还可以消除提案广播过程中领导节点和其他节点的差异,更进一步地平衡区块链系统中的各节点在提案广播过程中的通信负载,提高区块链系统的性能。
在本申请实施例中,领导节点将提案划分为n个切片,将n个切片消息一一发送给区块链系统中的n个节点,该n个切片消息一一携带有该n个切片,以使该n个节点中的每个节点接收到的切片不同。对于该n个节点中的任意一个节点,这个节点接收到切片消息后,对该切片消息中的切片进行验证,在验证通过之后,将携带有该切片消息中的切片的回声消息发送给该n个节点除自身之外的其他多个节点,使其他多个节点也能够获取到该切片。接着,这个节点在接收到其他节点发送的回声消息后,对该回声消息中的切片进行验证。最后,这个节点在验证通过的切片的数量大于或等于第一数量阈值的情况下,根据验证通过的所有切片构建该提案。由于该n个节点中的每个节点在对接收到的切片消息中的切片验证通过之后,都会向该n个节点中除自身之外的其他多个节点发送回声消息,且该n个节点中的每个节点发送的回声消息中的切片不同,如此该n个节点中的每个节点都可以接收到多个不同的切片,从而能够构建出该提案。这种将提案进行切片再广播的方式,可以降低领导节点的通信总量,使领导节点不容易达到带宽瓶颈,还可以充分利用其他节点的闲置带宽,提高资源利用率,从而平衡了区块链系统中的各节点在提案广播过程中的通信负载,提高了区块链系统的性能。
图9是本申请实施例提供的一种区块链系统的结构示意图。区块链系统包括n个节点,该n个节点包括领导节点,领导节点用于广播提案,该提案包括交易,n为大于或等于4的整数。参见图9,领导节点包括:第一发送模块901;n个节点中的每个节点包括:第二发送模块902、验证模块903、构建模块904。
领导节点包括:
第一发送模块901,用于将该提案划分为n个切片,将n个切片消息一一发送给该n个节点,该n个切片消息一一携带有该n个切片;
该n个节点中的每个节点包括:
第二发送模块902,用于在接收到切片消息后,对接收到的切片消息中的切片进行验证,在验证通过后,将回声消息分别发送给该n个节点中除自身之外的其他多个节点,该回声消息携带有接收到的切片消息中的切片;
验证模块903,用于在接收到回声消息后,对接收到的回声消息中的切片进行验证;
构建模块904,用于在验证通过的切片的数量大于或等于第一数量阈值的情况下,根据验证通过的所有切片构建该提案。
可选地,n个节点中的每个节点还包括:
第三发送模块,用于在验证通过的切片的数量大于或等于第二数量阈值的情况下,分别向该n个节点中除自身之外的其他n-1个节点发送就绪消息,第二数量阈值大于第一数量阈值;
第四发送模块,用于在验证通过的切片的数量小于第二数量阈值,且接收到的就绪消息的数量大于或等于第三数量阈值的情况下,分别向其他n-1个节点发送就绪消息;
该构建模块904用于:
在验证通过的切片的数量大于或等于第一数量阈值,且接收到的就绪消息的数量大于或等于第四数量阈值的情况下,根据验证通过的所有切片构建该提案,第四数量阈值大于第三数量阈值。
可选地,第一发送模块901用于:
对该提案进行序列化,得到字节序列;
对该字节序列进行擦除编码,得到该n个切片,该n个切片中的2f个切片是冗余切片,该n个切片中的任意n-2f个切片能够构建出该提案,f为正整数。
可选地,第二发送模块902用于:
将该回声消息分别发送给该n个节点中除自身之外的其他n-1个节点。
可选地,第二发送模块901用于:
获取该n个节点中每个节点的通信状态;
根据该n个节点中的每个节点的通信状态,对该n个节点进行排序;
将该回声消息分别发送给该n个节点中排序在前的n-2f个节点中除自身之外的其他每个节点。
可选地,第二发送模块902还用于:
分别向该n个节点中排序在后的2f个节点中除自身之外的其他每个节点发送第一指示消息,第一指示消息用于指示已接收到领导节点发送的切片消息;
n个节点中的每个节点还包括:
接收模块,用于接收第一节点发送的第一指示消息,第一节点是该n个节点中除自身之外的任意一个节点;
第五发送模块,用于在验证通过的切片的数量大于或等于第一数量阈值的情况下,向第一节点发送第二指示消息,第二指示消息用于指示已能够构建出该提案;
第六发送模块,用于在验证通过的切片的数量和接收到的第一指示消息的数量之和大于或等于第二数量阈值的情况下,分别向该n个节点中除自身之外的其他n-1个节点发送就绪消息,第二数量阈值大于第一数量阈值。
第七发送模块,用于在验证通过的切片的数量和接收到的第一指示消息的数量之和小于第二数量阈值,且接收到的就绪消息的数量大于或等于第三数量阈值的情况下,分别向该n个节点中除自身之外的其他n-1个节点发送就绪消息,第四数量阈值大于第三数量阈值;
第八发送模块,用于在接收到的就绪消息的数量大于或等于第四数量阈值的情况下,从该2f个节点中除自身之外的节点中确定第二节点,将回声消息发送给第二节点,第二节点是未发送过第二指示消息的节点;
可选地,第二发送模块902用于:
按照该n个节点的节点标识的顺序,对该n个节点的节点标识进行排序,得到第一节点排序表;
将自身的节点标识在该n个节点的节点标识中所处的序次减1,得到m;
将第一节点排序表中的该n个节点的节点标识循环右移m位,得到第二节点排序表;
将回声消息分别发送给第二节点排序表中排序在前的n-f个节点标识中除自身的节点标识之外的其他每个节点标识所标识的节点。
可选地,第一数量阈值为n-2f,构建模块904用于:
对验证通过的所有切片进行擦除解码,得到该字节序列;
对该字节序列进行反序列化,得到该提案。
可选地,第一发送模块901还用于:
以该n个切片中每个切片的哈希值为叶子节点值,构建默克尔树;
对于该n个切片中的任意一个切片,将该默克尔树中与这个切片的验证相关的根节点值和树枝节点值确定为这个切片对应的验证信息,将这个切片和对应的验证信息携带于一个切片消息;
第二发送模块902用于:
根据接收到的切片消息中的验证信息对对应的切片进行验证;
验证模块903用于:
根据接收到的回声消息中的验证信息对对应的切片进行验证。
在本申请实施例中,领导节点将提案划分为n个切片,将n个切片消息一一发送给区块链系统中的n个节点,该n个切片消息一一携带有该n个切片,以使该n个节点中的每个节点接收到的切片不同。对于该n个节点中的任意一个节点,这个节点接收到切片消息后,对该切片消息中的切片进行验证,在验证通过之后,将携带有该切片消息中的切片的回声消息发送给该n个节点除自身之外的其他多个节点,使其他多个节点也能够获取到该切片。接着,这个节点在接收到其他节点发送的回声消息后,对该回声消息中的切片进行验证。最后,这个节点在验证通过的切片的数量大于或等于第一数量阈值的情况下,根据验证通过的所有切片构建该提案。由于该n个节点中的每个节点在对接收到的切片消息中的切片验证通过之后,都会向该n个节点中除自身之外的其他多个节点发送回声消息,且该n个节点中的每个节点发送的回声消息中的切片不同,如此该n个节点中的每个节点都可以接收到多个不同的切片,从而能够构建出该提案。这种将提案进行切片再广播的方式,可以降低领导节点的通信总量,使领导节点不容易达到带宽瓶颈,还可以充分利用其他节点的闲置带宽,提高资源利用率,从而平衡了区块链系统中的各节点在提案广播过程中的通信负载,提高了区块链系统的性能。
需要说明的是:上述实施例提供的提案广播装置在广播提案时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
上述实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请实施例的保护范围。
上述实施例提供的提案广播装置与提案广播方法实施例属于同一构思,上述实施例中单元、模块的具体工作过程及带来的技术效果,可参见方法实施例部分,此处不再赘述。
图10为本申请实施例提供的一种计算机设备的结构示意图。如图10所示,计算机设备10包括:处理器100、存储器101以及存储在存储器101中并可在处理器100上运行的计算机程序102,处理器100执行计算机程序102时实现上述实施例中的提案广播方法中的步骤。
计算机设备10可以是由多个服务器组成的服务器集群。本领域技术人员可以理解,图10仅仅是计算机设备10的举例,并不构成对计算机设备10的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,比如还可以包括输入输出设备、网络接入设备等。
处理器100可以是中央处理单元(Central Processing Unit,CPU),处理器100还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器。
存储器101在一些实施例中可以是计算机设备10的内部存储单元,比如计算机设备10的硬盘或内存。存储器101在另一些实施例中也可以是计算机设备10的外部存储设备,比如计算机设备10上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器101还可以既包括计算机设备10的内部存储单元也包括外部存储设备。存储器101用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,比如计算机程序的程序代码等。存储器101还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机设备,该计算机设备包括:至少一个处理器、存储器以及存储在该存储器中并可在该至少一个处理器上运行的计算机程序,该处理器执行该计算机程序时实现上述任意各个方法实施例中的步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例中的步骤。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述方法实施例中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,该计算机程序包括计算机程序代码,该计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。该计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,只读光盘)、磁带、软盘和光数据存储设备等。本申请提到的计算机可读存储介质可以为非易失性存储介质,换句话说,可以是非瞬时性存储介质。
应当理解的是,实现上述实施例的全部或部分步骤可以通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。该计算机指令可以存储在上述计算机可读存储介质中。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (12)
1.一种提案广播方法,其特征在于,应用于区块链系统,所述区块链系统包括n个节点,所述n个节点包括领导节点,所述领导节点用于广播提案,所述提案包括交易,所述n为大于或等于4的整数,所述方法包括:
所述领导节点将所述提案划分为n个切片,将n个切片消息一一发送给所述n个节点,所述n个切片消息一一携带有所述n个切片;
所述n个节点中的每个节点均执行以下操作:
在接收到切片消息后,对接收到的切片消息中的切片进行验证,在验证通过后,将回声消息分别发送给所述n个节点中除自身之外的其他多个节点,所述回声消息携带有接收到的切片消息中的切片;
在接收到回声消息后,对接收到的回声消息中的切片进行验证;
若验证通过的切片的数量大于或等于第一数量阈值,则根据验证通过的所有切片构建所述提案。
2.如权利要求1所述的方法,其特征在于,所述若验证通过的切片的数量大于或等于第一数量阈值,则根据验证通过的所有切片构建所述提案之前,还包括:
若验证通过的切片的数量大于或等于第二数量阈值,则分别向所述n个节点中除自身之外的其他n-1个节点发送就绪消息,所述第二数量阈值大于所述第一数量阈值;
若验证通过的切片的数量小于所述第二数量阈值,且接收到的就绪消息的数量大于或等于第三数量阈值,则分别向所述n-1个节点发送就绪消息;
所述若验证通过的切片的数量大于或等于第一数量阈值,则根据验证通过的所有切片构建所述提案,包括:
若验证通过的切片的数量大于或等于所述第一数量阈值,且接收到的就绪消息的数量大于或等于第四数量阈值,则根据验证通过的所有切片构建所述提案,所述第四数量阈值大于所述第三数量阈值。
3.如权利要求1所述的方法,其特征在于,所述领导节点将所述提案划分为n个切片,包括:
所述领导节点对所述提案进行序列化,得到字节序列;
所述领导节点对所述字节序列进行擦除编码,得到所述n个切片,所述n个切片中的2f个切片是冗余切片,所述n个切片中的任意n-2f个切片能够构建出所述提案,所述f为正整数。
4.如权利要求1所述的方法,其特征在于,所述将回声消息分别发送给所述n个节点中除自身之外的其他多个节点,包括:
将所述回声消息分别发送给所述n个节点中除自身之外的其他n-1个节点。
5.如权利要求3所述的方法,其特征在于,所述将回声消息分别发送给所述n个节点中除自身之外的其他多个节点,包括:
获取所述n个节点中每个节点的通信状态;
根据所述n个节点中每个节点的通信状态,对所述n个节点进行排序;
将所述回声消息分别发送给所述n个节点中排序在前的n-2f个节点中除自身之外的其他每个节点。
6.如权利要求5所述的方法,其特征在于,所述将所述回声消息分别发送给所述n个节点中排序在前的n-2f个节点中除自身之外的其他每个节点之后,还包括:
分别向所述n个节点中排序在后的2f个节点中除自身之外的其他每个节点发送第一指示消息,所述第一指示消息用于指示已接收到所述领导节点发送的切片消息;
所述若验证通过的切片的数量大于或等于第一数量阈值,则根据验证通过的所有切片构建所述提案之前,还包括:
接收第一节点发送的第一指示消息,所述第一节点是所述n个节点中除自身之外的任意一个节点;
若验证通过的切片的数量大于或等于所述第一数量阈值,则向所述第一节点发送第二指示消息,所述第二指示消息用于指示已能够构建出所述提案;
若验证通过的切片的数量和接收到的第一指示消息的数量之和大于或等于第二数量阈值,则分别向所述n个节点中除自身之外的其他n-1个节点发送就绪消息,所述第二数量阈值大于所述第一数量阈值;
若验证通过的切片的数量和接收到的第一指示消息的数量之和小于所述第二数量阈值,且接收到的就绪消息的数量大于或等于第三数量阈值,则分别向所述n个节点中除自身之外的其他n-1个节点发送就绪消息,所述第四数量阈值大于所述第三数量阈值;
若接收到的就绪消息的数量大于或等于第四数量阈值,则从所述2f个节点中除自身之外的节点中确定第二节点,将所述回声消息发送给所述第二节点,所述第二节点是未发送过第二指示消息的节点。
7.如权利要求3所述的方法,其特征在于,所述n个节点中的每个节点均具有节点标识,所述n个节点的节点标识具有顺序性,所述将回声消息分别发送给所述n个节点中除自身之外的其他多个节点,包括:
按照所述n个节点的节点标识的顺序,对所述n个节点的节点标识进行排序,得到第一节点排序表;
将自身的节点标识在所述n个节点的节点标识中所处的序次减1,得到m;
将所述第一节点排序表中的所述n个节点的节点标识循环右移m位,得到第二节点排序表;
将回声消息分别发送给所述第二节点排序表中排序在前的n-f个节点标识中除自身的节点标识之外的其他每个节点标识所标识的节点。
8.如权利要求3所述的方法,其特征在于,所述第一数量阈值为n-2f,所述根据验证通过的所有切片构建所述提案,包括:
对验证通过的所有切片进行擦除解码,得到所述字节序列;
对所述字节序列进行反序列化,得到所述提案。
9.如权利要求1-8任一所述的方法,其特征在于,所述领导节点将n个切片消息一一发送给所述n个节点之前,还包括:
所述领导节点以所述n个切片中每个切片的哈希值为叶子节点值,构建默克尔树;
对于所述n个切片中的任意一个切片,所述领导节点将所述默克尔树中与所述一个切片的验证相关的根节点值和树枝节点值确定为所述一个切片对应的验证信息,将所述一个切片和对应的验证信息携带于一个切片消息;
所述对接收到的切片消息中的切片进行验证,包括:
根据接收到的切片消息中的验证信息对对应的切片进行验证;
所述回声消息携带有接收到的切片消息中的切片和对应的验证信息,所述对接收到的回声消息中的切片进行验证,包括:
根据接收到的回声消息中的验证信息对对应的切片进行验证。
10.一种区块链系统,其特征在于,包括n个节点,所述n个节点包括领导节点,所述领导节点用于广播提案,所述提案包括交易,所述n为大于或等于4的整数;
所述领导节点包括:
第一发送模块,用于将所述提案划分为n个切片,将n个切片消息一一发送给所述n个节点,所述n个切片消息一一携带有所述n个切片;
所述n个节点中的每个节点包括:
第二发送模块,用于在接收到切片消息后,对接收到的切片消息中的切片进行验证,在验证通过后,将回声消息分别发送给所述n个节点中除自身之外的其他多个节点,所述回声消息携带有接收到的切片消息中的切片;
验证模块,用于在接收到回声消息后,对接收到的回声消息中的切片进行验证;
构建模块,用于在验证通过的切片的数量大于或等于第一数量阈值的情况下,根据验证通过的所有切片构建所述提案。
11.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至9任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111125446.3A CN113852470B (zh) | 2021-09-23 | 2021-09-23 | 提案广播方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111125446.3A CN113852470B (zh) | 2021-09-23 | 2021-09-23 | 提案广播方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113852470A true CN113852470A (zh) | 2021-12-28 |
CN113852470B CN113852470B (zh) | 2024-04-05 |
Family
ID=78979786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111125446.3A Active CN113852470B (zh) | 2021-09-23 | 2021-09-23 | 提案广播方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113852470B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114448900A (zh) * | 2022-04-02 | 2022-05-06 | 南京邮电大学 | 基于扩展raft算法的SDN控制器交互方法及系统 |
CN116938951A (zh) * | 2023-09-18 | 2023-10-24 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 区块链共识方法和系统、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112039860A (zh) * | 2020-08-18 | 2020-12-04 | 上海简苏网络科技有限公司 | 一种在联盟链中实现联合共识分片的方法和装置 |
CN112347508A (zh) * | 2020-11-04 | 2021-02-09 | 汪秀英 | 一种区块链数据共享加密和解密方法及系统 |
CN113360575A (zh) * | 2021-06-10 | 2021-09-07 | 广东浪潮智慧计算技术有限公司 | 联盟链中交易数据的监管方法、装置、设备及存储介质 |
-
2021
- 2021-09-23 CN CN202111125446.3A patent/CN113852470B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112039860A (zh) * | 2020-08-18 | 2020-12-04 | 上海简苏网络科技有限公司 | 一种在联盟链中实现联合共识分片的方法和装置 |
CN112347508A (zh) * | 2020-11-04 | 2021-02-09 | 汪秀英 | 一种区块链数据共享加密和解密方法及系统 |
CN113360575A (zh) * | 2021-06-10 | 2021-09-07 | 广东浪潮智慧计算技术有限公司 | 联盟链中交易数据的监管方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
MENG HU 等: "CRSM: An Effective Blockchain Consensus Resource Slicing Model for Real-Time Distributed Energy Trading", 《IEEE ACCESS》, pages 2 * |
蔡亮 等: "基于双层协同的联盟区块链隐私数据保护方法", 《软件学报》, vol. 8, no. 31 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114448900A (zh) * | 2022-04-02 | 2022-05-06 | 南京邮电大学 | 基于扩展raft算法的SDN控制器交互方法及系统 |
CN114448900B (zh) * | 2022-04-02 | 2022-08-02 | 南京邮电大学 | 基于扩展raft算法的SDN控制器交互方法及系统 |
CN116938951A (zh) * | 2023-09-18 | 2023-10-24 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 区块链共识方法和系统、电子设备及存储介质 |
CN116938951B (zh) * | 2023-09-18 | 2024-02-13 | 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) | 区块链共识方法和系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113852470B (zh) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112837160B (zh) | 基于区块链的跨链交易方法、装置和计算机可读存储介质 | |
CN110708171B (zh) | 区块链共识投票方法、装置、设备以及存储介质 | |
US10862959B2 (en) | Consensus system and method for adding data to a blockchain | |
CN113852470B (zh) | 提案广播方法、装置、设备和存储介质 | |
CN110851537A (zh) | 一种基于区块链分片技术的共识方法 | |
CN110941859A (zh) | 用于区块链形成共识的方法、设备、计算机可读存储介质和计算机程序产品 | |
US11611439B2 (en) | Tree structure for byzantine fault tolerance | |
CN110597489B (zh) | 一种随机数生成方法、设备及介质 | |
CN114422155B (zh) | 提案共识执行方法、区块链系统、设备和存储介质 | |
CN115840787B (zh) | 基于区块链的供应链数据共享方法、装置、设备及介质 | |
CN111899019A (zh) | 一种黑名单多方交叉验证和共享的方法及系统 | |
CN111367923A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
US20190258610A1 (en) | Byzantine fault-tolerant algorithm with four steps | |
CN114862397B (zh) | 一种基于双链结构的双解耦区块链分布式方法 | |
US20220239668A1 (en) | Blockchain-based message processing method and apparatus, device, and storage medium | |
US20240073045A1 (en) | Blockchain-based data processing method and apparatus, device, medium, and product | |
CN117251889A (zh) | 区块链共识方法、相关装置和介质 | |
CN113255011A (zh) | 区块链状态映射方法、系统、计算机设备及存储介质 | |
CN110585727B (zh) | 一种资源获取方法及装置 | |
CN114785805B (zh) | 一种数据传输方法、装置、电子设备以及存储介质 | |
CN114861233B (zh) | 一种无需可信第三方的分片异步拜占庭容错共识方法和装置 | |
CN113051622B (zh) | 索引构建方法、装置、设备和存储介质 | |
US20230185969A1 (en) | Consensus method for a distributed database | |
CN116938951B (zh) | 区块链共识方法和系统、电子设备及存储介质 | |
CN112995988B (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 |