CN118445135A - 基于区块链的数据处理方法、装置、设备及可读存储介质 - Google Patents
基于区块链的数据处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN118445135A CN118445135A CN202310123919.9A CN202310123919A CN118445135A CN 118445135 A CN118445135 A CN 118445135A CN 202310123919 A CN202310123919 A CN 202310123919A CN 118445135 A CN118445135 A CN 118445135A
- Authority
- CN
- China
- Prior art keywords
- performance
- blockchain
- node
- parameter adjustment
- analysis result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000004458 analytical method Methods 0.000 claims abstract description 254
- 238000000034 method Methods 0.000 claims abstract description 150
- 238000001514 detection method Methods 0.000 claims abstract description 109
- 230000015654 memory Effects 0.000 claims description 86
- 238000012545 processing Methods 0.000 claims description 55
- 230000008569 process Effects 0.000 claims description 36
- 230000006870 function Effects 0.000 claims description 30
- 238000012795 verification Methods 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 19
- 230000002159 abnormal effect Effects 0.000 claims description 16
- 238000004891 communication Methods 0.000 claims description 16
- 238000012549 training Methods 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 15
- 238000013473 artificial intelligence Methods 0.000 description 12
- 238000010801 machine learning Methods 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 5
- 238000007619 statistical method Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000002513 implantation Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000007943 implant Substances 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000007474 system interaction Effects 0.000 description 2
- VLFZHMWZMNJMTK-UHFFFAOYSA-N CCC.CCC.CCC.CCC Chemical compound CCC.CCC.CCC.CCC VLFZHMWZMNJMTK-UHFFFAOYSA-N 0.000 description 1
- 238000012351 Integrated analysis Methods 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000004141 dimensional analysis Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000003826 tablet Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于区块链的数据处理方法、装置、设备及可读存储介质,包括:通过所运行的性能指标检测组件,收集针对区块链节点中的区块链功能组件的运行性能日志;性能指标检测组件用于将性能检测策略植入到区块链功能组件中;运行性能日志包括基于性能检测策略所统计到的性能数据;将运行性能日志发送至分析节点,以使分析节点对性能数据进行多维度分析,得到多维度性能分析结果;根据携带多维度性能分析结果的上链请求调用参数调整智能合约,通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置。采用本发明,可以动态地调整节点性能配置,从而提升区块链性能。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种基于区块链的数据处理方法、装置、设备及可读存储介质。
背景技术
目前,通过一些流行区块链协议搭建的区块链网络中,通常通过核心节点,即全节点,来完成交易上链所需要的所有功能,比如:交易广播、交易验证、交易等待、交易打包、区块校验、执行交易、存入账本等等。
现有的区块链网络运行时,因为不同功能所需要的系统资源不同,例如,交易验证、交易执行需要占用CPU(central processing unit,中央处理器)资源、区块校验、存入账本需要占用硬盘IO(Input/Output,输入输出)资源等等。而系统资源通常是有限的,因此现有的区块链运行前,通常会确定好区块链节点的节点性能配置,例如,交易验签的并行度,交易执行的并行度等,避免系统资源不足导致出错。但是,在一些大型的阶段性的区块链项目中,比如,税务区块链,因为受众广、业务办理时间集中,区块链网络会在某个时间段内需要进行成千上万个交易的上链,且不同交易的发起时间不可控,因此区块链网络中交易上链的进度不可控,就会导致同一时间大量的交易可能需要使用相同的功能,而事先为该功能配置的并行度有限,就会出现拥堵的情况,不仅浪费时间,而且不利于区块链性能的提升。
发明内容
本申请实施例提供了一种基于区块链的数据处理方法、装置、设备及可读存储介质,可以动态地调整节点性能配置,从而提升区块链性能。
本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:
区块链节点通过所运行的性能指标检测组件,收集针对区块链节点中的区块链功能组件的运行性能日志;性能指标检测组件用于将性能检测策略植入到区块链功能组件中;运行性能日志包括基于性能检测策略所统计到的性能数据;
将运行性能日志发送至分析节点,以使分析节点对运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果;
获取分析节点发送的携带多维度性能分析结果的上链请求,根据上链请求调用参数调整智能合约,通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置。
本申请实施例一方面提供了一种基于区块链的数据处理方法,包括:
分析节点获取区块链节点发送的运行性能日志;运行性能日志是由区块链节点通过所运行的性能指标检测组件对区块链节点中的区块链功能组件进行性能收集得到;性能指标检测组件用于将性能检测策略植入到区块链功能组件中;运行性能日志包括基于性能检测策略所统计到的性能数据;
对运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果;
发送携带多维度性能分析结果的上链请求到区块链节点,以使区块链节点根据上链请求调用参数调整智能合约,通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整根据上链请求调用参数调整智能合约,通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置。
本申请实施例一方面提供了一种基于区块链的数据处理装置,包括:
收集模块,用于通过所运行的性能指标检测组件,收集针对区块链节点中的区块链功能组件的运行性能日志;性能指标检测组件用于将性能检测策略植入到区块链功能组件中;运行性能日志包括基于性能检测策略所统计到的性能数据;
日志发送模块,用于将运行性能日志发送至分析节点,以使分析节点对运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果;
合约调用模块,用于获取分析节点发送的携带多维度性能分析结果的上链请求,根据上链请求调用参数调整智能合约;
调整模块,用于通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置。
其中,调整模块,包括:
第一匹配单元,用于通过参数调整智能合约对多维度性能分析结果进行性能条件匹配,获取性能条件匹配结果对应的参数调整策略;
第一调整单元,用于当区块链网络中的至少两个节点中已上链的区块高度均达到目标区块高度时,区块链节点触发热更新,在热更新过程中按照参数调整策略调整区块链节点的节点性能配置。
其中,多维度性能分析结果包括中央处理器占用率和交易池中的待处理交易数量;
调整模块,包括:
第二匹配单元,用于通过参数调整智能合约对中央处理器占用率和交易池中的待处理交易数量进行性能条件匹配;
第二调整单元,用于若性能条件匹配结果指示中央处理器占用率高于处理器占用率阈值,且交易池中的待处理交易数量大于第一数量阈值,则按照参数调整策略减少针对待加入交易池的交易的验签并行度。
其中,多维度性能分析结果包括中央处理器占用率和针对区块链账本的存储队列;
调整模块,包括:
第三匹配单元,用于通过参数调整智能合约对中央处理器占用率和存储队列进行性能条件匹配;
第三调整单元,用于若性能条件匹配结果指示中央处理器占用率高于处理器占用率阈值,且存储队列中的待记账区块的数量大于第二数量阈值,则按照参数调整策略减少针对交易请求的响应并行度。
其中,多维度性能分析结果包括内存占用率和针对区块链账本的缓存读写状态;
调整模块,包括:
第四匹配单元,用于通过参数调整智能合约对内存占用率和缓存读写状态进行性能条件匹配;
第四调整单元,用于若性能条件匹配结果指示内存占用率高于内存占用率阈值,且缓存读写状态中的写请求数量大于读请求数量,则按照参数调整策略减少针对区块链账本的缓存容量;
第四调整单元,用于若性能条件匹配结果指示内存占用率低于冗余占用率阈值,且缓存读写状态中的读请求的触发频率大于频率阈值,则按照参数调整策略增加针对区块链账本的缓存容量。
其中,多维度性能分析结果包括内存占用率和交易池中的待处理交易数量;
调整模块,包括:
第五匹配单元,用于通过参数调整智能合约对内存占用率和交易池中的待处理交易数量进行性能条件匹配;
第五调整单元,用于若性能条件匹配结果指示内存占用率高于内存占用率阈值,且交易池中的待处理交易数量大于第三数量阈值,则按照参数调整策略减少针对交易池的交易池容量。
其中,多维度性能分析结果包括针对区块链账本的缓存读写状态和节点磁盘负载;
调整模块,包括:
第六匹配单元,用于通过参数调整智能合约对缓存读写状态和节点磁盘负载进行性能条件匹配;
第六调整单元,用于若性能条件匹配结果指示缓存读写状态中的写入延迟大于时长阈值,且磁盘负载大于负载阈值,则按照参数调整策略减少针对区块链账本的写入并行度。
本申请实施例一方面提供了一种基于区块链的数据处理装置,包括:
获取模块,用于获取区块链节点发送的运行性能日志;运行性能日志是由区块链节点通过所运行的性能指标检测组件对区块链节点中的区块链功能组件进行性能收集得到;性能指标检测组件用于将性能检测策略植入到区块链功能组件中;运行性能日志包括基于性能检测策略所统计到的性能数据;
分析模块,用于对运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果;
请求发送模块,用于发送携带多维度性能分析结果的上链请求到区块链节点,以使区块链节点根据上链请求调用参数调整智能合约,通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整根据上链请求调用参数调整智能合约,通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置。
其中,运行性能日志的数量为M,M为正整数;
上述数据处理装置,还包括:
聚类模块,用于对M个运行性能日志进行聚类,得到N个性能数据集,识别N个性能数据集中的异常数据集和正常数据集;
标签设置模块,用于将N个性能数据集作为训练样本,为异常数据集设置异常标签,为正常数据集设置正常标签;
模型训练模块,用于根据训练样本、异常标签和正常标签训练性能预测模型;性能预测模型用于对区块链节点后续发送的新运行性能日志进行识别预测,得到针对区块链节点的性能瓶颈预测结果;性能瓶颈预测结果用于与多维度性能分析结果共同指引区块链节点确定参数调整策略。
其中,区块链功能组件的数量为H,H为正整数;
分析模块,包括:
第一状态获取单元,用于获取运行性能日志中针对H个区块链功能组件的硬件资源占用率,按照硬件资源占用率对H个区块链功能组件进行排序,从排序后的H个区块链功能组件中按序获取S个区块链功能组件,生成针对S个区块链功能组件的排序状态;S为小于或等于H的正整数;
第二状态获取单元,用于通过运行性能日志统计H个区块链功能组件分别对应的对象生成数量,将具有最多对象生成数量的区块链功能组件确定为目标区块链功能组件,生成针对目标区块链功能组件的最多对象状态;
结果确定单元,用于将针对S个区块链功能组件的排序状态和针对目标区块链功能组件的最多对象状态,确定为多维度性能分析结果。
本申请实施例一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;
上述处理器与上述存储器、上述网络接口相连,其中,上述网络接口用于提供数据通信网元,上述存储器用于存储计算机程序,上述处理器用于调用上述计算机程序,以执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有计算机程序,上述计算机程序适于由处理器加载并执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中的方法。
本申请实施例中,区块链节点可以通过所运行的性能指标检测组件,收集针对区块链节点中的区块链功能组件的运行性能日志;其中,性能指标检测组件用于将性能检测策略植入到区块链功能组件中,运行性能日志包括基于性能检测策略所统计到的性能数据;然后,区块链节点可以将运行性能日志发送至分析节点,分析节点可以对运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果;最后,区块链节点可以获取分析节点发送的携带多维度性能分析结果的上链请求,根据上链请求调用参数调整智能合约,通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置。通过本申请实施例提供的方法,可以实时检测区块链网络的运行状态,并通过分析节点形成多维度性能分析结果,区块链节点可以根据多维度性能分析结果动态地调整节点性能配置,从而有效地调度系统资源,减少系统资源冲突,提高区块链性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构示意图;
图2是本申请实施例提供的一种基于区块链的数据处理方法的场景示意图;
图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图4是本申请实施例提供的一种交易生命周期及资源消耗特效的示意图;
图5是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图6是本申请实施例提供的一种系统交互示意图;
图7是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图8是本申请实施例提供的一种计算机设备的结构示意;
图9是本申请实施例提供的另一种基于区块链的数据处理装置的结构示意图;
图10是本申请实施例提供的另一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解,首先对本申请实施例涉及到的部分名词进行以下简单解释:
1、人工智能(Artificial Intelligence,AI):人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
2、机器学习(Machine Learning,ML):机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
3、区块链(Block chain):狭义上,区块链是一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前获取的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求;广义上,区块链还指代区块链结构实现的分布式记账技术,包括分布式共识、隐私与安全保护、点对点通信技术、网络协议、智能合约等。
区块链的目标是实现一个分布的数据记录账本,此账本只允许添加,不允许删除。账本底层的基本结构是一个线性的链表。链表由一个个“区块”串联组成,后继区块中记录前继区块的哈希(Hash)值,每个区块(以及区块中的交易)是否合法,可通过计算哈希值的方式进行快速检验。若网络中的节点提议添加一个新的区块,必须经过共识机制对区块达成共识确认。
4、区块(block):是在区块链网络上承载交易数据的数据包,是一种被标记上时间戳和前继区块对应的哈希值的数据结构,区块经过网络的共识机制验证并确认区块中的交易。区块包括区块头(Block Header)以及区块体(Block Body),区块头可以记录当前区块的元信息,包含当前版本号、前继区块对应的哈希值、时间戳、随机数、默克尔树根(MerkleRoot)的哈希值等数据。区块体可以记录一段时间内所生成的详细数据,包括当前区块经过验证的、区块创建过程中生成的所有交易记录或是其他信息,可以理解为账本的一种表现形式。此外,区块体的详细数据可以包括通过默克尔树(Merkle Tree)的哈希过程,生成唯一的Merkle Root记录于区块头。
前继区块,也称父区块(Parent Block),区块链通过在区块头记录区块对应的哈希值以及父区块对应的哈希值实现时间上的排序。
5、哈希值(hash):也称作信息特征值或特征值,哈希值是通过哈希算法将任意长度的输入数据转换为密码并进行固定输出而生成的,不能通过解密哈希值来检索原始输入数据,它是一个单向的加密函数。在区块链中,每个区块(除了初始区块)都包含前继区块的哈希值,哈希值是区块链技术中的潜力核心基础和最重要的方面,它保留了记录和查看数据的真实性,以及区块链作为一个整体的完整性。
6、智能合约(Smart Contract):智能合约的概念具备承诺、协议、数字形式三大要素,因此能够将区块链的应用范围扩展至金融行业交易、支付、结算和清算的各个环节。智能合约是指当一个预先编好的条件被触发时,立即执行相应的合同条款,其工作原理类似于计算机程序的if-then语句。
7、区块链网络:区块链网络通常由众多区块链节点组成,用户通过DApp(去中心化应用)与区块链进行交互,即用户可以通过DApp可以将交易对应的交易数据(业务请求)发送到区块链中。通常一个交易的生命周期包含:
交易生成:用户通过DAPP输入参数,DAPP将其打包成交易并发送到某个区块链节点。
交易验证:节点收到交易后,对交易进行验签、从帐本中(DB)中进行交易查重,验证通过的交易进入交易池,当交易验签并行度过高时,会消耗大量CPU资源。
交易等待:交易验签通过后,会将交易放入交易池,当交易池存在大量等待处理的交易时,会消耗大量内存。
交易广播:节点将收到的交易广播到整个区块链网络中,当交易广播并发度过高时,会消耗大量网络资源,会与区块广播争用资源。
交易打包:出块节点从交易池中捞出交易,打包到区块中,并广播到区块链网络中,在广播区块前需要将区块序列化,以适应网络传输,当一个块中的交易较多,单个区块较大时,将区块序列化等操作会占用大量cpu时间。
区块校验:节点收到区块后,对其中的交易进行验证,如交易已在交易池中,验证通过,否则需对交易进行验签、查重操作,当验签并行度过高时,会消耗大量cpu资源。当查重并行度过高时会消耗大量数据库资源,如连接数,磁盘IO等。
达成共识:对收到的区块信息,根据区块校验结果进行投票,当节点收到多数投票达成的共识后,认可并提交区块。
执行交易:执行认可区块中的交易。如采用块内交易并行方法,如并行度过高,会消耗大量cpu资源,如交易存在数据库查询,而交易并行度过高也会给数据库造成压力。
存入帐本:将区块、交易、交易执行结果存入帐本。存入数据库的协程数量过高的话,也会点用大量数据库资源,影响交易执行时的数据库访问性能。
请参见图1,图1是本申请实施例提供的一种网络架构示意图。如图1所示,该网络架构可以包括区块链网络10以及分析节点100。其中,如图1所示的区块链网络10可以包括但不限于联盟链所对应的区块链网络。该区块链网络10中可以包括多个区块链节点,多个区块链节点具体可以包括区块链节点10a、区块链节点10b、区块链节点10c、区块链节点10d、…、区块链节点10n。其中,每个区块链节点在进行正常工作时可以接收到外界发送的数据,并基于接收到的数据进行区块上链处理,也可以向外界发送数据。为了保证各个区块链节点之间的数据互通,每个区块链节点之间可以存在数据连接,例如区块链节点10a和区块链节点10b之间存在数据连接,区块链节点10a和区块链节点10c之间存在数据连接,区块链节点10b和区块链节点10c之间存在数据连接。此外,区块链网络10中的每个区块链节点,可以分别与分析节点100之间存在数据连接,以便于每个区块链节点可以通过该数据连接与分析节点100之间进行数据交互。
可以理解的是,区块链节点之间可以通过上述数据连接进行数据或者区块传输。区块链网络可以基于节点标识实现区块链节点之间的数据连接,对于区块链网络中的每个区块链节点,均具有与其对应的节点标识,而且上述每个区块链节点均可以存储与自身有相连关系的其他区块链节点的节点标识,以便后续根据其他区块链节点的节点标识,将获取到的数据或生成的区块广播至其他区块链节点,例如区块链节点10a中可以维护一个如表1所示的节点标识列表,该节点标识列表保存着其他节点的节点名称和节点标识:
表1
节点名称 | 节点标识 |
节点10a | AAA.AAA.AAA.AAA |
节点10b | BBB.BBB.BBB.BBB |
节点10c | CCC.CCC.CCC.CCC |
节点10d | DDD.DDD.DDD.DDD |
… | … |
节点10n | EEE.EEE.EEE.EEE |
其中,节点标识可为网络之间互联的协议(Internet Protocol,IP)地址以及其他任意一种能够用于标识区块链网络中节点的信息,表1中仅以IP地址为例进行说明。例如,区块链节点10a可以通过节点标识BBB.BBB.BBB.BBB向区块链节点10b发送信息(例如,区块),且区块链节点10b可以通过节点标识AAA.AAA.AAA.AAA确定该信息是由区块链节点10a所发送的。
在区块链中,在将一个区块进行上链之前,该区块必须经过区块链网络中的共识节点进行共识,在共识通过后才能将该区块添加到区块链上。可以理解的是,当区块链被用于政府或者商业机构的一些场景中时,并非区块链中的所有参与节点(即上述区块链节点系统中的区块链节点)都有足够的资源和必要性成为区块链的共识节点。例如,在图1所示的区块链网络中,可以将区块链节点10a、区块链节点10b、区块链节点10c和区块链节点10d作为该区块链网络中的共识节点。区块链网络中的共识节点参与共识,也就是对区块(包含一批交易)进行共识,即对区块进行投票;而非共识节点不参与共识,但会帮助传播区块和投票消息,以及相互同步状态等。
可以理解的是,上述的数据连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他连接方式,本申请在此不做限制。
可以理解的是,本申请实施例可以提供一种基于区块链的数据处理方法,根据区块链网络的运行情况,动态地调整区块链节点的节点性能配置,有利于提高系统资源的利用率,提高区块链性能。具体的,在本申请实施例中,如图1所示的区块链网络10中的任一区块链节点,例如,区块链节点10a,可以通过所运行的性能指标检测组件,收集针对区块链功能组件的运行性能日志。其中,性能指标检测组件用于将性能检测策略植入到区块链功能组件中;运行性能日志包括基于性能检测策略所统计到的性能数据。然后,区块链节点10a可以将收集到的运行性能日志发送至分析节点100。分析节点100可以对运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果。然后,分析节点100可以向区块链网络10发送携带该多维度性能分析结果的上链请求。区块链节点10a在接收到分析节点100发送的携带多维度性能分析结果的上链请求后,可以根据上链请求调用参数调整智能合约,通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整自身的节点性能配置。
可以理解的是,本申请实施例所提供的基于区块链的数据处理方法可以由计算机设备执行,计算机设备包括但不限于上述区块链节点(可以为终端或者服务器)或者分析节点(可以为终端或者服务器)。上述服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。上述终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。
可以理解的是,本申请实施例可应用于各种场景,包括但不限于税务系统、云技术、人工智能、智慧交通、辅助驾驶等场景。
可以理解的是,在本申请的具体实施方式中,涉及到的交易等相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
为便于理解上述动态调整区块链节点的节点性能配置的实现过程,请一并参见图2,图2是本申请实施例提供的一种基于区块链的数据处理方法的场景示意图。其中,如图2所示的区块链节点20可以为上述图1所对应实施例中的区块链网络10中的任一区块链节点,如,区块链节点20可以为区块链节点10c;如图2所示的分析节点200可以为上述图1所示的分析节点100。
如图2所示,区块链节点20的系统资源(包括cpu资源、内存资源、磁盘资源等等)有限,而区块链网络中的交易上链所需要的功能很多,不同功能所需要的系统资源不同。为了避免各功能频繁抢占系统资源,或者出现系统资源不足的情况,区块链管理员在区块链网络开始运行之前,会为区块链网络中的区块链节点20确定初始的节点性能配置21,其中,节点性能配置21包含区块链运行配置参数,区块链运行配置参数用于决定区块链节点20的运行性能。例如,节点性能配置21中包含“交易执行并行度:20”,则区块链节点20在执行区块链中的交易时,最多只会同时并行20条交易的执行;又例如,节点性能配置21中包含“交易验签并行度:20”,则区块链节点20在对交易进行验签时,最多只会同时并行20条交易的验签;又例如,节点性能配置21中包含“交易池容量:400”,则区块链节点最多只会在交易池中存储400条交易,多的交易请求可以暂时先拒绝。
可以理解,区块链网络正式运行后,由于交易发起的时间、交易数量、网络等不可控,区块链节点20中的节点性能配置21可能并不是当前的最佳节点性能配置。因此,区块链节点20在运行的过程中,可以在检测周期内,通过性能指标检测组件22,收集针对区块链功能组件的运行情况,生成运行性能日志23,其中,运行性能日志23用于记录区块链节点20中的区块链功能组件在检测周期内的运行情况,即区块链功能组件在检测周期内运行cpu密集型方法、内存密集型方法、硬盘I/O密集型方法、网络密集型方法等类型的方法时的运行情况和资源占用情况。其中,cpu密集型方法是指运行时区块链节点20主要占用的资源为cpu资源的方法,例如,交易验签、交易执行等;内存密集型方法是指运行时运行时区块链节点20主要占用的资源为内存资源的方法,例如,交易缓存、数据库存缓存等;硬盘I/O密集型方法是指运行时区块链节点20主要占用的资源为硬盘I/O资源的方法,例如,交易查重、存入账本等;网络密集型方法是指运行时区块链节点20主要占用的资源为网络资源的方法。可以理解,方法类型的设定、以及不同类型的方法记录哪些性能数据可以根据实际情况来设定,本申请在此不作限制。当区块链节点20确定到达检测周期时,区块链节点20会将运行性能日志23发送至分析节点200。
如图2所示,分析节点200在接收到运行性能日志23后,会对运行性能日志23中的性能数据进行多维度分析,得到多维度性能分析结果24。其中,多维度分析是指根据预设维度整理性能数据,从而得到每个预设维度下的维度性能数据,最终根据每个预设维度下的维度性能数据,输出多维度性能分析结果24。其中,预设维度可以根据实际情况进行调整,可以包括但不限于与服务性能指标有关的维度。其中,多维度性能分析结果24可以理解为一份性能分析报告,用于描述区块链节点20当前的运行性能情况,其可以包含系统资源规格、系统运行指标、占用系统资源最多的方法、交易超时情况等等分析信息。其中,多维度分析的具体实现过程可以参见下述图3所对应实施例的具体描述。然后,分析节点200会将携带多维度性能分析结果24发送至区块链节点20。
如图2所示,区块链节点20接收到多维度性能分析结果24后,就会调用参数调整智能合约,然后获取与多维度性能分析结果24匹配的参数调整策略,根据该参数调整策略,调整区块链节点20对应的节点性能配置21。例如,假设根据多维度性能分析结果24确定系统cpu占用率过高,且交易池有大量交易待执行,则可以降低区块链节点20的验签并行度,因为即使验签完成也暂时不会处理这些交易,这样就可以降低cpu使用率,空出的cpu资源则可以用于交易执行。因此,调整后,区块链节点20得到的新的节点性能配置25中,交易验签并行度可以降低为5,交易执行并行度可以提高至30。如此,可以降低交易等待执行的时间,平衡区块链网络中交易上链位于各个进度的等待时长,从而提高区块链网络的性能。
可以理解,区块链网络中其他的区块链节点也可以收集自身的运行性能日志,在到达检测周期时一起发送至分析节点200。分析节点200可以对所有区块链节点发送的运行性能日志中的性能数据进行整合分析,从而输出表征整个区块链网络的运行情况与系统资源消耗情况的多维度性能分析结果。
由此可见,区块链网络中的区块链节点可以按照检测周期,定期向分析节点发送收集到的运行性能日志,分析节点可以对接收到的运行性能日志进行多维度性能分析,得到多维度性能分析结果,并返回给区块链节点,区块链节点可以根据多维度性能分析结果动态调整自己的节点性能配置,更好地适应当前区块链网络中的交易上链进度,可以提高系统资源的利用率,节省时间,从而提高区块链网络的性能。
进一步地,请参见图3,图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。其中,该方法可以由区块链节点(例如,上述图1所对应实施例中的区块链网络10中的任一区块链节点)执行。以下将以本方法由区块链节点执行为例进行说明,其中,该基于区块链的数据处理方法至少可以包括以下步骤S101-步骤S103:
步骤S101,区块链节点通过所运行的性能指标检测组件,收集针对所述区块链节点中的区块链功能组件的运行性能日志;所述性能指标检测组件用于将性能检测策略植入到区块链功能组件中;所述运行性能日志包括基于所述性能检测策略所统计到的性能数据。
具体的,区块链功能组件包括用于实现区块链网络中交易上链所需的各个功能的软件代码,这些软件代码可以称为区块链源码。其中,区块链源码中包含多个资源消耗方法,不同资源消耗方法用于实现交易上链的不同功能,不同资源消耗方法在运行时需要消耗的系统资源不同。其中,系统资源可以分为cpu资源、内存资源、IO资源以及网络资源等等。
具体的,性能指标检测组件包括可以检测区块链功能组件运行情况但是不影响区块链功能组件的软件代码,例如,性能指标检测组件可以包括轻量级的AOP(AspectOriented Programmin,面向切面编程)代码,其中,AOP是指对业务处理过程中的切面进行提取,动态地将代码切入到指定的方法、位置上。
具体的,性能检测策略用于统计区块链功能组件中各个资源消耗方法的运行情况,可以基于区块链功能组件中资源消耗方法的资源消耗情况来制定。首先,可以统计区块链节点中各模块的资源消耗情况,收集资源消耗较多的资源消耗方法,并将这些资源消耗方法基于资源消耗情况分类,例如,基于CPU使用率、IO使用率、内存使用情况、网络拥塞情况等进行分类,为便于理解,请一并参见图4,图4是本申请实施例提供的一种交易生命周期及资源消耗特效的示意图。如图4所示,交易的生命周期,从通过客户端的去中心化应用被提交开始,到在区块链上打包出块成功为止,期间主要经过14个过程,即如图4所示的T1-T14,下述对T1-T14简单说明:
T1,区块链节点接收目标交易。
具体的,客户端(或者终端设备)通过运行的去中心化应用(DAPP)构造好目标交易和签名后,可以通过RPC(Remote Procedure Call,远程过程调用)将其发送到区块链网络中的某个区块链节点。
T2,区块链节点将目标交易添加至交易池。
具体的,RPC会将目标交易转发至区块链节点的交易池,然后等待区块链节点进行交易验证。
T3,区块链节点通过交易池调用验证器对目标交易进行交易验证。
具体的,交易验证可以包括验证交易大小、签名、消耗费用等是否合格。
T4,区块链节点通过验证器查询账本层是否存在重复交易。
具体的,重复交易即和目标交易相同的交易。如果账本层没有存在重复交易,则继续T5。
T5,区块链节点广播目标交易。
具体的,经过验证器验证并且存入本地交易池的目标交易,区块链节点会通过P2P(点对点)网络将其广播出去,其他区块链节点收到目标交易后,经过验证器对其进行验证后,也会将其存入本地的交易池,并将其广播出去。
T6,提案节点进行区块的提案。
具体的,区块链网络中的提案节点(可以是最开始接收到目标交易的区块链节点,也可以是其他区块链节点)的共识模块会从交易池中提取一定数量的交易(可以包括目标交易),构造区块并提案。
T7,提案节点构造好提案后,将提案广播至其他区块链节点,进行投票。
具体的,提案节点构造好提案后,会进入预投票(prevote)阶段,然后将该提案通过P2P网络广播出去,其他区块链节点收到提案后,进行投票,并广播,进入预提交(precommit)阶段。
T8,区块链节点收到超过三分之二的预提交投票后,准备进入提交(commit阶段)。
T9,区块链节点确定区块通过区块链节点的共识后,将区块传递给执行器模块,准备提交。
T10,区块链节点通过执行器执行区块,调用合约方法,计算花费的消耗。
T11,区块链节点通过执行器提交区块,调用账本层模块,做持久化工作。
T12,区块链节点通过账本层调用存储层,做最后的落盘工作。
T13,区块提交并落盘后,区块链节点会进行扫尾处理,即调用交易池模块,将已经上链的交易从交易池中移除。
T14,区块链节点通过执行器提交完区块后,会通知同步模块,去向其他节点发送心跳,心跳内容是刚刚上链的区块高度,其他区块链节点接收到心跳后,会比较,决定是否同步最新的区块。
可以理解,上述过程,本质上需要通过区块链节点运行各种资源消耗方法实现。如图4所示,区块链节点调用交易池、账本层以及同步模块时运行的资源消耗方法,多是内存消耗型方法,其主要消耗内存资源;区块链节点调用验证器、虚拟机以及执行器时运行的资源消耗方法,多是cpu密集型方法,其主要消耗cpu资源;区块链节点调用数据库时运行的资源消耗方法,多是IO密集型方法,其主要消耗IO资源;区块链节点进行广播时运行的资源消耗方法,多是网络密集型方法,其主要消耗网络资源。
具体的,不同类型的资源消耗方法需要统计的数据不同,因此,在制定性能检测策略时,可以针对不同类型的资源消耗方法制定不同的资源消耗统计方法。首先,在编辑性能指标检测组件中的软件代码时,可以基于每个类型的方法列表编写正则表达式,确保规则匹配到所有需要抓取性能数据的模块,函数,例如,针对内存消耗型方法(addTxPool,addCache,syncBlock)的正则式可以表示为“addTxPool|addCache|syncBlock”,然后再编写对应的资源消耗统计方法(基于切面编程,将统计方法应用到相应的正规表达式对应的方法上,用于后续的性能分析)。可以理解,资源消耗统计方法可以根据不同类型的资源消耗方法的特性以及消耗的资源的特性来设定。例如,针对cpu密集型方法,可以统计方法的执行开始时间,结束时间,占用的cpu时间,用层级,协程数量等。又例如,针对内存消耗型方法,可以统计方法当前占用的内存数量,系统内存占用比,当前生成的对象数量,用于判断方法是否占用过多常驻内存资源;还可以统计方法自系统启动以来分配的内存数量,生成的对象总数量,用于判断方法是否生成过多对象,频繁分配内存,可以结合实际情况决定是否使用对象池/或加大对象池复用对象。又例如,针对IO密集型方法,可以统计写数据平均消耗时间,等待写入数据的队列长度。又例如,针对网络密集型方法,可以统计交易超时数量,待处理交易数量,交易广播平均耗时,区块广播平均耗时,区块共识平均耗时等,节点落后区块数等。
具体的,区块链节点获取到性能指标检测组件后,在编译区块链功能组件中的区块链源码时,会根据性能指标检测组件中切面标签(例如,AOP tag)将性能检测策略(性能分析代码)动态植入到区块链功能组件中的相关代码中。例如,一个可行的切面示例可以为:
其中,aPointCut为业务代码,一段业务代码可以用于实现一个交易上链所需的资源消耗方法,beforeAdvice为切面代码,一段切面代码用于实现性能检测策略中的一个资源消耗统计方法,切面代码的tag为@Before,代表区块链节点编译它时会放在业务代码Method的前面执行。此外,切面代码的tag还可以为/@Around/@After等,代码编译它时会放在业务代码Method的后面或前,后执行。
由上述可知,通过性能指标检测组件可以将性能检测策略植入到区块链功能组件中的区块链源码中,可以在不影响区块链源码正常运行的情况下,实现对区块链功能组件的性能检测。
具体的,性能指标检测组件会随着区块链功能组件的运行,通过性能检测策略实施统计性能数据,在到达一个检测周期后,区块链节点会将统计到的性能数据,作为针对区块链功能组件的运行性能日志,然后将运行性能日志发送至分析节点。其中,检测周期对应的时间段有很多种划分方式,可以按照时间来划分,例如,一天为一个检测周期;也可以按照出块的数量来划分,例如,区块链中每增加一千个区块,就是一个检测周期;也可以采用其他的方式来划分,本申请在此不作限制。
步骤S102,将所述运行性能日志发送至分析节点,以使所述分析节点对所述运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果。
具体的,分析节点可以根据预设维度整理性能数据,从而得到每个预设维度下的维度性能数据,最终根据每个预设维度下的维度性能数据,输出多维度性能分析结果。其中,预设维度可以根据实际情况进行调整,可以包括但不限于与服务性能指标有关的维度,例如,硬件资源、消耗资源等等。其中,根据预设维度整理性能数据,即从运行性能日志中筛选出与不同预设维度相关的性能数据,然后将筛选出的性能数据对应的性能信息作为影响因子,其对应的执行时间作为结果进行整理,从而实现对性能数据的分类,得到不同预设维度下的维度性能数据。其中,不同预设维度对应的性能信息(即影响因子)是不同的,因此,最终得到的维度性能数据,包括但不限于以下与服务性能指标有关的内容:硬件资源,即cpu性能、内存大小、磁盘性能等等区块链节点的机器硬件数据;消耗资源,即区块链节点在运行过程中,CPU、内存、硬盘及网络等的性能指标;各关键方法(即上述资源消耗方法)调用区块链网络中的方法时的执行消耗时间;单位时间/区块链节点启动至今的线程、协程数量;各个线程/协程的执行时间;函数输入参数、返回结果的数据量;线程/函数的调用执行次数。
具体的,根据每个预设维度下的维度性能数据,分析节点最终可以整合分析得到多维度性能分析结果,该多维度性能分析结果可以理解为一份性能分析报告,用于描述区块链节点当前的运行性能情况,该性能分析报告可以包括但不限于如下内容:当前区块链节点的cpu、内存、硬盘以及网络的规格;当前区块链节点的cpu、内存、磁盘以及网络的运行指标;cpu占用前十的方法;内存占用前十的方法;自区块链节点启动至今生成最多对象的方法;自区块链节点启动至今生成最多大对象的方法;执行时间超过阈值的方法;交易超时情况;平均区块共识耗时;交易池中的交易数量。
步骤S103,获取所述分析节点发送的携带所述多维度性能分析结果的上链请求,根据所述上链请求调用参数调整智能合约,通过所述参数调整智能合约获取所述多维度性能分析结果对应的参数调整策略,按照所述参数调整策略调整所述区块链节点的节点性能配置。
具体的,通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置的一个可行实施过程,可以为:通过参数调整智能合约对多维度性能分析结果进行性能条件匹配,获取性能条件匹配结果对应的参数调整策略;当区块链网络中的至少两个节点中已上链的区块高度均达到目标区块高度时,区块链节点触发热更新,在热更新过程中按照参数调整策略调整区块链节点的节点性能配置。其中,热更新是指在区块链节点的运行过程中直接进行相关参数的更新,即区块链节点调整节点性能配置的时候,不用停止业务的进行,待到节点性能配置调整成功后,区块链节点可以直接根据调整后的节点性能配置运行。
具体的,多维度性能分析结果可以包括中央处理器占用率和交易池中的待处理交易数量,此时通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置的一个可行实施过程,可以为:通过参数调整智能合约对中央处理器占用率和交易池中的待处理交易数量进行性能条件匹配;若性能条件匹配结果指示中央处理器占用率高于处理器占用率阈值,且交易池中的待处理交易数量大于第一数量阈值,则按照参数调整策略减少针对待加入交易池的交易的验签并行度。其中,中央处理器占用率即系统cpu占用率。请再参见图4所示的交易生命周期的示意图,由图4可知,区块链节点通过执行器进行交易执行以及通过验证器调用账本层对交易进行验签时,均需要消耗cpu资源,因此当系统cpu占用率过高,且交易池中有大量交易待处理时,可以降低交易验签并行度,因为即使验签完成,也暂时不会处理这些交易,这样就可以降低cpu使用。此外,此时可以适当增加交易执行并行度,加速交易的处理速度,从而减少交易池中待处理交易的数量。
具体的,多维度性能分析结果可以包括中央处理器占用率和针对区块链账本的存储队列,此时通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置的一个可行实施过程,可以为:通过参数调整智能合约对中央处理器占用率和存储队列进行性能条件匹配;若性能条件匹配结果指示中央处理器占用率高于处理器占用率阈值,且存储队列中的待记账区块的数量大于第二数量阈值,则按照参数调整策略减少针对交易请求的响应并行度。请再参见图4的交易生命周期的示意图,当区块链节点的系统cpu占用率过高,而区块的存储队列很长时,则说明此时区块链节点已经达到存储的性能瓶颈,这时可以降低针对交易响应的并行度,从而降低cpu利用率,使更多的cpu资源可以用来处理存储请求,但又不会影响系统的整体性能。
具体的,多维度性能分析结果可以包括内存占用率和针对区块链账本的缓存读写状态,此时通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置的一个可行实施过程,可以为:通过参数调整智能合约对内存占用率和缓存读写状态进行性能条件匹配;若性能条件匹配结果指示内存占用率高于内存占用率阈值,且缓存读写状态中的写请求数量大于读请求数量,则按照参数调整策略减少针对区块链账本的缓存容量;若性能条件匹配结果指示内存占用率低于冗余占用率阈值,且缓存读写状态中的读请求的触发频率大于频率阈值,则按照参数调整策略增加针对区块链账本的缓存容量。请再参见图4所示的交易生命周期的示意图,可知,当区块链节点的内存占用率过高,且缓存写多读少时,可以降低帐本的缓存容量,尽早淘汰旧数据,从而释放内存。
具体的,多维度性能分析结果可以包括内存占用率和交易池中的待处理交易数量,此时通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置的一个可行实施过程,可以为:通过参数调整智能合约对内存占用率和交易池中的待处理交易数量进行性能条件匹配;若性能条件匹配结果指示内存占用率高于内存占用率阈值,且交易池中的待处理交易数量大于第三数量阈值,则按照参数调整策略减少针对交易池的交易池容量。请再参见如图4所示的交易生命周期的示意图,由图4可知,当内存占用率过高,并且是因为交易池存在大量交易时,说明区块链节点性能不足,此时可调低交易池的容量,拒绝处理不过来的交易请求,防止区块链节点负载过高的情况出现。
具体的,多维度性能分析结果包括针对区块链账本的缓存读写状态和节点磁盘负载,此时通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置的一个可行实施过程,可以为:通过参数调整智能合约对缓存读写状态和节点磁盘负载进行性能条件匹配;若性能条件匹配结果指示缓存读写状态中的写入延迟大于时长阈值,且磁盘负载大于负载阈值,则按照参数调整策略减少针对区块链账本的写入并行度。请再参见图4所示的交易生命周期的示意图,由图4可知,当数据库写入延迟过高、且磁盘负载过重时,可以降低区块链节点的写入的并行度,从而缓解磁盘压力。
具体的,请再参见图4所示的交易生命周期的示意图,可知,当多维度性能分析结果指示交易池存在大量交易超时的情况时,区块链节点可以降低交易池容量,拒绝一些交易请求,防止区块链节点出现负载过高的情况。
具体的,请再参见图4所示的交易生命周期的示意图,可知,当多维度性能分析结果指示区块链节点存在大量的同步请求时,区块链节点可以暂停接受新区块,从而使更多系统资源倾向给同步操作。
具体的,请再参见图4所示的交易生命周期的示意图,可知,当区块链节点出现数据库读取过于频繁,而内存有冗余处理能力的情况,可增加缓存,从而缓解数据库压力。
可以理解,除上述列举的多维度性能分析结果以及与其相匹配的参数调整策略以外,还可以根据区块链网络运行过程中出现的其他可能出现拥堵、超时的情况,进行其他的参数调整策略设定,本申请在此不一一举例。
本申请实施例中,区块链节点可以通过所运行的性能指标检测组件,收集针对区块链节点中的区块链功能组件的运行性能日志;其中,性能指标检测组件用于将性能检测策略植入到区块链功能组件中,运行性能日志包括基于性能检测策略所统计到的性能数据;然后,区块链节点可以将运行性能日志发送至分析节点,分析节点可以对运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果;最后,区块链节点可以获取分析节点发送的携带多维度性能分析结果的上链请求,根据上链请求调用参数调整智能合约,通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置。因此,通过本申请实施例提供的方法,可以实时检测区块链网络的运行状态,并通过分析节点形成多维度性能分析结果,区块链节点可以根据多维度性能分析结果动态地调整节点性能配置,从而有效地调度系统资源,减少系统资源冲突,提高区块链性能。
进一步地,请参见图5,图5是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图。其中,该方法可以由分析节点(例如,上述图1所对应实施例中的分析节点100)执行。以下将以本方法由分析节点执行为例进行说明,其中,该基于区块链的数据处理方法至少可以包括以下步骤S201-步骤S203:
步骤S201,分析节点获取区块链节点发送的运行性能日志;所述运行性能日志是由所述区块链节点通过所运行的性能指标检测组件对所述区块链节点中的区块链功能组件进行性能收集得到;所述性能指标检测组件用于将性能检测策略植入到区块链功能组件中;所述运行性能日志包括基于所述性能检测策略所统计到的性能数据。
具体的,区块链节点生成运行性能日志的过程可以参见上述图3所对应实施例中步骤S101的描述,这里不再进行赘述。
步骤S202,对所述运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果。
具体的,步骤S202的一个可行实施过程,可以参见上述图3所对应实施例中步骤S102的描述。
具体的,对运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果的一个可行实施过程,可以为:获取运行性能日志中针对H个区块链功能组件的硬件资源占用率,按照硬件资源占用率对H个区块链功能组件进行排序,从排序后的H个区块链功能组件中按序获取S个区块链功能组件,生成针对S个区块链功能组件的排序状态;S为小于或等于H的正整数;通过运行性能日志统计H个区块链功能组件分别对应的对象生成数量,将具有最多对象生成数量的区块链功能组件确定为目标区块链功能组件,生成针对目标区块链功能组件的最多对象状态;将针对S个区块链功能组件的排序状态和针对目标区块链功能组件的最多对象状态,确定为多维度性能分析结果。其中,H个区块链功能组件中的不同的区块链功能组件可以包括有不同的交易上链方法(即上述所说的资源消耗方法,用于实现交易上链所需的某个功能),此时,区块链节点就可以根据每个区块链功能组件对应的硬件资源占用率,获取硬件资源占用率在前S的区块链功能组件,并按照从高到低(或者从低到高)的顺序对S个区块链功能组件进行排序;此外,区块链节点还可以将H个区块链功能组件中具有最多对象生成数量的区块链功能组件确定为目标区块链功能组件,目标区块链功能组件中包含的交易上链方法即为区块链节点中生成最多对象的方法。
步骤S203发送携带所述多维度性能分析结果的上链请求到区块链节点,以使所述区块链节点根据所述上链请求调用参数调整智能合约,通过所述参数调整智能合约获取所述多维度性能分析结果对应的参数调整策略,按照所述参数调整策略调整根据所述上链请求调用参数调整智能合约,通过所述参数调整智能合约获取所述多维度性能分析结果对应的参数调整策略,按照所述参数调整策略调整所述区块链节点的节点性能配置。
具体的,区块链节点根据多维度性能分析结果调整节点性能配置的过程,可以参见上述步骤S103,这里不再进行赘述。
可选的,运行性能日志的数量为M,M为正整数;分析节点可以对M个运行性能日志进行聚类,得到N个性能数据集,识别N个性能数据集中的异常数据集和正常数据集;将N个性能数据集作为训练样本,为异常数据集设置异常标签,为正常数据集设置正常标签;根据训练样本、异常标签和正常标签训练性能预测模型;性能预测模型用于对区块链节点后续发送的新运行性能日志进行识别预测,得到针对区块链节点的性能瓶颈预测结果;性能瓶颈预测结果用于与多维度性能分析结果共同指引区块链节点确定参数调整策略。其中,性能预测模型可以为机器学习模型或者深度学习模型。
采用本申请实施例提供的方法,可以实时检测区块链的运行状态,生成运行性能日志,分析节点可以基于运行性能日志生成多维度性能分析结果,区块链节点可以根据多维度性能分析结果动态调整系统运行模式,有效地调度系统资源,减少资源冲突,提高系统性能及呑吐量,使得区块链可以适应高并发、大呑吐量的应用场景。
进一步地,请参见图6,图6是本申请实施例提供的一种系统交互示意图。其中,终端设备60与区块链节点开发人员具有关联关系,用于响应区块链开发人员的部署操作,对区块链节点进行相应的组件部署;区块链节点61可以为上述图1所示的区块链网络10中的任一区块链节点,例如,区块链节点10a;分析节点62可以为上述图1所示的分析节点100。如图6所示,整个系统的交互过程主要包括以下步骤:
S301,终端设备60生成性能指标检测组件。
具体的,区块链开发人员可以根据区块链网络中可能出现的交易拥堵、超时等情况制定性能检测策略,然后进行针对性能检测策略的开发操作,终端设备60可以响应区块链开发人员的开发操作,生成性能指标检测组件。其中,性能指标检测组件可以包含基于AOP切面编程生成的性能指标检测代码。
S302,终端设备60将性能指标检测组件部署至区块链节点61。
具体的,终端设备60可以响应区块链开发人员的组件植入操作,将性能指标检测组件植入到区块链节点61包含的区块链功能组件中,具体植入过程可以参见上述步骤S101所述的植入过程,这里不再进行赘述。
S303,区块链节点61开始运行,向分析节点62发送运行性能日志。
具体的,区块链节点61开始运行后,就可以通过性能指标检测组件收集针对区块链功能组件的运行性能日志,然后,区块链节点61可以向分析节点发送运行性能日志,步骤S303的具体实现过程可以参见上述图3所对应实施例中步骤S101的描述,这里不再进行赘述。
S304,分析节点62向区块链节点61发送多维度性能分析结果。
具体的,分析节点62会对运行性能日志进行分析与整理,然后得到多维度性能分析结果,并将多维度性能分析结果返回给区块链节点61。步骤S304的具体实现过程,可以参见上述图3所对应实施例中步骤S102的实现过程,这里不再进行赘述。
S305,区块链节点61根据多维度性能分析结果调整节点性能配置。
具体的,区块链节点61可以根据多维度性能分析结果动态调整节点性能配置,具体调整过程可以参见上述图3所对应实施例中步骤S103的实现过程,这里不再进行赘述。
通过本申请实施例提供的方法,可以将性能指标检测组件(性能指标检测代码)动态植入到区块链功能组件(即区块链源码),从而实时检测区块链运行状态,并通过分析节点生成多维度性能分析结果,从而根据多维度性能分析结果动态调整区块链节点的节点性能配置,可以有效地调度系统资源,减少资源冲突,提高区块链性能及呑吐量。
请参见图7,图7是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。该数据处理装置可以是运行于计算机设备的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的数据处理方法中的相应步骤。如图7所示,该数据处理装置1可以包括:收集模块11、日志发送模块12、合约调用模块13以及调整模块14。
收集模块11,用于通过所运行的性能指标检测组件,收集针对区块链节点中的区块链功能组件的运行性能日志;性能指标检测组件用于将性能检测策略植入到区块链功能组件中;运行性能日志包括基于性能检测策略所统计到的性能数据;
日志发送模块12,用于将运行性能日志发送至分析节点,以使分析节点对运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果;
合约调用模块13,用于获取分析节点发送的携带多维度性能分析结果的上链请求,根据上链请求调用参数调整智能合约;
调整模块14,用于通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置。
其中,收集模块11、日志发送模块12、合约调用模块13以及调整模块14的具体实现方式可以参见上述图3所对应实施例中对步骤S101-步骤S103的描述,这里不再进行赘述。
其中,调整模块14,包括:第一匹配单元141以及第一调整单元142。
第一匹配单元141,用于通过参数调整智能合约对多维度性能分析结果进行性能条件匹配,获取性能条件匹配结果对应的参数调整策略;
第一调整单元142,用于当区块链网络中的至少两个节点中已上链的区块高度均达到目标区块高度时,区块链节点触发热更新,在热更新过程中按照参数调整策略调整区块链节点的节点性能配置。
其中,第一匹配单元141以及第一调整单元142的具体实现方式可以参见上述图3所对应实施例中对步骤S103的描述,这里不再进行赘述。
其中,多维度性能分析结果包括中央处理器占用率和交易池中的待处理交易数量;
调整模块,包括:第二匹配单元143以及第二调整单元144。
第二匹配单元143,用于通过参数调整智能合约对中央处理器占用率和交易池中的待处理交易数量进行性能条件匹配;
第二调整单元144,用于若性能条件匹配结果指示中央处理器占用率高于处理器占用率阈值,且交易池中的待处理交易数量大于第一数量阈值,则按照参数调整策略减少针对待加入交易池的交易的验签并行度。
其中,第二匹配单元143以及第二调整单元144的具体实现方式可以参见上述图3所对应实施例中对步骤S103的描述,这里不再进行赘述。
其中,多维度性能分析结果包括中央处理器占用率和针对区块链账本的存储队列;
调整模块,包括:第三匹配单元145以及第三调整单元146。
第三匹配单元145,用于通过参数调整智能合约对中央处理器占用率和存储队列进行性能条件匹配;
第三调整单元146,用于若性能条件匹配结果指示中央处理器占用率高于处理器占用率阈值,且存储队列中的待记账区块的数量大于第二数量阈值,则按照参数调整策略减少针对交易请求的响应并行度。
其中,第三匹配单元145以及第三调整单元146的具体实现方式可以参见上述图3所对应实施例中对步骤S103的描述,这里不再进行赘述。
其中,多维度性能分析结果包括内存占用率和针对区块链账本的缓存读写状态;
调整模块14,包括:第四匹配单元147以及第四调整单元148。
第四匹配单元147,用于通过参数调整智能合约对内存占用率和缓存读写状态进行性能条件匹配;
第四调整单元148,用于若性能条件匹配结果指示内存占用率高于内存占用率阈值,且缓存读写状态中的写请求数量大于读请求数量,则按照参数调整策略减少针对区块链账本的缓存容量;
第四调整单元148,用于若性能条件匹配结果指示内存占用率低于冗余占用率阈值,且缓存读写状态中的读请求的触发频率大于频率阈值,则按照参数调整策略增加针对区块链账本的缓存容量。
其中,第四匹配单元147以及第四调整单元148的具体实现方式可以参见上述图3所对应实施例中对步骤S103的描述,这里不再进行赘述。
其中,多维度性能分析结果包括内存占用率和交易池中的待处理交易数量;
调整模块14,包括:第五匹配单元149以及第五调整单元1410。
第五匹配单元149,用于通过参数调整智能合约对内存占用率和交易池中的待处理交易数量进行性能条件匹配;
第五调整单元1410,用于若性能条件匹配结果指示内存占用率高于内存占用率阈值,且交易池中的待处理交易数量大于第三数量阈值,则按照参数调整策略减少针对交易池的交易池容量。
其中,第五匹配单元149以及第五调整单元1410的具体实现方式可以参见上述图3所对应实施例中对步骤S103的描述,这里不再进行赘述。
其中,多维度性能分析结果包括针对区块链账本的缓存读写状态和节点磁盘负载;
调整模块14,包括:第六匹配单元1411以及第六调整单元1412。
第六匹配单元1411,用于通过参数调整智能合约对缓存读写状态和节点磁盘负载进行性能条件匹配;
第六调整单元1412,用于若性能条件匹配结果指示缓存读写状态中的写入延迟大于时长阈值,且磁盘负载大于负载阈值,则按照参数调整策略减少针对区块链账本的写入并行度。
采用本申请实施例提供的数据处理装置1,可以通过所运行的性能指标检测组件,收集针对区块链节点中的区块链功能组件的运行性能日志;其中,性能指标检测组件用于将性能检测策略植入到区块链功能组件中,运行性能日志包括基于性能检测策略所统计到的性能数据;然后,数据处理装置1可以将运行性能日志发送至分析节点,分析节点可以对运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果;最后,数据处理装置1可以获取分析节点发送的携带多维度性能分析结果的上链请求,根据上链请求调用参数调整智能合约,通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置。因此,采用本申请实施例提供的数据处理装置1可以实时检测区块链网络的运行状态,并通过分析节点形成多维度性能分析结果,然后根据多维度性能分析结果动态地调整节点性能配置,从而有效地调度系统资源,减少系统资源冲突,提高区块链性能。
请参见图8,图8是本申请实施例提供的一种计算机设备的结构示意图。如图8所示,上述图7所对应实施例中的数据处理装置1可以应用于计算机设备1000,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图8所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在如图8所示的计算机设备1000中,网络接口1004可提供网络通讯网元;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
区块链节点通过所运行的性能指标检测组件,收集针对区块链节点中的区块链功能组件的运行性能日志;性能指标检测组件用于将性能检测策略植入到区块链功能组件中;运行性能日志包括基于性能检测策略所统计到的性能数据;
将运行性能日志发送至分析节点,以使分析节点对运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果;
获取分析节点发送的携带多维度性能分析结果的上链请求,根据上链请求调用参数调整智能合约,通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3所对应的任一个所对应实施例中对该数据处理方法的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据处理装置1所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文图3所对应的任一个所对应实施例中对上述数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
进一步地,请参见图9,图9是本申请实施例提供的另一种基于区块链的数据处理装置的结构示意图。上述数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图9所示,该数据处理装置2可以包括:获取模块21、分析模块22以及请求发送模块23。
获取模块21,用于获取区块链节点发送的运行性能日志;运行性能日志是由区块链节点通过所运行的性能指标检测组件对区块链节点中的区块链功能组件进行性能收集得到;性能指标检测组件用于将性能检测策略植入到区块链功能组件中;运行性能日志包括基于性能检测策略所统计到的性能数据;
分析模块22,用于对运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果;
请求发送模块23,用于发送携带多维度性能分析结果的上链请求到区块链节点,以使区块链节点根据上链请求调用参数调整智能合约,通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整根据上链请求调用参数调整智能合约,通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置。
其中,获取模块21、分析模块22以及请求发送模块23的具体实现方式可以参见上述图5所对应实施例中对步骤S201-步骤S203的描述,这里不再进行赘述。
其中,运行性能日志的数量为M,M为正整数;
上述数据处理装置1,还包括:聚类模块24、标签设置模块25以及模型训练模块26。
聚类模块24,用于对M个运行性能日志进行聚类,得到N个性能数据集,识别N个性能数据集中的异常数据集和正常数据集;
标签设置模块25,用于将N个性能数据集作为训练样本,为异常数据集设置异常标签,为正常数据集设置正常标签;
模型训练模块26,用于根据训练样本、异常标签和正常标签训练性能预测模型;性能预测模型用于对区块链节点后续发送的新运行性能日志进行识别预测,得到针对区块链节点的性能瓶颈预测结果;性能瓶颈预测结果用于与多维度性能分析结果共同指引区块链节点确定参数调整策略。
其中,聚类模块24、标签设置模块25以及模型训练模块26的具体实现方式可以参见上述图5所对应实施例中步骤S203的可选描述,这里不再进行赘述。
其中,区块链功能组件的数量为H,H为正整数;
分析模块22,包括:第一状态获取单元221、第二状态获取单元222以及结果确定单元223。
第一状态获取单元221,用于获取运行性能日志中针对H个区块链功能组件的硬件资源占用率,按照硬件资源占用率对H个区块链功能组件进行排序,从排序后的H个区块链功能组件中按序获取S个区块链功能组件,生成针对S个区块链功能组件的排序状态;S为小于或等于H的正整数;
第二状态获取单元222,用于通过运行性能日志统计H个区块链功能组件分别对应的对象生成数量,将具有最多对象生成数量的区块链功能组件确定为目标区块链功能组件,生成针对目标区块链功能组件的最多对象状态;
结果确定单元223,用于将针对S个区块链功能组件的排序状态和针对目标区块链功能组件的最多对象状态,确定为多维度性能分析结果。
其中,第一状态获取单元221、第二状态获取单元222以及结果确定单元223的具体实现方式可以参见上述图5所对应实施例中对步骤S202的描述,这里不再进行赘述。
采用本申请实施例提供的装置,可以实时检测区块链的运行状态,生成运行性能日志,分析节点可以基于运行性能日志生成多维度性能分析结果,区块链节点可以根据多维度性能分析结果动态调整系统运行模式,有效地调度系统资源,减少资源冲突,提高系统性能及呑吐量,使得区块链可以适应高并发、大呑吐量的应用场景。
进一步地,请参见图10,图10是本申请实施例提供的另一种计算机设备的结构示意图。如图10所示,上述图9所对应实施例中的数据处理装置2可以应用于计算机设备2000,该计算机设备2000可以包括:处理器2001,网络接口2004和存储器2005,此外,上述计算机设备2000还包括:用户接口2003,和至少一个通信总线2002。其中,通信总线2002用于实现这些组件之间的连接通信。其中,用户接口2003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口2003还可以包括标准的有线接口、无线接口。网络接口2004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器2005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器2005可选的还可以是至少一个位于远离前述处理器2001的存储装置。如图10所示,作为一种计算机可读存储介质的存储器2005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图10所示的计算机设备2000中,网络接口2004可提供网络通讯功能;而用户接口2003主要用于为用户提供输入的接口;而处理器2001可以用于调用存储器2005中存储的设备控制应用程序,以实现:
获取区块链节点发送的运行性能日志;运行性能日志是由区块链节点通过所运行的性能指标检测组件对区块链节点中的区块链功能组件进行性能收集得到;性能指标检测组件用于将性能检测策略植入到区块链功能组件中;运行性能日志包括基于性能检测策略所统计到的性能数据;
对运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果;
发送携带多维度性能分析结果的上链请求到区块链节点,以使区块链节点根据上链请求调用参数调整智能合约,通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整根据上链请求调用参数调整智能合约,通过参数调整智能合约获取多维度性能分析结果对应的参数调整策略,按照参数调整策略调整区块链节点的节点性能配置。
应当理解,本申请实施例中所描述的计算机设备2000可执行前文各个实施例中对该访问控制方法的描述,也可执行前文图9所对应实施例中对该数据处理装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据处理装置2所执行的计算机程序,当上述处理器加载并执行上述计算机程序时,能够执行前文任一实施例对上述访问控制方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
此外,这里需要指出的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前文图3、图5任一个所对应实施例提供的方法。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照网元一般性地描述了各示例的组成及步骤。这些网元究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的网元,但是这种实现不应认为超出本申请的范围。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (15)
1.一种基于区块链的数据处理方法,其特征在于,包括:
区块链节点通过所运行的性能指标检测组件,收集针对所述区块链节点中的区块链功能组件的运行性能日志;所述性能指标检测组件用于将性能检测策略植入到区块链功能组件中;所述运行性能日志包括基于所述性能检测策略所统计到的性能数据;
将所述运行性能日志发送至分析节点,以使所述分析节点对所述运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果;
获取所述分析节点发送的携带所述多维度性能分析结果的上链请求,根据所述上链请求调用参数调整智能合约,通过所述参数调整智能合约获取所述多维度性能分析结果对应的参数调整策略,按照所述参数调整策略调整所述区块链节点的节点性能配置。
2.根据权利要求1所述的方法,其特征在于,所述通过所述参数调整智能合约获取所述多维度性能分析结果对应的参数调整策略,按照所述参数调整策略调整所述区块链节点的节点性能配置,包括:
通过所述参数调整智能合约对所述多维度性能分析结果进行性能条件匹配,获取性能条件匹配结果对应的参数调整策略;
当区块链网络中的至少两个节点中已上链的区块高度均达到目标区块高度时,所述区块链节点触发热更新,在热更新过程中按照所述参数调整策略调整所述区块链节点的节点性能配置。
3.根据权利要求1所述的方法,其特征在于,所述多维度性能分析结果包括中央处理器占用率和交易池中的待处理交易数量;
所述通过所述参数调整智能合约获取所述多维度性能分析结果对应的参数调整策略,按照所述参数调整策略调整所述区块链节点的节点性能配置,包括:
通过所述参数调整智能合约对所述中央处理器占用率和所述交易池中的待处理交易数量进行性能条件匹配;
若性能条件匹配结果指示所述中央处理器占用率高于处理器占用率阈值,且所述交易池中的待处理交易数量大于第一数量阈值,则按照所述参数调整策略减少针对待加入所述交易池的交易的验签并行度。
4.根据权利要求1所述的方法,其特征在于,所述多维度性能分析结果包括中央处理器占用率和针对区块链账本的存储队列;
所述通过所述参数调整智能合约获取所述多维度性能分析结果对应的参数调整策略,按照所述参数调整策略调整所述区块链节点的节点性能配置,包括:
通过所述参数调整智能合约对所述中央处理器占用率和所述存储队列进行性能条件匹配;
若性能条件匹配结果指示所述中央处理器占用率高于处理器占用率阈值,且所述存储队列中的待记账区块的数量大于第二数量阈值,则按照所述参数调整策略减少针对交易请求的响应并行度。
5.根据权利要求1所述的方法,其特征在于,所述多维度性能分析结果包括内存占用率和针对区块链账本的缓存读写状态;
所述通过所述参数调整智能合约获取所述多维度性能分析结果对应的参数调整策略,按照所述参数调整策略调整所述区块链节点的节点性能配置,包括:
通过所述参数调整智能合约对所述内存占用率和所述缓存读写状态进行性能条件匹配;
若性能条件匹配结果指示所述内存占用率高于内存占用率阈值,且缓存读写状态中的写请求数量大于读请求数量,则按照所述参数调整策略减少针对所述区块链账本的缓存容量;
若性能条件匹配结果指示所述内存占用率低于冗余占用率阈值,且所述缓存读写状态中的读请求的触发频率大于频率阈值,则按照所述参数调整策略增加针对所述区块链账本的缓存容量。
6.根据权利要求1所述的方法,其特征在于,所述多维度性能分析结果包括内存占用率和交易池中的待处理交易数量;
所述通过所述参数调整智能合约获取所述多维度性能分析结果对应的参数调整策略,按照所述参数调整策略调整所述区块链节点的节点性能配置,包括:
通过所述参数调整智能合约对所述内存占用率和所述交易池中的待处理交易数量进行性能条件匹配;
若性能条件匹配结果指示所述内存占用率高于内存占用率阈值,且所述交易池中的待处理交易数量大于第三数量阈值,则按照所述参数调整策略减少针对所述交易池的交易池容量。
7.根据权利要求1所述的方法,其特征在于,所述多维度性能分析结果包括针对区块链账本的缓存读写状态和节点磁盘负载;
所述通过所述参数调整智能合约获取所述多维度性能分析结果对应的参数调整策略,按照所述参数调整策略调整所述区块链节点的节点性能配置,包括:
通过所述参数调整智能合约对所述缓存读写状态和所述节点磁盘负载进行性能条件匹配;
若性能条件匹配结果指示所述缓存读写状态中的写入延迟大于时长阈值,且所述磁盘负载大于负载阈值,则按照所述参数调整策略减少针对所述区块链账本的写入并行度。
8.一种基于区块链的数据处理方法,其特征在于,包括:
分析节点获取区块链节点发送的运行性能日志;所述运行性能日志是由所述区块链节点通过所运行的性能指标检测组件对所述区块链节点中的区块链功能组件进行性能收集得到;所述性能指标检测组件用于将性能检测策略植入到区块链功能组件中;所述运行性能日志包括基于所述性能检测策略所统计到的性能数据;
对所述运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果;
发送携带所述多维度性能分析结果的上链请求到区块链节点,以使所述区块链节点根据所述上链请求调用参数调整智能合约,通过所述参数调整智能合约获取所述多维度性能分析结果对应的参数调整策略,按照所述参数调整策略调整根据所述上链请求调用参数调整智能合约,通过所述参数调整智能合约获取所述多维度性能分析结果对应的参数调整策略,按照所述参数调整策略调整所述区块链节点的节点性能配置。
9.根据权利要求8所述的方法,其特征在于,所述运行性能日志的数量为M,M为正整数;
所述方法还包括:
对M个所述运行性能日志进行聚类,得到N个性能数据集,识别所述N个性能数据集中的异常数据集和正常数据集;
将所述N个性能数据集作为训练样本,为所述异常数据集设置异常标签,为所述正常数据集设置正常标签;
根据所述训练样本、所述异常标签和所述正常标签训练性能预测模型;所述性能预测模型用于对所述区块链节点后续发送的新运行性能日志进行识别预测,得到针对所述区块链节点的性能瓶颈预测结果;所述性能瓶颈预测结果用于与所述多维度性能分析结果共同指引所述区块链节点确定参数调整策略。
10.根据权利要求8所述的方法,其特征在于,所述区块链功能组件的数量为H,H为正整数;所述对所述运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果,包括:
获取所述运行性能日志中针对H个区块链功能组件的硬件资源占用率,按照所述硬件资源占用率对H个区块链功能组件进行排序,从排序后的H个区块链功能组件中按序获取S个区块链功能组件,生成针对S个区块链功能组件的排序状态;所述S为小于或等于H的正整数;
通过所述运行性能日志统计H个区块链功能组件分别对应的对象生成数量,将具有最多对象生成数量的区块链功能组件确定为目标区块链功能组件,生成针对所述目标区块链功能组件的最多对象状态;
将针对S个区块链功能组件的排序状态和针对所述目标区块链功能组件的最多对象状态,确定为多维度性能分析结果。
11.一种基于区块链的数据处理装置,其特征在于,包括:
收集模块,用于通过所运行的性能指标检测组件,收集针对所述区块链节点中的区块链功能组件的运行性能日志;所述性能指标检测组件用于将性能检测策略植入到区块链功能组件中;所述运行性能日志包括基于所述性能检测策略所统计到的性能数据;
日志发送模块,用于将所述运行性能日志发送至分析节点,以使所述分析节点对所述运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果;
合约调用模块,用于获取所述分析节点发送的携带所述多维度性能分析结果的上链请求,根据所述上链请求调用参数调整智能合约;
调整模块,通过所述参数调整智能合约获取所述多维度性能分析结果对应的参数调整策略,按照所述参数调整策略调整所述区块链节点的节点性能配置。
12.一种基于区块链的数据处理装置,其特征在于,包括:
获取模块,用于获取区块链节点发送的运行性能日志;所述运行性能日志是由所述区块链节点通过所运行的性能指标检测组件对所述区块链节点中的区块链功能组件进行性能收集得到;所述性能指标检测组件用于将性能检测策略植入到区块链功能组件中;所述运行性能日志包括基于所述性能检测策略所统计到的性能数据;
分析模块,用于对所述运行性能日志中的性能数据进行多维度分析,得到多维度性能分析结果;
请求发送模块,用于发送携带所述多维度性能分析结果的上链请求到区块链节点,以使所述区块链节点根据所述上链请求调用参数调整智能合约,通过所述参数调整智能合约获取所述多维度性能分析结果对应的参数调整策略,按照所述参数调整策略调整根据所述上链请求调用参数调整智能合约,通过所述参数调整智能合约获取所述多维度性能分析结果对应的参数调整策略,按照所述参数调整策略调整所述区块链节点的节点性能配置。
13.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供数据通信功能,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行权利要求1-10任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行权利要求1-10任一项所述的方法。
15.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时,可以执行权利要求1-10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310123919.9A CN118445135A (zh) | 2023-02-03 | 2023-02-03 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310123919.9A CN118445135A (zh) | 2023-02-03 | 2023-02-03 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118445135A true CN118445135A (zh) | 2024-08-06 |
Family
ID=92326898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310123919.9A Pending CN118445135A (zh) | 2023-02-03 | 2023-02-03 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118445135A (zh) |
-
2023
- 2023-02-03 CN CN202310123919.9A patent/CN118445135A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101616967B1 (ko) | 다수의 처리 명령어를 실시간으로 취급하고 처리하는 것과 관련된 개선 | |
US20190354518A1 (en) | Chain mesh network for decentralized transaction systems | |
CN113570466B (zh) | 一种交易数据处理方法、装置以及可读存储介质 | |
CN113568981B (zh) | 一种交易数据处理方法、装置、设备以及介质 | |
CN114116665B (zh) | 数据库中并行写入事务日志以提升处理效率的方法 | |
CN110019267A (zh) | 一种元数据更新方法、装置、系统、电子设备及存储介质 | |
US20230052935A1 (en) | Asynchronous accounting method and apparatus for blockchain, medium and electronic device | |
CN106815254A (zh) | 一种数据处理方法和装置 | |
CN111241590A (zh) | 一种数据库系统、节点和方法 | |
CN112559525B (zh) | 数据检查系统、方法、装置和服务器 | |
CN114328133A (zh) | 单机构分布式冲突检测方法、系统和存算分离架构 | |
CN118093147B (zh) | 一种基于任务链和分治法的海量数据汇总方法及系统 | |
CN112003940A (zh) | 基于区块链和在线业务的支付网络状态处理方法及服务器 | |
CN116974874A (zh) | 数据库的测试方法、装置、电子设备及可读存储介质 | |
CN112749167A (zh) | 确定断链数据的方法、装置及非易失性存储介质 | |
Wang et al. | Efficient concurrent execution of smart contracts in blockchain sharding | |
CN113037824B (zh) | 一种面向云计算的高性能区块链的构建方法 | |
CN115988001A (zh) | 区块链系统的共识投票处理方法、装置、设备以及介质 | |
US20230336368A1 (en) | Block chain-based data processing method and related apparatus | |
US20230107958A1 (en) | Transaction processing method for database system, apparatus, electronic device, computer-readable storage medium, and computer program product | |
US20230208659A1 (en) | Blockchain apparatus and method for mobile edge computing | |
CN118445135A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN115344633A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN116701452A (zh) | 数据处理方法、相关设备、存储介质及程序产品 | |
CN111866171A (zh) | 报文处理方法、装置、电子设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |