CN112910950B - 一种待上链数据的上链方法、装置以及区块链节点设备 - Google Patents
一种待上链数据的上链方法、装置以及区块链节点设备 Download PDFInfo
- Publication number
- CN112910950B CN112910950B CN202110043581.7A CN202110043581A CN112910950B CN 112910950 B CN112910950 B CN 112910950B CN 202110043581 A CN202110043581 A CN 202110043581A CN 112910950 B CN112910950 B CN 112910950B
- Authority
- CN
- China
- Prior art keywords
- data
- uplink
- processing
- intelligent contract
- data processing
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种待上链数据的上链方法、装置以及区块链节点设备,用于引入数据处理量量化机制,当智能合约累计的数据处理量达到预设数据处理量时,放弃当前待上链数据的上链处理,从整体上保障数据上链效率,避免对节点的系统资源的异常占用。本申请提供的一种待上链数据的上链方法,包括:获取区块链平台的待上链数据;识别待上链数据适配的目标智能合约,并调用目标智能合约进行待上链数据的上链处理;在上链处理中,量化目标智能合约的数据处理量,当达到预设数据处理量时,回滚待上链数据的处理状态。
Description
技术领域
本申请涉及区块链领域,具体涉及一种待上链数据的上链方法、装置以及区块链节点设备。
背景技术
区块链技术在应用过程中,少不了数据的上链,数据上链后才可存储在区块链平台中,因此可看出,上链处理是区块链平台的正常运行中必不可少的一个处理环节。
待上链数据在上链过程中,通过可调用智能合约,并在智能合约的规范下,将数据进行存储,完成数据的上链。
而在现有的相关技术的研究过程中,发明人发现,现有的数据上链机制,时不时会出现执行速度较慢的问题,同时还伴随着节点的系统开销较大的情况,显然,在区块链平台高响应效率的需求背景下,其数据上链效率不稳定的问题,会对区块链平台的应用带来影响。
发明内容
本申请提供了一种待上链数据的上链方法、装置以及区块链节点设备,用于引入数据处理量量化机制,当智能合约累计的数据处理量达到预设数据处理量时,放弃当前待上链数据的上链处理,从整体上保障数据上链效率,避免对节点的系统资源的异常占用。
第一方面,本申请提供了一种待上链数据的上链方法,方法包括:
获取区块链平台的待上链数据;
识别待上链数据适配的目标智能合约,并调用目标智能合约进行待上链数据的上链处理;
在上链处理中,量化目标智能合约的数据处理量,当达到预设数据处理量时,回滚待上链数据的处理状态。
结合本申请第一方面,在本申请第一方面第一种可能的实现方式中,调用目标智能合约进行上链处理,包括:
调用目标智能合约,将待上链数据的数据格式转化为区块链平台存储上链数据所需的关系型数据格式,其中,完成数据格式转化的数据用于存储至区块链平台分配的存储地址。
结合本申请第一方面第一种可能的实现方式,在本申请第一方面第二种可能的实现方式中,在上链处理中,量化目标智能合约的数据处理量,包括:
在调用目标智能合约转化数据格式的过程中,监控执行的处理指令,其中,处理指令包括数据运算指令以及数据读取指令中的至少一种;
在预设的数据处理量表规范的不同指令所量化的不同数据处理量下,量化处理指令的目标数据处理量。
结合本申请第一方面第二种可能的实现方式,在本申请第一方面第三种可能的实现方式中,处理指令具体包括字段转化处理以及键值对处理执行的指令;
在预设的数据处理量表规范的不同指令所量化的不同数据处理量下,量化处理指令的目标数据处理量,包括:
在预设的数据处理量表规范的不同指令所量化的不同数据处理量下,以转化得到的字符串或者字节数组的长度量化字段转化处理的执行的指令的第一目标数据处理量,以及,以键值对的数据量量化键值对处理的执行的指令的第二目标数据处理量。
结合本申请第一方面第一种可能的实现方式,在本申请第一方面第四种可能的实现方式中,在上链处理中,量化目标智能合约的数据处理量之前,方法还包括:
判断待上链数据是否需要将数据格式转化为关系型数据格式;
若是,则触发在上链处理中,量化目标智能合约的数据处理量。
结合本申请第一方面或者第一方面任一种可能的实现方式,在本申请第一方面第五种可能的实现方式中,在上链处理中,量化目标智能合约的数据处理量,当达到预设数据处理量时,回滚待上链数据的处理状态,包括:
调用预设的插件程序,当插件程序检测到进入上链处理时,量化目标智能合约的数据处理量,当达到预设数据处理量时,回滚待上链数据的处理状态。
结合本申请第一方面或者第一方面任一种可能的实现方式,在本申请第一方面第六种可能的实现方式中,预设数据处理量由用户操作设置。
第二方面,本申请提供了一种待上链数据的上链装置,装置包括:
收发单元,用于获取区块链平台的待上链数据;
处理单元,用于识别待上链数据适配的目标智能合约,并调用目标智能合约进行待上链数据的上链处理,在上链处理中,量化目标智能合约的数据处理量,当达到预设数据处理量时,回滚待上链数据的处理状态。
结合本申请第二方面,在本申请第二方面第一种可能的实现方式中,处理单元,具体用于:
调用目标智能合约,将待上链数据的数据格式转化为区块链平台存储上链数据所需的关系型数据格式,其中,完成数据格式转化的数据用于存储至区块链平台分配的存储地址。
结合本申请第二方面第一种可能的实现方式,在本申请第二方面第二种可能的实现方式中,处理单元,具体用于:
在调用目标智能合约转化数据格式的过程中,监控执行的处理指令,其中,处理指令包括数据运算指令以及数据读取指令中的至少一种;
在预设的数据处理量表规范的不同指令所量化的不同数据处理量下,量化处理指令的目标数据处理量。
结合本申请第二方面第二种可能的实现方式,在本申请第二方面第三种可能的实现方式中,处理指令具体包括字段转化处理以及键值对处理执行的指令;
处理单元,具体用于:
在预设的数据处理量表规范的不同指令所量化的不同数据处理量下,以转化得到的字符串或者字节数组的长度量化字段转化处理的执行的指令的第一目标数据处理量,以及,以键值对的数据量量化键值对处理的执行的指令的第二目标数据处理量。
结合本申请第二方面第一种可能的实现方式,在本申请第二方面第四种可能的实现方式中,处理单元,还用于:
判断待上链数据是否需要将数据格式转化为关系型数据格式;
若是,则触发在上链处理中,量化目标智能合约的数据处理量。
结合本申请第二方面或者第二方面任一种可能的实现方式,在本申请第二方面第五种可能的实现方式中,处理单元,具体用于:
调用预设的插件程序,当插件程序检测到进入上链处理时,量化目标智能合约的数据处理量,当达到预设数据处理量时,回滚待上链数据的处理状态。
结合本申请第二方面或者第二方面任一种可能的实现方式,在本申请第二方面第六种可能的实现方式中,预设数据处理量由用户操作设置。
第三方面,本申请还提供了一种区块链节点设备,包括处理器和存储器,存储器中存储有计算机程序,处理器调用存储器中的计算机程序时执行本申请第一方面或者本申请第一方面任一种可能的实现方式提供的方法。
第四方面,本申请还提供了一种计算机可读存储介质,计算机可读存储介质存储有多条指令,指令适于处理器进行加载,以执行本申请第一方面或者本申请第一方面任一种可能的实现方式提供的方法。
从以上内容可得出,本申请具有以下的有益效果:
针对于区块链平台的数据上链环节,本申请在获取到区块链平台的待上链数据后,识别待上链数据适配的目标智能合约并调用该合约进行上链处理,在上链处理中,引入数据处理量量化机制,当累计的数据处理量达到预设数据处理量时,回滚待上链数据的处理状态。在该上链过程中,通过量化的数据处理量来确定当前处理的待上链数据是否为异常数据,如此当超过预设数据处理量时,认定当前待上链数据为异常数据,可放弃对该数据的正常上链处理,如此保障其他待上链数据的正常上链处理,从整体上保障数据上链效率,避免对节点的系统资源的异常占用。
附图说明
图1为本申请待上链数据的上链方法的一种流程示意图;
图2为本申请量化数据处理量的一种流程示意图;
图3为本申请数据处理量量化机制的一种场景示意图;
图4为本申请待上链数据的上链装置的一种结构示意图;
图5为本申请区块链节点设备的一种结构示意图。
具体实施方式
首先,在介绍本申请之前,先介绍下本申请关于应用背景的相关内容。
本申请提供的一种待上链数据的上链方法、装置以及计算机可读存储介质,可应用于区块链节点设备上,用于引入数据处理量量化机制,当智能合约累计的数据处理量达到预设数据处理量时,放弃当前待上链数据的上链处理,从整体上保障数据上链效率,避免对节点的系统资源的异常占用。
本申请提及的待上链数据的上链方法,其执行主体可以为待上链数据的上链装置,或者集成了该装置的服务器设备、物理主机或者用户设备(User Equipment,UE)等不同类型的区块链节点设备,其中,区块链节点可通过配置区块链平台涉及的应用程序,经审核通过后加入了区块链平台。
装置可以采用硬件或者软件的方式实现,UE具体可以为智能手机、平板电脑、笔记本电脑、掌上电脑、台式电脑或者个人数字助理(Personal Digital Assistant,PDA)等终端设备,区块链节点设备还可以以设备集群的形式配置。
下面,开始介绍本申请提供的待上链数据的上链方法。
图1示出了本申请待上链数据的上链方法的一种流程示意图,如图1示出的,本申请提供的待上链数据的上链方法,具体可包括如下步骤:
步骤S101,获取区块链平台的待上链数据;
步骤S102,识别待上链数据适配的目标智能合约,并调用目标智能合约进行待上链数据的上链处理;
步骤S103,在上链处理中,量化目标智能合约的数据处理量,当达到预设数据处理量时,回滚待上链数据的处理状态。
从上述图1所示实施例可看出,针对于区块链平台的数据上链环节,本申请在获取到区块链平台的待上链数据后,识别待上链数据适配的目标智能合约并调用该合约进行上链处理,在上链处理中,引入数据处理量量化机制,当累计的数据处理量达到预设数据处理量时,回滚待上链数据的处理状态。在该上链过程中,通过量化的数据处理量来确定当前处理的待上链数据是否为异常数据,如此当超过预设数据处理量时,认定当前待上链数据为异常数据,可放弃对该数据的正常上链处理,如此保障其他待上链数据的正常上链处理,从整体上保障数据上链效率,避免对节点的系统资源的异常占用。
以下继续对图1所示的各步骤以及在实际应用中可能采用的具体实施方式进行详细阐述:
在本申请中,基于区块链平台本身的工作机制,存在一共识机制,即,对于本申请涉及的部分或者全部数据处理,是在各区块链节点设备进行投票,并投票通过后方采取的数据处理,其采取的共识协议(协议的内容可以理解为描述如何进行投票以及如何确定投票通过结果),可采用不同类型的共识协议,例如PoW、PoS、BFT或者RAFT等共识协议,具体可随实际需要调整,在此不做限定。
以下内容,则以区块链节点的角度,来介绍本申请所提出的待上链数据的上链方法。
待上链数据是可以随区块链平台的应用场景而调整的,例如,区块链平台可以部署生猪数据的回溯系统,如此,待上链数据可以为生猪养殖数据、生猪屠宰数据、生猪运输数据、生猪检疫数据甚至生猪销售数据等不同生猪数据,以供生猪数据的在线存储、查询或者下载。
又例如,区块链平台可部署电子证据的存证系统,如此,待上链数据可以为取证得到的电子证据,以供电子证据的在线存储、查询或者下载。
从而,待上链数据的发起以及数据内容的形式,可随实际需要调整,具体在此不做限定。
此外,对于请求上链的待上链数据,其可以理解为是以处理请求的方式存在的,通俗点来说,可以理解为区块链平台中的交易。
且在实际应用中,本申请提出的待上链数据的上链方法,一般是以单个的待上链数据为单位,或者说以一个处理请求、一笔交易为单位进行的。
当待上链数据经过相关的预处理,例如参数解析、共识打包,上链至区块链平台后,则可通过区块链的分布式存储以及公开的处理机制,进行数据的存储以及相应的处理,为区块链平台的具体应用服务提供数据支持。
一般的,这些待上链数据是通过区块链平台中的数据某一个区块链节点设备进行上链的,该数据可以是区块链节点设备本地的数据,也可以是区块链平台外的设备传输至区块链节点的数据。
当存在上链需求时,区块链节点设备则可将其上链至区块链平台中。
当获取到,或者说确定了当前需要进行上链的待上链数据后,则可触发本申请所提供的待上链数据的上链方法,通过本申请提出的数据处理量量化机制,以提高待上链数据的数据上链效率。
具体的,在本申请中,其数据处理量量化机制是针对智能合约提出的。在通过智能合约执行待上链数据的上链的情况下,先对待上链数据进行识别,确定对当前的待上链数据的上链所需调用的目标智能合约,再调用该目标智能合约并在合约中规范的上链方式下,进行待上链数据的上链。
其中,所做的上链处理,还可能涉及到缓存的设置。例如,当在本地对待上链数据进行了相关数据处理后,并不一定是直接存储至区块链平台分配的存储地址的,有可能先存储至缓存中,由缓存作为中间媒介,再存储至分配的存储地址,可以理解为一种间接存储方式。
预设数据处理量,一般可由工作人员发起的用户操作设置得到,或者,也可按照智能合约的历史工作经验由区块链节点设备或者区块链平台自行设置。其设置方式,可考虑智能合约在历史工作中出现较慢的执行效率、系统开销较大甚至停机、合约调用无法终止等异常情况时的数据处理工作量进行。
此外,目标智能合约通常也是运行在区块链节点设备部署的虚拟环境中,或者说在目标智能合约是以虚拟机(Virtual Machine,VM)的基础上运行的,当调用智能合约执行相关的数据处理,例如上链处理时,当运行大量的虚拟机指令时,而若出现异常待上链数据,会导致执行速度较慢、系统开销较大甚至停机、合约调用无法终止的情况。
而由于在本申请中,在调用目标智能合约处理待上链数据的上链处理时,将累计的数据处理量超过预设数据处理量的异常待上链数据进行了放弃处理,即,回滚该异常待上链数据的处理状态,避免因为该异常待上链数据导致出现现有技术中如执行速度较慢、系统开销较大甚至停机、合约调用无法终止的情况,可以看出,本申请所提出的数据处理量量化机制,可以看作是一种安全机制,通过量化的数据处理量来识别对于系统整体的数据上链效率造成异常的异常待上链数据,并做回滚处理。
以一笔交易为例,则其在上链处理过程中的数据处理量超过预设数据处理量,则可以认为该交易为异常交易,可以回滚该笔交易的修改。具体的,可以放弃该笔交易的所有修改;或者,忽略该笔交易;又或者,删除该笔交易。
为便于理解本申请提出的数据处理量量化机制,也可以将之理解为一种工作量量化机制。具体的,智能合约执行引擎在执行智能合约时,根据智能合约的逻辑底层执行若干不同的指令。每执行一个指令,就产生了一定的工作量。智能合约执行引擎使用工作量表来量化记录每一种指令执行的工作量。当一个合约调用的执行过程中发现当前工作量已经超过可用上限后退出执行,将区块链状态回滚到该合约调用执行前的状态。
举例而言,部分的待上链数据,在上链环节中,可能需要进行数据格式转换的处理,如此,将待上链数据的数据格式转化为区块链平台中的数据存储格式,以便数据的存储、查询或者下载等稳定的、标准化的数据处理。
例如,现有的区块链合约都是基于键值存储引擎存储智能合约数据的,智能合约中的一个变量对应存储为区块链账本上的一个键值对,变量的读写其实就是构造特定的键在区块链账本上读写对应的值,能够使用简单的账本对读写指令来进行,而如果需要支持关系型数据的表、索引,则需要通过智能合约来实现。
而存在的一个情况就是,智能合约从区块链账本中存储数据的方式简陋,能够直接使用的数据结构相对有限,缺乏对关系型数据读取的支持,业务数据建模更加困难,如果要用智能合约来讲对象持久化为关系型数据格式,一些数据的转换处理,在执行时可能需要运行大量的虚拟机指令,而这就导致了执行速度慢,系统资源开销大等情况。
如此,在本申请中提出的数据处理量量化机制,则可针对于待上链数据的数据格式的转化场景,而上述提及的,调用目标智能合约进行上链处理,具体可以为:
调用目标智能合约,将待上链数据的数据格式转化为区块链平台存储上链数据所需的关系型数据格式,其中,完成数据格式转化的数据用于存储至区块链平台分配的存储地址。
于此同时,量化的数据处理量,则可具体针对于数据格式转化过程中涉及的相关数据处理。
例如,参阅图2示出的本申请量化数据处理量的一种流程示意图,在本申请中,对于数据格式转化过程中涉及的相关数据处理的数据处理量的量化处理,可包括如下步骤S201以及步骤S202:
步骤S201,在调用目标智能合约转化数据格式的过程中,监控执行的处理指令,其中,处理指令包括数据运算指令以及数据读取指令中的至少一种;
可以理解,对于数据处理量的量化,本申请则可以以处理指令的颗粒度进行的,或者说,以处理指令为单位量化数据处理量。
步骤S202,在预设的数据处理量表规范的不同指令所量化的不同数据处理量下,量化处理指令的目标数据处理量。
在实际应用中,可预先配置一数据处理量表,来指示不同的处理指令可量化的数据处理量,该数据处理量表,通俗点可以理解为费用表,其以处理指令为单位,描述了不同处理指令对应的数据处理量。
如此,区块链节点设备在调用到配置的数据处理量表后,则可根据该表,量化当前处理指令的目标数据处理量。
其中,作为一种适于实用的实现方式,其针对的处理指令可以分为两个处理部分中的指令。
具体的,处理指令可包括字段转化处理以及键值对处理执行的指令,对应的,在预设的数据处理量表规范的不同指令所量化的不同数据处理量下,量化处理指令的目标数据处理量,具体可包括:
在预设的数据处理量表规范的不同指令所量化的不同数据处理量下,以转化得到的字符串或者字节数组的长度量化字段转化处理的执行的指令的第一目标数据处理量,以及,以键值对的数据量量化键值对处理的执行的指令的第二目标数据处理量。
为便于理解,结合图3示出的本申请数据处理量量化机制的一种场景示意图,以下面示出的一数据格式转化流程作为说明:
a.逐一读取表元信息中包含的属性信息,根据表属性的类型、缺省值、编码方式将对应的对象字段转换为字符串或字节数组。
根据字符串或字节数组总长度乘以一定倍率,累计工作量(即上述提及的第一目标数据处理量),若超出上限则退出执行,返回已经完成编码的对象数量(即上述提及的回滚待上链数据的处理状态)。
b.将表主键对应的字符串或字节数组按顺序使用分隔符进行连接,构成存储时所使用的键。
c.将对象所有字段转换出的字符串或字节数组按照顺序进行连接,构成存储时所使用的值。
d.将步骤b所生成的键和步骤c中所生成的值,存放到键值对缓存中。
e.逐一读取索引元信息,做下述处理,直到对所有索引都完成了处理:
e1.将步骤a索引字段转换成的自己字符串按顺序使用分隔符进行连接,作为索引存储时用的键。非唯一索引拼接时会在此基础上连接其他非索引字段。
e2.将步骤e1所生成的键作为键,将步骤b中生成的键作为值,存放到键值对缓存中。
f.计算键值对缓存中的数据量,并乘以倍率计算编码总工作量(即上述提及的第二目标数据处理量),累计工作量若超出上限则退出执行(即上述提及的回滚待上链数据的处理状态),返回已经完成编码的对象数量。倍率数值可统一配置或存储在区块链账本上。
g.将键值对缓存刷入区块链账本。
对应的,还可结合下面示出的一组实例进行理解。
a.智能合约中定义有对象Student描述学生信息,描述学生信息,包含下述字段:
对象字段 | 类型 |
学号(id) | string |
姓名(name) | string |
年级(grade) | int |
班级(class) | int |
b.Student对象映射为下述关系型数据库的表,并且对年级和班级建立索引,表与索引的元信息总计100字节:
表属性 | 类型 | 编码方式 | 备注 |
学号 | varchar | UTF8 | 非空主键 |
姓名 | varchar | UTF8 | 非空 |
年级 | int | UTF8 | 非空 |
班级 | int | UTF8 | 非空 |
c.用户调用智能合约,生成了Student列表,使用JSON来描述Student对象为下述格式:
d.将Student列表传入插件,限定工作量500,插件读取表与索引的元信息进行初始化,每读取1字节元信息需要耗费1单位工作量,消耗工作量根据读取数据情况累计100单位工作量。
e.插件编码第一个对象,使用的分割符为”_”,拼接出表的存储键为“0001”,值为“0001_李雷_1_1”,索引键为”1_1”,值为”0001”,存入缓存。
f.缓存中总计26字节,每字节存储消耗1个单位工作量,将缓存刷入区块链账本总计消耗26单位工作量,累计消耗126单位工作量。
g.插件编码第二个对象,使用的分割符为”_”,拼接出表的存储键为“0002”,值为“0002_韩梅梅_1_2”,索引键为”1_2”,值为”0002”,存入缓存。
h.缓存中总计29字节,每字节存储消耗1个单位工作量,将缓存刷入区块链账本总计消耗29单位工作量,累计消耗155单位工作量。
i.合约中的插件接口返回存储了2个对象,总共累计155单位工作量。
j.合约继续向下执行,生成执行结果。
此外,在实际应用中,若针对数据格式转换场景应用的数据处理量量化机制,在该情况下,则还可引入触发机制,当检测到进入数据格式转换场景,再触发数据处理量量化机制。
也就是说,在上链处理中,量化目标智能合约的数据处理量之前,还可包括:
判断待上链数据是否需要将数据格式转化为关系型数据格式;
若是,则触发在上链处理中,量化目标智能合约的数据处理量。
在该设置下,即可针对数据格式转换场景精确地触发本申请引入的数据处理量量化机制,提高数据格式转换容易出现一些异常数据导致的执行效率较慢的情况。
进一步的,本申请所提出的数据处理量量化机制,为适于植入现有的区块链技术,也为了方便普及应用,该机制,可以以插件形式设置,当区块链节点设备加载插件程序后,即可方便地应用本申请提出的数据处理量量化机制,提高上链效率。
对应的,在上链处理中,量化目标智能合约的数据处理量,当达到预设数据处理量时,回滚待上链数据的处理状态,具体可包括:
调用预设的插件程序,当插件程序检测到进入上链处理时,量化目标智能合约的数据处理量,当达到预设数据处理量时,回滚待上链数据的处理状态,
该插件程序,在实际应用中,可以采用通用插件的形式配置,以适应不同智能合约语言的特性,以数据格式转换场景为例,涉及的对象和表的对应关系,以及对象属性和表字段的对应关系可由合约引擎传入。
在实际应用中,继续以数据格式转换场景为例,该插件程序的应用可以包括如下内容:
插件执行初始化,插件中检查是否已经加载了该对象对应关系型数据表和索引的元信息,元信息指的是表和索引的描述信息,包括但不限于属性类型、缺省值活或者编码方式等信息。若是则直接使用,若否,则尝试获取关系型数据的表和索引的元信息。
元信息的读取方式包括但不限于:直接使用插件向内置表存储,存储之后通过区块链账本提供的SQL查询引擎或者键值对读取接口获取;从合约引擎中传入。加载元信息时根据输入数据的大小乘以一定倍率来度量加载元信息需要使用的工作量,倍率数值需要统一配置或存储在区块链账本上。如果工作量超过上限则插件直接返回。
示例性的,可通过下面的插件程序的一组应用实例进行理解。
总的来说,插件程序可根据对象对应的关系型数据表和索引元信息,将对象的字段逐一使用特定转换器进行格式、编码转换并拼接,最后将对象存储为若干个合约账本上的键值对。
具体的:
a.区块链系统接收到用户产生的区块链交易,解析区块链交易,验证格式合法后,经过若干预处理之后,进入智能合约执行引擎执行,预处理包括但不限于参数解析、共识打包。
b.智能合约执行引擎根据输入参数,从区块链账本中读取需要执行的智能合约代码,使用上述代码和参数,初始化智能合约虚拟机,合约执行能消耗的工作量上限可以由用户输入,也可以统一配置。
c.智能合约虚拟机开始执行智能合约,首先运行若干合约逻辑,累计若干工作量,过程中如果累计工作量超过上限则退出合约执行。
d.运行过程中调用了插件接口,传入需要持久化为关系型数据格式的对象列表,并限定可用的总工作量。上述工作量可以与智能合约执行剩余可用的工作量采用相同标量,也可以另外使用一个统一配置或者由用户额外输入的标量。
e.插件执行初始化,插件中检查是否已经加载了该对象对应关系型数据表和索引的元信息,元信息指的是表和索引的描述信息,包括但不限于各个属性类型、缺省值、编码方式。若是则直接使用,若否,则尝试获取关系型数据的表和索引的元信息。根据读取到的元信息长度,来度量加载元信息的工作量,如果加载所需工作量超过可用工作量余量,则退出插件,接口处报错。
f.插件中根据元信息,将传入对象列表中的对象逐一以一定的格式进行编码,并且以键值对的形式存入区块链账本,每编码并存储一个对象,累计一定的工作量。当累计工作量超过给定上限或完成所有对象的编码之后,插件接口向合约返回完成编码存储的对象个数。
g.继续运行智能合约逻辑。若再次调用插件接口,则从步骤d开始继续往下执行。
以上是本申请待上链数据的上链方法的说明,为便于更好的实施本申请提供的待上链数据的上链方法,本申请还提供了待上链数据的上链装置。
参阅图4,图4为本申请待上链数据的上链装置的一种结构示意图,在本申请中,待上链数据的上链装置400具体可包括如下结构:
收发单元401,用于获取区块链平台的待上链数据;
处理单元402,用于识别待上链数据适配的目标智能合约,并调用目标智能合约进行待上链数据的上链处理,在上链处理中,量化目标智能合约的数据处理量,当达到预设数据处理量时,回滚待上链数据的处理状态。
在一种示例性的实现方式中,处理单元402,具体用于:
调用目标智能合约,在将待上链数据的数据格式转化为区块链平台存储上链数据所需的关系型数据格式,其中,完成数据格式转化的数据用于存储至区块链平台分配的存储地址。
在又一种示例性的实现方式中,处理单元402,具体用于:
在调用目标智能合约转化数据格式的过程中,监控执行的处理指令,其中,处理指令包括数据运算指令以及数据读取指令中的至少一种;
在预设的数据处理量表规范的不同指令所量化的不同数据处理量下,量化处理指令的目标数据处理量。
在又一种示例性的实现方式中,处理指令具体包括字段转化处理以及键值对处理执行的指令;
处理单元402,具体用于:
在预设的数据处理量表规范的不同指令所量化的不同数据处理量下,以转化得到的字符串或者字节数组的长度量化字段转化处理的执行的指令的第一目标数据处理量,以及,以键值对的数据量量化键值对处理的执行的指令的第二目标数据处理量。
在又一种示例性的实现方式中,处理单元402,还用于:
判断待上链数据是否需要将数据格式转化为关系型数据格式;
若是,则触发在上链处理中,量化目标智能合约的数据处理量。
在又一种示例性的实现方式中,处理单元402,具体用于:
调用预设的插件程序,当插件程序检测到进入上链处理时,量化目标智能合约的数据处理量,当达到预设数据处理量时,回滚待上链数据的处理状态。
在又一种示例性的实现方式中,预设数据处理量由用户操作设置。
本申请还提供了区块链节点设备,参阅图5,图5示出了本申请区块链节点设备的一种结构示意图,具体的,本申请区块链节点设备包括处理器501、存储器502以及输入输出设备503,处理器501用于执行存储器502中存储的计算机程序时实现如图1或图2对应实施例中待上链数据的上链方法的各步骤;或者,处理器501用于执行存储器502中存储的计算机程序时实现如图3对应实施例中各单元的功能,例如图4中的收发单元401所对应的硬件结构为输入输出设备503,处理单元402所对应的硬件结构为处理器501,存储器502用于存储处理器501执行上述图1或图2对应实施例中待上链数据的上链方法所需的计算机程序。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器502中,并由处理器501执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机装置中的执行过程。
区块链节点设备可包括,但不仅限于处理器501、存储器502、输入输出设备503。本领域技术人员可以理解,示意仅仅是区块链节点设备的示例,并不构成对区块链节点设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如区块链节点设备还可以包括网络接入设备、总线等,处理器501、存储器502、输入输出设备503以及网络接入设备等通过总线相连。
处理器501可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是区块链节点设备的控制中心,利用各种接口和线路连接整个设备的各个部分。
存储器502可用于存储计算机程序和/或模块,处理器501通过运行或执行存储在存储器502内的计算机程序和/或模块,以及调用存储在存储器502内的数据,实现计算机装置的各种功能。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器501用于执行存储器502中存储的计算机程序时,具体可实现以下功能:
获取区块链平台的待上链数据;
识别待上链数据适配的目标智能合约,并调用目标智能合约进行待上链数据的上链处理;
在上链处理中,量化目标智能合约的数据处理量,当达到预设数据处理量时,回滚待上链数据的处理状态。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的待上链数据的上链装置、区块链节点设备及其相应单元的具体工作过程,可以参考如图1或图2对应实施例中待上链数据的上链方法的说明,具体在此不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请如图1或图2对应实施例中待上链数据的上链方法中的步骤,具体操作可参考如图1或图2对应实施例中待上链数据的上链方法的说明,在此不再赘述。
其中,该计算机可读存储介质可以包括:只读存储器(Read Only Memory,ROM)、随机存取记忆体(Random Access Memory,RAM)、磁盘或光盘等。
由于该计算机可读存储介质中所存储的指令,可以执行本申请如图1或图2对应实施例中待上链数据的上链方法中的步骤,因此,可以实现本申请如图1或图2对应实施例中待上链数据的上链方法所能实现的有益效果,详见前面的说明,在此不再赘述。
以上对本申请提供的待上链数据的上链方法、装置、区块链节点设备以及计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种待上链数据的上链方法,其特征在于,所述方法包括:
获取区块链平台的待上链数据;
识别所述待上链数据适配的目标智能合约,并调用所述目标智能合约进行所述待上链数据的上链处理;
在所述上链处理中,量化所述目标智能合约的数据处理量,当达到预设数据处理量时,回滚所述待上链数据的处理状态。
2.根据权利要求1所述的方法,其特征在于,所述调用所述目标智能合约进行上链处理,包括:
调用所述目标智能合约,将所述待上链数据的数据格式转化为所述区块链平台存储上链数据所需的关系型数据格式,其中,完成数据格式转化的数据用于存储至所述区块链平台分配的存储地址。
3.根据权利要求2所述的方法,其特征在于,所述在上链处理中,量化所述目标智能合约的数据处理量,包括:
在调用所述目标智能合约转化数据格式的过程中,监控执行的处理指令,其中,所述处理指令包括数据运算指令以及数据读取指令中的至少一种;
在预设的数据处理量表规范的不同指令所量化的不同数据处理量下,量化所述处理指令的目标数据处理量。
4.根据权利要求3所述的方法,其特征在于,所述处理指令具体包括字段转化处理以及键值对处理执行的指令;
所述在预设的数据处理量表规范的不同指令所量化的不同数据处理量下,量化所述处理指令的目标数据处理量,包括:
在预设的数据处理量表规范的不同指令所量化的不同数据处理量下,以转化得到的字符串或者字节数组的长度量化所述字段转化处理的执行的指令的第一目标数据处理量,以及,以键值对的数据量量化所述键值对处理的执行的指令的第二目标数据处理量。
5.根据权利要求2所述的方法,其特征在于,所述在上链处理中,量化所述目标智能合约的数据处理量之前,所述方法还包括:
判断所述待上链数据是否需要将数据格式转化为所述关系型数据格式;
若是,则触发在所述上链处理中,量化所述目标智能合约的数据处理量。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述在上链处理中,量化所述目标智能合约的数据处理量,当达到预设数据处理量时,回滚待上链数据的处理状态,包括:
调用预设的插件程序,当所述插件程序检测到进入所述上链处理时,量化所述目标智能合约的数据处理量,当达到所述预设数据处理量时,回滚待上链数据的处理状态。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述预设数据处理量由用户操作设置。
8.一种待上链数据的上链装置,其特征在于,所述装置包括:
收发单元,用于获取区块链平台的待上链数据;
处理单元,用于识别所述待上链数据适配的目标智能合约,并调用所述目标智能合约进行所述待上链数据的上链处理,在所述上链处理中,量化所述目标智能合约的数据处理量,当达到预设数据处理量时,回滚所述待上链数据的处理状态。
9.一种区块链节点设备,其特征在于,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110043581.7A CN112910950B (zh) | 2021-01-13 | 2021-01-13 | 一种待上链数据的上链方法、装置以及区块链节点设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110043581.7A CN112910950B (zh) | 2021-01-13 | 2021-01-13 | 一种待上链数据的上链方法、装置以及区块链节点设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112910950A CN112910950A (zh) | 2021-06-04 |
CN112910950B true CN112910950B (zh) | 2022-06-21 |
Family
ID=76112869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110043581.7A Active CN112910950B (zh) | 2021-01-13 | 2021-01-13 | 一种待上链数据的上链方法、装置以及区块链节点设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112910950B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8775593B2 (en) * | 2011-06-29 | 2014-07-08 | International Business Machines Corporation | Managing organizational computing resources in accordance with computing environment entitlement contracts |
US10102265B1 (en) * | 2017-04-12 | 2018-10-16 | Vijay K. Madisetti | Method and system for tuning blockchain scalability for fast and low-cost payment and transaction processing |
CN110392052B (zh) * | 2019-07-22 | 2021-05-25 | 中国工商银行股份有限公司 | 一种区块链智能合约处理系统及方法 |
CN110365695A (zh) * | 2019-07-24 | 2019-10-22 | 中国工商银行股份有限公司 | 可切换共识算法的区块链数据交互方法及装置 |
-
2021
- 2021-01-13 CN CN202110043581.7A patent/CN112910950B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112910950A (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112800095B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN106503974B (zh) | 交易数据处理方法及装置 | |
CN103970520A (zh) | MapReduce架构中的资源管理方法、装置和架构系统 | |
CN104252501A (zh) | 一种执行数据库操作命令的计算设备和方法 | |
CN110688096B (zh) | 包含插件的应用程序的构建方法、装置、介质及电子设备 | |
CN111143446A (zh) | 数据对象的数据结构转换处理方法、装置及电子设备 | |
CN111046634A (zh) | 文档处理方法、装置、计算机设备以及存储介质 | |
CN112307122A (zh) | 一种基于数据湖的数据管理系统及方法 | |
CN115599359A (zh) | 一种代码生成方法、装置、设备及介质 | |
CN110737425B (zh) | 一种计费平台系统的应用程序的建立方法及装置 | |
CN112910950B (zh) | 一种待上链数据的上链方法、装置以及区块链节点设备 | |
CN111143461A (zh) | 映射关系处理系统、方法和电子设备 | |
CN116644122A (zh) | 数据事务处理方法、装置、计算机设备及存储介质 | |
CN113641633B (zh) | 文件处理方法、装置、电子设备、介质和计算机程序 | |
CN112131257B (zh) | 数据查询方法和装置 | |
CN113868138A (zh) | 测试数据的获取方法、系统、设备及存储介质 | |
CN114036180A (zh) | 报表生成方法、装置、设备及存储介质 | |
CN109543079B (zh) | 数据查询方法、装置、计算设备及存储介质 | |
CN112100208A (zh) | 一种操作请求的转发方法和装置 | |
CN113918638A (zh) | 数据处理链路确定方法、系统、设备及存储介质 | |
CN113392131A (zh) | 数据处理方法、装置及计算机设备 | |
KR101737575B1 (ko) | 자동 생성된 sql 구문 기반의 데이터 검증 방법 및 장치 | |
CN115563183B (zh) | 查询方法、装置及程序产品 | |
CN108900568B (zh) | 一种表格传输的方法、系统及服务器 | |
CN116028538A (zh) | 数据核对方法和系统、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20210604 Assignee: Hangzhou Quanke Technology Co.,Ltd. Assignor: HANGZHOU HYPERCHAIN TECHNOLOGIES Co.,Ltd. Contract record no.: X2022980029948 Denomination of invention: An uplink method, device and blockchain node device for data to be uplink Granted publication date: 20220621 License type: Common License Record date: 20230115 |