区块链节点数量与区块链网络计算、通讯、存储能力成正比(一)
区块链网络中多节点协同打块系统
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所述的一种多节点协同打块的方法,其特征在于,所述的S6发送交易的方式是通过发送交易编号或者完整的交易内容。
5.一种多节点协同打块的系统,包括:节点协同器:所述的节点协同器与区块链网络连接,用于加入协同节点并检测协同节点心跳;交易管理器:所述的交易管理器与区块链网络和节点协同器连接,用于给节点协同器确定协同节点,分配交易,并接受协同节点的处理结果;时钟协同器:所述的时钟协同器与节点协同器和交易管理器相连,用于保证各协同节点保持时间的一致性;区块锻造器:与交易管理器和区块链网络相连,将协同节点处理的交易打入区块,并向区块链网络广播;所述的节点协同器,交易管理器,时钟协同器,区块锻造器顺序连接。
6.根据权利要求5所述的一种多节点协同打块的系统,其特征在于,所述的节点协同器包括节点保持模块和任务调度模块,所述的节点保持模块,用于发现和维持协同节点的在线状态,加入新的协同节点,剔除掉线和无法工作的节点;所述的任务调度模块用于为参与协同的节点分配任务,以及获取任务结果。
7.根据权利要求5所述的一种多节点协同打块的系统,其特征在于,所述的交易管理器包括交易分组模块和账务协同模块和交易锁管理模块和序列管理模块,所述的交易分组模块用于将交易进行相关性分组,所述的账务协同模块与交易分组模块相连,用于将各协同节点处理的账户的最新状态告知其它协同节点,以帮助其它节点正确的进行账务处理;所述的交易锁管理模块与账务协同模块相连,用于保证有顺序依赖的交易正确处理;所述的序列管理模块用于在区块锻造时保证全体交易在进入各协同节点前就已明确全局处理顺序,在区块校验中保证交易的校验顺序与锻造顺序一致。
8.根据权利要求5所述的一种多节点协同打块的系统,其特征在于,所述的时钟协同器是一个独立工作的系统,所述的时钟协同器是观察模块或管理模块或控制模块的一种,所述的观察模块为各协同节点提供被动的信息查询,所述的管理模块在特定的时间周期中,主动校准各协同节点的时间,所述的控制模块作为协同节点的一部分参与运行,控制协同节点周期结束时停止交易。
9.根据权利要求8所述的一种多节点协同打块的系统,其特征在于,所述管理模块校准时间方式包括简单校准和深度校准。
10.根据权利要求9所述的一种多节点协同打块的系统,其特征在于,所述是简单校准是重新更新时钟,所述的深度校准是重新启动交易或暂停交易。
一种多节点协同打块的方法及系统
技术领域
[0001]本发明属于区块链领域,尤其涉及一种多节点协同打块的方法及系统。
背景技术
[0002]随着比特币的出现,区块链技术被越来越多的认识,区块链中的挖矿尤其受到很多技术迷的青睐,现有的区块链网络中,几乎所有的区块链都是各节点独立工作,这导致区块链的吞吐性能由单一节点的最大处理能力决定,而单一节点的计算能力、存储能力总是有限的,这导致区块链的性能被局限在单台计算机的处理性能之内;而实际业务应用中,业务总是无穷无尽的增长,需求和交易的能力也随着无穷尽的增长,但计算机的处理性能却无法做到无穷无尽的增长,这导致当前的区块链无法大规模应用到真实的业务生产环境中,那么如何让区块链的处理性能能突破单一计算机的计算能力成为一个急需解决的问题。
发明内容
[0003]本发明所要解决的技术问题在于提供一种处理性能好、出块速度快、能实现多个节点协同打块,提高打块效率的一种多节点协同打块的方法及系统。
[0004]为解决上述技术问题,本发明的技术解决方案是:
[0005]一种多节点协同打块的方法,包括如下步骤:
[0006]S1启动区块链节点,检查本地协同配置;
[0007]S2加入区块链网络中的协同节点;
[0008]S3启动主节点,主节点检测协同节点心跳;
[0009]S4主节点获取本周期未处理的交易,并为这些未处理交易标注序列;
[0010]S5主节点将已标注序列的未处理的交易进行相关性分组,并将分组中有交易顺序处理需要的交易进行上锁;
[0011]S6主节点将分组后的交易依次发送给各协同节点;
[0012]S7各协同节点开始处理交易,将每一条交易处理结果返回主节点,并等待主节点指示;
[0013]S8主节点收到交易后保存处理结果,并将下一条交易的锁的释放指令发给协同节点,各协同节点继续开始处理交易,并将交易处理结果返回主节点,并等待主节点指示,在S8内依次循环;
[0014]S9当协同节点交易处理过程中遇到交易全部处理完毕,而主节点还没有新的交易发来时,暂停交易,当协同节点交易处理过程中遇到时钟指令本周期结束时,立即停止交易;
[0015]S10协同节点交易停止后,主节点将协同节点处理的交易打入区块,主节点将区块签名后向网络广播,完成打块,进入下一个区块周期循环。
[0016]进一步的,所述的步骤S2加入区块链网络中的协同节点的方法是:
[0017]S21发布需求协同的请求,检查本地节点是否为主节点;
[0018]S22若本地节点是主节点则直接开始检测协同节点心跳,若本地节点不是主节点,则查找配置的主节点;
[0019]S23与主节点建立连接,并开始发送心跳包;
[0020]S24发送了心跳包的本地节点切换为协同模式,开始主节点的任务调度。
[0021]进一步的,所述主节点检测协同节点心跳的方法是
[0022]S31主节点启动监听心跳包,监听其他节点发送的心跳包;
[0023]S32主节点检查自己的协同列表,当列表不为空时,依次检查列表中的网络状态;
[0024]S33判断节点是否能与主节点网络连接,若不能,则从协同列表中去除,若能则建立连接;
[0025]S34监听心跳包如果有新的协同节点加入,并将新的协同节点校验通过后加入协同列表中;
[0026]S35监听心跳包过程中发现有协同节点掉线时,将其从协同列表中移除,移除掉线节点时,若掉线节点已经处理了一部分交易,那么需要将剩余未处理交易撤销,将撤销后的重新分配给其他协同节点;
[0027]S36进入监听心跳循环。
[0028]进一步的,所述的S6发送交易的方式是通过发送交易编号或者完整的交易内容。
[0029]一种多节点协同打块的系统,包括:
[0030]节点协同器:所述的节点协同器与区块链网络连接,用于加入协同节点并检测协同节点心跳;
[0031]交易管理器:所述的交易管理器与区块链网络和节点协同器连接,用于给节点协同器确定协同节点,分配交易,并接受协同节点的处理结果;
[0032]时钟协同器:所述的时钟协同器与节点协同器和交易管理器相连,用于保证各协同节点保持时间的一致性;
[0033]区块锻造器:与交易管理器和区块链网络相连,将协同节点处理的交易打入区块,并向区块链网络广播;
[0034]所述的节点协同器,交易管理器,时钟协同器,区块锻造器顺序连接。
[0035]进一步的,所述的节点协同器包括节点保持模块和任务调度模块,所述的节点保持模块,用于发现和维持协同节点的在线状态,加入新的协同节点,剔除掉线和无法工作的节点;所述的任务调度模块用于为参与协同的节点分配任务,以及获取任务结果。
[0036]进一步的,所述的交易管理器包括交易分组模块和账务协同模块和交易锁管理模块和序列管理模块,所述的交易分组模块用于将交易进行相关性分组,所述的账务协同模块与交易分组模块相连,用于将各协同节点处理的账户的最新状态告知其它协同节点,以帮助其它节点正确的进行账务处理;所述的交易锁管理模块与账务协同模块相连,用于保证有顺序依赖的交易正确处理;所述的序列管理模块用于在区块锻造时保证全体交易在进入各协同节点前就已明确全局处理顺序,在区块校验中保证交易的校验顺序与锻造顺序一致。
[0037]进一步的,所述的时钟协同器是一个独立工作的系统,所述的时钟协同器是观察模块或管理模块或控制模块的一种,所述的观察模块为各协同节点提供被动的信息查询,所述的管理模块在特定的时间周期中,主动校准各协同节点的时间,所述的控制模块作为协同节点的一部分参与运行,控制协同节点周期结束时停止交易。
[0038]进一步的,所述管理模块校准时间方式包括简单校准和深度校准。
[0039]进一步的,所述是简单校准是重新更新时钟,所述的深度校准是重新启动交易或暂停交易。
[0040]本发明的有益效果是:
[0041]1、本发明通过确定区块链网络中的节点作为协同节点,通过节点协同器与交易管理器的配合,使得协同节点能在一起有序的处理交易,处理性能好、出块速度快;
[0042]2、本发明通过交易管理器中的交易锁管理模块、序列管理模块、账务协同模块与时钟协同器结合,保证多个节点协同打块不出现数据紊乱,有序的进行打块,提高了出块效率。
看图说话