一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

PBFT算法优化方法、装置、设备和存储介质与流程

2022-02-24 14:16:36 来源:中国专利 TAG:

pbft算法优化方法、装置、设备和存储介质
技术领域
1.本发明涉及区块链共识算法技术领域,具体涉及一种pbft算法优化方法、装置、设备和存储介质。


背景技术:

2.传统的主从模式下的pbft(practical byzantine fault tolerance,实用拜占庭容错)算法通常包括以下几个核心流程:初始化验证节点、客户端向主节点发送请求、主节点验证并广播客户端请求、所有节点进行第一轮投票、达成共识。
3.针对上述流程的不同阶段,pbft算法的具体实现有不同的优化方法,比如针对主节点可能为恶意节点的优化,或者,针对视图转换的优化,以及,自定义投票通过比例来平衡性能、容错率和网络环境等层面的优化。
4.但是,传统的pbft算法通常存在如下缺陷:各节点需要在节点硬盘上管理数据,比如,为了在视图转换过程中恢复上一轮的请求,节点需要将上一轮的请求消息记录在本地,同时在执行请求后需要清除硬盘上数据,步骤较为繁琐。另外,通过节点数量来代表投票数,无法实现较为灵活的权限分配;验证节点依赖初始设置,无法动态调整;针对恶意节点没有问责机制等。


技术实现要素:

