应用于出块节点的区块链共识方法、系统、设备及介质技术方案

技术编号:27886821 阅读:19 留言:0更新日期:2021-03-31 01:51
本发明专利技术涉及应用于出块节点的区块链共识方法、系统、设备及介质,第一节点、第二节点…第N节点按照预设顺序依次进行打包出块:若当前轮到第x节点出块时,所述第x节点响应于出块验证指令执行验证操作,若出块验证通过,则执行出块操作,同时将所述最新区块发送至网络通讯模块;第一节点、第二节点…第x‑1节点、第x+1节点…第N节点通过网络通讯模块接收所述最新区块,响应于对所述最新区块进行验证指令执行验证操作,若验证通过,则将所述最新区块添加至节点本地数据库的区块链中。本发明专利技术能够部分解决或缓解因为网络通讯不佳从而无法达成共识而引起的一系列的问题,有效的提高了区块链的出块率。

【技术实现步骤摘要】
应用于出块节点的区块链共识方法、系统、设备及介质
本专利技术涉及区块链
、数据处理技术
,尤其涉及应用于出块节点的区块链共识方法、系统、设备及介质。
技术介绍
区块链是一种新型去中心化协议,能安全地存储数字货币交易或其数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,公共账本位于存储区块上任何节点见,从而保证其不可伪造和篡改。一般来说,当网络中多个主机通过异步通讯方式组成网络集群进行协作时,这种异步网络默认是不可靠的,那么在这些不可靠主机之间复制状态需要采取一种机制,以保证每个主机的状态最终达成相同一致性状态,取得共识。具体到区块链网络上,共识问题又引入了新的不确定因素,如:恶意节点、网络延迟,系统可能就会达成错误的共识,从而导致重大错误。公有区块链一般采取POW共识算法,即工作量证明方案。POW共识需要大量的哈希运算,需要电力和各种算力资源,而且找到合适的哈希值实际上并没有其他的作用。其次网络性能也非常低。而DPOS共识算法虽然出块时间短、效率高,但是对于网络依赖也很大。比如EOS,在进行打包出块时,出块节点需将最新区块数据发送至其他共识节点进行确认,其他共识节点验证通过后出块节点才可以将此最新区块数据添加至区块链并将其同步给其他节点。在真实环境中,因网络不通畅,导致节点主机之间暂时无法通信,那么此时出块节点因无法收到其他共识节点对区块的确认信息,则无法进行正常的打包区块工作。例如申请号为“CN201910694191.9”的专利技术专利申请公开了一种基于区块链的共识方法、装置、设备及存储介质,所述的方法应用于所述区块链的第一节点,所述的方法包括:进入第R1轮共识的第一共识阶段,R1为自然数;在满足预定条件时触发计时器开始计时;若所述计时器计时的时长大于或等于预定时长,且保持在第R1轮共识的第一共识阶段,则打包有效投票集;其中,所述有效投票集中包括第一有效投票,所述第一有效投票用于证明所述第一节点进入第R1轮共识的第一共识阶段;广播所述有效投票集;但是该专利方案并不能够克服因为网络不通畅最终导致无法进行正常的打包区块工作的问题。
技术实现思路
本专利技术所要解决的技术问题在于克服网络不通畅情况下,节点主机之间暂时无法通信,那么此时出块节点因无法收到其他共识节点对区块的确认信息,则无法进行正常的打包区块工作的问题。本专利技术通过以下技术手段实现解决上述技术问题的:一种区块链共识方法,应用于出块节点,其特征在于,当前轮到出块节点出块时,所述出块节点响应于出块验证指令执行验证操作,若出块验证通过,则执行出块操作,将交易打包为最新区块存入本地区块链数据库中,同时将所述最新区块通过网络通讯模块发送至其他节点处,若验证失败则不执行出块操作。通过判断当前节点首先自身节点是否可以执行出块操作,若验证通过后,执行出块操作,实现在节点之间短时间内无法通信的情况下依然可以出块,将最新区块发送至其他所有的节点再进行验证,其他所有节点验证过并存入本地区块链数据库中,这样即使在网络不通畅情况下,节点主机之间暂时无法通信,也可以部分解决或缓解因为网络通讯不佳从而无法达成共识而引起的一系列的问题,有效的提高了区块链的出块率。作为本专利技术进一步的方案:所述出块节点响应于出块验证指令执行验证操作包括:所述出块节点判断自身是否处于可出块节点名单、判断当前时间点是否轮到自身节点出块、出块是否合法,若所述出块节点同时满足处于可出块节点名单中、轮到自身节点出块、出块合法,则执行出块操作;否则禁止进行出块操作。作为本专利技术进一步的方案:所述出块节点判断自身是否处于可出块节点名单包括:所述出块节点通过对可出块节点名单中记载的内容进行匹配,若匹配成功,则该出块节点位于可出块节点名单中,若匹配不成功,则不在可出块节点名单中。作为本专利技术进一步的方案:所述可出块节点名单中存储有可出块的节点信息、可出块的节点地址、可出块的节点公钥或可出块的节点证书。作为本专利技术进一步的方案:所述判断当前时间点是否轮到自身节点出包括:所述出块节点通过共识规则机制判断当前时间点是否轮到自身节点进行出块,出块节点通过将当前时间出块的条件与所述节点轮流出块规则中预设条件进行匹配,若匹配成功,则符合出块的条件,若匹配不成功则禁止出块操作。作为本专利技术进一步的方案:所述判断出块是否合法包括:S1301)、当轮到出块节点出块时,从节点本地数据库中读取区块链数据,判断读取的区块链数据中区块链高度与预设的第一阈值进行比较,若区块链高度与第一阈值相同时,表示区块链中只存在创始区块中,出块节点出块合法;若区块链高度大于第一阈值时,执行步骤1302);S1302)、将区块链高度与最小节点确认数进行比较,若区块链高度小于最小节点确认数时,则判断区块链中是否存在当前节点出的区块,若区块链中不存在当前节点出的区块,则出块合法,若区块链中存在当前节点出的区块,则出块不合法;若区块链高度大于等于最小节点确认数时,则从区块链最大高度向前读取N1-1个区块,N1为可出块的节点总数,若第N1-1个区块的高度大于最大高度,此时读取到创世区块为止,并判断每个区块所对应的可出块的节点,然后加上出块节点形成一个集合;S1303)、判断集合是否有重复的节点,若有则进行去重,舍弃重复的节点再执行S1304),若无重复的节点直接执行步骤S1304);S1304)、判断无重复节点的集合的节点数与最小确认数的大小,若集合节点数不小于最小节点确认数,则满足出块合法。作为本专利技术进一步的方案:当判断出块是否合法后,还包括在本地区块链数据库中找出符合不可逆区块高度的区块,将其标记为不可逆区块。一种区块链共识系统,包括出块节点验证模块,出块节点验证模块用于当轮到出块节点出块时,所述出块节点响应于出块验证指令执行验证操作,若出块验证通过,则执行出块操作,将交易打包为最新区块存入本地区块链数据库中,同时将所述最新区块发送至网络通讯模块,若验证失败则不执行出块操作。一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如所述的共识方法。一种介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如所述的共识方法。本专利技术的优点在于:1、本专利技术中,通过判断当前节点首先自身节点是否可以执行出块操作,若验证通过后,执行出块操作,实现在节点之间短时间内无法通信的情况下依然可以出块,将最新区块发送至其他所有的节点再进行验证,其他所有节点验证过并存入本地区块链数据库中,这样即使在网络不通畅情况下,节点主机之间暂时无法通信,也可以部分解决或缓解因为网络通讯不佳从而无法达成共识而引起的一系列的问题,有效的提高了区块链的出块率。2、本专利技术能够有效提供因暂时的网络不稳定因素导致区块链效率低下的解决方案,能够在节点之间短时间内无法通信的情况下依然可以出块,通本文档来自技高网
...

