一种区块链性能检测方法与系统与流程

文档序号:18105121发布日期:2019-07-06 11:36阅读:241来源:国知局
一种区块链性能检测方法与系统与流程

本发明涉及计算机科学领域,更具体地,涉及一种一种区块链性能检测方法与系统。



背景技术:

区块链起源于比特币,狭义上看,它是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式数据库。区块链由多个节点进行维护,每个节点将发生的交易验证并打包为一个区块加入链中。

智能合约的概念由尼克·萨博于1995年提出:“一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。”区块链上智能合约的部署和执行是以向区块链记账节点发送交易的形式进行,在交易中包含合约的代码、调用的函数以及相关的参数,合约的部署和调用交易由一个节点发出并向全网广播,再由各个节点分别执行合约,最终通过共识机制达成结果并存储到区块链上。一个合约的执行可能会触发多个其他合约,产生数个交易。

区块链智能合约的具有去中心化、不可篡改、可追溯、分布式自动执行等的特性,因此消除了中心化信任机构的费用,公有链、私有链的智能合约在金融、供应链管理等领域有广泛的应用前景。在区块链智能合约的许多应用场景中,其系统的首要诉求一定是安全和稳定,其次是在性能方面必须可以支撑日常的业务需要,现阶段区块链技术在这两个方面还都不能满足要求。在评估区块链及智能合约在场景中的应用性能时,现有技术的缺陷及不足如下:

智能合约性能指标的缺乏及必要性:在当前的研究、报告中,基本都是针对区块链上整体情况的性能评估,但是在实际的应用场景中,在区块链底层平台相同时,平台上的不同智能合约的执行效果往往不同,这是由于智能合约所实现的业务逻辑而造成的性能差异。因此对于不同类型智能合约在不同区块链上的性能评估十分必要。而除了以太坊中的gas用于描述智能合约执行时的消耗的操作外,当前对于智能合约性能评估指标十分缺乏,不同区块链智能合约之间性能高低缺乏评判标准。

性能评估的实时性要求:在性能评估中,可选的有两种方式,即在程序执行时实时监测各项指标并显示、输出,或在程序执行后通过读取日志数据等离线复盘执行过程进行性能指标的计算。在区块链智能合约的应用场景中,当前的研究报告大都是在区块链执行后离线复盘执行过程进行评估,而应用场景却要求能实时监测出链上的合约执行、交易吞吐状况,以便对链上情况做出及时的反应,这就要求区块链智能合约的性能评估需要具备实时性。



技术实现要素:

本发明的首要目的是提供一种区块链性能检测方法,能对不同类型智能合约在不同区块链上的性能评估,且具有低性能消耗的优点。

本发明的进一步目的是提供一种区块链性能检测系统。

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

一种区块链性能检测方法,包括以下步骤:

s1:记账节点将合约交易、打包区块的参数输出到日志中,其中,所述记账节点为参与区块链合约账本维护的节点,每一记账节点对应一个日志;

s2:节点分析器实时监测日志的变化情况,提取日志中变化的数据;

s3:汇总各节点分析器提取的数据,得到全网节点的区块链相关性能数据;

s4:根据全网节点的区块链相关性能数据计算区块链的总体性能。

优选地,步骤s1中记账节点将合约交易、打包区块的参数输出到日志中的时间间隔可自定义。

优选地,步骤s2中所述数据包括时间戳、区块信息、交易执行情况、交易吞吐量,并成为结构化数据。

优选地,对于时间ti,全网节点的区块链相关性能数据包括区块数据ti,blockx,n,合约部署\调用交易数据ti,txhash,’input’,合约交易被打包数据ti,txhash,’confirmed’,记账进程cpu使用率cpu(ti),记账进程实际内存占用rmem(ti),记账进程虚拟内存占用vmem(ti),记账进程硬盘读取速度diskr(ti),记账进程硬盘写入速度diskw(ti),记账进程上传带宽使用upload(ti),记账进程下载带宽使用download(ti)。

优选地,区块链的总体性能由以下指标决定:

平均吞吐速度为从时间ti到tj,全网区块链执行、打包交易的吞吐量;

平均响应延迟为从时间ti到tj,智能合约的部署和调用存在的延迟;

单位cpu吞吐为从时间ti到tj,全网节点对cpu的平均利用程度;

单位内存时间吞吐为从时间ti到tj,全网节点对内存的平均利用程度;

单位硬盘读写吞吐量为从时间ti到tj,全网节点对硬盘读写的平均利用程度;

单位网络数据吞吐量为从时间ti到tj,全网节点对网络带宽的平均消耗。

优选地,所述平均吞吐速度的计算方法如下:

式中,tpsu为第u个记账节点的智能合约交易的平均吞吐速度,共有n个记账节点,count(txin(ti,tj))为从时间ti到tj的交易数量;

平均响应延迟的计算方法如下:

式中,ardu为第u个记账节点的智能合约交易的平均吞吐速度,t(txconfirmed)为智能合约的交易确认的时间,t(txinput)为智能合约进入节点的时间,∑表示对所有智能合约的交易求和;

单位cpu吞吐的计算方法如下:

式中,tpcu为第u个记账节点对cpu的利用程度,f为cpu中单核的主频率;

单位内存时间吞吐的计算方法如下:

式中,tpmsu为第u个记账节点对内存的利用程度;

单位硬盘读写吞吐量的计算方法如下:

式中,tpdiou为第u个记账节点对硬盘读写的利用程度;

单位网络数据吞吐量的计算方法如下:

式中,tpndu第u个记账节点对网络带宽的消耗程度。

一种区块链性能检测系统,包括若干记账节点、节点分析器、云端数据收集计算服务器、内存以及系统web平台,其中:

