一种区块链共识系统技术方案

技术编号:27656920 阅读:13 留言:0更新日期:2021-03-12 14:19
本发明专利技术涉及一种区块链共识系统,包括:可出块节点名单模块、网络通讯模块、共识规则模块、出块合法性确认模块和不可逆区块模块;所述可出块节点名单模块用于确定此区块链中被赋予出块权的节点;所述网络通讯模块用于节点之间的通讯和数据传输;所述共识规则模块用于规定区块链的共识规则;所述出块合法性确认模块用于判断当前节点是否具有出块的权力;所述不可逆区块模块用于保护区块链不被篡改。本发明专利技术可以解决以解决或缓解因为网络通讯不佳从而无法达成共识而引起的一系列的问题。

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

【技术保护点】
1.一种区块链共识系统,其特征在于,包括:可出块节点名单模块、网络通讯模块、共识规则模块、出块合法性确认模块和不可逆区块模块;/n所述可出块节点名单模块用于确定此区块链中被赋予出块权的节点;/n所述网络通讯模块用于节点之间的通讯和数据传输;/n所述共识规则模块用于规定区块链的共识规则;/n所述出块合法性确认模块用于判断当前节点是否具有出块的权力;/n所述不可逆区块模块用于保护区块链不被篡改。/n

【技术特征摘要】
1.一种区块链共识系统,其特征在于,包括:可出块节点名单模块、网络通讯模块、共识规则模块、出块合法性确认模块和不可逆区块模块;
所述可出块节点名单模块用于确定此区块链中被赋予出块权的节点;
所述网络通讯模块用于节点之间的通讯和数据传输;
所述共识规则模块用于规定区块链的共识规则;
所述出块合法性确认模块用于判断当前节点是否具有出块的权力;
所述不可逆区块模块用于保护区块链不被篡改。


2.根据权利要求1所述的区块链共识系统,其特征在于,所述出块节点名单模块存储有所有可出块节点的信息,以及节点地址、节点公钥或节点证书。


3.根据权利要求2所述的区块链共识系统,其特征在于,所述共识规则模块包括节点轮流出块规则、出块节点总数、最小节点确认数和分叉选择机制;
所述节点轮流出块规则用于确定出块方式;
所述出块节点总数用于确定所有节点数量;
所述最小节点确认数规定了需要进行区块确认的最小不同节点数;
所述分叉选择机制,当节点收到多个区块链分叉时,选择区块链高度最大且区块链中包含了本地区块链数据库中所有不可逆区块的分叉。


4.根据权利要求3所述的区块链共识系统,其特征在于,所述最小节点确认数为:
n=ceiling(2/3N+1),其中,n来表示最小节点确认数,用N来表示总节点数量。


5.根据权利要求2所述的区块链共识系统,其特征在于,所述出块合法性确认模块是通过区块合法性确认机制来判定当前时段出块是否符合最小节点确认数。


6.根据权利要求5所述的区块链共识系统,其特征在于,区块合法性确认机制包括:通过读取本地存储的区块链中的各个区块,识别各个区块的生产节点,通过生产节点的数量判断当前节点进行出块是否符合最小节点确认数。


7.根据权利要求3所述的区块链共识系统,其特征在于,所述出块合法性确认模块的判断逻辑为:
S01)、当轮到第x节点出块时,从节点本地数据库中读取区块链数据,判断读取的区块链数据中区块链高度与预设的第一阈值进行比较,若区块链高度与第一阈值相同时,表示区块链中只存...

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

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

1