CN113573255A - 基于区块链进行共识的方法、装置及存储介质 - Google Patents
基于区块链进行共识的方法、装置及存储介质 Download PDFInfo
- Publication number
- CN113573255A CN113573255A CN202110843664.4A CN202110843664A CN113573255A CN 113573255 A CN113573255 A CN 113573255A CN 202110843664 A CN202110843664 A CN 202110843664A CN 113573255 A CN113573255 A CN 113573255A
- Authority
- CN
- China
- Prior art keywords
- consensus
- request
- nodes
- node
- embms
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/06—Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/30—Network data restoration; Network data reliability; Network data fault tolerance
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明内容提供了一种基于区块链进行共识的方法,所述区块链中具有一个主共识节点和多个备份共识节点,包括:由所述主共识节点接收操作请求并将与所述操作请求相关联的预备请求以eMBMS多播形式发送给所述多个备份共识节点;由接收到所述预备请求的多个备份共识节点分别以eMBMS多播形式将与所述预备请求相关联的准备请求发送至其他节点;由所述主共识节点和所述多个备份共识节点以eMBMS多播形式将与所述准备请求相关联的提交请求发送至其余节点;以及由所述主共识节点和所述多个备份共识节点以单播形式将与所述提交请求相关联的响应请求返回至客户端。
Description
技术领域
本发明内容涉及区块链技术,更为具体地涉及一种基于区块链进行共识的方法、基于区块链进行共识的装置以及一种相应的计算机可读存储介质。
背景技术
LTE/5G移动宽带网络的多媒体广播多播技术(eMBMS,Enhanced MultimediaBroadcast and Multicast Services)支持在蜂窝网络中提供广播多播网络,为很大覆盖范围的广大用户提供相同的内容。eMBMS能够显著地降低运营商在LTE/5G网络上同时向大量用户提供诸如视频、音频等高带宽内容的成本,避免在单播(Unicast)网络中由于许多用户同时获取相同内容而引起的网络拥塞。
区块链是一种源自比特币的去中心化分布式记账技术。参与到区块链系统中的各个节点,彼此无需信任。区块链由所有参加的节点共同维护,每个参与维护的节点都可以获取一份区块链数据的完整拷贝并独立进行验证。区块链采用了密码技术来保证区块链只能添加新数据而不能篡改已经发生过的数据。
一般区块链都使用基于因特网(Internet)的peer-to-peer(P2P)网络架构将所有节点联系在一起。P2P是指位于同一网络中的每台计算机都彼此对等,各个节点共同提供网络服务,不存在任何特殊节点。每个网络节点以扁平的拓扑结构相互连通。在P2P网络中不存在任何服务端、中央化的服务、以及层级结构。P2P网络的节点之间交互运作、协同处理:每个节点在对外提供服务的同时也使用网络中其他节点所提供的服务。P2P网络也因此具有可靠性、去中心化,以及开放性。
PBFT(Practical Byzantine Fault Tolerance)共识算法意为实用拜占庭容错算法。该算法是Miguel Castro和Barbara Liskov在1999年提出来的,解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。该论文发表在1999年的操作系统设计与实现国际会议上(OSDI99,参考文档6)。
PBFT共识算法在区块链系统中变得越来越重要并且得到了广泛地应用,因为恶意攻击和软件错误的发生将会越来越多,并且导致失效的节点产生任意行为。使用该算法的区块链系统如果需要容忍最多f个失效或者恶意节点同时发生错误。那么需要有至少3f+1个节点参与共识。
假设一个区块链中有四个区块链节点,即4个节点的区块链系统采用PBFT共识算法达成共识的步骤,因为该系统只有4个节点,所以只能容忍最多1个节点发生故障(失效或者进行恶意攻击)。例如节点3发生了故障,只能接收消息,但是无法发送消息。
四个节点的区块链系统采用PBFT共识算法达成共识的步骤
移动宽带网络区块链的技术挑战
区块链需要定期的产生一定大小的新区块,并把最新的区块传播到网络中的所有节点。区块链的P2P网络和传统的基于P2P的文件分享一样,可能占用Internet的大量带宽,节点越多占用的网络资源也越多。这个问题在移动宽带网络中更加突出。区块链的一个典型用例就是具有海量设备通过移动宽带相连的物联网(IOT,Internet of things)中。一方面因为设备数量众多,区块链的每一个区块传播到每个设备会带来更大的带宽消耗;另一方面,因为设备数量众多,交易量庞大,需要更大的区块来容纳更多的交易,同时要求产生区块的时间间隔更短,因此会有更多的数据在P2P网络中传播。这将显著提高区块链在移动宽带网络上的部署成本。
中国专利ZL201710305381.8(移动宽带网络下的区块链多播网络、区块链设备及其通信方法)提出了一种使用LTE/5G eMBMS技术来广播每一个最新的区块信息到网络所有区块链节点,同时保留了使用单播发现相邻节点,同步区块的混合组网方案。该方案通过eMBMS多播将最新区块链同步到所有节点,有效解决了传统P2P网络占用网络资源过多和容易引起网络风暴的缺点,特别适合移动宽带网络和物联网相结合的场景。
除了区块同步消耗过多的移动宽带网络问题,PBFT这样的共识算法也存在着同样的问题。当一个区块链客户端向区块链系统发出操作请求(request)消息时,在pre-prepare、prepare、commit阶段都会产生大量的节点对节点消息。对一个n节点的区块链网络,如果所有节点正常工作,pre-prepare阶段所有节点最多会产生(n-1)条消息,prepare阶段所有节点最多会产生(n-1)*(n-1)条消息,commit阶段所有节点最多会产生n*(n-1)条消息。所以我们可以看到,为了对一条操作请求达成共识,发送网络消息的开销是非常惊人的,即跟节点数n的平方成正比。这导致PBFT共识算法可扩展性非常差,当节点数量超过一定数量(数十个至数百个)时,算法的性能急剧下降。
发明内容
为了解决上述技术问题,本公开内容提出了同时使用移动宽带网络多播和组播的PBFT共识算法方案,即本发明提出了一种使用LTE/5G移动宽带网络中eMBMS多媒体广播多播技术来发送节点需要广播到其它节点的相同消息,降低了原算法共识过程需要发送的单播网络消息风暴,极大地提升了PBFT共识算法的可扩展性,使该算法在节点数量巨大的情况下也能保持优秀的性能。
为此,在本发明的实施例的第一方面中提供了一种基于区块链进行共识的方法,所述区块链中具有一个主共识节点和多个备份共识节点,其特征在于,所述方法包括:
由所述主共识节点接收操作请求并将与所述操作请求相关联的预备请求以eMBMS多播形式发送给所述多个备份共识节点;
由接收到所述预备请求的多个备份共识节点分别以eMBMS多播形式将与所述预备请求相关联的准备请求发送至其他节点;
由所述主共识节点和所述多个备份共识节点以eMBMS多播形式将与所述准备请求相关联的提交请求发送至其余节点;以及
由所述主共识节点和所述多个备份共识节点以单播形式将与所述提交请求相关联的响应请求返回至客户端。
在依据本公开内容的一个实施例之中,所述方法还包括:
由所述主共识节点从所述客户端以单播或者eMBMS多播方式接收所述操作请求。
在依据本公开内容的一个实施例之中,所述操作请求之中包括与发送时间相关联的时间戳信息。
在依据本公开内容的一个实施例之中,所述主共识节点和所述多个备份共识节点能够在同一个eMBMS多播信道上进行通信。
在依据本公开内容的一个实施例之中,所述预备请求、所述准备请求、所述提交请求中的至少一个被包括在eMBMS报文的负荷之中。
在依据本公开内容的一个实施例之中,所述负荷之中还包括发送所述eMBMS报文的节点信息。
在依据本公开内容的一个实施例之中,所述方法是以下方法中的一种:
实用拜占庭容错算法;或者
RAFT共识算法。
此外,本公开内容的第二方面提出了一种基于区块链进行共识的装置,所述区块链中具有一个主共识节点和多个备份共识节点,其特征在于,所述装置包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
由所述主共识节点接收操作请求并将与所述操作请求相关联的预备请求以eMBMS多播形式发送给所述多个备份共识节点;
由接收到所述预备请求的多个备份共识节点分别以eMBMS多播形式将与所述预备请求相关联的准备请求发送至其他节点;
由所述主共识节点和所述多个备份共识节点以eMBMS多播形式将与所述准备请求相关联的提交请求发送至其余节点;以及
由所述主共识节点和所述多个备份共识节点以单播形式将与所述提交请求相关联的响应请求返回至客户端。
在依据本公开内容的一个实施例之中,当所述指令执行时还使得所述处理器执行以下操作:
由所述主共识节点从所述客户端以单播或者eMBMS多播方式接收所述操作请求。
在依据本公开内容的一个实施例之中,所述操作请求之中包括与发送时间相关联的时间戳信息。
在依据本公开内容的一个实施例之中,所述主共识节点和所述多个备份共识节点能够在同一个eMBMS多播信道上进行通信。
在依据本公开内容的一个实施例之中,所述预备请求、所述准备请求、所述提交请求中的至少一个被包括在eMBMS报文的负荷之中。
在依据本公开内容的一个实施例之中,所述负荷之中还包括发送所述eMBMS报文的节点信息。
在依据本公开内容的一个实施例之中,所述装置中进行共识的方法是以下方法中的一种:
实用拜占庭容错算法;或者
RAFT共识算法。
再者,本公开内容的第三方面提出了一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据本公开内容的第一方面所述的基于区块链进行共识的方法。
本发明提出了一种使用LTE/5G移动宽带网络中eMBMS多媒体广播多播技术来发送节点需要广播到其它节点的相同消息,降低了原算法共识过程需要发送的单播网络消息风暴,极大地提升了PBFT共识算法的可扩展性,使该算法在节点数量巨大的情况下也能保持优秀的性能。本发明的其他优势将在下文中进一步说明。
附图说明
结合附图并参考以下详细说明,本发明的各实施例的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施例,在附图中:
图1示出了依据本发明内容所提出的基于区块链进行共识的方法100的流程图;
图2示出了依据图1所示的基于区块链进行共识的方法100运行时的协议报文的格式的示意图200;
图3示出了在其中能够实施基于区块链进行共识的方法100的基于区块链进行共识的装置300的示意图;以及
图4示出了在其中能够实施基于区块链进行共识的方法100的基于区块链进行共识的装置400的示意图。
具体实施方式
以下参考附图详细描述本发明的各个示例性实施例。虽然以下所描述的示例性方法、装置包括在其它组件当中的硬件上执行的软件和/或固件,但是应当注意,这些示例仅仅是说明性的,而不应看作是限制性的。例如,考虑在硬件中独占地、在软件中独占地、或在硬件和软件的任何组合中可以实施任何或所有硬件、软件和固件组件。因此,虽然以下已经描述了示例性的方法和装置,但是本领域的技术人员应容易理解,所提供的示例并不用于限制用于实现这些方法和装置的方式。
此外,附图中的流程图和框图示出了根据本发明的各种实施例的方法和系统的可能实现的体系架构、功能和操作。应当注意,方框中所标注的功能也可以按照不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,或者它们有时也可以按照相反的顺序执行,这取决于所涉及的功能。同样应当注意的是,流程图和/或框图中的每个方框、以及流程图和/或框图中的方框的组合,可以使用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以使用专用硬件与计算机指令的组合来实现。
图1示出了依据本发明内容所提出的基于区块链进行共识的方法100的流程图。从图中可以看出,所述区块链中具有一个主共识节点和多个备份共识节点,基于区块链进行共识的方法100至少包括以下四个步骤,即:
首先,在方法步骤110之中,由所述主共识节点接收操作请求并将与所述操作请求相关联的预备请求以eMBMS多播形式发送给所述多个备份共识节点;
接下来,在方法步骤120之中,由接收到所述预备请求的多个备份共识节点分别以eMBMS多播形式将与所述预备请求相关联的准备请求发送至其他节点;
再者,在方法步骤130之中,由所述主共识节点和所述多个备份共识节点以eMBMS多播形式将与所述准备请求相关联的提交请求发送至其余节点;以及
最后,在方法步骤140之中,由所述主共识节点和所述多个备份共识节点以单播形式将与所述提交请求相关联的响应请求返回至客户端。
在依据本公开内容的一个实施例之中,所述方法还包括:由所述主共识节点从所述客户端以单播或者eMBMS多播方式接收所述操作请求。
优选地,在依据本公开内容的一个实施例之中,所述操作请求之中包括与发送时间相关联的时间戳信息。更为优选地,在依据本公开内容的一个实施例之中,所述主共识节点和所述多个备份共识节点能够在同一个eMBMS多播信道上进行通信。
图2示出了依据图1所示的基于区块链进行共识的方法100运行时的协议报文的格式的示意图200。从图2之中可以看出,可选地或者替代地,在依据本公开内容的一个实施例之中,所述预备请求、所述准备请求、所述提交请求中的至少一个被包括在eMBMS报文的负荷260之中。除了该负荷260之外,该eMBMS报文还包括IP(unicast)部分210、第一UDP部分220、SYNC部分230、IP(multicast)部分240、第二UDP部分250。优选地,在依据本公开内容的一个实施例之中,所述负荷之中还包括发送所述eMBMS报文的节点信息262。在依据本公开内容的一个实施例之中,所述方法是以下方法中的一种:实用拜占庭容错算法;或者RAFT共识算法。
举例来说,本发明提出了一种使用LTE/5G移动宽带网络中eMBMS多媒体广播多播技术来发送节点需要广播到其它节点的相同消息,降低了原算法共识过程需要发送的单播网络消息风暴,极大地提升了PBFT共识算法的可扩展性,使该算法在节点数量巨大的情况下也能保持优秀的性能。
具备eMBMS多播能力的区块链节点称为多播节点。多播节点都要求既可以通过eMBMS多播方式发送相同的消息到所有其它节点,也可以通过单播发送消息给其它节点。同时所有的多播节点都可以接受多播消息。区块链系统中所有参与共识的节点都必须是多播节点。后面我们讨论的参与共识过程的节点都为多播节点,简称为节点。
以下介绍多播条件下的节点正常共识过程:
根据PBFT共识算法,区块链系统使用一个状态机来表示系统的当前状态。每一个参与共识的节点都有一份这个状态机的副本。我们将有R个共识节点的区块链系统中每个节点编号为{0,1,…,R-1},这些节点假定都事先设置好可以接收同一个eMBMS多播信道上的消息,每一个节点发送到该信道上的消息都可以被其它正常工作的节点收到。
参与共识的节点中会选出一个主节点,其它节点都是备份节点。这样一个主备节点的分布情况称为一个视图,如果分布情况因为主节点故障等情况发生了主节点变化,我们就称区块链系统从一个视图迁移到了另外一个视图。视图从0开始连续编号的,可以用v来代表当前视图。视图v中的主节点被定为节点p=v mod R。
以下介绍客户端提交操作请求:
假定区块链客户端c需要提交一个操作请求o,它需要将操作请求<REQUEST,o,t,c>v发送到主节点p,其中REQUEST表示该请求类型是request阶段的请求,t为提交请求时的时间戳,v为当前的视图。因为这条消息只需要发送给主节点这一个节点,所以我们还是可以单播方式发送。
以下介绍pre-prepare阶段,即预备阶段:
主节点收到客户端的操作请求m(即<REQUEST,o,t,c>v)后,会启动一个三阶段协议(pre-prepare,prepare,commit共三个阶段)。pre-prepare阶段,主节点需要将该请求m封装成消息<<PRE-PREPARE,v,n,d>,m>转发给其它所有的备份节点,其中PRE-PREPARE表示消息类型,n表示该主节点给消息m标记的递增的序号,d表示用散列算法生成并由主节点签名的消息m的摘要。在使用单播的情况下需要发送R-1条消息给其它的备份节点,而且不难看出发给每个备份节点的消息都是一样。所以该消息<<PRE-PREPARE,v,n,d>,m>可以改用eMBMS多播的方式发送,只需要发送1条消息。
以下介绍prepare阶段,即准备阶段:
备份节点收到主节点发来的消息<<PRE-PREPARE,v,n,d>,m>并验证通过后,将进入prepare阶段并且向所有其它节点(包括主节点)发送消息<PREPARE,v,n,d,i>,其中PREPARE表示消息类型,i表示该备份节点的序号。备份节点i一共需要发送R-1条,而且消息内容都是一样的。所以该消息也可以改用eMBMS多播的方式发送,每个备份节点只需要发送1条消息。
以下介绍commit阶段,即提交阶段:
节点i会收到多个来自其它节点的PREPARE消息,当消息内容以及数量满足一定的条件后,节点会进入commit阶段并且向所有其它节点(包括主节点)发送消息<COMMIT,v,n,D(m),i>,其中COMMIT表示消息类型,D(m)表示客户端操作请求m的摘要。节点i一共需要发送R-1条,而且消息内容都是一样的。所以该消息也可以改用eMBMS多播的方式发送,每个节点只需要发送1条消息。
以下介绍回答客户端的阶段:
节点i会收到多个来自其它节点的COMMIT消息,当消息内容以及数量满足一定的条件后,节点i会执行客户端操作请求m并且发送回复消息<REPLY,v,t,c,i,r>给客户端,其中REPLY代表消息类型,r是该节点i执行操作o的结果。每个节点最多只会发生一条该消息,所以依然使用原来的单播方式发送。
上面的流程描述了在正常的情况下让多个节点使用PBFT共识算法和eMBMS多播达成共识。在使用eMBMS多播后,对客户端操作达成共识需要发送的单播消息与节点数量R成正比,而不是单播时的和R的平方成正比,极大地降低了移动网络条件下的通信开销,使得PBFT算法在区块链系统节点数量达到数百甚至数万个时,依然可以保持较好的性能。
以下介绍多播条件下的节点共识过程的异常处理:
采用eMBMS多播发送相同的消息到多个其它节点的方法还可以推广到异常情况的处理,比如主节点发生故障后的视图改变。
区块链客户端c发出的操作请求<REQUEST,o,t,c>v中的时间戳t可以用于保证该请求只会被节点执行一次;并且在客户端连续发出多个请求时,这些请求会被节点顺序执行。
客户端给一个参与共识节点数量R=3f+1(f为最多可以容忍的故障或者恶意节点数量)的区块链系统发送操作请求后,需要收到至少2f+1个验证无误(包括具有相同的t和r)的、来自不同节点i的回复消息<REPLY,v,t,c,i,r>之后,客户端才会接受执行结果r。如果客户端没有接收到足够的回复,它会向所有的节点重新发送该操作请求,即R条操作消息。这些消息内容都是一样的。所以该消息也可以改用eMBMS多播的方式发送,客户端只需要重新发送1条操作消息。
此外,替代地,上述方法能够通过计算机程序产品,即计算机可读存储介质来实现。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本发明内容的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
图3示出了示出了依据本发明的一个实施例的基于区块链进行共识的装置300的示意图,所述区块链中具有一个主共识节点和多个备份共识节点,该装置能够运行基于区块链进行共识的方法。从图3中可以看出,该装置300包括处理器310和与处理器310耦接的存储器320。
存储器320存储有指令。指令在由处理器310执行时使得处理器310执行以下动作:
由所述主共识节点接收操作请求并将与所述操作请求相关联的预备请求以eMBMS多播形式发送给所述多个备份共识节点;
由接收到所述预备请求的多个备份共识节点分别以eMBMS多播形式将与所述预备请求相关联的准备请求发送至其他节点;
由所述主共识节点和所述多个备份共识节点以eMBMS多播形式将与所述准备请求相关联的提交请求发送至其余节点;以及
由所述主共识节点和所述多个备份共识节点以单播形式将与所述提交请求相关联的响应请求返回至客户端。
在依据本公开内容的一个实施例之中,当所述指令执行时还使得所述处理器执行以下操作:由所述主共识节点从所述客户端以单播或者eMBMS多播方式接收所述操作请求。
在依据本公开内容的一个实施例之中,所述操作请求之中包括与发送时间相关联的时间戳信息。在依据本公开内容的一个实施例之中,所述主共识节点和所述多个备份共识节点能够在同一个eMBMS多播信道上进行通信。在依据本公开内容的一个实施例之中,所述预备请求、所述准备请求、所述提交请求中的至少一个被包括在eMBMS报文的负荷之中。在依据本公开内容的一个实施例之中,所述负荷之中还包括发送所述eMBMS报文的节点信息。在依据本公开内容的一个实施例之中,所述装置中进行共识的方法是以下方法中的一种:实用拜占庭容错算法;或者RAFT共识算法。
再者,本公开内容的第三方面提出了一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据本公开内容的第一方面所述的基于区块链进行共识的方法。
图4示出了依据本发明的另一个实施例的基于区块链进行共识的装置400的示意图。应当理解,装置400可以实现实现图1中的基于区块链进行共识的方法100的功能。从图4中可以看出该装置400包括中央处理单元(CPU)401(例如处理器),其可以根据存储在只读存储器(ROM)402中的计算机程序指令或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序指令,来执行各种适当的动作和处理。在RAM 403中,还可存储该装置400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
基于区块链进行共识的装置400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许该装置400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各种方法,例如基于区块链进行共识的方法100能够由处理单元401执行。例如,在一些实施例中,基于区块链进行共识的方法100可以实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM402和/或通信单元409而被载入和/或安装到该基于区块链进行共识的装置400上。当计算机程序被加载到RAM 403并由CPU 401执行时,可以执行上文描述的基于区块链进行共识的方法100中的一个或多个动作或步骤。
一般而言,本发明的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其他方面可以在可以由控制器、微处理器或其他计算设备执行的固件或软件中实施。当本发明的实施例的各方面被图示或描述为框图、流程图或使用某些其他图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某些组合中实施。
虽然上面描述了本发明的各种示例实施例可以在硬件或专用电路中实现,但是上述用于区块链的数据处理设备既可以以硬件的形式来实现,也可以通过软件的形式来实现,这是因为:在20世纪90年代,一个技术改进能够很容易地对该改进属于硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是属于软件上的改进(例如对于方法流程的改进)。然而,随着技术的持续发展,如今的很多方法流程的改进几乎都能够通过将改进的方法流程编程到硬件电路中来实现,换句话说,通过对于硬件电路编程不同的程序从而得到相应的硬件电路结构,即实现了硬件电路结构的改变,故这样的方法流程的改进也可以被视为硬件电路结构的直接改进。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device:PLD)(例如现场可编程门阵列(Field Programmable Gate Array:FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片可编程逻辑器件上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compi1er)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language:HDL),而HDL也并非仅有—种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell UniversityProgramming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
用于执行本发明内容的各个方面的计算机可读程序指令或者计算机程序产品也能够存储在云端,在需要调用时,用户能够通过移动互联网、固网或者其他网络访问存储在云端上的用于执行本发明内容的一方面的计算机可读程序指令,从而实施依据本发明内容的各个方面所公开的技术方案。
综上所述,本公开内容提出了一种在移动宽带网络下通过eMBMS多播来实现区块链PBFT共识算法的方案。该方案具有以下的优点:通过eMBMS多播将对每一条操作的共识开销由O(n2)降低到了O(n),有效解决了传统PBFT共识算法性能随着节点数目增长,性能快速下降的问题,特别适合移动宽带网络和物联网相结合的场景。实现比较简单。对原有的区块链节点和客户端的改动较小,主要工作是扩展eMBMS节点的多播发送能力和节点的eMBMS多播接收能力。
以上所述仅为本发明内容的实施例可选实施例,并不用于限制本发明的实施例,对于本领域的技术人员来说,本发明的实施例可以有各种更改和变化。凡在本发明的实施例的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本发明的实施例的保护范围之内。
虽然已经参考若干具体实施例描述了本发明的实施例,但是应当理解,本发明的实施例并不限于所公开的具体实施例。本发明的实施例旨在涵盖在所附权利要求的精神和范围内所包括的各种修改和等同布置。权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
Claims (15)
1.一种基于区块链进行共识的方法,所述区块链中具有一个主共识节点和多个备份共识节点,其特征在于,所述方法包括:
由所述主共识节点接收操作请求并将与所述操作请求相关联的预备请求以eMBMS多播形式发送给所述多个备份共识节点;
由接收到所述预备请求的多个备份共识节点分别以eMBMS多播形式将与所述预备请求相关联的准备请求发送至其他节点;
由所述主共识节点和所述多个备份共识节点以eMBMS多播形式将与所述准备请求相关联的提交请求发送至其余节点;以及
由所述主共识节点和所述多个备份共识节点以单播形式将与所述提交请求相关联的响应请求返回至客户端。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
由所述主共识节点从所述客户端以单播或者eMBMS多播方式接收所述操作请求。
3.根据权利要求2所述的方法,其特征在于,所述操作请求之中包括与发送时间相关联的时间戳信息。
4.根据权利要求1所述的方法,其特征在于,所述主共识节点和所述多个备份共识节点能够在同一个eMBMS多播信道上进行通信。
5.根据权利要求1所述的方法,其特征在于,所述预备请求、所述准备请求、所述提交请求中的至少一个被包括在eMBMS报文的负荷之中。
6.根据权利要求1所述的方法,其特征在于,所述负荷之中还包括发送所述eMBMS报文的节点信息。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法是以下方法中的一种:
实用拜占庭容错算法;或者
RAFT共识算法。
8.一种基于区块链进行共识的装置,所述区块链中具有一个主共识节点和多个备份共识节点,其特征在于,所述装置包括:
处理器;以及
存储器,其用于存储指令,当所述指令执行时使得所述处理器执行以下操作:
由所述主共识节点接收操作请求并将与所述操作请求相关联的预备请求以eMBMS多播形式发送给所述多个备份共识节点;
由接收到所述预备请求的多个备份共识节点分别以eMBMS多播形式将与所述预备请求相关联的准备请求发送至其他节点;
由所述主共识节点和所述多个备份共识节点以eMBMS多播形式将与所述准备请求相关联的提交请求发送至其余节点;以及
由所述主共识节点和所述多个备份共识节点以单播形式将与所述提交请求相关联的响应请求返回至客户端。
9.根据权利要求8所述的装置,其特征在于,当所述指令执行时还使得所述处理器执行以下操作:
由所述主共识节点从所述客户端以单播或者eMBMS多播方式接收所述操作请求。
10.根据权利要求9所述的装置,其特征在于,所述操作请求之中包括与发送时间相关联的时间戳信息。
11.根据权利要求8所述的装置,其特征在于,所述主共识节点和所述多个备份共识节点能够在同一个eMBMS多播信道上进行通信。
12.根据权利要求8所述的装置,其特征在于,所述预备请求、所述准备请求、所述提交请求中的至少一个被包括在eMBMS报文的负荷之中。
13.根据权利要求8所述的装置,其特征在于,所述负荷之中还包括发送所述eMBMS报文的节点信息。
14.根据权利要求8至13中任一项所述的装置,其特征在于,所述装置中进行共识的方法是以下方法中的一种:
实用拜占庭容错算法;或者
RAFT共识算法。
15.一种计算机可读存储介质,其具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行根据权利要求1至7中任一项所述的基于区块链进行共识的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110843664.4A CN113573255A (zh) | 2021-07-26 | 2021-07-26 | 基于区块链进行共识的方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110843664.4A CN113573255A (zh) | 2021-07-26 | 2021-07-26 | 基于区块链进行共识的方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113573255A true CN113573255A (zh) | 2021-10-29 |
Family
ID=78167306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110843664.4A Pending CN113573255A (zh) | 2021-07-26 | 2021-07-26 | 基于区块链进行共识的方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113573255A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200125556A1 (en) * | 2019-06-05 | 2020-04-23 | Alibaba Group Holding Limited | Consensus system and method |
CN111464349A (zh) * | 2020-03-30 | 2020-07-28 | 南京中诚区块链研究院有限公司 | 区块链Raft+PBFT的混合共识网络算法及系统 |
CN111526219A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种联盟链的共识方法及联盟链系统 |
CN111600965A (zh) * | 2020-06-05 | 2020-08-28 | 支付宝(杭州)信息技术有限公司 | 区块链中的共识方法和系统 |
CN111612455A (zh) * | 2020-04-21 | 2020-09-01 | 国网江苏省电力有限公司电力科学研究院 | 一种面向用电信息保护的拜占庭容错联盟链共识方法及其系统、存储介质 |
US20210034455A1 (en) * | 2018-08-31 | 2021-02-04 | Advanced New Technologies Co., Ltd. | Method, apparatus and electronic device for blockchain-based transaction consensus processing |
-
2021
- 2021-07-26 CN CN202110843664.4A patent/CN113573255A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210034455A1 (en) * | 2018-08-31 | 2021-02-04 | Advanced New Technologies Co., Ltd. | Method, apparatus and electronic device for blockchain-based transaction consensus processing |
US20200125556A1 (en) * | 2019-06-05 | 2020-04-23 | Alibaba Group Holding Limited | Consensus system and method |
CN111464349A (zh) * | 2020-03-30 | 2020-07-28 | 南京中诚区块链研究院有限公司 | 区块链Raft+PBFT的混合共识网络算法及系统 |
CN111612455A (zh) * | 2020-04-21 | 2020-09-01 | 国网江苏省电力有限公司电力科学研究院 | 一种面向用电信息保护的拜占庭容错联盟链共识方法及其系统、存储介质 |
CN111600965A (zh) * | 2020-06-05 | 2020-08-28 | 支付宝(杭州)信息技术有限公司 | 区块链中的共识方法和系统 |
CN111526219A (zh) * | 2020-07-03 | 2020-08-11 | 支付宝(杭州)信息技术有限公司 | 一种联盟链的共识方法及联盟链系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mastorakis et al. | Icedge: When edge computing meets information-centric networking | |
CN111539726B (zh) | 区块链共识系统及方法 | |
CN109067578B (zh) | 一种组播快速切换的方法和装置 | |
WO2014180407A1 (zh) | 推送方法及装置 | |
WO2017162079A1 (zh) | 一种数据的同步方法和装置 | |
CN112968836B (zh) | 跨设备聚合链路配置方法、装置、设备及可读存储介质 | |
CN112714177B (zh) | 一种具有线性消息复杂度的pbft改进算法 | |
CN112738240B (zh) | 一种大规模分布式网络数据传输和协同的方法 | |
CN113572561B (zh) | 用于时钟同步的方法、设备、通信系统和介质 | |
US20170048081A1 (en) | Multi-ring reliable messaging system | |
Baldesi et al. | On the use of eigenvector centrality for cooperative streaming | |
CN109496407B (zh) | 区块链系统中的消息传输方法、装置及存储介质 | |
Nsaif et al. | RURT: A novel approach for removing the unnecessary redundant traffic in any HSR closed-loop network type | |
Birman et al. | Middleware support for distributed multimedia and collaborative computing | |
CN113573255A (zh) | 基于区块链进行共识的方法、装置及存储介质 | |
CN108900422B (zh) | 组播转发方法、装置及电子设备 | |
CN109496420B (zh) | 环状服务器集群管理方法、装置及计算机存储介质 | |
CN105049255A (zh) | 一种网元数据同步的方法及其装置 | |
Kim et al. | A scalable pub/sub system for ndn | |
CN113938446B (zh) | 一种基于mlag环境的组播表项同步方法及设备 | |
Zhao et al. | On peer-assisted data dissemination in data center networks: Analysis and implementation | |
Nsaif et al. | Improvement of high-availability Seamless Redundancy (HSR) traffic performance | |
US10389647B2 (en) | Controller coordination system | |
CN103634219A (zh) | 一种任播汇集点Anycast-RP的维护方法及装置 | |
CN114727235B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20211029 |
|
WD01 | Invention patent application deemed withdrawn after publication |