所述若干记账节点为参与区块链合约账本维护的所有节点,并把数据以自定义的时间间隔输出值日志中,各个记账节点分别同步布置一个节点分析器,所述节点分析器进行区块链相关数据,节点分析器对日志数据进行清洗、分析,成为节点源数据;

所述云端数据收集计算服务器收集来自各个节点分析器的节点源数据并计算初各个记账节点的性能评估指标,保存在内存中,以restful接口的形式供系统web平台调用;

所述系统web平台通过jquery-flot框架提供各项监测指标的前端可视化,通过angular框架提供各个页面的路由转接、交互操作,并实现动态的页面加载,通过端口代理的方式实现跨域访问,通过json-rpc的接口与记账节点实现交互,执行合约的部署、调用操作。

优选地,还包括同步节点,所述同步节点同步所有区块信息,供区块链数据的相关计算调用,并每隔一定时间提供交易打包确认情况于所述云端数据收集计算服务器中。

优选地,通过守护进程获取软硬件资源消耗数据的收集并发送至所述云端数据收集计算服务器中。

与现有技术相比,本发明技术方案的有益效果是:

利用记账节点将想相关参数输出到日志中,其性能消耗远小于实时进行rpc接口交互的性能消耗,在记账节点上部署节点分析器,且节点分析器消耗的计算资源较少,实现对日志数据进行清洗与分析,同时同步节点解决部分区块链平台的交易被打包数据无法直接从区块中获得的缺陷。因此本发明具有低消耗、实时性强、扩展性好的优点。

附图说明

图1为一种区块链性能检测方法流程图。

图2为一种区块链性能检测系统示意图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

本实施例提供一种区块链性能检测方法,如图1,包括以下步骤:

s1:记账节点将合约交易、打包区块的参数输出到日志中,其中,所述记账节点为参与区块链合约账本维护的节点,每一记账节点对应一个日志;

s2:节点分析器实时监测日志的变化情况,提取日志中变化的数据;

s3:汇总各节点分析器提取的数据,得到全网节点的区块链相关性能数据;s4:根据全网节点的区块链相关性能数据计算区块链的总体性能。

步骤s1中记账节点将合约交易、打包区块的参数输出到日志中的时间间隔可自定义。

步骤s2中所述数据包括时间戳、区块信息、交易执行情况、交易吞吐量,并成为结构化数据。

对于时间ti,全网节点的区块链相关性能数据包括区块数据ti,blockx,n,合约部署\调用交易数据ti,txhash,’input’,合约交易被打包数据ti,txhash,’confirmed’,记账进程cpu使用率cpu(ti),记账进程实际内存占用rmem(ti),记账进程虚拟内存占用vmem(ti),记账进程硬盘读取速度diskr(ti),记账进程硬盘写入速度diskw(ti),记账进程上传带宽使用upload(ti),记账进程下载带宽使用download(ti)。

区块链的总体性能由以下指标决定:

平均吞吐速度为从时间ti到tj,全网区块链执行、打包交易的吞吐量;

平均响应延迟为从时间ti到tj,智能合约的部署和调用存在的延迟;

单位cpu吞吐为从时间ti到tj,全网节点对cpu的平均利用程度;

单位内存时间吞吐为从时间ti到tj,全网节点对内存的平均利用程度;

单位硬盘读写吞吐量为从时间ti到tj,全网节点对硬盘读写的平均利用程度;

单位网络数据吞吐量为从时间ti到tj,全网节点对网络带宽的平均消耗。

在具体实施过程中,所述平均吞吐速度的计算方法如下:

式中,tpsu为第u个记账节点的智能合约交易的平均吞吐速度,共有n个记账节点,count(txin(ti,tj))为从时间ti到tj的交易数量;

平均响应延迟的计算方法如下:

式中,ardu为第u个记账节点的智能合约交易的平均吞吐速度,t(txconfirmed)为智能合约的交易确认的时间,t(txinput)为智能合约进入节点的时间,∑表示对所有智能合约的交易求和;

单位cpu吞吐的计算方法如下:

式中,tpcu为第u个记账节点对cpu的利用程度,f为cpu中单核的主频率;

单位内存时间吞吐的计算方法如下:

式中,tpmsu为第u个记账节点对内存的利用程度;

单位硬盘读写吞吐量的计算方法如下:

式中,tpdiou为第u个记账节点对硬盘读写的利用程度;

单位网络数据吞吐量的计算方法如下:

实施例2

本实施例提供一种区块链性能检测系统,如图2,包括包括若干记账节点、节点分析器、云端数据收集计算服务器、内存、同步节点以及系统web平台,其中:

所述若干记账节点为参与区块链合约账本维护的所有节点,并把数据以自定义的时间间隔输出值日志中,各个记账节点分别同步布置一个节点分析器,所述节点分析器进行区块链相关数据,节点分析器对日志数据进行清洗、分析,成为节点源数据;

所述云端数据收集计算服务器收集来自各个节点分析器的节点源数据并计算初各个记账节点的性能评估指标,保存在内存中,以restful接口的形式供系统web平台调用;

所述系统web平台通过jquery-flot框架提供各项监测指标的前端可视化,通过angular框架提供各个页面的路由转接、交互操作,并实现动态的页面加载,通过端口代理的方式实现跨域访问,通过json-rpc的接口与记账节点实现交互,执行合约的部署、调用操作。

所述同步节点同步所有区块信息,供区块链数据的相关计算调用,并每隔一定时间提供交易打包确认情况于所述云端数据收集计算服务器中。

通过守护进程获取软硬件资源消耗数据的收集并发送至所述云端数据收集计算服务器中。

相同或相似的标号对应相同或相似的部件;

附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

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