【技术保护点】
1.一种区块链共识方法,应用于出块节点,其特征在于,当前轮到出块节点出块时,所述出块节点响应于出块验证指令执行验证操作,若出块验证通过,则执行出块操作,将交易打包为最新区块存入本地区块链数据库中,同时将所述最新区块通过网络通讯模块发送至其他节点处,若验证失败则不执行出块操作。/n

【技术特征摘要】
1.一种区块链共识方法,应用于出块节点,其特征在于,当前轮到出块节点出块时,所述出块节点响应于出块验证指令执行验证操作,若出块验证通过,则执行出块操作,将交易打包为最新区块存入本地区块链数据库中,同时将所述最新区块通过网络通讯模块发送至其他节点处,若验证失败则不执行出块操作。


2.根据权利要求1所述的区块链共识方法,其特征在于,所述出块节点响应于出块验证指令执行验证操作包括:
所述出块节点判断自身是否处于可出块节点名单、判断当前时间点是否轮到自身节点出块、出块是否合法,若所述出块节点同时满足处于可出块节点名单中、轮到自身节点出块、出块合法,则执行出块操作;否则禁止进行出块操作。


3.根据权利要求2所述的区块链共识方法,其特征在于,所述出块节点判断自身是否处于可出块节点名单包括:
所述出块节点通过对可出块节点名单中记载的内容进行匹配,若匹配成功,则该出块节点位于可出块节点名单中,若匹配不成功,则不在可出块节点名单中。


4.根据权利要求3所述的区块链共识方法,其特征在于,所述可出块节点名单中存储有可出块的节点信息、可出块的节点地址、可出块的节点公钥或可出块的节点证书。


5.根据权利要求2所述的区块链共识方法,其特征在于,所述判断当前时间点是否轮到自身节点出包括:所述出块节点通过共识规则机制判断当前时间点是否轮到自身节点进行出块,出块节点通过将当前时间出块的条件与所述节点轮流出块规则中预设条件进行匹配,若匹配成功,则符合出块的条件,若匹配不成功则禁止出块操作。


6.根据权利要求2所述的区块链共识方法,其特征在于,所述判断出块是否合法包括:
S1301)、当轮到出块节点出块时,从节点本地数据库中读取区块链数据,判断读取的区块链数据中区块链高度与预设的第一阈值进行比较,若区块链高度与第一...

【专利技术属性】
技术研发人员:张焱施逸杨东李汪红
申请(专利权)人:合肥达朴汇联科技有限公司
类型:发明
国别省市:安徽;34

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

1