一种区块链共识方法、装置及可读存储介质制造方法及图纸

技术编号:21576751 阅读:46 留言:0更新日期:2019-07-10 16:51
本发明专利技术公开了一种区块链共识方法、装置及可读存储介质,包括:响应于客户端的交易请求,主节点验证交易请求的正确性;当验证到交易请求正确时,主节点生成共识请求,并向副节点广播共识请求,以使任一副节点对共识请求进行正确性验证;当验证到共识请求正确时,副节点向主节点反馈确认信息;当主节点接收到达到预设的数量阈值的副节点反馈的确认信息时,主节点将接收到的所有确认信息发送至所有副节点,以使任一副节点对其他副节点的确认信息进行正确性验证;响应于副节点发送的确认指令,主节点生成数据区块;其中,确认指令由所述副节点验证到其他所述副节点的确认信息正确后发送,能有效降低网络延迟,提高交易速率。

A Block Chain Consensus Method, Device and Readable Storage Media

【技术实现步骤摘要】
一种区块链共识方法、装置及可读存储介质
本专利技术涉及区块链
,尤其涉及一种区块链共识方法、装置及可读存储介质。
技术介绍
随着以比特币为代表的数字货币的风靡,区块链作为其关键底层技术也越来越受大家的关注。区块链的去中也化、数据不可篡改性、动态灵活的体系特征,使得其在银行、征信、金融等多领域应用前景非常广泛。在区块链系统中,每个节点持有一份账本,由于网络延迟的原因,消息到达各个节点的先后顺序不同,因此要设计共识机制来实现不同账本上数据的一致性和正确性。工作量证明(POW)、权益证明(POS)共识算法的交易速率非常低,一笔交易平均确认时间为10分钟,且耗能严重,无法满足区块链系统性能需求;而Paxos、Raft为代表的传统分布式一致性算法没有考虑拜占庭容错问题,同样不适用于诚实与恶意节点共存的区块链系统。现有技术中的区块链共识算法中,在准备和确认阶段所有节点之间都要进行通信,导致网络延迟,交易速率低。
技术实现思路
本专利技术实施例提供一种区块链共识方法、装置及可读存储介质,能有效降低网络延迟,提高交易速率。本专利技术一实施例提供一种区块链共识方法,包括:响应于客户端的交易请求,主节点验证所述交易请求的正确性;当验证到所述交易请求正确时,所述主节点生成共识请求,并向副节点广播所述共识请求,以使任一所述副节点对接收到的共识请求进行正确性验证;当验证到所述共识请求正确时,所述副节点向所述主节点反馈确认信息;当所述主节点接收到达到预设的数量阈值的副节点反馈的所述确认信息时,所述主节点将接收到的所有所述确认信息发送至所有所述副节点,以使任一所述副节点对其他所述副节点的确认信息进行正确性验证;响应于所述副节点发送的确认指令,所述主节点生成数据区块;其中,所述确认指令由所述副节点验证到其他所述副节点的确认信息正确后发送。作为上述方案的改进,适用于区块链系统,所述区块链系统包括多个区块链节点,所述区块链节点包括一个所述主节点、多个所述副节点和多个普通节点,且所述区块链节点按照节点信誉值产生所述主节点,具体包括:将首次加入所述区块链系统的节点作为所述普通节点,当所述普通节点完成同步所述区块链系统的所有数据区块时,将所述普通节点切换为所述副节点;根据本轮中所述主节点是否生成数据区块,计算每一所述副节点和所述主节点的节点信誉值,并筛选所述节点信誉值最高的区块链节点作为下一轮的主节点,其他区块链节点作为下一轮的副节点。作为上述方案的改进,所述响应于客户端的交易请求,主节点验证所述交易请求的正确性正确性,具体包括:客户端向主节点发送交易请求;其中,所述交易请求包括时间戳、客户端标识、第一消息内容、客户端消息摘要和客户端签名;响应于所述客户端的交易请求,所述主节点对所述客户端签名进行正确性验证;当验证到所述客户端签名正确时,则认为所述交易请求是由所述客户端发送的,从而所述交易请求正确;当验证到所述客户端签名不正确时,则认为所述交易请求不是由所述客户端发送的,从而所述交易请求不正确,所述主节点停止执行操作。作为上述方案的改进,所述当验证到所述交易请求正确时,所述主节点生成共识请求,并向副节点广播所述共识请求,具体包括:当验证到所述交易请求正确时,所述主节点根据各交易请求的时间戳,对所述客户端的所有交易请求进行排序,生成共识请求;其中,所述共识请求包括第二消息内容、所述客户端消息摘要、所述时间戳和主节点签名;所述主节点向副节点广播所述共识请求。作为上述方案的改进,所述任一所述副节点对接收到的共识请求进行正确性验证,具体包括:当验证到所述共识请求正确时,所述副节点根据所述共识请求生成确认信息,并将所述确认信息返回所述主节点;当验证到所述共识请求不正确时,所述副节点停止执行操作。作为上述方案的改进,所述当所述主节点接收到达到预设的数量阈值的副节点反馈的所述确认信息时,所述主节点将接收到的所有所述确认信息发送至所有所述副节点,具体包括:所述主节点根据接收到的所述确认信息,判断反馈所述确认信息的副节点是否达到预设的数量阈值;其中,所述数量阈值为50%;当判断到反馈所述确认信息的副节点超过所述数量阈值时,所述主节点将接收到的所有所述确认信息发送至所有所述副节点;当所述主节点接收到未达到所述数量阈值的副节点反馈的确认信息时,所述主节点重新生成共识请求,并向所述副节点广播所述共识请求。作为上述方案的改进,所述响应于所述副节点发送的确认指令,所述主节点生成数据区块,具体包括:任一所述副节点根据自身的确认信息对其他所述副节点的确认信息进行正确性验证;当所述副节点验证到其他所述副节点的确认信息正确时,所述副节点生成确认指令并返回给所述主节点,以使所述主节点响应于所述确认指令后生成数据区块;当所述副节点验证到其他所述副节点的确认信息不正确时,所述副节点停止执行操作。本专利技术另一实施例对应提供了一种区块链共识装置,包括:第一验证模块,用于响应于客户端的交易请求,主节点验证所述交易请求的正确性;第二验证模块,用于当验证到所述交易请求正确时,所述主节点生成共识请求,并向副节点广播所述共识请求,以使任一所述副节点对接收到的共识请求进行正确性验证;反馈模块,用于当验证到所述共识请求正确时,所述副节点向所述主节点反馈确认信息;第三验证模块,用于当所述主节点接收到达到预设的数量阈值的副节点反馈的所述确认信息时,所述主节点将接收到的所有所述确认信息发送至所有所述副节点,以使任一所述副节点对其他所述副节点的确认信息进行正确性验证;响应模块,用于响应于所述副节点发送的确认指令,所述主节点生成数据区块;其中,所述确认指令由所述副节点验证到其他所述副节点的确认信息正确后发送。与现有技术相比,本专利技术实施例公开的区块链共识方法、装置,通过响应于客户端的交易请求,主节点验证所述交易请求的正确性,当验证到所述交易请求正确时,所述主节点生成共识请求,并向副节点广播所述共识请求,以使任一所述副节点对接收到的共识请求进行正确性验证,当验证到所述共识请求正确时,所述副节点向所述主节点反馈确认信息,当所述主节点接收到达到预设的数量阈值的副节点反馈的所述确认信息时,所述主节点将接收到的所有所述确认信息发送至所有所述副节点,以使任一所述副节点对其他所述副节点的确认信息进行正确性验证,响应于所述副节点发送的确认指令,所述主节点生成数据区块;其中,所述确认指令由所述副节点验证到其他所述副节点的确认信息正确后发送,本专利技术对区块链共识流程进行改进,将现有技术的在准备和确认阶段所有节点之间都进行通信改进为主节点和其他副节点之间的通信,进而通过减少共识达成过程中的节点通信次数,从而能有效降低网络延迟,提高交易速率;另外,采用区块链节点完成不同的行为计算相应的节点信誉值,能有效提高节点的可靠性。本专利技术另一实施例提供了一种区块链共识装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现上述专利技术实施例所述的区块链共识方法。本专利技术另一实施例提供了一种存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述专利技术实施例所述的区块链共识方法。附图说明图1是本专利技术一实施例提供的一种区块链共识方本文档来自技高网...

