CN113094429B - 数据处理方法、数据查询方法、计算机设备和存储介质 - Google Patents

数据处理方法、数据查询方法、计算机设备和存储介质 Download PDF

Info

Publication number
CN113094429B
CN113094429B CN202110296507.6A CN202110296507A CN113094429B CN 113094429 B CN113094429 B CN 113094429B CN 202110296507 A CN202110296507 A CN 202110296507A CN 113094429 B CN113094429 B CN 113094429B
Authority
CN
China
Prior art keywords
data
proto
contract
format file
format
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
Application number
CN202110296507.6A
Other languages
English (en)
Other versions
CN113094429A (zh
Inventor
袁兴强
王志文
吴思进
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Fuzamei Technology Co Ltd
Original Assignee
Hangzhou Fuzamei Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Fuzamei Technology Co Ltd filed Critical Hangzhou Fuzamei Technology Co Ltd
Priority to CN202110296507.6A priority Critical patent/CN113094429B/zh
Publication of CN113094429A publication Critical patent/CN113094429A/zh
Application granted granted Critical
Publication of CN113094429B publication Critical patent/CN113094429B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种数据处理方法、数据查询方法、计算机设备和存储介质,该数据处理方法包括:获取第一合约所对应的第一proto格式文件;根据第一proto格式文件定义若干第一数据类型;根据第一合约的第一编程语言所对应的第一protoc工具对各第一数据类型进行编译,生成若干第二数据类型;根据各第二数据类型生成第一交易并发送至区块链网络,以供区块链节点通过第一合约执行第一交易,调用第一合约内配置的数据序列化方法对第一交易的执行结果进行序列化处理,生成第一数据并保存。本发明实现了在通过wasm虚拟机执行智能合约的区块链***中既不浪费存储空间、又支持高并发用户查询的技术效果。

Description

数据处理方法、数据查询方法、计算机设备和存储介质
技术领域
本申请涉及互联网技术领域,具体涉及一种数据处理方法、数据查询方法、计算机设备和存储介质。
背景技术
Web Assembly,简称wasm,是一种可移植、体积小、加载快并且兼容Web的全新格式。因为wasm支持多语言编译,因此已经被越来多地用于区块链的动态合约执行虚拟机,这样开发者可以用多种语言编写合约然后编译成wasm字节码并发布到区块链上,用户可以通过开放接口调用合约,并由wasm虚拟机执行合约。
在现有的通过wasm虚拟机执行区块链的智能合约的技术方案中,由于wasm支持多语言编译,区块链上会部署有通过不同编程语言开发的智能合约,例如,A合约是通过C语言开发的、B合约是通过Java开发的、C合约是通过Python开发的、D合约是通过Rust开发的,等等。各个合约在执行交易时,如果直接将交易执行结果以各种不同编程语言的格式分别存入区块链数据库,则用户查询数据时会面临数据解析的问题。因此,在现有的区块链***中,合约需要将交易执行结果转换为用户可读格式,例如json类型,再存入区块链数据库。当用户查询数据时,可以直接查询到可读格式的数据。
上述方案的问题在于,json等用户可读格式的数据相较于转换前的原生类型的数据,数据量要大几倍,需要占据好几倍的存储空间,从而导致大量浪费了区块链***的存储空间。
针对上述问题,本领域技术人员可以想到,在合约执行交易时,直接将原生类型的交易执行结果存入区块链数据库(而不转换为用户可读格式),并在用户查询时再加载相应的合约,将原生类型的数据转换为用户可读格式。然而该方案虽然可以解决上述浪费存储空间的问题,但也会引发新的问题:在每次用户查询时需要加载合约以解析数据,由于现有区块链***难以支撑高并发地加载合约,会导致无法支持高并发的用户查询。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种既不浪费区块链***的存储空间,又不影响***支持高并发用户查询的数据处理方法、数据查询方法、计算机设备和存储介质。
第一方面,本发明提供一种数据处理方法,区块链上配置有若干以wasm字节码的形式发布、通过wasm虚拟机执行的智能合约,各智能合约分别配置有一一对应的proto格式文件,智能合约内配置有根据相应的proto格式文件所定义的数据类型、数据序列化方法以及数据反序列化方法,该数据处理方法包括:
获取第一合约所对应的第一proto格式文件;
根据第一proto格式文件定义若干第一数据类型;
根据第一合约的第一编程语言所对应的第一protoc工具对各第一数据类型进行编译,生成若干第二数据类型;
根据各第二数据类型生成第一交易并发送至区块链网络,以供区块链节点通过第一合约执行第一交易,调用第一合约内配置的数据序列化方法对第一交易的执行结果进行序列化处理,生成第一数据并保存。
其中,第一数据用于供第一用户端获取后通过若干第三数据类型和根据第一proto格式文件所定义的数据反序列化方法进行解析以获得第二数据,将第二数据转换为用户可读格式的第三数据,以及,展示第三数据;各第三数据类型由第一用户端根据第二编程语言所对应的第二protoc工具对各第一数据类型进行编译所生成。
第二方面,本发明提供一种适用于区块链节点的数据处理方法,区块链上配置有若干以wasm字节码的形式发布、通过wasm虚拟机执行的智能合约,各智能合约分别配置有一一对应的proto格式文件,智能合约内配置有根据相应的proto格式文件所定义的数据类型、数据序列化方法以及数据反序列化方法,该数据处理方法包括:
通过第一合约执行第一交易,调用第一合约内配置的数据序列化方法对第一交易的执行结果进行序列化处理,生成第一数据并保存。
其中,第一交易由第一设备获取第一合约所对应的第一proto格式文件,根据第一proto格式文件定义若干第一数据类型,根据第一合约的第一编程语言所对应的第一protoc工具对各第一数据类型进行编译以生成若干第二数据类型后,根据各第二数据类型所生成;
第一数据用于供第一用户端获取后通过若干第三数据类型和根据第一proto格式文件所定义的数据反序列化方法进行解析以获得第二数据,将第二数据转换为用户可读格式的第三数据,以及,展示第三数据;各第三数据类型由第一用户端根据第二编程语言所对应的第二protoc工具对各第一数据类型进行编译所生成。
第三方面,本发明提供一种适用于用户端的数据查询方法,区块链上配置有若干以wasm字节码的形式发布、通过wasm虚拟机执行的智能合约,各智能合约分别配置有一一对应的proto格式文件,智能合约内配置有根据相应的proto格式文件所定义的数据类型、数据序列化方法以及数据反序列化方法,该数据查询方法包括:
获取区块链上存储的第一数据;其中,第一数据由区块链节点通过第一合约执行第一交易,调用第一合约内配置的数据序列化方法对第一交易的执行结果进行序列化处理所生成;第一交易由第一设备获取第一合约所对应的第一proto格式文件,根据第一proto格式文件定义若干第一数据类型,根据第一合约的第一编程语言所对应的第一protoc工具对各第一数据类型进行编译以生成若干第二数据类型后,根据各第二数据类型所生成;
获取第一proto格式文件;
根据第一proto格式文件定义各第一数据类型和数据反序列化方法;
根据第二编程语言所对应的第二protoc工具对各第一数据类型进行编译,生成若干第三数据类型;
通过各第三数据类型和根据第一proto格式文件所定义的数据反序列化方法对第一数据进行解析以获得第二数据;
将第二数据转换为用户可读格式的第三数据;
展示第三数据。
第四方面,本发明还提供一种计算机设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的方法。
第五方面,本发明还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的方法。
本发明诸多实施例提供的数据处理方法、数据查询方法、计算机设备和存储介质通过在智能合约中配置数据类型、数据序列化方法以及数据反序列化方法,同时配置对应于该智能合约、用于定义上述数据类型、数据序列化方法以及数据反序列化方法的proto格式文件,使得合约在执行交易时可以调用合约内配置的数据序列化方法将交易执行结果转化为体积很小的序列化数据并存入区块链数据库,避免了浪费存储空间;同时在用户查询数据时,由用户端在链下根据proto格式文件定义的数据反序列化方法对区块链数据库所存储的序列化数据进行解析,避免了因链上解析数据而导致不支持高并发用户查询的问题,最终在通过wasm虚拟机执行智能合约的区块链***中实现了既不浪费存储空间、又支持高并发用户查询的技术效果;
本发明一些实施例提供的数据处理方法、数据查询方法、计算机设备和存储介质进一步通过将proto格式文件存储在需要身份认证的中心化服务器上,进一步满足了保护链上数据隐私的业务需求。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本发明一实施例提供的一种数据处理方法的流程图。
图2为本发明一实施例提供的另一种数据处理方法的流程图。
图3为本发明一实施例提供的一种数据查询方法的流程图。
图4为本发明一实施例提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1为本发明一实施例提供的一种数据处理方法的流程图。
如图1所示,在本实施例中,本发明提供一种数据处理方法,区块链上配置有若干以wasm字节码的形式发布、通过wasm虚拟机执行的智能合约,各智能合约分别配置有一一对应的proto格式文件,智能合约内配置有根据相应的proto格式文件所定义的数据类型、数据序列化方法以及数据反序列化方法,该数据处理方法包括:
S11:获取第一合约所对应的第一proto格式文件;
S13:根据第一proto格式文件定义若干第一数据类型;
S15:根据第一合约的第一编程语言所对应的第一protoc工具对各第一数据类型进行编译,生成若干第二数据类型;
S17:根据各第二数据类型生成第一交易并发送至区块链网络,以供区块链节点通过第一合约执行第一交易,调用第一合约内配置的数据序列化方法对第一交易的执行结果进行序列化处理,生成第一数据并保存。
其中,第一数据用于供第一用户端获取后通过若干第三数据类型和根据第一proto格式文件所定义的数据反序列化方法进行解析以获得第二数据,将第二数据转换为用户可读格式的第三数据,以及,展示第三数据;各第三数据类型由第一用户端根据第二编程语言所对应的第二protoc工具对各第一数据类型进行编译所生成。
应当说明的是,上述图1所示的方法既可适用于区块链节点生成并发送交易,也可适用于用户端生成并发送交易。
本领域技术人员应当可以理解,protobuf是一种编程语言无关、平台无关、可扩展的序列化结构数据的方法。例如,开发者X使用protobuf定义了一种数据类型type1,则用户可以通过c语言对应的protoc工具(protoc)根据type1编译生成type1_c,也可以通过go语言对应的protoc工具(protoc-gen-go)根据type1编译生成type1_go,还可以直接将type1_c转换为type1_go或直接将type1_go转换为type1_c,等等。具体原理可参考protobuf的技术文档,本申请中不再赘述。
以下以区块链***通过Go语言开发(即,节点端和用户端都是通过Go语言开发的),A合约是通过C语言开发的、A合约对应的proto格式文件存储在区块链上,B合约是通过Java开发的、B合约对应的proto格式文件存储在中心化服务器上,区块链节点甲生成并发送一笔通过A合约执行的交易tx1,用户乙的用户端生成并发送一笔通过B合约执行的交易tx2,用户丙的用户端查询tx1的执行结果,用户丁的用户端查询tx2的执行结果为例,对上述数据处理方法进行示例性的阐述。
当区块链节点甲要生成一笔通过A合约执行的交易时:
在步骤S11中,节点甲从区块链数据库中获取A合约对应proto格式文件:Contract_A.proto;
在步骤S13中,节点甲根据Contract_A.proto定义若干数据类型,例如,定义了第一数据类型req_login;
在步骤S15中,节点甲根据A合约的编程语言C所对应的protoc工具(protoc)对第一数据类型req_login进行编译,生成第二数据类型req_login_c;
在步骤S17中,节点甲根据第二数据类型req_login_c生成交易tx1,将tx1发送至区块链网络中。
区块链节点接收、广播、打包并通过A合约执行tx1,调用A合约内配置的数据序列化方法对tx1的执行结果进行序列化处理,生成第一数据data1,将data1保存到区块链数据库中。
当用户丙要查询tx1的执行结果时,用户丙的用户端通过区块链浏览器或其它本领域常用的区块链查询方法获取到data1;
与此同时,用户丙的用户端还获取到执行tx1的合约(A合约)所对应的proto格式文件(Contract_A.proto);
获取到Contract_A.proto之后,用户丙的用户端首先同样根据Contract_A.proto定义上述第一数据类型req_login,并且还根据Contract_A.proto定义数据反序列化方法;
其次,根据该用户端的编程语言(Go)所对应的第二protoc工具(protoc-gen-go)对第一数据类型req_login进行编译,生成第三数据类型req_login_go;
再次,根据上述第三数据类型req_login_go和上述数据反序列化方法对data1进行解析,获得go语言类型的第二数据data2;
最后,将第二数据data2转换为用户可读格式(例如json等)的第三数据data3,并展示data3。
用户乙的用户端生成并发送一笔通过B合约执行的交易tx2、用户丁的用户端查询tx2的执行结果的过程与上述区块链节点甲生成并发送一笔通过A合约执行的交易tx1、用户丙的用户端查询tx1的执行结果的过程大致相同,区别之处在于:
在步骤S11中,用户乙的用户端需要向中心化服务器请求下载B合约对应的proto格式文件(Contract_B.proto);
而中心化服务器响应于用户乙的用户端的下载请求,对用户乙进行身份认证:
认证失败,则下载请求失败,用户乙的用户端无法获取到Contract_B.proto;
认证成功,则下载请求成功,该中心化服务器将Contract_B.proto返回给用户乙的用户端。
用户丁的用户端在向该中心化服务器请求下载Contract_B.proto时同样需要经过身份认证,若身份认证失败,则用户丁的用户端无法获取到Contract_B.proto,则用户丁的用户端无法将tx2的执行结果解析成用户可读格式,用户丁无法获知tx2的执行结果。
上述实施例以A合约对应的proto格式文件存储在区块链上、B合约对应的proto格式文件存储在用于对请求下载proto格式文件的用户进行身份认证的中心化服务器上为例,对图1所示的数据处理方法进行了示例性的阐述;在另一些实施例中,还可根据实际需求将各智能合约分别对应的各proto格式文件全都存储在区块链上,或,将各智能合约分别对应的各proto格式文件全都存储在用于对请求下载proto格式文件的用户进行身份认证的中心化服务器上,可实现相同的技术效果。
上述实施例通过在智能合约中配置数据类型、数据序列化方法以及数据反序列化方法,同时配置对应于该智能合约、用于定义上述数据类型、数据序列化方法以及数据反序列化方法的proto格式文件,使得合约在执行交易时可以调用合约内配置的数据序列化方法将交易执行结果转化为体积很小的序列化数据并存入区块链数据库,避免了浪费存储空间;同时在用户查询数据时,由用户端在链下根据proto格式文件定义的数据反序列化方法对区块链数据库所存储的序列化数据进行解析,避免了因链上解析数据而导致不支持高并发用户查询的问题,最终在通过wasm虚拟机执行智能合约的区块链***中实现了既不浪费存储空间、又支持高并发用户查询的技术效果;
并进一步通过将proto格式文件存储在需要身份认证的中心化服务器上,进一步满足了保护链上数据隐私的业务需求。
图2为本发明一实施例提供的另一种数据处理方法的流程图。图2所示的方法可配合图1所示的方法执行。
如图2所示,在本实施例中,本发明还提供一种适用于区块链节点的数据处理方法,区块链上配置有若干以wasm字节码的形式发布、通过wasm虚拟机执行的智能合约,各智能合约分别配置有一一对应的proto格式文件,智能合约内配置有根据相应的proto格式文件所定义的数据类型、数据序列化方法以及数据反序列化方法,该数据处理方法包括:
S21:通过第一合约执行第一交易,调用第一合约内配置的数据序列化方法对第一交易的执行结果进行序列化处理,生成第一数据并保存。
其中,第一交易由第一设备获取第一合约所对应的第一proto格式文件,根据第一proto格式文件定义若干第一数据类型,根据第一合约的第一编程语言所对应的第一protoc工具对各第一数据类型进行编译以生成若干第二数据类型后,根据各第二数据类型所生成;
第一数据用于供第一用户端获取后通过若干第三数据类型和根据第一proto格式文件所定义的数据反序列化方法进行解析以获得第二数据,将第二数据转换为用户可读格式的第三数据,以及,展示第三数据;各第三数据类型由第一用户端根据第二编程语言所对应的第二protoc工具对各第一数据类型进行编译所生成。
在一优选实施例中,各智能合约分别对应的各proto格式文件存储在区块链上。
在另一优选实施例中,各智能合约分别对应的各proto格式文件存储在中心化服务器上;该中心化服务器配置用于对请求获取proto格式文件的用户进行身份认证,并在身份认证成功时提供所请求的proto格式文件。
图2所示方法的数据处理原理可参照图1所示的方法,此处不再赘述。
图3为本发明一实施例提供的一种数据查询方法的流程图。图3所示的方法可配合图1-2所示的方法执行。
如图3所示,在本实施例中,本发明还提供一种适用于用户端的数据查询方法,区块链上配置有若干以wasm字节码的形式发布、通过wasm虚拟机执行的智能合约,各智能合约分别配置有一一对应的proto格式文件,智能合约内配置有根据相应的proto格式文件所定义的数据类型、数据序列化方法以及数据反序列化方法,该数据查询方法包括:
S31:获取区块链上存储的第一数据;其中,第一数据由区块链节点通过第一合约执行第一交易,调用第一合约内配置的数据序列化方法对第一交易的执行结果进行序列化处理所生成;第一交易由第一设备获取第一合约所对应的第一proto格式文件,根据第一proto格式文件定义若干第一数据类型,根据第一合约的第一编程语言所对应的第一protoc工具对各第一数据类型进行编译以生成若干第二数据类型后,根据各第二数据类型所生成;
S32:获取第一proto格式文件;
S33:根据第一proto格式文件定义各第一数据类型和数据反序列化方法;
S34:根据第二编程语言所对应的第二protoc工具对各第一数据类型进行编译,生成若干第三数据类型;
S35:通过各第三数据类型和根据第一proto格式文件所定义的数据反序列化方法对第一数据进行解析以获得第二数据;
S36:将第二数据转换为用户可读格式的第三数据;
S37:展示第三数据。
在一优选实施例中,各智能合约分别对应的各proto格式文件存储在区块链上。
在另一优选实施例中,各智能合约分别对应的各proto格式文件存储在中心化服务器上;该中心化服务器配置用于对请求获取proto格式文件的用户进行身份认证,并在身份认证成功时提供所请求的proto格式文件。
图3所示方法的数据处理原理同样可参照图1所示的方法,此处不再赘述。
图4为本发明一实施例提供的一种设备的结构示意图。
如图4所示,作为另一方面,本申请还提供了一种设备400,包括一个或多个中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM403中,还存储有设备400操作所需的各种程序和数据。CPU401、ROM402以及RAM403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本公开的实施例,上述任一实施例描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,计算机程序包含用于执行上述任一方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。
作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请提供的方法。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的***来实现,或者可以通过专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (11)

1.一种数据处理方法,其特征在于,区块链上配置有若干以wasm字节码的形式发布、通过wasm虚拟机执行的智能合约,各所述智能合约分别配置有一一对应的proto格式文件,所述智能合约内配置有根据相应的proto格式文件所定义的数据类型、数据序列化方法以及数据反序列化方法,所述数据处理方法包括:
获取第一合约所对应的第一proto格式文件;
根据所述第一proto格式文件定义若干第一数据类型;
根据所述第一合约的第一编程语言所对应的第一protoc工具对各所述第一数据类型进行编译,生成若干第二数据类型;
根据各所述第二数据类型生成第一交易并发送至区块链网络,以供区块链节点通过所述第一合约执行所述第一交易,调用所述第一合约内配置的数据序列化方法对所述第一交易的执行结果进行序列化处理,生成第一数据并保存;
其中,所述第一数据用于供第一用户端获取后通过若干第三数据类型和根据所述第一proto格式文件所定义的数据反序列化方法进行解析以获得第二数据,将所述第二数据转换为用户可读格式的第三数据,以及,展示所述第三数据;各所述第三数据类型由所述第一用户端根据所述第一用户端的第二编程语言所对应的第二protoc工具对各所述第一数据类型进行编译所生成。
2.根据权利要求1所述的方法,其特征在于,各所述智能合约分别对应的各proto格式文件存储在所述区块链上。
3.根据权利要求1所述的方法,其特征在于,各所述智能合约分别对应的各proto格式文件存储在中心化服务器上;
所述中心化服务器配置用于对请求获取proto格式文件的用户进行身份认证,并在身份认证成功时提供所请求的proto格式文件。
4.一种数据处理方法,其特征在于,区块链上配置有若干以wasm字节码的形式发布、通过wasm虚拟机执行的智能合约,各所述智能合约分别配置有一一对应的proto格式文件,所述智能合约内配置有根据相应的proto格式文件所定义的数据类型、数据序列化方法以及数据反序列化方法,所述数据处理方法适用于区块链节点,所述数据处理方法包括:
通过第一合约执行第一交易,调用所述第一合约内配置的数据序列化方法对所述第一交易的执行结果进行序列化处理,生成第一数据并保存;
其中,所述第一交易由第一设备获取所述第一合约所对应的第一proto格式文件,根据所述第一proto格式文件定义若干第一数据类型,根据所述第一合约的第一编程语言所对应的第一protoc工具对各所述第一数据类型进行编译以生成若干第二数据类型后,根据各所述第二数据类型所生成;
所述第一数据用于供第一用户端获取后通过若干第三数据类型和根据所述第一proto格式文件所定义的数据反序列化方法进行解析以获得第二数据,将所述第二数据转换为用户可读格式的第三数据,以及,展示所述第三数据;各所述第三数据类型由所述第一用户端根据所述第一用户端的第二编程语言所对应的第二protoc工具对各所述第一数据类型进行编译所生成。
5.根据权利要求4所述的方法,其特征在于,各所述智能合约分别对应的各proto格式文件存储在所述区块链上。
6.根据权利要求4所述的方法,其特征在于,各所述智能合约分别对应的各proto格式文件存储在中心化服务器上;
所述中心化服务器配置用于对请求获取proto格式文件的用户进行身份认证,并在身份认证成功时提供所请求的proto格式文件。
7.一种数据查询方法,其特征在于,区块链上配置有若干以wasm字节码的形式发布、通过wasm虚拟机执行的智能合约,各所述智能合约分别配置有一一对应的proto格式文件,所述智能合约内配置有根据相应的proto格式文件所定义的数据类型、数据序列化方法以及数据反序列化方法,所述数据查询方法适用于用户端,所述数据查询方法包括:
获取区块链上存储的第一数据;其中,所述第一数据由区块链节点通过第一合约执行第一交易,调用所述第一合约内配置的数据序列化方法对所述第一交易的执行结果进行序列化处理所生成;所述第一交易由第一设备获取所述第一合约所对应的第一proto格式文件,根据所述第一proto格式文件定义若干第一数据类型,根据所述第一合约的第一编程语言所对应的第一protoc工具对各所述第一数据类型进行编译以生成若干第二数据类型后,根据各所述第二数据类型所生成;
获取所述第一proto格式文件;
根据所述第一proto格式文件定义各所述第一数据类型和数据反序列化方法;
根据当前用户端的第二编程语言所对应的第二protoc工具对各所述第一数据类型进行编译,生成若干第三数据类型;
通过各所述第三数据类型和根据所述第一proto格式文件所定义的数据反序列化方法对所述第一数据进行解析以获得第二数据;
将所述第二数据转换为用户可读格式的第三数据;
展示所述第三数据。
8.根据权利要求7所述的方法,其特征在于,各所述智能合约分别对应的各proto格式文件存储在所述区块链上。
9.根据权利要求7所述的方法,其特征在于,各所述智能合约分别对应的各proto格式文件存储在中心化服务器上;
所述中心化服务器配置用于对请求获取proto格式文件的用户进行身份认证,并在身份认证成功时提供所请求的proto格式文件。
10.一种计算机设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-9中任一项所述的方法。
11.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一项所述的方法。
CN202110296507.6A 2021-03-19 2021-03-19 数据处理方法、数据查询方法、计算机设备和存储介质 Active CN113094429B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110296507.6A CN113094429B (zh) 2021-03-19 2021-03-19 数据处理方法、数据查询方法、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110296507.6A CN113094429B (zh) 2021-03-19 2021-03-19 数据处理方法、数据查询方法、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN113094429A CN113094429A (zh) 2021-07-09
CN113094429B true CN113094429B (zh) 2022-05-24

Family

ID=76668457

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110296507.6A Active CN113094429B (zh) 2021-03-19 2021-03-19 数据处理方法、数据查询方法、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN113094429B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114268620A (zh) * 2021-12-13 2022-04-01 深圳供电局有限公司 一种用于物联网智能设备的数据压缩传输方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110609679A (zh) * 2019-09-17 2019-12-24 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机可读存储介质和计算机设备
CN111124551A (zh) * 2019-11-22 2020-05-08 矩阵元技术(深圳)有限公司 数据序列化、数据反序列化方法、装置和计算机设备
CN111369237A (zh) * 2020-02-28 2020-07-03 腾讯科技(深圳)有限公司 一种数据处理方法、装置及计算机存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11038771B2 (en) * 2019-04-26 2021-06-15 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing a metadata driven rules engine on blockchain using distributed ledger technology (DLT)

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110609679A (zh) * 2019-09-17 2019-12-24 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机可读存储介质和计算机设备
CN111124551A (zh) * 2019-11-22 2020-05-08 矩阵元技术(深圳)有限公司 数据序列化、数据反序列化方法、装置和计算机设备
CN111369237A (zh) * 2020-02-28 2020-07-03 腾讯科技(深圳)有限公司 一种数据处理方法、装置及计算机存储介质

Also Published As

Publication number Publication date
CN113094429A (zh) 2021-07-09

Similar Documents

Publication Publication Date Title
CN101216838B (zh) 基于web标记的xml界面配置文件分发***及方法
CN105872083A (zh) 一种支持不同类型客户端访问服务器的方法、服务器及***
US20040003388A1 (en) Preparation of a software configuration using an XML type programming language
US20060200748A1 (en) System and method for applying workflow of generic services' to component based applications for devices
CN110865889B (zh) 组件间传递事件的方法和装置
CN110308999B (zh) 一种应用间动态共享依赖包的方法、存储介质及移动终端
CN111625585B (zh) 硬件加速数据库的访问方法、装置、主机及存储介质
CN105068802B (zh) 一种跨设备运行的Web应用软件实现***和方法
CA2538561C (en) System and method for conversion of web services applications into component based applications for devices
CN111125064A (zh) 一种生成数据库模式定义语句的方法和装置
CN113094429B (zh) 数据处理方法、数据查询方法、计算机设备和存储介质
CN110928545B (zh) 组件分发方法、单页应用的开发方法、装置及存储介质
Pedratscher et al. M2FaaS: Transparent and fault tolerant FaaSification of Node. js monolith code blocks
WO2019043462A1 (en) SYSTEMS AND METHODS FOR CREATING AUTOMATED INTERFACE TRANSMISSION BETWEEN HETEROGENEOUS SYSTEMS IN A BUSINESS ECOSYSTEM
CN113835842A (zh) 同时支持单体架构和微服务架构的服务设计方法和***
US9690577B1 (en) Legacy applications as web services
CN110888794A (zh) 接口测试方法和装置
CN110764769B (zh) 处理用户请求的方法和装置
CN109240673B (zh) 一种基于react-native的视图动态加载更新方法及***
CN114301970B (zh) 服务调用方法、装置、电子设备及存储介质
CN110825622A (zh) 软件测试方法、装置、设备和计算机可读介质
CN115061678A (zh) 一种基于浏览器代理服务的代码编译方法及客户端
US8943476B2 (en) System and method to in-line script dependencies
CN114064176A (zh) 一种视图交互方法、装置、电子设备及计算机可读介质
US20090222471A1 (en) Database exploration for building wireless component applications

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