一种多节点协同打块的方法及系统技术方案

技术编号:22786081 阅读:15 留言:0更新日期:2019-12-11 05:14
本发明专利技术公开了一种多节点协同打块的方法及其系统,本发明专利技术通过确定区块链网络中的节点作为协同节点,通过节点协同器与交易管理器的配合,使得协同节点能在一起有序的处理交易,处理性能好、出块速度快,通过交易管理器中的交易锁管理模块、序列管理模块、账务协同模块与时钟协同器结合,保证多个节点协同打块不出现数据紊乱,有序的进行打块,提高了出块效率,缩短了出块时间。

A method and system of multi node cooperative blocking

The invention discloses a method and system of multi-node collaborative blocking. By determining the nodes in the blockchain network as the collaborative nodes, and through the cooperation between the node collaborator and the transaction manager, the collaborative nodes can orderly process transactions together, with good processing performance and fast block output speed. Through the transaction lock management module and the sequence management module in the transaction manager , the accounting collaboration module and the clock coordinator are combined to ensure that multiple nodes cooperate to block without data disorder, and block in an orderly manner, which improves the block output efficiency and shortens the block output time.

【技术实现步骤摘要】
一种多节点协同打块的方法及系统
本专利技术属于区块链领域,尤其涉及一种多节点协同打块的方法及系统。
技术介绍
随着比特币的出现,区块链技术被越来越多的认识,区块链中的挖矿尤其受到很多技术迷的青睐,现有的区块链网络中,几乎所有的区块链都是各节点独立工作,这导致区块链的吞吐性能由单一节点的最大处理能力决定,而单一节点的计算能力、存储能力总是有限的,这导致区块链的性能被局限在单台计算机的处理性能之内;而实际业务应用中,业务总是无穷无尽的增长,需求和交易的能力也随着无穷尽的增长,但计算机的处理性能却无法做到无穷无尽的增长,这导致当前的区块链无法大规模应用到真实的业务生产环境中,那么如何让区块链的处理性能能突破单一计算机的计算能力成为一个急需解决的问题。
技术实现思路
本专利技术所要解决的技术问题在于提供一种处理性能好、出块速度快、能实现多个节点协同打块,提高打块效率的一种多节点协同打块的方法及系统。为解决上述技术问题,本专利技术的技术解决方案是:一种多节点协同打块的方法,包括如下步骤:S1启动区块链节点,检查本地协同配置;S2加入区块链网络中的协同节点;S3启动主节点,主节点检测协同节点心跳;S4主节点获取本周期未处理的交易,并为这些未处理交易标注序列;S5主节点将已标注序列的未处理的交易进行相关性分组,并将分组中有交易顺序处理需要的交易进行上锁;S6主节点将分组后的交易依次发送给各协同节点;S7各协同节点开始处理交易,将每一条交易处理结果返回主节点,并等待主节点指示;S8主节点收到交易后保存处理结果,并将下一条交易的锁的释放指令发给协同节点,各协同节点继续开始处理交易,并将交易处理结果返回主节点,并等待主节点指示,在S8内依次循环;S9当协同节点交易处理过程中遇到交易全部处理完毕,而主节点还没有新的交易发来时,暂停交易,当协同节点交易处理过程中遇到时钟指令本周期结束时,立即停止交易;S10协同节点交易停止后,主节点将协同节点处理的交易打入区块,主节点将区块签名后向网络广播,完成打块,进入下一个区块周期循环。进一步的,所述的步骤S2加入区块链网络中的协同节点的方法是:S21发布需求协同的请求,检查本地节点是否为主节点;S22若本地节点是主节点则直接开始检测协同节点心跳,若本地节点不是主节点,则查找配置的主节点;S23与主节点建立连接,并开始发送心跳包;S24发送了心跳包的本地节点切换为协同模式,开始主节点的任务调度。进一步的,所述主节点检测协同节点心跳的方法是S31主节点启动监听心跳包,监听其他节点发送的心跳包;S32主节点检查自己的协同列表,当列表不为空时,依次检查列表中的网络状态;S33判断节点是否能与主节点网络连接,若不能,则从协同列表中去除,若能则建立连接;S34监听心跳包如果有新的协同节点加入,并将新的协同节点校验通过后加入协同列表中;S35监听心跳包过程中发现有协同节点掉线时,将其从协同列表中移除,移除掉线节点时,若掉线节点已经处理了一部分交易,那么需要将剩余未处理交易撤销,将撤销后的重新分配给其他协同节点;S36进入监听心跳循环。进一步的,所述的S6发送交易的方式是通过发送交易编号或者完整的交易内容。一种多节点协同打块的系统,包括:节点协同器:所述的节点协同器与区块链网络连接,用于加入协同节点并检测协同节点心跳;交易管理器:所述的交易管理器与区块链网络和节点协同器连接,用于给节点协同器确定协同节点,分配交易,并接受协同节点的处理结果;时钟协同器:所述的时钟协同器与节点协同器和交易管理器相连,用于保证各协同节点保持时间的一致性;区块锻造器:与交易管理器和区块链网络相连,将协同节点处理的交易打入区块,并向区块链网络广播;所述的节点协同器,交易管理器,时钟协同器,区块锻造器顺序连接。进一步的,所述的节点协同器包括节点保持模块和任务调度模块,所述的节点保持模块,用于发现和维持协同节点的在线状态,加入新的协同节点,剔除掉线和无法工作的节点;所述的任务调度模块用于为参与协同的节点分配任务,以及获取任务结果。进一步的,所述的交易管理器包括交易分组模块和账务协同模块和交易锁管理模块和序列管理模块,所述的交易分组模块用于将交易进行相关性分组,所述的账务协同模块与交易分组模块相连,用于将各协同节点处理的账户的最新状态告知其它协同节点,以帮助其它节点正确的进行账务处理;所述的交易锁管理模块与账务协同模块相连,用于保证有顺序依赖的交易正确处理;所述的序列管理模块用于在区块锻造时保证全体交易在进入各协同节点前就已明确全局处理顺序,在区块校验中保证交易的校验顺序与锻造顺序一致。进一步的,所述的时钟协同器是一个独立工作的系统,所述的时钟协同器是观察模块或管理模块或控制模块的一种,所述的观察模块为各协同节点提供被动的信息查询,所述的管理模块在特定的时间周期中,主动校准各协同节点的时间,所述的控制模块作为协同节点的一部分参与运行,控制协同节点周期结束时停止交易。进一步的,所述管理模块校准时间方式包括简单校准和深度校准。进一步的,所述是简单校准是重新更新时钟,所述的深度校准是重新启动交易或暂停交易。本专利技术的有益效果是:1、本专利技术通过确定区块链网络中的节点作为协同节点,通过节点协同器与交易管理器的配合,使得协同节点能在一起有序的处理交易,处理性能好、出块速度快;2、本专利技术通过交易管理器中的交易锁管理模块、序列管理模块、账务协同模块与时钟协同器结合,保证多个节点协同打块不出现数据紊乱,有序的进行打块,提高了出块效率。附图说明图1是本专利技术对应方法的流程图;图2是本专利技术对应系统的结构框图;图3是本专利技术对应系统节点协同器结构框图;图4是本专利技术对应系统交易管理器结构框图;图:100-节点协同器;200-交易管理器;300-时钟协同器;400-区块锻造器;500-区块链网络;101-节点保持模块;102-任务调度模块;201-交易分组模块;202-账务协同模块;203-交易锁管理模块;204-序列管理模块;具体实施方式下面结合附图和具体实施例对本专利技术作进一步详述。在此需要说明的是,下面所描述的本专利技术各个实施例中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。现有的区块链的各节点都是独立工作的,这导致区块链的吞吐性能由单一节点的最大处理能力决定,而单一节点的计算能力、存储能力总是有限的,这导致区块链的性能被局限在单台计算机的处理性能之内;这很难满足当前的区块链大规模应用到真实的业务生产环境的要求,本专利技术通过改进,克服了以上的不足,本专利技术公开了一种多节点协同打块的方法,如图1所示,包括如下步骤:S1启动区块链节点,检查本地协同配置,主要是检查本地节点是否能作为协同节点,是否能与区块本文档来自技高网...

