System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及区块链,尤其涉及一种区块共识方法、装置、电子设备和存储介质。
技术介绍
1、随着计算机技术和大数据技术的大力发展,越来越多的线上交易和线上数据存在安全性问题,需要通过去中心化的、数据难以被篡改的平台给予线上交易以保障,因此,区块链技术应运而生。共识是区块链的关键技术之一,只有有效的在区块链中各节点达成共识,才能够保证区块链的同步和信息的安全。
2、当前,对于区块链的共识方法一般有两种,分别是拜占庭容错类共识,和崩溃容错类共识(也称非拜占庭容错类共识)。拜占庭容错类共识能够支持拜占庭类节点错误,但是网络和时间开销大、效率低;崩溃容错类共识虽然网络和时间开销较小,但是却无法支持拜占庭类错误。虽然崩溃容错类共识无法支持拜占庭类错误,但是在一些联盟链的场景中,各参与方信任程度高,适用崩溃容错类共识。融合崩溃容错类共识以及区块链的技术特点,能够获得更高的共识效率。
技术实现思路
1、本申请提供了一种区块共识方法、装置、电子设备和存储介质,以提高区块共识的效率。
2、根据本申请的第一方面,提供了一种区块共识方法,应用于当前主节点,所述方法包括:
3、按照视图递增顺序,由当前视图中的当前主节点获取上一视图中各验证者节点的投票消息;
4、若当前主节点获取到的上一视图的投票消息超过预设阈值时,从各投票消息中获取视图号最高的区块;
5、根据视图号最高的区块的哈希值、当前视图中的当前交易信息和当前视图号,生成当前区块;
6
7、向当前视图中的各验证者节点提议当前区块,并指示各当前视图的验证者节点将可提交区块写入区块链账本。
8、根据本申请的第二方面,提供了一种区块共识方法,应用于至少一个验证者节点中,所述方法包括:
9、获取当前视图的主节点提议的区块和可提交区块的指示信息;
10、若在第一预设时间内获取到当前视图的主节点提议的区块和可提交区块的指示信息,则确认信息接收正常;
11、在确认信息接收正常时,将提议的区块进行本地存储;
12、对当前视图的主节点提议的区块进行投票,以生成区块的投票消息;
13、向下一视图的主节点反馈区块的投票消息,以使下一视图的主节点根据各投票消息,确定区块是否为可提交区块。
14、根据本申请的第三方面,提供了一种区块共识装置,应用于当前主节点,所述装置包括:
15、投票验证模块,用于按照视图递增顺序,由当前视图中的当前主节点获取上一视图中各验证者节点的投票消息;
16、区块获取模块,用于若当前主节点获取到的上一视图的投票消息超过预设阈值时,从各投票消息中获取视图号最高的区块;
17、区块生成模块,用于根据视图号最高的区块的哈希值、当前视图中的当前交易信息和当前视图号,生成当前区块;
18、区块确认模块,用于当上一视图的各投票消息中包括的区块完全相同且区块中的视图号为上一视图号时,将区块确认为可提交区块;
19、区块上链模块,用于向当前视图中的各验证者节点提议当前区块,并指示各当前视图的验证者节点将可提交区块写入区块链账本。
20、根据本申请的第四方面,提供了一种区块共识装置,应用于至少一个验证者节点中,所述装置包括:
21、指示信息获取模块,用于获取当前视图的主节点提议的区块和可提交区块的指示信息;
22、信息接收判断模块,用于若在第一预设时间内获取到当前视图的主节点提议的区块和可提交区块的指示信息,则确认信息接收正常;
23、区块本地存储模块,用于在确认信息接收正常时,将提议的区块进行本地存储;
24、投票消息生成模块,用于对当前视图的主节点提议的区块进行投票,以生成区块的投票消息;
25、投票信息反馈模块,用于向下一视图的主节点反馈区块的投票消息,以使下一视图的主节点根据各投票消息,确定区块是否为可提交区块。
26、根据本申请的第五方面,提供了一种电子设备,所述电子设备包括:
27、至少一个处理器;以及
28、与所述至少一个处理器通信连接的存储器;其中,
29、所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请第一方面实施例所述的区块共识方法;和/或,执行本申请第二方面实施例所述的区块共识方法。
30、根据本申请的第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本申请第一方面实施例所述的区块共识方法;和/或,执行本申请第二方面实施例所述的区块共识方法。
31、本申请实施例的技术方案,当前主节点在当前视图下获取上一视图的投票消息,作为区块的组装者,当前主节点根据投票消息中包括的区块相应的视图号对区块是否能够被提交进行判断,并将确认可提交的当前区块分享给所有验证者节点,在继承上一轮投票消息的基础上,在当前视图仅需要经过一轮通信就可以确认某一区块在各验证者节点达成共识,从而使该可提交的当前区块上链,解决了现有技术中需要就某一区块达成共识通信两次,使得共识效率缓慢的缺陷,进一步的提高了区块链整体共识的效率。
32、应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
本文档来自技高网...【技术保护点】
1.一种区块共识方法,其特征在于,应用于当前主节点,所述方法包括:
2.一种区块共识方法,其特征在于,应用于至少一个验证者节点中,所述方法包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:各验证者节点根据所述可提交区块的指示信息将所述可提交区块写入区块链账本。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:在将本地存储的区块反馈给下一视图的主节点之后,确认是否在第二预设时间内收到下一视图的主节点提议的区块和可提交区块的指示信息;
7.一种区块共识装置,其特征在于,应用于当前主节点,所述装置包括:
8.一种区块共识装置,其特征在于,应用于至少一个验证者节点中,所述装置包括:
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器
...【技术特征摘要】
1.一种区块共识方法,其特征在于,应用于当前主节点,所述方法包括:
2.一种区块共识方法,其特征在于,应用于至少一个验证者节点中,所述方法包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:各验证者节点根据所述可提交区块的指示信息将所述可提交区块写入区块链账本。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:在将本地存储的区块反馈给下一...
【专利技术属性】
技术研发人员:王磊,兰春嘉,
申请(专利权)人:上海零数众合信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。