5.有鉴于此,提供一种pbft算法优化方法、装置、设备和存储介质,以解决传统pbft算法步骤繁琐、权限分配不灵活以及没有针对恶意节点的问责机制等问题。
6.本发明采用如下技术方案:
7.第一方面,本技术实施例提供了一种pbft算法优化方法,该方法包括:
8.区块链应用程序将预先构建好的交易请求发送至共识节点;
9.所述共识节点向所述区块链应用程序发送验证消息,以指示所述区块链应用程序验证交易的有效性;
10.主节点选择有效交易并打包成区块,并将所述区块广播至共识节点;
11.共识节点通过广播第一消息来进行第一轮投票,根据所述第一消息广播第二消息来进行第二轮投票;
12.判断收到不为空的第二消息的节点数量与全部节点的数量比值是否大于第一设定比例阈值,若是,则所述通过区块的提议,区块高度增加1;否则返回执行所述主节点构建区块并广播的步骤。
13.第二方面,本技术实施例提供了一种pbft算法优化装置,该装置包括:
14.交易请求发送模块,用于指示区块链应用程序将预先构建好的交易请求发送至共识节点;
15.验证模块,用于指示所述共识节点向所述区块链应用程序发送验证消息,以指示所述区块链应用程序验证交易的有效性;
16.区块打包模块,用于指示主节点选择有效交易并打包成区块,并将所述区块广播至共识节点;
17.投票模块,用于指示共识节点通过广播第一消息来进行第一轮投票,根据所述第一消息广播第二消息来进行第二轮投票;
18.判断模块,用于判断收到不为空的第二消息的节点数量与全部节点的数量比值是否大于第一设定比例阈值;
19.优化模块,用于在收到不为空的第二消息的节点数量与全部节点的数量比值是否大于第一设定比例阈值时,所述通过区块的提议,区块高度增加1;否则返回执行所述主节点构建区块并广播的步骤。
20.第三方面,本技术实施例提供了一种设备,该设备包括:
21.处理器,以及与所述处理器相连接的缓存器;
22.所述缓存器用于缓存计算机程序,所述计算机程序至少用于执行本技术实施例第一方面所述的pbft算法优化方法;
23.所述处理器用于调用并执行所述缓存器中的所述计算机程序。
24.第四方面,本技术实施例提供了一种存储介质,所述存储介质缓存有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的pbft算法优化方法中各个步骤。
25.本发明采用以上技术方案,去除了传统pbft算法中的视图转换过程,简化了主节点变换流程;使用节点满足的条件来投票,实现了更加灵活的权限配置;通过对节点进行投票,包装成区块链中的交易,实现区块链应用层可以动态增删验证节点的功能;通过减少恶意节点的比例实现对恶意节点的问责功能;另外,串行执行多个共识实例的方式更加适用区块链应用。因此,优化后的pbft算法更加快速、灵活以及更加符合现实需求。
附图说明
26.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
27.图1是本技术实施例提供的一种pbft算法优化方法的流程图;
28.图2是本技术实施例提供的一种pbft算法优化装置的结构示意图;
29.图3是本技术实施例提供的一种设备的结构示意图。
具体实施方式
30.为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
31.实施例
32.图1为本发明实施例提供的一种pbft算法优化方法的流程图,该方法可以由本发明实施例提供的pbft算法优化装置来执行,该装置可采用软件和/或硬件的方式实现。参考
图1,该方法具体可以包括如下步骤:
33.s101、区块链应用程序将预先构建好的交易请求发送至共识节点。
34.具体的,系统预先构建交易请求,区块链应用程序将预先构建好的交易请求发送至共识节点,共识节点在接收到交易请求后,将交易请求保存至内存池进行缓存。
35.s102、共识节点向区块链应用程序发送验证消息,以指示区块链应用程序验证交易的有效性。
36.其中,共识节点在接收到交易请求后,同时向区块链应用程序发送验证消息,区块链应用程序在接收到验证消息后,根据验证消息来验证交易的有效性,若交易有效,则称为有效交易,若交易无效,则称为无效交易。若交易有效,则将交易缓存至内存池。
37.s103、主节点选择有效交易并打包成区块,并将区块广播至共识节点。
38.具体的,主节点在内存池中选择有效交易并打包成区块;并将区块广播至共识节点。在一个具体的例子中,例如可以通过gossip协议将区块广播至共识节点。
39.s104、共识节点通过广播第一消息来进行第一轮投票,根据第一消息广播第二消息来进行第二轮投票。
40.其中,第一消息用消息a表示,第二消息用消息b表示。在第一轮投票过程中,所有公式节点广播一条消息a,若某个节点在设定时间范围内接受到区块的提议,则该节点接收到的消息a不为空,否则,该节点接收到的消息a为空。示例性的,设定时间范围可以是预先设置的有效时间,区块的提议可以是指定的有效区块的提议。
41.接下来进行第二轮投票,接收到消息a的节点广播消息b,若接收到不为空的消息a的节点数量与全部节点数量的比值大于第二设定比例阈值,则确定消息比例不为空,否则确定消息b为空。在一个具体的例子中,第二设定比例阈值可以是2/3。
42.s105、判断收到不为空的第二消息的节点数量与全部节点的数量比值是否大于第一设定比例阈值,若是,则执行s106,否则,返回执行s103。
43.s106、通过区块的提议,区块高度增加1。
44.具体的,如果收到不为空的消息b的节点的数量与全部节点的数量的比值大于第一设定比例阈值,其中,第一比例阈值可以是2/3,则通过该区块的提议,同时,将区块的高度增加1,否则,提议不通过。
45.由于主节点可以根据轮训机制确定,因此,在提议不通过时,顺序选择新的主节点,返回执行主节点构建区块并广播的步骤,也即,新的主节点选择有效交易并打包成区块,并将区块广播至共识节点,进而顺序执行后续步骤。
46.本技术实施例中,去除了传统pbft算法中的视图转换过程,简化了主节点变换流程;使用节点满足的条件来投票,实现了更加灵活的权限配置;通过对节点进行投票,包装成区块链中的交易,实现区块链应用层可以动态增删验证节点的功能;通过减少恶意节点的比例实现对恶意节点的问责功能;另外,串行执行多个共识实例的方式更加适用区块链应用。因此,优化后的pbft算法更加快速、灵活以及更加符合现实需求。
47.图2是本发明是实施例提供的一种pbft算法优化装置的结构示意图,该装置适用于执行本发明实施例提供给的一种pbft算法优化方法。如图2所示,该装置具体可以包括交易请求发送模块201、验证模块202、区块打包模块203、投票模块204、判断模块205和优化模块206。
48.其中,交易请求发送模块201,用于指示区块链应用程序将预先构建好的交易请求发送至共识节点;验证模块202,用于指示共识节点向区块链应用程序发送验证消息,以指示区块链应用程序验证交易的有效性;区块打包模块203,用于指示主节点选择有效交易并打包成区块,并将区块广播至共识节点;投票模块204,用于指示共识节点通过广播第一消息来进行第一轮投票,根据第一消息广播第二消息来进行第二轮投票;判断模块205,用于判断收到不为空的第二消息的节点数量与全部节点的数量比值是否大于第一设定比例阈值;优化模块206,用于在收到不为空的第二消息的节点数量与全部节点的数量比值是否大于第一设定比例阈值时,通过区块的提议,区块高度增加1;否则返回执行主节点构建区块并广播的步骤
49.本技术实施例中,去除了传统pbft算法中的视图转换过程,简化了主节点变换流程;使用节点满足的条件来投票,实现了更加灵活的权限配置;通过对节点进行投票,包装成区块链中的交易,实现区块链应用层可以动态增删验证节点的功能;通过减少恶意节点的比例实现对恶意节点的问责功能;另外,串行执行多个共识实例的方式更加适用区块链应用。因此,优化后的pbft算法更加快速、灵活以及更加符合现实需求。
50.可选的,投票模块204具体用于:
51.确定在设定时间范围内接收到区块的提议的节点接收到的第一消息不为空;
52.确定未在设定时间范围内收到区块的提议的节点接收到的第一消息为空。
53.可选的,投票模块204具体用于:
54.接收到不为空的第一消息的节点的数量与全部节点的数量比值大于第二设定比例阈值,则确定第二消息不为空,否则确定第二消息为空。
55.可选的,还包括第一缓存模块,用于区块链应用程序将预先构建好的交易请求发送至共识节点,之后:共识节点将交易请求保存至内存池进行缓存。
56.可选的,还包括第二缓存模块,用于在交易有效时,将交易缓存至内存池,并广播至各个节点。
57.可选的,区块打包模块203具体用于:
58.主节点在内存池中选择有效交易并打包成区块;
59.并将区块广播至共识节点。
60.可选的,区块打包模块203具体用于:
61.通过gossip协议将区块广播至共识节点。
62.本发明实施例提供的pbft算法优化装置可执行本发明任意实施例提供的pbft算法优化方法,具备执行方法相应的功能模块和有益效果。
63.本发明实施例还提供一种设备,请参阅图3,图3为一种设备的结构示意图,如图3所示,该设备包括:处理器310,以及与处理器310相连接的缓存器320;缓存器320用于缓存计算机程序,计算机程序至少用于执行本发明实施例中的pbft算法优化方法;处理器310用于调用并执行缓存器中的计算机程序;上述pbft算法优化方法至少包括如下步骤:区块链应用程序将预先构建好的交易请求发送至共识节点;共识节点向区块链应用程序发送验证消息,以指示区块链应用程序验证交易的有效性;主节点选择有效交易并打包成区块,并将区块广播至共识节点;共识节点通过广播第一消息来进行第一轮投票,根据第一消息广播第二消息来进行第二轮投票;判断收到不为空的第二消息的节点数量与全部节点的数量比
值是否大于第一设定比例阈值,若是,则通过区块的提议,区块高度增加1;否则返回执行主节点构建区块并广播的步骤。
64.本发明实施例还提供一种存储介质,存储介质缓存有计算机程序,计算机程序被处理器执行时,实现如本发明实施例中的pbft算法优化方法中各个步骤:区块链应用程序将预先构建好的交易请求发送至共识节点;共识节点向区块链应用程序发送验证消息,以指示区块链应用程序验证交易的有效性;主节点选择有效交易并打包成区块,并将区块广播至共识节点;共识节点通过广播第一消息来进行第一轮投票,根据第一消息广播第二消息来进行第二轮投票;判断收到不为空的第二消息的节点数量与全部节点的数量比值是否大于第一设定比例阈值,若是,则通过区块的提议,区块高度增加1;否则返回执行主节点构建区块并广播的步骤。
65.可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
66.需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
67.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
68.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用缓存在缓存器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
69.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以缓存于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
70.此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以缓存在一个计算机可读取存储介质中。
71.上述提到的存储介质可以是只读缓存器,磁盘或光盘等。
72.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何
的一个或多个实施例或示例中以合适的方式结合。
73.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献