【技术保护点】
1.一种多节点协同打块的方法,包括如下步骤:/nS1启动区块链节点,检查本地协同配置;/nS2加入区块链网络中的协同节点;/nS3启动主节点,主节点检测协同节点心跳;/nS4主节点获取本周期未处理的交易,并为这些未处理交易标注序列;/nS5主节点将已标注序列的未处理的交易进行相关性分组,并将分组中有交易顺序处理需要的交易进行上锁;/nS6主节点将分组后的交易依次发送给各协同节点;/nS7各协同节点开始处理交易,将每一条交易处理结果返回主节点,并等待主节点指示;/nS8主节点收到交易后保存处理结果,并将下一条交易的锁的释放指令发给协同节点,各协同节点继续开始处理交易,并将交易处理结果返回主节点,并等待主节点指示,在S8内依次循环;/nS9当协同节点交易处理过程中遇到交易全部处理完毕,而主节点还没有新的交易发来时,暂停交易,当协同节点交易处理过程中遇到时钟指令本周期结束时,立即停止交易;/nS10协同节点交易停止后,主节点将协同节点处理的交易打入区块,主节点将区块签名后向网络广播,完成打块,进入下一个区块周期循环。/n

【技术特征摘要】
1.一种多节点协同打块的方法,包括如下步骤:
S1启动区块链节点,检查本地协同配置;
S2加入区块链网络中的协同节点;
S3启动主节点,主节点检测协同节点心跳;
S4主节点获取本周期未处理的交易,并为这些未处理交易标注序列;
S5主节点将已标注序列的未处理的交易进行相关性分组,并将分组中有交易顺序处理需要的交易进行上锁;
S6主节点将分组后的交易依次发送给各协同节点;
S7各协同节点开始处理交易,将每一条交易处理结果返回主节点,并等待主节点指示;
S8主节点收到交易后保存处理结果,并将下一条交易的锁的释放指令发给协同节点,各协同节点继续开始处理交易,并将交易处理结果返回主节点,并等待主节点指示,在S8内依次循环;
S9当协同节点交易处理过程中遇到交易全部处理完毕,而主节点还没有新的交易发来时,暂停交易,当协同节点交易处理过程中遇到时钟指令本周期结束时,立即停止交易;
S10协同节点交易停止后,主节点将协同节点处理的交易打入区块,主节点将区块签名后向网络广播,完成打块,进入下一个区块周期循环。