【技术保护点】
1.一种区块链共识方法,其特征在于,包括:响应于客户端的交易请求,主节点验证所述交易请求的正确性;当验证到所述交易请求正确时,所述主节点生成共识请求,并向副节点广播所述共识请求,以使任一所述副节点对接收到的共识请求进行正确性验证;当验证到所述共识请求正确时,所述副节点向所述主节点反馈确认信息;当所述主节点接收到达到预设的数量阈值的副节点反馈的所述确认信息时,所述主节点将接收到的所有所述确认信息发送至所有所述副节点,以使任一所述副节点对其他所述副节点的确认信息进行正确性验证;响应于所述副节点发送的确认指令,所述主节点生成数据区块;其中,所述确认指令由所述副节点验证到其他所述副节点的确认信息正确后发送。

【技术特征摘要】
1.一种区块链共识方法,其特征在于,包括:响应于客户端的交易请求,主节点验证所述交易请求的正确性;当验证到所述交易请求正确时,所述主节点生成共识请求,并向副节点广播所述共识请求,以使任一所述副节点对接收到的共识请求进行正确性验证;当验证到所述共识请求正确时,所述副节点向所述主节点反馈确认信息;当所述主节点接收到达到预设的数量阈值的副节点反馈的所述确认信息时,所述主节点将接收到的所有所述确认信息发送至所有所述副节点,以使任一所述副节点对其他所述副节点的确认信息进行正确性验证;响应于所述副节点发送的确认指令,所述主节点生成数据区块;其中,所述确认指令由所述副节点验证到其他所述副节点的确认信息正确后发送。2.如权利要求1所述的区块链共识方法,其特征在于,适用于区块链系统,所述区块链系统包括多个区块链节点,所述区块链节点包括一个所述主节点、多个所述副节点和多个普通节点,且所述区块链节点按照节点信誉值产生所述主节点,具体包括:将首次加入所述区块链系统的节点作为所述普通节点,当所述普通节点完成同步所述区块链系统的所有数据区块时,将所述普通节点切换为所述副节点;根据本轮中所述主节点是否生成数据区块,计算每一所述副节点和所述主节点的节点信誉值,并筛选所述节点信誉值最高的区块链节点作为下一轮的主节点,其他区块链节点作为下一轮的副节点。3.如权利要求1所述的区块链共识方法,其特征在于,所述响应于客户端的交易请求,主节点验证所述交易请求的正确性,具体包括:客户端向主节点发送交易请求;其中,所述交易请求包括时间戳、客户端标识、第一消息内容、客户端消息摘要和客户端签名;响应于所述客户端的交易请求,所述主节点对所述客户端签名进行正确性验证;当验证到所述客户端签名正确时,则认为所述交易请求是由所述客户端发送的,从而所述交易请求正确;当验证到所述客户端签名不正确时,则认为所述交易请求不是由所述客户端发送的,从而所述交易请求不正确,所述主节点停止执行操作。4.如权利要求3所述的区块链共识方法,其特征在于,所述当验证到所述交易请求正确时,所述主节点生成共识请求,并向副节点广播所述共识请求,具体包括:当验证到所述交易请求正确时,所述主节点根据各交易请求的时间戳,对所述客户端的所有交易请求进行排序,生成共识请求;其中,所述共识请求包括第二消息内容、所述客户端消息摘要、所述时间戳和主节点签名;所述主节点向副节点广播所述共识请求。5.如权利要求1所述的区块链共识方法,其特征在于,所述任一所述副节点对接收到的共识请求进行正确性验证,具体包括:当验证到所述共识请求...

【专利技术属性】
技术研发人员:林凡张秋镇钟万春
申请(专利权)人:广州杰赛科技股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1