一种区块链执行器水平扩展的方法、设备及储存介质与流程

文档序号:26139769发布日期:2021-08-03 14:23阅读:96来源:国知局
一种区块链执行器水平扩展的方法、设备及储存介质与流程

本发明涉及信息技术领域,尤其涉及一种区块链执行器水平扩展的方法、设备及储存介质。



背景技术:

区块链本质上是一个去中心化的数据库,是一连串使用密码学方法产生相关联的数据块,每一个数据块中包含了一段时间内全网交易的信息。采用区块链技术架构的网络可视为区块链网络,区块链网络中包含多个区块链节点,任一区块链节点可对应至少一个区块链,任一区块链可包含至少一个区块。通过链(chain)将不同高度的块(block)连接起来,区块链交易中,最主要的操作就是验证交易合法性(auth)、共识(consensus)和合约执行。

智能合约(smartcontract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议,其允许在没有第三方的情况下进行可信交易。智能合约的目的是提供优于传统合约的安全方法,并减少与合约相关的其他交易成本。

chain33是一个开源的有智能合约功能的公共区块链平台,在该区块线系统中能够执行多种类型的合约交易,包括evm、coins、token、trade、privacy等等。在正常情况下,如果交易未处于高峰期时,区块链系统通常无需加速处理交易,提升系统整体的tps,而在交易高峰期时,往往都是某一类或几类交易的交易量特别巨大,造成了系统处理能力不足,此时,如果依照高峰期交易压力最繁重的情况来部署相关的硬件,以提升系统的性能会造成系统大多数时间无需使用如此高的性能,造成严重的资源浪费。

因此,目前亟需一种区块链执行器水平扩展的方法,适用于在交易高峰时,能够在不占用区块链原有硬件资源的情况下水平扩展区块链系统的交易处理能力,使其能够有效应对交易高峰来临时的处理压力。



技术实现要素:

一、发明目的

针对上述技术问题,本发明提供一种区块链执行器水平扩展的方法、设备及储存介质,能够在不占用区块链原有硬件资源的情况下水平扩展区块链系统的交易处理能力,使其能够有效应对交易高峰来临时的处理压力。

二、技术方案

为解决上述技术问题,本发明所提供的技术方案如下:

第一方面,一种区块链执行器水平扩展的方法,适用于区块链系统,所述区块链系统包括多个独立执行单元,所述独立执行单元包括合约交易执行器的可执行文件,所述独立执行单元用于在扩展服务器上独立开展交易执行服务,所述独立执行单元共有若干个类型,所述独立执行单元的类型与区块链系统所支持的合约交易的类型一一对应;

所述方法包括:

交易池监控池内交易及打包区块的情况;

依据触发机制判断交易池内各个交易类型是否满足水平扩展的条件:是,则记录满足条件的交易类型;

启动部署服务模块,所述部署服务模块用于在拓展服务器上部署独立执行单元;

所述部署服务模块确定用于部署独立执行单元的拓展服务器;

将满足条件的交易类型对应的独立执行单元部署在拓展服务器上;

部署服务模块所述独立执行单元在所述扩展服务器上运行。

作为优选,所述独立执行单元在所述扩展服务器上运行之后还包括:当所述满足条件的交易类型不再满足所述触发机制的条件时,所述满足条件的交易类型对应的独立执行单元停止运行并释放,回收所述拓展服务器。

作为优选,所述触发机制包括:交易总量超过设定的交易量阈值a,在设定百分比b的打包区块中某种交易类型单区块交易量持续超过区块交易量阈值c,则将该交易类型视为满足条件的交易类型。

作为优选,所述独立执行单元在所述扩展服务器上运行前还包括:部署服务模块获取需要水平拓展服务的区块链节点的grpc地址和已经执行完成的最新区块高度。

作为优选,所述部署服务模块包括同步单元,所述同步单元用于从区块链系统的节点同步区块至部署服务模块。

第二方面,一种计算机设备,一个或多个处理器;

存储器,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如第一方面及其优选方案任意一项所述的方法。

第三方面,一种存储有计算机程序的存储介质,该程序被处理器执行时实现如第一方面及其优选方案任意一项所述的方法。

三、有益效果

采用本发明提供的技术方案,与现有技术相比,具有如下有益效果:

1.能够弹性扩展区块链系统的处理能力,在交易高峰期针对高频交易进行水平拓展,既能够有效应对交易高峰来临时的处理压力,又能够保证交易压力正常时的资源利用率的。

2.通过获取已经执行完成的最新区块高度,将最新的数据库数据打包注入到部署独立执行单元的数据库中,使独立执行单元能够在不需要远程同步的前提下就可以直接进行交易的执行。

附图说明

图1为本发明实施例1提供的一种方法流程示意图;

图2为本发明实施例2提供的一种方法流程示意图;

图3为本发明实施例3提供的一种设备的结构示意图。

具体实施方式

为进一步了解本发明的内容,结合附图及实施例对本发明作详细描述。

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

本发明中所述的第一、第二等词语,是为了描述本发明的技术方案方便而设置,并没有特定的限定作用,均为泛指,对本发明的技术方案不构成限定作用。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

实施例1

如图1所示,一种区块链执行器水平扩展的方法,适用于区块链系统,所述区块链系统包括多个独立执行单元,所述独立执行单元包括合约交易执行器的可执行文件,所述独立执行单元用于在扩展服务器上独立开展交易执行服务,所述独立执行单元共有若干个类型,所述独立执行单元的类型与区块链系统所支持的合约交易的类型一一对应;

所述方法包括:

交易池监控池内交易及打包区块的情况;

依据触发机制判断交易池内各个交易类型是否满足水平扩展的条件:是,则记录满足条件的交易类型;

启动部署服务模块,所述部署服务模块用于在拓展服务器上部署独立执行单元;

所述部署服务模块确定用于部署独立执行单元的拓展服务器;

部署服务模块将满足条件的交易类型对应的独立执行单元部署在拓展服务器上;

所述独立执行单元在所述扩展服务器上运行。

在本申请中,将不同的合约执行器执行功能同时打包编译成单独的进程即独立执行单元,这样就可以实现单独部署,并为区块链主进程服务。当某一交易类型的情况满足触发机制条件时即可触发水平扩展,即部署服务模块将满足条件的交易类型对应的独立执行单元部署在拓展服务器上,该类独立执行单元在拓展服务器上独立运行,并执行对应的区块链交易提升区块链系统的交易处理能力,部署服务模块选择合适的拓展服务器,例如申请的云服务器等,拓展服务器接入区块链系统,在该拓展服务器上部署独立执行单元,使独立执行单元在拓展服务器上运行,区块链系统可通过独立执行单元执行区块链内需要执行的对应类型的交易,实现水平扩展。

实施例2

如图2所示,一种区块链执行器水平扩展的方法,适用于区块链系统,所述区块链系统包括多个独立执行单元,所述独立执行单元包括合约交易执行器的可执行文件,所述独立执行单元用于在扩展服务器上独立开展交易执行服务,所述独立执行单元共有若干个类型,所述独立执行单元的类型与区块链系统所支持的合约交易的类型一一对应;

所述方法包括:

交易池监控池内交易及打包区块的情况;

依据触发机制判断交易池内各个交易类型是否满足水平扩展的条件:是,则记录满足条件的交易类型;

启动部署服务模块,所述部署服务模块用于在拓展服务器上部署独立执行单元;

所述部署服务模块确定用于部署独立执行单元的拓展服务器;

部署服务模块将满足条件的交易类型对应的独立执行单元部署在拓展服务器上;

所述部署服务模块获取需要水平拓展服务的区块链节点的grpc地址和已经执行完成的最新区块高度;独立执行单元可以通过grpc服务将交易执行的结果反馈值区块链节点,因此需要区块链节点的grpc地址;而获取已经执行完成的最新区块高度可以从区块链中打包最新的数据库注入独立执行单元,用于独立执行单元执行交易而无需再远程同步区块链数据库,减少出错的风险。

所述独立执行单元在所述扩展服务器上运行;

当所述满足条件的交易类型不再满足所述触发机制的条件时,所述满足条件的交易类型对应的独立执行单元停止运行并释放,回收所述拓展服务器。当部署了独立执行单元的交易类型不再满足触发机制的条件的时候,停止运行独立执行单元并释放,然后回收拓展服务器,使得区块链系统在非高峰期无需占用过多的硬件资源,不会造成资源的浪费。

进一步的,所述触发机制包括:交易总量超过设定的交易量阈值a,某种交易类型在设定百分比b的打包区块中单区块交易量持续超过区块交易量阈值c,则将该交易类型视为满足条件的交易类型。具体的,本实施例中,设定交易量阈值a可取5000笔交易或100个区块,设定百分比b可取60%,区块交易量阈值c为所在区块交易总量的30%,则触发机制为:1、交易总量超过5000笔交易或交易已经打包了100个区块;2、超过60%的区块中,某交易类型的交易量持续超过该区块交易总量的30%;同时满足1和2时,则将该交易类型视为满足条件的交易类型。

进一步的,所述部署服务模块包括同步单元,所述同步单元用于从区块链系统的节点同步区块至部署服务模块。

在本申请中,将不同的合约执行器执行功能同时打包编译成单独的进程即独立执行单元,这样就可以实现单独部署,并为区块链主进程服务。当某一交易类型的情况满足触发机制条件时即可触发水平扩展,即将拥有不同的合约执行器执行功能的各个类型的独立执行单元部署在拓展服务器上,独立执行单元在拓展服务器上独立运行,并执行区块链交易提升区块链系统的交易处理能力,无需扩展交易执行能力时再将独立执行单元释放并回收拓展服务器,区块链系统回归正常状态,拓展服务器优选用云服务器,能够简便的实现接入和回收,在不需要水平扩展交易处理能力时不占用硬件资源例如服务器资源,在需要时实现按需扩展,使得区块链系统的执行处理得到弹性提升。

实施例3

一种计算机设备,所述设备包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如实施例1或实施例2所述的方法。

一种存储有计算机程序的存储介质,该程序被处理器执行时实现如以上实施例所述的方法。

图3为本实施例提供的一种设备的结构示意图。

如图3所示,作为另一方面,本申请还提供了一种设备500,包括一个或多个中央处理单元(cpu)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储部分508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram503中,还存储有设备500操作所需的各种程序和数据。cpu501、rom502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。

以下部件连接至i/o接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理驱动器510也根据需要连接至i/o接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。

特别地,根据本申请公开的实施例,上述实施例1所描述的方法可以被实现为计算机软件程序。例如,本申请公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行上述任一实施例描述的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。

作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请的方法。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各所述单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1