法律状态公告日
法律状态信息
法律状态
2022-08-26
授权
发明专利权授予
技术领域
本发明涉及一种数据治理的区块链通信资源整合共识方法,属于区块链技术与数据治理技术领域。
背景技术
大数据时代,数据源源不断产生并自主汇聚至多方数据收集者,数据已经成为企业间竞争的关键和影响国家竞争力的重要因素,由此数据治理成为企业治理和国家治理的重点领域和重要方式。区块链本质上是一种去中心化的分布式数据库,在增加大数据价值实现过程的透明性方面具有天然的优势,为解决当前数据治理的关键问题提供了可行性。共识机制是区块链系统达成一致的协议,现在联盟链的常用共识机制是PBFT即实用拜占庭容错算法,普通PBFT算法在共识过程中,所有节点参与,导致通信资源消耗高,无法识别可信节点。
综上所述,急需提供一种技术方案,在保证识别可信节点的基础上,降低共识过程中通信资源的消耗,且保证生成区块都是正确的。
发明内容
本发明提供了一种数据治理的区块链通信资源整合共识方法,以用于解决节点参与共识过程积极性不高、无法判断可信节点、共识过程通信资源占用高的现象,该方法提高节点的积极性、识别可信节点、降低消息复杂度,减少通信资源消耗,提高系统的安全性和效率。
本发明的技术方案是:一种数据治理的区块链通信资源整合共识方法,所述方法的具体步骤如下:
共识方法的角色包括:共识节点、通信节点;
所述通信节点主要负责共识节点之间的通信,接收到客户端请求消息后将预准备消息广播给共识节点,接收并统计共识节点的准备消息,然后向所有共识节点广播提交消息。
所述共识节点负责接收通信节点广播的预准备消息,并将准备消息发送给通信节点,接收提交消息,然后将答复消息发送给客户端。
所述方法的具体步骤如下:
Step1.随机将所有节点分为若干组,每组有3f+1个节点。
Step2.选择通信节点:每一组从信任度在前10%的节点中随机选择一个。
Step3.选择共识节点:每一组的剩余节点为共识节点。
Step4.请求阶段:客户端发起请求,将请求消息发送给所有节点,请求消息写入到本地日志中。
Step5.预准备阶段:每组通信节点接收到客户端发起的请求,进入预准备阶段,同时对请求消息格式进行检查,若不符合,则直接丢弃;若符合,则向本组共识节点广播预准备消息,此消息须写入到本地日志。
Step6.准备阶段:每组共识节点对预准备消息格式进行检查,若通过,则向本组通信节点广播准备消息,并将预准备消息和准备消息写入到本地日志。
Step7.提交阶段:通信节点将收到的准备消息都写入日志,并统计收到的准备消息,如果统计结果显示一个节点收到2f+1个来自不同节点且验证正确的准备消息,通信节点向本组共识节点广播提交消息。
Step8.答复阶段:每组共识节点接收到法定数量的提交消息后执行请求操作,并向客户端发送答复消息。客户端若收到f+1个不同共识节点的正确答复时,则认为请求得到执行。
Step9.信任度更新:信任度因子包括节点活跃度、节点共识完成率,在一轮共识中,若节点信任度因子高,则提升该节点的信任度;若节点信任度因子低,则降低该节点的信任度。
进一步地,信任度越高说明节点的可信性越高,为了防止通信节点恶化,不设置固定通信节点,而在每一组信任度为前10%的节点中随机选择一个,剩余节点为共识节点。
进一步地,通信节点负责共识节点之间的消息传递,通信节点将预准备消息发送给共识节点,共识节点收到预准备消息后将准备消息发送给通信节点,即将投票信息发送给通信节点,通信节点接收准备消息,并对投票信息进行统计,然后将提交消息即投票结果广播给共识节点。
进一步地,共识过程中的所有消息会写入到本地日志中,本地日志相当于一个记账本,所有节点都可以查看、核对信息。
进一步地,对所有节点进行分组,可大幅度降低共识过程中的消息复杂度。
进一步地,通信节点只占所有节点的10%,可降低在共识过程中广播产生的通信资源消耗。
本发明的有益效果是:
(1)本发明改进的区块链共识机制基于PBFT共识机制,将所有节点进行分组,极大地降低了消息复杂度,设立通信节点,专门负责共识节点消息的传递,降低了通信资源消耗,以及加入了信任度评价机制,通过信任度因子对节点的信任度进行更新,可以识别可信节点。
(2)本发明与现有技术相比,主要解决了节点参与共识过程积极性不高、无法判断可信节点、共识过程通信资源占用高的现象,极大地提高节点的积极性、识别可信节点、极大地降低消息复杂度,减少通信资源消耗,提高系统的安全性和效率。
附图说明
图1是本发明总流程图;
图2是本发明与PBFT共识方法消息传递对比图。
具体实施方式
下面结合附图和实施例对本发明进行详细说明,但本发明的保护范围并不限于所述内容。
请结合参阅图1和图2,其中,图1为本发明总流程图;图2是本发明中与PBFT共识方法消息传递对比图。
实施例1
一种数据治理的区块链通信资源整合共识方法,所述共识方法的角色包括:共识节点、通信节点;所述通信节点主要负责共识节点之间的通信,接收到客户端请求消息后将预准备消息广播给共识节点,接收并统计共识节点的准备消息,然后向所有共识节点广播提交消息。共识节点负责接收通信节点广播的预准备消息,并将准备消息发送给通信节点,接收提交消息,然后将答复消息发送给客户端。所述共识方法的共识过程如下:
Step1.随机将所有节点分为若干组,每组有3f+1个节点。
Step2.选择通信节点:每一组从信任度在前10%的节点中随机选择一个。
Step3.选择共识节点:每一组的剩余节点为共识节点。
Step4.请求阶段:客户端发起请求,将请求消息发送给所有节点,请求消息写入到本地日志中。
Step5.预准备阶段:每组通信节点接收到客户端发起的请求,进入预准备阶段,同时对请求消息格式进行检查,若不符合,则直接丢弃;若符合,则向本组共识节点广播预准备消息,此消息须写入到本地日志。
Step6.准备阶段:每组共识节点对预准备消息进行检查,若通过,则向本组通信节点广播准备消息,并将预准备消息和准备消息写入到本地日志。
Step7.提交阶段:通信节点将收到的准备消息都写入日志,并统计收到的准备消息,如果统计结果显示一个节点收到2f+1个来自不同节点且验证正确的准备消息,通信节点向本组共识节点广播提交消息。
Step8.答复阶段:每组共识节点接收到法定数量的提交消息后执行请求操作,并向客户端发送答复消息;客户端若收到f+1个不同共识节点的正确答复时,则认为请求得到执行。
Step9.信任度更新:信任度因子包括节点活跃度、节点共识完成率,在一轮共识中,若节点信任度因子高,则提升该节点的信任度;若节点信任度因子低,则降低该节点的信任度。
本发明是一个使用Java语言编写的平台,将平台启动后,运行中产生的各项数据会记录到数据库中,并且自动保持数据同步,经过上述共识步骤后生成区块,存储区块,接着开始新一轮共识。
图2是本发明与PBFT共识方法消息传递对比图,由图可以看出本发明确实降低了共识过程的消息复杂度,从而减少了通信资源消耗,提高了系统的效率。
综上所述,本发明改进的区块链共识机制基于PBFT共识机制,将所有节点进行分组,可极大地降低消息复杂度,设立通信节点,专门负责共识节点消息的传递,降低了通信资源消耗,以及加入了信任度评价机制,通过信任度因子对节点的信任度进行更新,可以识别可信节点。
上面结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
机译: 使用秘密共享和阅读共识在元数据驱动的区块链上实现遗忘权的系统或方法
机译: 用于将数据添加到区块链的共识系统和方法
机译: 预防NAK符号传播的方法;预防NAK符号传播的方法;一种生成,传输和排序数据帧的方法;一种生成,传输和排序数据帧的方法;移动通信站,机翼数据帧;移动通信站,无线通信设备(变体),数据通信设备(变体)和数据载体(变体),用于实现方法载体的MET载体(变体)