CN112765269B - 数据处理方法、装置、设备和存储介质 - Google Patents
数据处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN112765269B CN112765269B CN202011636134.4A CN202011636134A CN112765269B CN 112765269 B CN112765269 B CN 112765269B CN 202011636134 A CN202011636134 A CN 202011636134A CN 112765269 B CN112765269 B CN 112765269B
- Authority
- CN
- China
- Prior art keywords
- data
- key
- value
- value pair
- target
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
Abstract
本申请公开了一种数据处理方法、装置、设备和存储介质,该方法包括获取目标处理指令,其中,目标处理指令中携带有目标键值对,以及针对目标键值对的指令信息,目标键值对包括值数据;根据指令信息和值数据的类型,在键值对数据集合和区块链账本中分别对目标键值对进行处理,以完成目标键值对的数据处理。本申请根据目标键值对的值类型以及目标处理指令的指令信息,分别在智能合约的键值对数据集合以及区块链账本中对目标键值对进行处理,只需要对目标键值对单独进行处理,不用考虑智能合约和区块链账本中的其他数据,提高了智能合约中映射结构的使用效率和数据交互效率,节约了可用资源。
Description
技术领域
本申请涉及区块链技术领域,具体涉及一种数据处理方法、装置、设备和存储介质。
背景技术
区块链技术,是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,并且信息不可伪造和篡改。智能合约是一种可以在区块链网络环境中部署和执行的一段代码,这段代码的部署以及执行都是可以在区块链网络中以交易的形式呈现的,其部署和执行结果可以随着交易被全网共识。
目前,Java智能合约与区块链账本之间存在诸多数据交互,Java智能合约中交易的数据往往需要存入区块链账本中,但是由于区块链账本所采用的数据存储结构是无关系的键值对的形式,而Java智能合约中交易的数据往往是通过关系型的对象或者Java集合类型来保存的,因此,Java智能合约往往将交易数据对应的Java对象序列化后,存入区块链账本的键值对数据库中,其中键为Java对象的名称,值为Java对象的序列化结果。但是,由于Java集合在内存运行,使用集合中的数据时,需要将Java集合中的全部数据从区块链账本加载到内存中;集合中的数据有修改时,需要将集合中所有数据全部保存到区块链账本,这种区块链账本与Java智能合约之间的数据交互方法不仅低效,并且还造成了资源的浪费。
现有技术中,可以通过超地图HyperMap将键值对分开存入到区块链账本中,在调用一部分键值对时,不再将全部键值对加载到内存中,但是这种方式由于没有考虑到嵌套映射的情况,在键值对的值是映射结构的情况下,同样会将值全部加载到内存,导致数据交互效率低,且浪费可用资源。
发明内容
本申请提供一种数据处理方法、装置、设备和存储介质,旨在解决现有智能合约与区块链账本交互时,在键值对的值是映射结构的情况下,会将值全部加载到内存,导致数据交互效率低,且浪费可用资源的技术问题。
第一方面,本申请提供一种数据处理方法,应用于区块链平台,区块链平台上部署有智能合约,以及与智能合约通信连接的区块链账本,智能合约包括键值对数据集合,方法包括:
获取目标处理指令,其中,目标处理指令中携带有目标键值对,以及针对目标键值对的指令信息,目标键值对包括值数据;
根据指令信息和值数据的类型,在键值对数据集合和区块链账本中分别对目标键值对进行处理,以完成目标键值对的数据处理。
在本申请一种可能的实现方式中,目标键值对还包括与值数据相互映射的键数据,指令信息为插入目标键值对,根据指令信息和值数据的类型,在键值对数据集合和区块链账本中分别对目标键值对进行处理,包括:
根据指令信息,将目标键值对插入键值对数据集合中;
根据值数据的类型,调用预设的处理方式对值数据进行处理,得到第一值数据;
根据键数据得到与第一值数据相互映射的第一键数据;
将第一键数据和第一值数据插入到区块链账本中。
在本申请一种可能的实现方式中,根据键数据得到与第一值数据相互映射的第一键数据,包括:对键数据进行哈希运算,得到第一键数据。
在本申请一种可能的实现方式中,值数据的类型包括嵌套类型和非嵌套类型,处理方式包括第一处理方式和第二处理方式,根据值数据的类型,调用预设的处理方式对值数据进行处理,得到第一值数据,包括:
若值数据的类型为嵌套类型,则调用第一处理方式对值数据进行处理,得到第一值数据,其中,第一值数据为值数据的名称属性;
若值数据的类型为非嵌套类型,则调用第二处理方式对值数据进行处理,得到第一值数据。
在本申请一种可能的实现方式中,第一处理方式包括:根据值数据,获取值数据的名称属性;第二处理方式包括:对值数据进行序列化处理,得到第一值数据。
在本申请一种可能的实现方式中,指令信息为删除目标键值对,根据指令信息和值数据的类型,在键值对数据集合和区块链账本中分别对目标键值对进行处理,包括:
若值数据的类型为嵌套类型,则根据值数据的名称属性,得到多级集合对象,其中,多级集合对象包括键值对数据集合中的多个第二键数据;
根据指令信息删除键值对数据集合中的多个第二键数据,以及区块链账本中与值数据相互映射的键数据。
在本申请一种可能的实现方式中,方法还包括:
调用智能合约向区块链账本发送第三键数据;
调用区块链账本,根据第三键数据查找区块链账本中是否存在与第三键数据相互映射的第三值数据;
若区块链账本中存在与第三键数据相互映射的第三值数据,则根据第三值数据的类型,对第三值数据进行数据处理,得到查询结果,并发送至智能合约。
第二方面,本申请还提供一种数据处理装置,应用于区块链平台,区块链平台上部署有智能合约,以及与智能合约通信连接的区块链账本,智能合约包括键值对数据集合,装置包括:
获取模块,用于获取目标处理指令,其中,目标处理指令中携带有目标键值对,以及针对目标键值对的指令信息,目标键值对包括值数据;
处理模块,用于根据指令信息和值数据的类型,在键值对数据集合和区块链账本中分别对目标键值对进行处理,以完成目标键值对的数据处理。
在本申请一种可能的实现方式中,目标键值对还包括与值数据相互映射的键数据,指令信息为插入目标键值对,处理模块具体用于:
根据指令信息,将目标键值对插入键值对数据集合中;
根据值数据的类型,调用预设的处理方式对值数据进行处理,得到第一值数据;
根据键数据得到与第一值数据相互映射的第一键数据;
将第一键数据和第一值数据插入到区块链账本中。
在本申请一种可能的实现方式中,处理模块具体还用于:
对键数据进行哈希运算,得到第一键数据。
在本申请一种可能的实现方式中,值数据的类型包括嵌套类型和非嵌套类型,处理方式包括第一处理方式和第二处理方式,处理模块具体还用于:
若值数据的类型为嵌套类型,则调用第一处理方式对值数据进行处理,得到第一值数据,其中,第一值数据为值数据的名称属性;
若值数据的类型为非嵌套类型,则调用第二处理方式对值数据进行处理,得到第一值数据。
在本申请一种可能的实现方式中,处理模块具体还用于:
根据值数据,获取值数据的名称属性;
对值数据进行序列化处理,得到第一值数据。
在本申请一种可能的实现方式中,指令信息为删除目标键值对,处理模块具体还用于:
若调用智能合约向区块链账本发送第三键数据;
调用区块链账本,根据第三键数据查找区块链账本中是否存在与第三键数据相互映射的第三值数据;
若区块链账本中存在与第三键数据相互映射的第三值数据,则根据第三值数据的类型,对第三值数据进行数据处理,得到查询结果,并发送至智能合约。
第三方面,本申请还提供一种数据处理设备,包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序,其中一个或多个应用程序被存储于存储器中,并配置为由处理器执行以实现第一方面的数据处理方法。
第四方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器进行加载,以执行第一方面的数据处理方法中的步骤。
本申请中,根据目标键值对的值类型以及目标处理指令的指令信息,分别在智能合约的键值对数据集合以及区块链账本中对目标键值对进行处理,本申请只需要对目标键值对单独进行处理,不用考虑智能合约和区块链账本中的其他数据,例如,当要向智能合约的键值对数据集合和区块链账本中插入数据时,只需要对目标键值对单独进行处理,相比于现有技术中将集合中所有数据全部保存到区块链账本来说,提高了智能合约中映射结构的使用效率;另外,由于键值对单独存入区块链账本中,当需要从区块链账本读取键值对时,也只需要单条读取相应的键值对,相比于现有技术将区块链账本的所有数据加载到内存中来说,进一步提高了数据交互效率和读写效率,节约了可用资源。
附图说明
为了更清楚地说明本申请中的技术方案,下面将对本申请描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请中提供的数据处理系统的一个实施例场景示意图;
图2是本申请中提供的数据处理方法的一个实施例流程示意图;
图3是本申请中插入目标键值对的一个实施例流程示意图;
图4是本申请中删除目标键值对的一个实施例流程示意图;
图5是本申请中查找区块链账本中的数据的一个实施例流程示意图;
图6是本申请中提供的数据处理装置的一个实施例结构示意图;
图7是本申请中提供的数据处理设备的一个实施例结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本申请中,“示例性”一词用来表示“用作例子、例证或说明”。本申请中被描述为“示例性”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本申请,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本申请。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本申请的描述变得晦涩。因此,本申请并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。
本申请提供一种数据处理方法、装置、设备和存储介质,以下分别进行详细说明。
请参阅图1,图1为本申请实施例所提供的数据处理系统的一个结构示意图,该数据处理系统可以包括区块链平台100以及与区块链平台100通信连接的终端设备200,该区块链平台100上部署有智能合约、以及与智能合约通信连接进行数据交互的区块链账本,该智能合约包括键值对数据集合,该键值对数据集合可以实现Java领域软件开发工具包(Java Development Kit,JDK)中的java.util工具包所具有的映射Map接口,用户可以通过该Map接口对键值对数据集合以及区块链账本中的数据进行相应处理。
本申请中,该区块链平台100可以是基于多链架构的区块链平台,也可以是基于历史证明的高性能底层区块链协议的区块链平台,例如,本申请中所描述的区块链平台100,其包括但不限于波卡Polkadot区块链平台、常春藤哈希图Hedera Hashgraph区块链平台、蒂凡尼Dfinity区块链平台或索拉纳Solana区块链平台。
本申请中,区块链平台100与终端设备200之间可以通过任何通信方式实现网络通信,包括但不限于,基于第三代合作伙伴计划(3rd Generation Partnership Project,3GPP)、长期演进(Long Term Evolution,LTE)、全球互通微波访问(WorldwideInteroperability for Microwave Access,WiMAX)的移动通信,或基于TCP/IP协议族(TCP/IP Protocol Suite,TCP/IP)、用户数据报协议(User Datagram Protocol,UDP)的计算机网络通信等。终端设备200可以通过上述通信方式向区块链平台100上传目标处理指令,来触发区块链平台100对目标键值对进行相应处理。
本申请中,上述的终端设备200可以是一个通用的计算机设备或者是一个专用计算机设备。在具体实现中终端设备200可以是掌上电脑、个人数字助理(Personal DigitalAssistant,PDA)、移动手机、平板电脑、无线终端设备等,本申请不限定上述终端设备200的类型。
本领域技术人员可以理解,图1中示出的应用环境,仅仅是与本申请方案适配的一种应用场景,并不构成对本申请方案应用场景的限定,其他的应用场景还可以包括比图1中所示更多或更少的终端设备200,例如图1中仅示出2个终端设备200,可以理解的,该数据处理系统还可以包括与区块链平台100通信连接的其他终端设备,具体此处不作限定。
需要说明的是,图1所示的数据处理系统的场景示意图仅仅是一个示例,本申请描述的数据处理系统以及场景是为了更加清楚的说明本申请的技术方案,并不构成对于本申请提供的技术方案的限定,本领域普通技术人员可知,随着数据处理系统的演变和新业务场景的出现,本申请提供的技术方案对于类似的技术问题,同样适用。
首先,本申请提供一种数据处理方法,该数据处理方法应用于区块链平台,该区块链平台位于数据处理系统,区块链平台上部署有智能合约,以及与智能合约通信连接的区块链账本,智能合约包括键值对数据集合,数据处理方法包括:获取目标处理指令,其中,目标处理指令中携带有目标键值对,以及针对目标键值对的指令信息,目标键值对包括值数据;根据指令信息和值数据的类型,在键值对数据集合和区块链账本中分别对目标键值对进行处理,以完成目标键值对的数据处理。
如图2所示,为本申请中提供的数据处理方法的一个实施例流程示意图。需要说明的是,虽然在流程示意图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。该数据处理方法应用于区块链平台,区块链平台上部署有智能合约,以及与智能合约通信连接的区块链账本,智能合约包括键值对数据集合,该数据处理方法包括:
S201、获取目标处理指令,其中,目标处理指令中携带有目标键值对,以及针对目标键值对的指令信息,目标键值对包括值数据。
本申请实施例中,区块链平台获取目标处理指令的方式可以是主动获取,例如,终端设备上传目标处理指令到存储器中,区块链平台通过定期访问存储器,若该存储器中存在新的目标处理指令,区块链平台便可以主动获取到该新的目标处理指令;另外,区块链平台获取目标处理指令的方式,也可以是被动从获取,例如,用户想要在智能合约和区块链账本中插入数据或者删除数据,则通过终端设备向区块链平台上传相应的目标处理指令,以通过区块链平台对智能合约和区块链账本进行相应的数据处理。
另外,本申请实施例中智能合约的键值对数据集合可以实现Java领域软件开发工具包(Java Development Kit,JDK)中的java.util工具包所具有的映射Map接口,由于对Map接口的使用和普通的Java映射相似,因此,减轻了使用者的学习成本。因此,用户可以通过该Map接口对键值对数据集合执行不同的数据操作,例如,指令信息可以是向键值对数据集合插入数据,也可以是从键值对数据集合中删除数据等。目标键值对可以包括相互映射的键数据和值数据,映射即为键数据和值数据之间存在一一对应的相互对应关系,一个键数据对应一个值数据,反之亦然。
例如,目标处理指令(如“ZL01”)中携带的目标键值对为(K1,V1),其中,K1为键数据,V1为值数据,键数据K1和值数据V1之间存在一一对应的关系。
S202、根据指令信息和值数据的类型,在键值对数据集合和区块链账本中分别对目标键值对进行处理,以完成目标键值对的数据处理。
由于对键值对数据集合进行数据操作可以是向其插入数据,即插入目标键值对,也可以是从其中删除数据,即删除目标键值对,因此,本申请实施例中,目标处理指令的指令信息可以是删除目标键值对,也可以是插入目标键值对。而Java领域中,由于映射关系可以是非嵌套映射,也可以是嵌套映射,其中,非嵌套映射即为值数据为一个明确的对象或值,而嵌套映射则表示值数据并非一个明确的对象或值,而同样也是一个映射的情况,例如,非嵌套映射的情况下,值数据V1为一个明确的值,目标键值对可以表示为(K1,V1),而嵌套映射的情况下,值数据V1为又一个映射(如“K2-V2”),则目标键值对可以表示为(K1,(K2,V2)),其中,K1为键数据,(K2,V2)为值数据,若V2同样的还是一个映射(如“K3-V3”),则目标键值对可以表示为(K1,(K2,(K3,V3))),其中,K1为键数据,(K2,(K3,V3))为值数据,以此类推,可以多级嵌套映射下去。
例如,目标处理指令“ZL01”的指令信息为01,表示插入目标键值对(K1,V1),而目标键值对(K1,V1)的值数据V1的类型为嵌套类型,且值数据V1表示映射(K2,V2),则目标键值对(K1,V1)可以表示为键值对(K1,(K2,V2)),则在键值对数据集合中插入该对键值对(K1,(K2,V2)),同时在区块链账本中也相应的插入与该键值对(K1,(K2,V2))相应的键值对数据,以保证智能合约执行的原子性。
例如,如果在一份Java智能合约中,要存储的数据为一个年级所有学生的考试成绩。其中该年级有10个班,每个班有60个学生,则其映射关系为:班级=>学生姓名=>成绩。
在该场景下,使用JDK原生的映射结构,会将总共600个学生的成绩信息一并存入区块链账本中,在账本里面对应只存有一条数据。每次读写其中某个学生的成绩,会将600个学生的成绩全部从账本读取到内存,然后进行读写操作。
若使用现有技术中的超地图HyperMap,会将每个班级的学生成绩分别存入区块链账本中,在账本里面对应存有10条数据,每条数据包含一个班的班级名称和60个学生的信息。每次读写其中某个学生的成绩,会将该学生所对应班级的班级名称和60个学生的成绩全部从账本读取到内存,然后进行读写操作。
而通过本申请实施例的方法,会将每个学生成绩分别存入账本中,在账本里面对应存有610条数据,其中600条分别为每个学生的成绩信息,10条为班级的名称信息。每次读写其中某个学生的成绩时,只需要将该学生的成绩信息及其所在班级的名称信息数据读取到内存,然后进行读写操作。
本申请实施例中,根据目标键值对的值类型以及目标处理指令的指令信息,分别在智能合约的键值对数据集合以及区块链账本中对目标键值对进行处理,本申请只需要对目标键值对单独进行处理,不用考虑智能合约和区块链账本中的其他数据,例如,当要向智能合约的键值对数据集合和区块链账本中插入数据时,只需要对目标键值对单独进行处理,相比于现有技术中将集合中所有数据全部保存到区块链账本来说,提高了智能合约中映射结构的使用效率;另外,由于键值对单独存入区块链账本中,当需要从区块链账本读取键值对时,也只需要单条读取相应的键值对,相比于现有技术将区块链账本的所有数据加载到内存中来说,进一步提高了数据交互效率,节约了可用资源。
在本申请一些实施例中,字段类型可以包括非引用类型和引用类型,编码方法可以包括第一编码方法和第二编码方法,多个子字节流中可以包括第一子字节流和第二子字节流,根据智能合约对象各字段的字段类型,调用预设的编码方法,对智能合约对象各字段分别进行序列化处理,得到对应的多个子字节流,可以进一步包括:
若字段的字段类型为非引用类型,则调用第一编码方法对字段进行序列化处理,得到第一子字节流。
如图3所示,为本申请中插入目标键值对的一个实施例流程示意图,本申请实施例中,目标键值对还包括与值数据相互映射的键数据,指令信息为插入目标键值对,根据指令信息和值数据的类型,在键值对数据集合和区块链账本中分别对目标键值对进行处理,可以进一步包括:
S301、根据指令信息,将目标键值对插入键值对数据集合中。
本申请实施例中,指令信息为向智能合约的键值对数据集合插入目标键值对,则可以直接将目标键值对插入到键值对数据集合中,具体的插入方式,可以参考现有的Java领域中插入数据的方式。例如,目标处理指令“ZL01”的指令信息为01,表示插入目标键值对(K1,V1),则向键值对数据集合中插入目标键值对(K1,V1),另外,插入的位置可以是将目标键值对(K1,V1)插入到键值对数据集合中的原有数据的最前端,也可以是将目标键值对(K1,V1)插入到键值对数据集合中的原有数据的最末端,还可以是将目标键值对(K1,V1)插入到键值对数据集合中的原有数据的中间位置,插入位置可以根据实际应用场景进行选择,具体此处不做限定。
S302、根据值数据的类型,调用预设的处理方式对值数据进行处理,得到第一值数据。
本申请实施例中,值数据的类型可以包括嵌套类型和非嵌套类型,即S202中的嵌套映射和非嵌套映射,处理方式可以包括第一处理方式和第二处理方式,根据值数据的类型,调用预设的处理方式对值数据进行处理,得到第一值数据,具体的,可以是:
若值数据的类型为嵌套类型,则调用第一处理方式对值数据进行处理,得到第一值数据,其中,第一值数据为值数据的名称属性。
本申请实施例中,第一处理方式用于对嵌套类型的值数据进行处理,具体的,第一处理方式可以是根据值数据获取该值数据的名称属性,以该值数据的名称属性作为插入区块链账本的值,即第一值数据。
例如,目标键值对(K1,V1)的值数据V1的类型为嵌套类型,且值数据V1表示映射(K2,V2),值数据V1的名称属性为NAME,则第一值数据为NAME。
若值数据的类型为非嵌套类型,则调用第二处理方式对值数据进行处理,得到第一值数据。
本申请实施例中,第二处理方式用于对非嵌套类型的值数据进行处理,具体的,第二处理方式可以为对值数据进行序列化处理,本申请中,可以采用现有的Java序列化工具对值数据进行序列化处理,使其转换为相应的字节序列,该字节序列可以包括该值数据、值数据的类型和值数据中存储的数据的类型。针对于非嵌套类型的值数据来说,其对应的第一值数据则可以是其对应的字节序列。
例如,目标键值对(K1,V1)的值数据V1的类型为非嵌套类型,则可以采用现有的序列化工具对值数据V1进行序列化处理,得到的字节序列即第一值数据为“V10x40”。
S303、根据键数据得到与第一值数据相互映射的第一键数据。
本申请实施例中,第一键数据可以是对键数据进行哈希运算所得到的,哈希运算可以将任意长度的消息M映射为一个长度较短且长度固定的值H(M),其中哈希运算可以采用现有的任一哈希算法,例如MD5消息摘要算法(MD5Message-Digest Algorithm)和安全散列算法(Secure Hash Algorithm,SHA)等。例如,针对于目标键值对(K1,V1)的键数据K1,采用安全散列算法对其进行哈希运算,得到第一键数据(如“K1-1”),而该第一键数据“K1-1”应当与第一值数据之间存在映射关系,即该第一键数据“K1-1”与S302中的第一值数据(如“NAME”)可以构成键值对(K1-1,NAME)。
S304、将第一键数据和第一值数据插入到区块链账本中。
由于第一键数据和第一值数据之间存在映射关系,则可以将第一键数据和第一值数据构成的键值对插入到区块链账本的缓存数据或者直接插入到区块链账本中,以保证智能合约执行的原子性。
如图4所示,为本申请中删除目标键值对的一个实施例流程示意图,指令信息为删除目标键值对,根据指令信息和值数据的类型,在键值对数据集合和区块链账本中分别对目标键值对进行处理,可以进一步包括:
S401、若值数据的类型为嵌套类型,则根据值数据的名称属性,得到多级集合对象,其中,多级集合对象包括键值对数据集合中的多个第二键数据。
本申请实施例中,对于类型为嵌套类型的值数据,可以根据值数据的名称属性构造多级集合对象,且该多级集合对象中可以包括键值对数据集合中的多个第二键数据,例如,目标键值对的值数据V1为嵌套类型,其名称属性为NAME,则根据该名称属性NAME构造多级集合对象(如“X”),该多级集合对象X中可以包括键值对数据集合中的4个第二键数据,如第二键数据K11、第二键数据K12、第二键数据K15和第二键数据K18。
S402、根据指令信息删除键值对数据集合中的多个第二键数据,以及区块链账本中与值数据相互映射的键数据。
由于目标键值对的值数据的类型为嵌套类型,而指令信息为删除目标键值对,则可以根据目标键值对的嵌套关系,递归地删除键值对数据集合中的多个第二键数据,例如,目标处理指令“ZL01”的指令信息为02,表示删除目标键值对(K1,V1),而目标键值对(K1,V1)的值数据V1的类型为嵌套类型,且值数据V1的名称属性为NAME,并且目标键值对的嵌套关系可以表示为(K1,(K11,(K12,(K15,(K18,V18))))),根据该名称属性NAME构造的多级集合对象为X,则该多级集合对象X中依次包括第二键数据K11、第二键数据K12、第二键数据K15和第二键数据K18,则根据指令信息递归地依次删除键值对数据集合中的第二键数据K11、第二键数据K12、第二键数据K15和第二键数据K18,并且同步删除区块链账本中与该值数据V1的名称属性NAME相互映射的键数据。
本申请实施例中,若值数据的类型为非嵌套类型,则可以直接在键值对数据集合和区块链账本中查找与目标键值对相同的键值对,然后删除键值对数据集合和区块链账本中与目标键值对相同的键值对,另外,在删除区块链账本中的目标键值对时,可以先将其存入到账本缓存中,然后当智能合约执行完毕之后,再将账本缓存中的所有数据进行删除。
如图5所示,为本申请中查找区块链账本中的数据的一个实施例流程示意图,方法可以进一步包括:
S501、调用智能合约向区块链账本发送第三键数据。
本申请实施例中,当需要查询或者调用区块链账本中记录地数据时,可以通过智能合约向区块链账本发送所要查询的数据的第三键数据,此处的第三键数据可以是上述实施例S303中记载的第一键数据,即智能合约向区块链账本发送的第三键数据可以是对所要查询的键值对的键数据进行哈希运算所得到的。
例如,要查询的键值对为(K0,V0),其中,K0为键数据,V0为值数据,则首先通过哈希运算对键数据K0进行处理,得到对应的第三键数据K0-0,然后通过智能合约将第三键数据K0-0发送至区块链账本。
S502、调用区块链账本,根据第三键数据查找区块链账本中是否存在与第三键数据相互映射的第三值数据。
本申请实施例中,根据S304可以知道,在向区块链账本插入数据时,是将第一键数据和第一值数据构成的键值对插入到区块链账本的缓存数据或者直接插入到区块链账本中,其中,第一键数据是对目标键值对的键数据进行哈希运算得到的,而根据S501,第三键数据同样是对所要查询的键值对的键数据进行哈希运算所得到的,因此,区块链账本接收到第三键数据后,可以根据接收到的该第三键数据在区块链账本中查找是否存在与该第三键数据相互映射的值数据。
S503、若区块链账本中存在与第三键数据相互映射的第三值数据,则根据第三值数据的类型,对第三值数据进行数据处理,得到查询结果,并发送至智能合约。
若区块链账本中不存在与该第三键数据映射的第三值数据,则返回查询结果为空,若区块链账本中存在与该第三键数据相互映射的第三值数据,则可以根据第三值数据的类型,对第三值数据进行数据处理,得到查询结果,具体的,根据S302,若值数据的类型为嵌套类型,其对应的第一值数据为值数据的名称属性,若值数据的类型为非嵌套类型,则其对应的第一值数据为序列化处理后,所转换得相应的字节序列,因此,第三值数据的类型可以是名称属性,也可以是字节序列,若第三值数据的类型是名称属性,则可以知道其对应的值数据为嵌套类型,便可以通过该名称属性构造对应的多级集合对象,得到相应的查询结果;若第三值数据的类型是字节序列,则可以知道其对应的值数据为非嵌套类型,则可以直接对该字节序列进行反序列化处理,得到该字节序列对应的值数据,进而得到查询结果。
例如,查找到的第三值数据为名称属性NAME1,通过该名称属性NAME1构造的多级集合对象X1中包括对象K21、对象K25、对象K22和对象K7,则可以得到查询结果为键数据K21、键数据K25、键数据K22和键数据K7,返回至智能合约。
为了更好实施本申请中的数据处理方法,本申请还提供一种数据处理装置,如图6所示,为本申请中提供的数据处理装置的一个实施例结构示意图,本申请的数据处理装置600应用于区块链平台,区块链平台上部署有智能合约,以及与智能合约通信连接的区块链账本,智能合约包括键值对数据集合,数据处理装置600包括:
获取模块601,用于获取目标处理指令,其中,目标处理指令中携带有目标键值对,以及针对目标键值对的指令信息,目标键值对包括值数据;
处理模块602,用于根据指令信息和值数据的类型,在键值对数据集合和区块链账本中分别对目标键值对进行处理,以完成目标键值对的数据处理
本申请实施例中,处理模块602根据目标键值对的值类型以及目标处理指令的指令信息,分别在智能合约的键值对数据集合以及区块链账本中对目标键值对进行处理,本申请只需要对目标键值对单独进行处理,不用考虑智能合约和区块链账本中的其他数据,例如,当要向智能合约的键值对数据集合和区块链账本中插入数据时,只需要对目标键值对单独进行处理,相比于现有技术中将集合中所有数据全部保存到区块链账本来说,提高了智能合约中映射结构的使用效率;另外,由于键值对单独存入区块链账本中,当需要从区块链账本读取键值对时,也只需要单条读取相应的键值对,相比于现有技术将区块链账本的所有数据加载到内存中来说,进一步提高了数据交互效率,节约了可用资源。
在本申请一些实施例中,目标键值对还包括与值数据相互映射的键数据,指令信息为插入目标键值对,处理模块602具体可以用于:
根据指令信息,将目标键值对插入键值对数据集合中;
根据值数据的类型,调用预设的处理方式对值数据进行处理,得到第一值数据;
根据键数据得到与第一值数据相互映射的第一键数据;
将第一键数据和第一值数据插入到区块链账本中。
在本申请一些实施例中,处理模块602具体还可以用于:
对键数据进行哈希运算,得到第一键数据。
在本申请一些实施例中,值数据的类型包括嵌套类型和非嵌套类型,处理方式包括第一处理方式和第二处理方式,处理模块602具体还可以用于:
若值数据的类型为嵌套类型,则调用第一处理方式对值数据进行处理,得到第一值数据,其中,第一值数据为值数据的名称属性;
若值数据的类型为非嵌套类型,则调用第二处理方式对值数据进行处理,得到第一值数据。
在本申请一些实施例中,处理模块602具体还可以用于:
根据值数据,获取值数据的名称属性;
对值数据进行序列化处理,得到第一值数据。
在本申请一些实施例中,指令信息为删除目标键值对,处理模块602具体还可以用于:
若调用智能合约向区块链账本发送第三键数据;
调用区块链账本,根据第三键数据查找区块链账本中是否存在与第三键数据相互映射的第三值数据;
若区块链账本中存在与第三键数据相互映射的第三值数据,则根据第三值数据的类型,对第三值数据进行数据处理,得到查询结果,并发送至智能合约。
需要说明的是,本申请中,获取模块601和处理模块602的相关内容与上述一一对应,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的数据处理装置及其相应模块的具体工作过程,可以参考如图2至图5对应任意实施例中数据处理方法的说明,具体在此不再赘述。
为了更好实施本申请的数据处理方法,在数据处理方法基础之上,本申请还提供一种数据处理设备,其集成了本申请所提供的任一种数据处理装置,该设备包括:
一个或多个处理器701;
存储器702;以及
一个或多个应用程序,其中一个或多个应用程序被存储于存储器702中,并配置为由处理器701执行上述数据处理方法中任一项实施例的数据处理方法中的步骤。
如图7所示,其示出了本申请所涉及的数据处理设备的一个实施例结构示意图,具体来讲:
该设备可以包括一个或者一个以上处理核心的处理器701、一个或一个以上计算机可读存储介质的存储器702、电源703和输入单元704等部件。本领域技术人员可以理解,图7中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器701是该设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器702内的软件程序和/或模块,以及调用存储在存储器702内的数据,执行设备的各种功能和处理数据,从而对设备进行整体监控。可选的,处理器701可包括一个或多个处理核心;处理器701可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,优选的,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器701中。
存储器702可用于存储软件程序以及模块,处理器701通过运行存储在存储器702的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器702可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器702还可以包括存储器控制器,以提供处理器701对存储器702的访问。
该设备还包括给各个部件供电的电源703,优选的,电源703可以通过电源管理系统与处理器701逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源703还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该设备还可以包括输入单元704和输出单元705,该输入单元704可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,该设备还可以包括显示单元等,在此不再赘述。具体在本申请中,设备中的处理器701会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器702中,并由处理器701来运行存储在存储器702中的应用程序,从而实现各种功能,如下:
获取目标处理指令,其中,目标处理指令中携带有目标键值对,以及针对目标键值对的指令信息,目标键值对包括值数据;
根据指令信息和值数据的类型,在键值对数据集合和区块链账本中分别对目标键值对进行处理,以完成目标键值对的数据处理。
本领域普通技术人员可以理解,上述的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请提供一种计算机可读存储介质,该存储介质可以包括:只读存储器(Read Only Memory,ROM)、随机存取记忆体(Random Access Memory,RAM)、磁盘或光盘等。其上存储有计算机程序,计算机程序被处理器进行加载,以执行本申请所提供的任一种数据处理方法中的步骤。例如,计算机程序被处理器进行加载可以执行如下步骤:
获取目标处理指令,其中,目标处理指令中携带有目标键值对,以及针对目标键值对的指令信息,目标键值对包括值数据;
根据指令信息和值数据的类型,在键值对数据集合和区块链账本中分别对目标键值对进行处理,以完成目标键值对的数据处理。
由于该计算机可读存储介质中所存储的指令,可以执行本申请如图2至图5对应任意实施例中数据处理方法中的步骤,因此,可以实现本申请如图2至图5对应任意实施例中数据处理方法所能实现的有益效果,详见前面的说明,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对其他实施例的详细描述,此处不再赘述。
具体实施时,以上各个单元或结构可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元或结构的具体实施可参见前面的实施例,在此不再赘述。
以上对本申请所提供的一种数据处理方法、装置、设备和存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种数据处理方法,其特征在于,应用于区块链平台,所述区块链平台上部署有智能合约,以及与所述智能合约通信连接的区块链账本,所述智能合约包括键值对数据集合,所述方法包括:
获取目标处理指令,其中,所述目标处理指令中携带有目标键值对,以及针对所述目标键值对的指令信息,所述目标键值对包括值数据;
根据所述指令信息和所述值数据的类型,在所述键值对数据集合和所述区块链账本中分别对所述目标键值对进行处理,包括:
若所述值数据的类型为嵌套类型,则获取所述值数据的名称属性;
根据所述指令信息和所述值数据的名称属性,在所述键值对数据集合和所述区块链账本中分别对所述目标键值对进行处理,以完成所述目标键值对的数据处理。
2.根据权利要求1所述的方法,其特征在于,所述目标键值对还包括与所述值数据相互映射的键数据,所述指令信息为插入所述目标键值对,所述根据所述指令信息和所述值数据的名称属性,在所述键值对数据集合和所述区块链账本中分别对所述目标键值对进行处理,包括:
根据所述指令信息,将所述目标键值对插入所述键值对数据集合中;
根据所述值数据的名称属性,得到第一值数据;
根据所述键数据得到与所述第一值数据相互映射的第一键数据;
将所述第一键数据和所述第一值数据插入到所述区块链账本中。
3.根据权利要求2所述的方法,其特征在于,所述根据所述键数据得到与所述第一值数据相互映射的第一键数据,包括:对所述键数据进行哈希运算,得到所述第一键数据。
4.根据权利要求1所述的方法,其特征在于,所述目标键值对还包括与所述值数据相互映射的键数据,所述指令信息为插入所述目标键值对,所述根据所述指令信息和所述值数据的类型,在所述键值对数据集合和所述区块链账本中分别对所述目标键值对进行处理,包括:
根据所述指令信息,将所述目标键值对插入所述键值对数据集合中;
若所述值数据的类型为非嵌套类型,则对所述值数据进行序列化处理,得到第一值数据;
根据所述键数据得到与所述第一值数据相互映射的第一键数据;
将所述第一键数据和所述第一值数据插入到所述区块链账本中。
5.根据权利要求2所述的方法,其特征在于,所述指令信息为删除所述目标键值对,所述根据所述指令信息和所述值数据的名称属性,在所述键值对数据集合和所述区块链账本中分别对所述目标键值对进行处理,包括:
根据所述值数据的名称属性,得到多级集合对象,其中,所述多级集合对象包括所述键值对数据集合中的多个第二键数据;
根据所述指令信息删除所述键值对数据集合中的所述多个第二键数据,以及所述区块链账本中与所述值数据相互映射的所述键数据。
6.根据权利要求2-5任一项所述的方法,其特征在于,所述方法还包括:
调用所述智能合约向所述区块链账本发送第三键数据;
调用所述区块链账本,根据所述第三键数据查找所述区块链账本中是否存在与所述第三键数据相互映射的第三值数据;
若所述区块链账本中存在与所述第三键数据相互映射的所述第三值数据,则根据所述第三值数据的类型,对所述第三值数据进行数据处理,得到查询结果,并发送至所述智能合约。
7.一种数据处理装置,其特征在于,应用于区块链平台,所述区块链平台上部署有智能合约,以及与所述智能合约通信连接的区块链账本,所述智能合约包括键值对数据集合,所述装置包括:
获取模块,用于获取目标处理指令,其中,所述目标处理指令中携带有目标键值对,以及针对所述目标键值对的指令信息,所述目标键值对包括值数据;
处理模块,用于根据所述指令信息和所述值数据的类型,在所述键值对数据集合和所述区块链账本中分别对所述目标键值对进行处理,包括:
若所述值数据的类型为嵌套类型,则获取所述值数据的名称属性;
根据所述指令信息和所述值数据的名称属性,在所述键值对数据集合和所述区块链账本中分别对所述目标键值对进行处理,以完成所述目标键值对的数据处理。
8.一种数据处理设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器;以及
一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现权利要求1至6任一项所述的数据处理方法。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求1至6任一项所述的数据处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011636134.4A CN112765269B (zh) | 2020-12-31 | 2020-12-31 | 数据处理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011636134.4A CN112765269B (zh) | 2020-12-31 | 2020-12-31 | 数据处理方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112765269A CN112765269A (zh) | 2021-05-07 |
CN112765269B true CN112765269B (zh) | 2022-06-10 |
Family
ID=75698048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011636134.4A Active CN112765269B (zh) | 2020-12-31 | 2020-12-31 | 数据处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112765269B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114726534A (zh) * | 2022-03-28 | 2022-07-08 | 海南格子山网络科技有限公司 | 一种基于Solana区块链技术实现智能合约抽签的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241032A (zh) * | 2018-08-16 | 2019-01-18 | 北京京东尚科信息技术有限公司 | 账本数据库组件、运行方法及存储介质 |
CN109684335A (zh) * | 2018-12-26 | 2019-04-26 | 百度在线网络技术(北京)有限公司 | 基于键值对的数据结构实现方法、装置、设备和存储介质 |
CN110288340A (zh) * | 2019-05-15 | 2019-09-27 | 杭州趣链科技有限公司 | 一种基于Java智能合约的数据集合存储方法 |
CN111295650A (zh) * | 2019-12-05 | 2020-06-16 | 支付宝(杭州)信息技术有限公司 | 在基于区块链的系统中执行映射迭代 |
CN111602166A (zh) * | 2019-08-30 | 2020-08-28 | 阿里巴巴集团控股有限公司 | 在区块链上提供可遍历键值数据存储的方法和设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11569996B2 (en) * | 2019-05-31 | 2023-01-31 | International Business Machines Corporation | Anonymous rating structure for database |
-
2020
- 2020-12-31 CN CN202011636134.4A patent/CN112765269B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109241032A (zh) * | 2018-08-16 | 2019-01-18 | 北京京东尚科信息技术有限公司 | 账本数据库组件、运行方法及存储介质 |
CN109684335A (zh) * | 2018-12-26 | 2019-04-26 | 百度在线网络技术(北京)有限公司 | 基于键值对的数据结构实现方法、装置、设备和存储介质 |
CN110288340A (zh) * | 2019-05-15 | 2019-09-27 | 杭州趣链科技有限公司 | 一种基于Java智能合约的数据集合存储方法 |
CN111602166A (zh) * | 2019-08-30 | 2020-08-28 | 阿里巴巴集团控股有限公司 | 在区块链上提供可遍历键值数据存储的方法和设备 |
CN111295650A (zh) * | 2019-12-05 | 2020-06-16 | 支付宝(杭州)信息技术有限公司 | 在基于区块链的系统中执行映射迭代 |
Non-Patent Citations (2)
Title |
---|
《区块链的数据管理技术综述》;张志威等;《软件学报》;20200915;第2903-2925页 * |
Blockchain as a Value Enabler:Bridging Financial Assets and Intangibles;Maryam Taghiyeva–Zeynalova et al.;《BSCI "19: Proceedings of the 2019 ACM International Symposium on Blockchain and Secure Critical Infrastructure》;20190731;第113-119页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112765269A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110908667B (zh) | 神经网络联合编译的方法、装置和电子设备 | |
US20170286484A1 (en) | Graph Data Search Method and Apparatus | |
CN112783974A (zh) | 数据转换方法、装置、设备和存储介质 | |
CN104077335A (zh) | 一种结构化数据的序列化、反序列化方法、装置和系统 | |
US9485306B2 (en) | Methods, apparatuses, and computer program products for facilitating a data interchange protocol | |
JP2021089704A (ja) | データ照会方法、装置、電子機器、可読記憶媒体、及びコンピュータープログラム | |
CN112765269B (zh) | 数据处理方法、装置、设备和存储介质 | |
EP4131081A1 (en) | Large deep learning model training method and system, device, and medium | |
CN112667636B (zh) | 索引建立方法、装置及存储介质 | |
CN112528101A (zh) | 字符串匹配方法、装置、设备和存储介质 | |
CN114117992A (zh) | 一种序列化和反序列化方法、装置和电子设备 | |
EP3343395A1 (en) | Data storage method and apparatus for mobile terminal | |
US10146791B2 (en) | Open file rebalance | |
CN112860412B (zh) | 业务数据处理方法、装置、电子设备及存储介质 | |
JP2018206084A (ja) | データベース管理システムおよびデータベース管理方法 | |
CN111723246B (zh) | 一种数据处理的方法、装置和存储介质 | |
EP3091447B1 (en) | Method for modifying root nodes and modifying apparatus | |
CN112948173A (zh) | 一种数据恢复方法、装置、设备及介质 | |
CN105183668A (zh) | 缓存刷新方法及装置 | |
CN104572080A (zh) | 一种拍照模式管理方法以及装置 | |
CN104572097A (zh) | 一种拍照数据回调处理方法以及装置 | |
CN112231329B (zh) | 向数据库插入数据的方法、装置、设备和可读存储介质 | |
US7685188B2 (en) | Automated generation of computer-executable compensation procedures for previously executed methods | |
CN114707023B (zh) | 一种哈希表遍历方法、系统、设备及计算机可读存储介质 | |
WO2024016766A1 (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 |