2.根据权利要求1所述的一种多节点协同打块的方法,其特征在于,所述的步骤S2加入区块链网络中的协同节点的方法是:
S21发布需求协同的请求,检查本地节点是否为主节点;
S22若本地节点是主节点则直接开始检测协同节点心跳,若本地节点不是主节点,则查找配置的主节点;
S23与主节点建立连接,并开始发送心跳包;
S24发送了心跳包的本地节点切换为协同模式,开始主节点的任务调度。


3.根据权利要求2所述的一种多节点协同打块的方法,其特征在于,所述主节点检测协同节点心跳的方法是
S31主节点启动监听心跳包,监听其他节点发送的心跳包;
S32主节点检查自己的协同列表,当列表不为空时,依次检查列表中的网络状态;
S33判断节点是否能与主节点网络连接,若不能,则从协同列表中去除,若能则建立连接;
S34监听心跳包如果有新的协同节点加入,并将新的协同节点校验通过后加入协同列表中;
S35监听心跳包过程中发现有协同节点掉线时,将其从协同列表中移除,移除掉线节点时,若掉线节点已经处理了一部分交易,那么需要将剩余未处理交易撤销,将撤销后的重新分配给其他协同节点;
S36进入监听心跳循环。


4.根据权利要求1所述的一种多节点协同打块的方法...

【专利技术属性】
技术研发人员:杨税令
申请(专利权)人:厦门本能管家科技有限公司
类型:发明
国别省市:福建;35

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

1