CN114840604A - 基于区块链网络的数据存储方法、装置、设备和存储介质 - Google Patents
基于区块链网络的数据存储方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN114840604A CN114840604A CN202210509407.1A CN202210509407A CN114840604A CN 114840604 A CN114840604 A CN 114840604A CN 202210509407 A CN202210509407 A CN 202210509407A CN 114840604 A CN114840604 A CN 114840604A
- Authority
- CN
- China
- Prior art keywords
- network
- contract
- block chain
- target
- transaction
- 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
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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- 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)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于区块链网络的数据存储方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:通过网络创建基础指令获取通用数据结构的网络元数据,并根据所述网络元数据构建目标网络类型的区块链网络配置数据;基于网络运行基础指令获取目标区块链网络标识,并基于所述目标区块链网络标识和所述区块链网络配置数据,启动目标区块链网络;通过合约部署基础指令获取所述通用数据结构的合约元数据,并基于所述合约元数据在启动后的所述目标区块链网络中部署交易合约;获取基于所述交易合约执行交易时生成的交易数据;在启动后的所述目标区块链网络中存储所述交易数据。采用本方法能够提高数据存储效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于区块链网络的数据存储方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术的发展,区块链由于具有历史不可篡改、流程可追溯、权限透明可控等特性而广泛应用。在业务系统使用区块链网络存储交易数据时,由于现有的各种区块链网络分别使用各自的数据结构,业务系统不能同时与多种异构的区块链网络兼容,需要针对每种区块链网络分别设计一套接口与区块链网络兼容,开发周期长,效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高效率的基于区块链网络的数据存储方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种基于区块链网络的数据存储方法。所述方法包括:
通过网络创建基础指令获取通用数据结构的网络元数据,并根据所述网络元数据构建目标网络类型的区块链网络配置数据;
基于网络运行基础指令获取目标区块链网络标识,并基于所述目标区块链网络标识和所述区块链网络配置数据,启动目标区块链网络;
通过合约调用基础指令获取所述通用数据结构的合约元数据,并基于所述合约元数据在启动后的所述目标区块链网络中部署交易合约;
获取基于所述交易合约执行交易时生成的交易数据;
在启动后的所述目标区块链网络中存储所述交易数据。
第二方面,本申请还提供了一种基于区块链网络的数据存储装置。所述装置包括:
构建模块,用于通过网络创建基础指令获取通用数据结构的网络元数据,并根据所述网络元数据构建目标网络类型的区块链网络配置数据;
启动模块,用于基于网络运行基础指令获取目标区块链网络标识,并基于所述目标区块链网络标识和所述区块链网络配置数据,启动目标区块链网络;
部署模块,用于通过合约调用基础指令获取所述通用数据结构的合约元数据,并基于所述合约元数据在启动后的所述目标区块链网络中部署交易合约;
获取模块,用于获取基于所述交易合约执行交易时生成的交易数据;
存储模块,用于在启动后的所述目标区块链网络中存储所述交易数据。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
通过网络创建基础指令获取通用数据结构的网络元数据,并根据所述网络元数据构建目标网络类型的区块链网络配置数据;
基于网络运行基础指令获取目标区块链网络标识,并基于所述目标区块链网络标识和所述区块链网络配置数据,启动目标区块链网络;
通过合约调用基础指令获取所述通用数据结构的合约元数据,并基于所述合约元数据在启动后的所述目标区块链网络中部署交易合约;
获取基于所述交易合约执行交易时生成的交易数据;
在启动后的所述目标区块链网络中存储所述交易数据。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
通过网络创建基础指令获取通用数据结构的网络元数据,并根据所述网络元数据构建目标网络类型的区块链网络配置数据;
基于网络运行基础指令获取目标区块链网络标识,并基于所述目标区块链网络标识和所述区块链网络配置数据,启动目标区块链网络;
通过合约调用基础指令获取所述通用数据结构的合约元数据,并基于所述合约元数据在启动后的所述目标区块链网络中部署交易合约;
获取基于所述交易合约执行交易时生成的交易数据;
在启动后的所述目标区块链网络中存储所述交易数据。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
通过网络创建基础指令获取通用数据结构的网络元数据,并根据所述网络元数据构建目标网络类型的区块链网络配置数据;
基于网络运行基础指令获取目标区块链网络标识,并基于所述目标区块链网络标识和所述区块链网络配置数据,启动目标区块链网络;
通过合约调用基础指令获取所述通用数据结构的合约元数据,并基于所述合约元数据在启动后的所述目标区块链网络中部署交易合约;
获取基于所述交易合约执行交易时生成的交易数据;
在启动后的所述目标区块链网络中存储所述交易数据。
上述基于区块链网络的数据存储方法、装置、计算机设备、存储介质和计算机程序产品,通过网络创建基础指令获取通用数据结构的网络元数据,从而不论是何种目标网络类型的区块链网络,均可以根据通用数据结构的网络元数据构建该目标网络类型的区块链网络配置数据,屏蔽了各种类型区块链网络的差异性。然后基于网络运行基础指令获取目标区块链网络标识,并基于目标区块链网络标识和区块链网络配置数据,启动目标区块链网络,从而可以屏蔽不同区块链网络间的差异性,使用户可以通过统一的网络运行基础指令启动任意类型的区块链网络。通过合约调用基础指令获取通用数据结构的合约元数据,并基于合约元数据在启动后的目标区块链网络中部署交易合约,从而可以针对各种异构的区块链网络,均通过统一的合约调用基础指令来调用交易合约,而无需针对各种类型的区块链网络分别开发合约调用的接口,提高了调用交易合约的效率。最后获取基于交易合约执行交易时生成的交易数据,并在启动后的目标区块链网络中存储交易数据。针对每种类型的区块链网络,服务器均可以通过基础指令集中的网络创建基础指令、网络运行基础指令来创建和运行该区块链网络,并通过合约调用基础指令调用该区块链网络中的交易合约,而无需针对每种区块链网络分别开发一套接口,提高了对区块链网络进行操作及管控的效率,从而可以快速高效的将交易数据存入区块链网络,提高了数据存储的效率。
附图说明
图1为一个实施例中基于区块链网络的数据存储方法的应用环境图;
图2为一个实施例中基于区块链网络的数据存储方法的流程示意图;
图3为一个实施例中调用交易合约方法的流程示意图;
图4为一个实施例中操作区块链网络的示意图;
图5为一个实施例中管理交易合约的示意图;
图6为另一个实施例中基于区块链网络的数据存储方法的流程示意图;
图7为一个实施例中基于区块链网络的数据存储装置的结构框图;
图8为另一个实施例中基于区块链网络的数据存储装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的基于区块链网络的数据存储方法,可以应用于如图1所示的应用环境中。其中,数据存储系统可以存储服务器102需要处理的数据。数据存储系统可以集成在服务器102上,也可以放在云上或其他网络服务器上。服务器102通过网络创建基础指令从业务系统104获取通用数据结构的网络元数据,网络元数据构建目标网络类型的区块链网络配置数据;基于网络运行基础指令获取目标区块链网络标识,并基于目标区块链网络标识和区块链网络配置数据,启动目标区块链网络;通过合约调用基础指令获取通用数据结构的合约元数据,并基于合约元数据在启动后的目标区块链网络中部署交易合约;获取基于交易合约执行交易时生成的交易数据;在启动后的目标区块链网络中存储交易数据。
其中,服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。业务系统104包括但不限于财务系统、人事系统、税务系统、企业管理系统、ERP(Enterprise Resource Planning,企业资源计划)系统、生产制造管理系统、供应链系统等。
在一个实施例中,如图2所示,提供了一种基于区块链网络的数据存储方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S202,通过网络创建基础指令获取通用数据结构的网络元数据,并根据网络元数据构建目标网络类型的区块链网络配置数据。
其中,网络创建基础指令是基础指令集中的指令,用于构建区块链网络配置数据。例如,网络创建基础指令可以是BuildNetwork(Network)指令。基础指令集是用于定义操作区块链网络的通用指令的集合,适用于各种类型的区块链网络,包括网络创建基础指令、网络运行基础指令(StartNetwork(Network))、运行判断基础指令(IsRunning(Network))、网络停止基础指令(StopNetwork(Network))、停止判断基础指令(IsStopped(Network))、网络删除基础指令(DeleteNetwork(Network))、账户注册基础指令(Register(Network,Name,Password))、区块链新增基础指令(BuildChain(Chain))、合约部署基础指令(InstallContract(Chain,Contract))、合约查询基础指令(QueryContract(Account,Chain,ContractName,args))、合约调用基础指令(InvokeContract(Account,Chain,ContractName,args))、合约更新基础指令(UpdateContract(Chain,Contract))等。
其中,通用数据结构为针对各种类型的区块链网络统一定义的数据结构。网络元数据为用于定义区块链网络的元数据。例如,如表1所示,网络元数据包括网络标识、网络类型、网络名称以及网络创建方标识等。网络标识为区块链网络的识别号,可以由数字、字母、符号、特殊字符等组成。网络类型用于标识区块链网络的类型,异构的区块链具有不同的区块链网络类型,例如Hyperledger fabric(超级账本区块链)、FISCO BCOS区块链是不同的区块链网络类型。区块链网络配置数据是运行区块链网络所需的数据,包括区块链网络的配置文件、证书、秘钥以及部署文件等。
表1
字段名称 | 字段数据类型 | 字段描述 |
网络标识 | 字符串 | 区块链网络的识别号 |
网络类型 | 字符串 | 区块链网络的类型 |
网络名称 | 字符串 | 区块链网络的名称 |
网络创建方标识 | 字符串 | 区块链网络创建方的标识 |
S204,基于网络运行基础指令获取目标区块链网络标识,并基于目标区块链网络标识和区块链网络配置数据,启动目标区块链网络。
其中,网络运行基础指令是用于启动运行区块链网络的指令。服务器通过网络运行基础指令获取目标区块链网络标识,以根据目标区块链网络标识确定待启动的目标区块链网络,然后基于目标区块链网络标识和区块链网络配置数据,启动目标区块链网络。
在一个实施例中,启动目标区块链网络包括启动目标区块链网络中的各个网络节点。其中,网络节点为区块链网络中的进程。
在一个实施例中,S204之后还包括:服务器通过运行判断基础指令,判断目标区块链网络是否完全启动。
S206,通过合约部署基础指令获取通用数据结构的合约元数据,并基于合约元数据在启动后的目标区块链网络中部署交易合约。
其中,合约部署基础指令为用于在区块链网络中部署交易合约的基础指令。合约元数据是用于定义交易合约的元数据。例如,如表2所示,网络元数据包括合约标识、合约路径以及合约版本等字段。合约标识字段用于记录交易合约的标识。合约路径字段用于记录交易合约的存储路径。合约版本字段用于记录交易合约的版本号。交易合约为用于以信息化方式传播、验证或执行合同的计算机协议。
表2
字段名称 | 字段数据类型 | 字段描述 |
合约标识 | 字符串 | 交易合约的标识 |
合约路径 | 字符串 | 交易合约的存储路径 |
合约版本 | 字符串 | 交易合约的版本号 |
S208,获取基于交易合约执行交易时生成的交易数据。
其中,交易数据为用于记录交易过程的数据,包括交易参与方标识、交易标的、是否交易成功、交易时间、秘钥、证书以及交易所依据的交易合约等。例如,交易参与方A基于交易合约向交易参与方B进行转账,服务器获取在转账过程中生成的交易数据。例如,交易参与方A基于交易合约与交易参与方B交换标的物,服务器获取在标的物交换过程中生成的交易数据。
S210,在启动后的目标区块链网络中存储交易数据。
服务器将交易数据存储在启动后的目标区块链网络的区块中,以保证交易数据真实可靠,并且不会被篡改。
在一个实施例中,S210之后还包括:通过网络停止基础指令获取通用数据结构的停止参数;在停止参数中,提取待停止网络标识;若待停止网络标识与目标区块链网络标识一致,停止运行目标区块链网络,并释放目标区块链网络中的各网络节点在运行时所占用的资源。
其中,网络停止基础指令是用于停止运行区块链网络的基础指令。停止参数为用于停止运行区块链网络的参数,包括待停止网络标识。若待停止网络标识与目标区块链网络标识一致,说明目标区块链网络是需要停止运行的区块链网络,接下来服务器停止运行目标区块链网络并释放目标区块链网络中的各网络节点在运行时所占用的资源。服务器所释放的资源包括CPU(Central Processing Unit,中央处理器)和内存。
在一个实施例中,服务器在通过网络停止基础指令停止运行目标区块链网络后,通过停止判断基础指令判断目标区块链网络是否已完全停止运行,若未完全停止运行,则生成错误提示信息。
上述实施例中,通过网络创建基础指令获取通用数据结构的网络元数据,从而不论是何种目标网络类型的区块链网络,均可以根据通用数据结构的网络元数据构建该目标网络类型的区块链网络配置数据,屏蔽了各种类型区块链网络的差异性。然后基于网络运行基础指令获取目标区块链网络标识,并基于目标区块链网络标识和区块链网络配置数据,启动目标区块链网络,从而可以屏蔽不同区块链网络间的差异性,使用户可以通过统一的网络运行基础指令启动任意类型的区块链网络。通过合约调用基础指令获取通用数据结构的合约元数据,并基于合约元数据在启动后的目标区块链网络中部署交易合约,从而可以针对各种异构的区块链网络,均通过统一的合约调用基础指令来调用交易合约,而无需针对各种类型的区块链网络分别开发合约调用的接口,提高了调用交易合约的效率。最后获取基于交易合约执行交易时生成的交易数据,并在启动后的目标区块链网络中存储交易数据。针对每种类型的区块链网络,服务器均可以通过基础指令集中的网络创建基础指令、网络运行基础指令来创建和运行该区块链网络,并通过合约调用基础指令调用该区块链网络中的交易合约,而无需针对每种区块链网络分别开发一套接口,提高了对区块链网络进行操作及管控的效率,从而可以快速高效的将交易数据存入区块链网络,提高了数据存储的效率。
在一个实施例中,S202具体包括:对网络元数据进行解析,得到目标数据结构的区块链网络数据;根据区块链网络数据,确定目标区块链网络对应的目标网络类型;根据目标网络类型构建网络配置数据。
其中,目标数据结构是目标区块链网络对应的数据结构,可以是目标区块链网络的SDK(Software Development Kit,软件开发工具包)或者API(Application ProgrammingInterface,应用编程接口)接口对应的数据结构。区块链网络数据是目标数据结构的数据,用于描述目标区块链网络。服务器通过基础指令集中的网络创建基础指令获取通用数据结构的网络元数据后,通过网络创建基础指令对通用数据结构的网络元数据进行解析,得到目标数据结构的区块链网络数据,以将通用数据结构的网络元数据转换为目标数据结构的区块链网络数据,从而可以通过统一的网络创建基础指令,针对各种数据结构不同的区块链网络构建区块链网络配置数据。
上述实施例中,服务器对网络元数据进行解析,得到目标数据结构的区块链网络数据,然后根据区块链网络数据,确定目标区块链网络对应的目标网络类型,根据目标网络类型构建网络配置数据。服务器针对各种异构的区块链网络,均可以通过统一的网络创建基础指令构建网络配置数据,以根据网络配置数据启动该区块链网络,从而屏蔽了各种网络类型的区块链网络间的差异性,只需调用通用的数据接口(网络创建基础指令)即可快速的启动各种网络类型的区块链网络,提高了启动区块链网络的效率。
在一个实施例中,S206具体包括:对合约元数据进行解析,得到目标数据结构的区块链合约数据;在区块链合约数据中,提取合约标识以及合约地址;根据合约标识以及合约地址获取合约源码;基于合约源码,在启动后的目标区块链网络中部署交易合约。
其中,区块链合约数据是目标数据结构的数据,用于描述区块链中部署的交易合约。合约标识为交易合约的标志,可以由数字、字符、字母或者特殊字符中的一种或多种组成。合约地址为交易合约源码的存储地址。服务器从合约地址对应的存储区中,获取合约标识对应的合约源码,将合约源码写入目标区块链网络中,实现了将交易合约部署在区块链网络中。
上述实施例中,服务器将通用数据结构的合约元数据解析为目标区块链网络对应的目标数据结构的区块链合约数据,以将通用数据结构的数据转换为特定区块链网络的数据结构的数据,从而可以通过通用数据结构的合约元数据获取合约源码,并将合约源码部署在区块链网络中。因此,在部署交易合约时,无需关心各种类型的区块链网络的特定数据结构的细节,仅通过通用数据结构的合约元数据即可实现交易合约的部署,提高了部署交易合约的效率。
在一个实施例中,如图3所示,S208之前还包括S302-S306,S208具体包括S308:
S302,通过合约调用基础指令获取通用数据结构的调用参数;调用参数包括调用方标识、链标识以及合约标识。
其中,合约调用基础指令是基础指令集中的指令,用于调用区块链网络中部署的交易合约。调用参数用于描述被调用的交易合约,包括调用方标识、链标识以及合约标识。链标识为被调用的交易合约所属的区块链的标识。例如,区块链网络中包括区块链001A、区块链002B以及区块链003C,交易合约部署在区块链003C上,链标识为003C。调用方为调用交易合约的客户端,可以为业务系统的客户端。例如,财务系统的客户端作为交易合约的调用方调用交易合约,用于根据交易合约报销款项。
S304,若调用方标识通过验证,根据链标识确定目标区块链。
服务器获取调用方标识后,验证调用方标识是否是已注册的调用方,如果调用方标识已注册,则允许该调用方标识对应的调用方调用区块链网络中的交易合约进行交易。
在一个实施例中,S304之前还包括:通过账户注册基础指令获取通用数据结构的用户注册数据;对用户注册数据进行解析,得到待注册的账号标识;将账号标识写入目标区块链网络的用户中心;用户中心还包括其他已注册的账号标识;S304具体包括:若调用方标识与用户中心存储的账号标识匹配,根据链标识确定目标区块链。
其中,账户注册基础指令为基础指令集中的指令,用于在区块链网络的用户中心注册账户。用户注册数据为用于描述待注册的账号的数据,包括待注册的账号标识、账号密码等。
用户中心存储了通过账户注册基础指令注册的账号标识,如果调用方标识与用户中心存储的账号标识匹配,说明调用方标识为已注册的用户账号,可以通过验证。
S306,在目标区块链中,调用合约标识对应的目标交易合约。
如果调用方标识通过验证,说明调用方为合法的调用方,服务器根据链标识确定目标区块链,在目标区块链中,调用合约标识对应的目标交易合约。
S308,获取调用方标识对应的调用方,基于目标交易合约执行交易时生成的交易数据。
服务器根据合约标识在目标区块链中调用对应的目标交易合约,使调用方标识对应的调用方根据目标交易合约执行交易,在执行交易时生成交易数据。服务器将所生成的交易数据存储在目标区块链网络中,保证了交易数据不被篡改,提高了交易数据的安全性。
上述实施例中,通过合约调用基础指令获取通用数据结构的调用参数,根据调用参数中的链标识确定目标区块链,并在目标区块链中,调用合约标识对应的目标交易合约,以使调用方根据目标交易合约进行交易。实现了通过对各种区块链网络通用的合约调用基础指令来调用交易合约,避免了分别针对每种区块链网络来开发相应的合约调用的接口,提高了合约调用的效率。
在一个实施例中,S210之前还包括:通过区块链新增基础指令获取通用数据结构的链元数据;对链元数据进行解析,得到目标数据结构的链数据;根据链数据,在启动后的目标区块链网络中添加新区块链;S210具体包括:在新区块链中存储交易数据。
其中,区块链新增指令为基础指令集中的指令,用于在区块链网络中新增区块链。链元数据为用于描述区块链的数据,包括区块链所属的区块链网络的网络元数据、区块链标识等。例如,如表3所示,链元数据中包括网络元数据字段以及链标识字段。
表3
服务器通过基础指令集中的区块链新增指令获取通用数据结构的链元数据后,通过区块链新增指令对链元数据进行解析,得到目标数据结构的链数据,以将通用数据结构的链元数据转换为目标数据结构的链数据,从而可以通过统一的区块链新增指令,在各种数据结构不同的区块链网络中新增区块链。
上述实施例中,服务器对通用数据结构的链元数据进行解析,得到目标数据结构的链数据,然后根据链数据,在启动后的目标区块链网络中添加新区块链。服务器针对各种异构的区块链网络,均可以通过通用的区块链新增基础指令新增区块链,从而屏蔽了各种网络类型的区块链网络间的差异性,只需调用通用的数据接口(区块链新增基础指令)即可快速的在各种区块链网络中新增区块链,提高了新增区块链的效率。
在一个实施例中,S208之前还包括:通过合约更新基础指令获取通用数据结构的更新参数,更新参数包括更新链标识与更新后的交易合约;根据更新链标识确定待更新区块链;将在待更新区块链中部署的交易合约调整为更新后的交易合约;S208具体包括:获取基于更新后的交易合约执行交易时生成的交易数据。
其中,合约更新指令为基础指令集中的指令,用于更新交易合约。更新参数为待更新的交易合约的参数,包括更新链标识与更新后的交易合约。更新链标识为部署了待更新交易合约的区块链的标识。
服务器通过基础指令集中的合约更新指令获取通用数据结构的更新参数后,通过合约更新指令对更新参数进行解析,得到目标数据结构的更新参数,以将通用数据结构的更新参数转换为目标数据结构的更新参数,从而可以通过统一的合约更新指令,对在各种数据结构不同的区块链网络中部署的交易合约进行更新。
上述实施例中,通过合约更新基础指令获取通用数据结构的更新参数,根据更新参数中的更新链标识确定待更新区块链,并将在待更新区块链中部署的交易合约调整为更新后的交易合约。服务器针对各种异构的区块链网络,均可以通过通用的合约更新基础指令更新区块链中部署的交易合约,从而屏蔽了各种网络类型的区块链网络间的差异性,只需调用通用的数据接口(合约更新基础指令)即可快速的对在各种区块链网络中部署的交易合约进行更新,提高了更新交易合约的效率。
在一个实施例中,服务器通过基础指令集对区块链网络进行操作和管理。通过基础指令集屏蔽了各区块链网络在数据结构以及接口上的差异,使业务系统可以通过通用的数据结构以及基础指令集与区块链网络进行集成。业务开发人员无需关心各异构的区块链网络间的细节差异,仅需调用基础指令集中的指令即可快速实现对区块链网络的构建、启动、停止以及交易合约的合约部署、合约更新、合约查询以及合约调用等。基础指令集中对区块链网络进行管控的基础指令的定义如表4所示。
表4
如图4所示,服务器通过网络创建基础指令构建区块链网络配置数据,然后通过网络运行基础指令,根据区块链网络配置数据启动运行区块链网络。在启动区块链网络后,通过运行判断基础指令判断区块链网络是否完全启动,若区块链网络完全启动,则区块链网络进入运行期。在区块链网络进入运行期后,服务器可以通过区块链新增基础指令在区块链网络中添加新的区块链,并且可以通过账户注册基础指令注册账户。当需要停止区块链网络时,服务器通过网络停止基础指令停止运行区块链网络并释放区块链网络中的各网络节点所占用的资源。然后通过停止判断基础指令判断区块链网络是否完全停止运行。若区块链网络完全停止运行,通过网络删除基础指令删除区块链网络中的所有数据。
服务器通过基础指令集可以从业务系统获取通用数据结构的网络元数据(Network)和链元数据(Chain),然后通过基础指令集将网络元数据与链元数据解析为各目标区块链网络对应的目标数据结构的数据。从而实现了通过基础指令集对各异构的区块链网络进行统一管理。
如表5所示,服务器通过基础指令集中支持交易合约以及交易调用的基础指令部署交易合约,并调用交易合约进行交易。
表5
如图5所示,在区块链网络处于运行期时,服务器通过合约部署基础指令在区块链网络中部署交易合约,通过合约查询基础指令查询已部署的交易合约,通过合约调用基础指令调用已部署的交易合约,以使调用方根据调用的交易合约进行交易。在区块链网络持续运行期间,服务器可以通过合约更新基础指令对已部署的交易合约进行更新。服务器通过基础指令集中的合约部署基础指令、合约查询基础指令、合约调用基础指令以及合约更新基础指令实现了在区块链网络中对交易合约进行统一管控,从而可以针对各区块链网络对基础指令集进行复用,避免了针对各区块链网络重复开发对交易合约进行操作的接口,提高了对区块链网络中交易合约进行管控的效率。
此外,服务器可以通过基础指令集中的文件下载指令(DownloadArtifacts(Network))导出创建区块链网络时使用的配置文件以及证书等,以对区块链网络的配置文件进行备份,方便对区块链网络进行测试、调试及运维。
在一个实施例中,如图6所示,基于区块链网络的数据存储方法包括如下步骤:
S602,对网络元数据进行解析,得到目标数据结构的区块链网络数据。
S604,根据区块链网络数据,确定目标区块链网络对应的目标网络类型。
S606,根据目标网络类型构建网络配置数据。
S608,基于网络运行基础指令获取目标区块链网络标识,并基于目标区块链网络标识和区块链网络配置数据,启动目标区块链网络。
S610,通过合约部署基础指令获取通用数据结构的合约元数据,对合约元数据进行解析,得到目标数据结构的区块链合约数据。
S612,在区块链合约数据中,提取合约标识以及合约地址;根据合约标识以及合约地址获取合约源码;基于合约源码,在启动后的目标区块链网络中部署交易合约。
S614,通过合约调用基础指令获取通用数据结构的调用参数。
S616,若调用参数中的调用方标识通过验证,根据链标识确定目标区块链;在目标区块链中,调用合约标识对应的目标交易合约。
S618,获取调用方标识对应的调用方,基于目标交易合约执行交易时生成的交易数据。
S620,通过区块链新增基础指令获取通用数据结构的链元数据;对链元数据进行解析,得到目标数据结构的链数据。
S622,根据链数据,在启动后的目标区块链网络中添加新区块链;在新区块链中存储交易数据。
S624,通过网络停止基础指令获取通用数据结构的停止参数,并在停止参数中,提取待停止网络标识。
S626,若待停止网络标识与目标区块链网络标识一致,停止运行目标区块链网络,并释放目标区块链网络中的各网络节点在运行时所占用的资源。
上述S602至S626的具体内容可以参考上文所述的具体实现过程。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的基于区块链网络的数据存储方法的基于区块链网络的数据存储装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于区块链网络的数据存储装置实施例中的具体限定可以参见上文中对于基于区块链网络的数据存储方法的限定,在此不再赘述。
在一个实施例中,如图7所示,提供了一种基于区块链网络的数据存储装置,包括:构建模块702、启动模块704、部署模块706、获取模块708和存储模块710,其中:
构建模块702,用于通过网络创建基础指令获取通用数据结构的网络元数据,并根据网络元数据构建目标网络类型的区块链网络配置数据;
启动模块704,用于基于网络运行基础指令获取目标区块链网络标识,并基于目标区块链网络标识和区块链网络配置数据,启动目标区块链网络;
部署模块706,用于通过合约调用基础指令获取通用数据结构的合约元数据,并基于合约元数据在启动后的目标区块链网络中部署交易合约;
获取模块708,用于获取基于交易合约执行交易时生成的交易数据;
存储模块710,用于在启动后的目标区块链网络中存储交易数据。
上述实施例中,通过网络创建基础指令获取通用数据结构的网络元数据,从而不论是何种目标网络类型的区块链网络,均可以根据通用数据结构的网络元数据构建该目标网络类型的区块链网络配置数据,屏蔽了各种类型区块链网络的差异性。然后基于网络运行基础指令获取目标区块链网络标识,并基于目标区块链网络标识和区块链网络配置数据,启动目标区块链网络,从而可以屏蔽不同区块链网络间的差异性,使用户可以通过统一的网络运行基础指令启动任意类型的区块链网络。通过合约调用基础指令获取通用数据结构的合约元数据,并基于合约元数据在启动后的目标区块链网络中部署交易合约,从而可以针对各种异构的区块链网络,均通过统一的合约调用基础指令来调用交易合约,而无需针对各种类型的区块链网络分别开发合约调用的接口,提高了调用交易合约的效率。最后获取基于交易合约执行交易时生成的交易数据,并在启动后的目标区块链网络中存储交易数据。针对每种类型的区块链网络,服务器均可以通过基础指令集中的网络创建基础指令、网络运行基础指令来创建和运行该区块链网络,并通过合约调用基础指令调用该区块链网络中的交易合约,而无需针对每种区块链网络分别开发一套接口,提高了对区块链网络进行操作及管控的效率,从而可以快速高效的将交易数据存入区块链网络,进一步的,提高了数据存储的效率。
在一个实施例中,构建模块702,还用于:
对网络元数据进行解析,得到目标数据结构的区块链网络数据;
根据区块链网络数据,确定目标区块链网络对应的目标网络类型;
根据目标网络类型构建网络配置数据。
在一个实施例中,部署模块706,还用于:
对合约元数据进行解析,得到目标数据结构的区块链合约数据;
在区块链合约数据中,提取合约标识以及合约地址;
根据合约标识以及合约地址获取合约源码;
基于合约源码,在启动后的目标区块链网络中部署交易合约。
在一个实施例中,如图8所示,装置还包括:
获取模块708,用于通过合约调用基础指令获取通用数据结构的调用参数;调用参数包括调用方标识、链标识以及合约标识;
确定模块712,用于若调用方标识通过验证,根据链标识确定目标区块链;
调用模块714,用于在目标区块链中,调用合约标识对应的目标交易合约;
获取模块708,还用于获取调用方标识对应的调用方,基于目标交易合约执行交易时生成的交易数据。
在一个实施例中,装置还包括:
获取模块708,还用于通过账户注册基础指令获取通用数据结构的用户注册数据;
解析模块716,用于对用户注册数据进行解析,得到待注册的账号标识;
写入模块718,用于将账号标识写入目标区块链网络的用户中心;用户中心还包括其他已注册的账号标识;
确定模块712,还用于若调用方标识与用户中心存储的账号标识匹配,根据链标识确定目标区块链。
在一个实施例中,装置还包括:
获取模块708,还用于通过区块链新增基础指令获取通用数据结构的链元数据;
解析模块716,用于对链元数据进行解析,得到目标数据结构的链数据;
添加模块718,用于根据链数据,在启动后的目标区块链网络中添加新区块链;
存储模块710,还用于在新区块链中存储交易数据。
在一个实施例中,装置还包括:
获取模块708,还用于通过合约更新基础指令获取通用数据结构的更新参数,更新参数包括更新链标识与更新后的交易合约;
确定模块712,用于根据更新链标识确定待更新区块链;
调整模块720,用于将在待更新区块链中部署的交易合约调整为更新后的交易合约;
获取模块708,还用于获取基于更新后的交易合约执行交易时生成的交易数据。
在一个实施例中,装置还包括:
获取模块708,还用于通过网络停止基础指令获取通用数据结构的停止参数;
提取模块722,用于在停止参数中,提取待停止网络标识;
停止模块724,用于若待停止网络标识与目标区块链网络标识一致,停止运行目标区块链网络,并释放目标区块链网络中的各网络节点在运行时所占用的资源。
上述基于区块链网络的数据存储装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于区块链网络的数据存储数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于区块链网络的数据存储方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (11)
1.一种基于区块链网络的数据存储方法,其特征在于,所述方法包括:
通过网络创建基础指令获取通用数据结构的网络元数据,并根据所述网络元数据构建目标网络类型的区块链网络配置数据;
基于网络运行基础指令获取目标区块链网络标识,并基于所述目标区块链网络标识和所述区块链网络配置数据,启动目标区块链网络;
通过合约部署基础指令获取所述通用数据结构的合约元数据,并基于所述合约元数据在启动后的所述目标区块链网络中部署交易合约;
获取基于所述交易合约执行交易时生成的交易数据;
在启动后的所述目标区块链网络中存储所述交易数据。
2.根据权利要求1所述的方法,其特征在于,所述根据所述网络元数据构建目标网络类型的区块链网络配置数据包括:
对所述网络元数据进行解析,得到目标数据结构的区块链网络数据;
根据所述区块链网络数据,确定目标区块链网络对应的目标网络类型;
根据所述目标网络类型构建网络配置数据。
3.根据权利要求1所述的方法,其特征在于,所述基于所述合约元数据在启动后的所述目标区块链网络中部署交易合约包括:
对所述合约元数据进行解析,得到目标数据结构的区块链合约数据;
在所述区块链合约数据中,提取合约标识以及合约地址;
根据所述合约标识以及所述合约地址获取合约源码;
基于所述合约源码,在启动后的所述目标区块链网络中部署交易合约。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过合约调用基础指令获取通用数据结构的调用参数;所述调用参数包括调用方标识、链标识以及合约标识;
若所述调用方标识通过验证,根据所述链标识确定目标区块链;
在所述目标区块链中,调用所述合约标识对应的目标交易合约;
所述获取基于所述交易合约执行交易时生成的交易数据包括:
获取所述调用方标识对应的调用方,基于所述目标交易合约执行交易时生成的交易数据。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过账户注册基础指令获取通用数据结构的用户注册数据;
对所述用户注册数据进行解析,得到待注册的账号标识;
将所述账号标识写入所述目标区块链网络的用户中心;所述用户中心还包括其他已注册的账号标识;
所述若所述调用方标识通过验证,根据所述链标识确定目标区块链包括:
若所述调用方标识与所述用户中心存储的账号标识匹配,根据所述链标识确定目标区块链。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过区块链新增基础指令获取通用数据结构的链元数据;
对所述链元数据进行解析,得到目标数据结构的链数据;
根据所述链数据,在启动后的所述目标区块链网络中添加新区块链;
所述在启动后的所述目标区块链网络中存储所述交易数据包括:
在所述新区块链中存储所述交易数据。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过合约更新基础指令获取通用数据结构的更新参数,所述更新参数包括更新链标识与更新后的交易合约;
根据所述更新链标识确定待更新区块链;
将在所述待更新区块链中部署的交易合约调整为所述更新后的交易合约;
所述获取基于所述交易合约执行交易时生成的交易数据包括:
获取基于所述更新后的交易合约执行交易时生成的交易数据。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过网络停止基础指令获取通用数据结构的停止参数;
在所述停止参数中,提取待停止网络标识;
若所述待停止网络标识与所述目标区块链网络标识一致,停止运行所述目标区块链网络,并释放所述目标区块链网络中的各网络节点在运行时所占用的资源。
9.一种基于区块链网络的数据存储装置,其特征在于,所述装置包括:
构建模块,用于通过网络创建基础指令获取通用数据结构的网络元数据,并根据所述网络元数据构建目标网络类型的区块链网络配置数据;
启动模块,用于基于网络运行基础指令获取目标区块链网络标识,并基于所述目标区块链网络标识和所述区块链网络配置数据,启动目标区块链网络;
部署模块,用于通过合约调用基础指令获取所述通用数据结构的合约元数据,并基于所述合约元数据在启动后的所述目标区块链网络中部署交易合约;
获取模块,用于获取基于所述交易合约执行交易时生成的交易数据;
存储模块,用于在启动后的所述目标区块链网络中存储所述交易数据。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210509407.1A CN114840604A (zh) | 2022-05-11 | 2022-05-11 | 基于区块链网络的数据存储方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210509407.1A CN114840604A (zh) | 2022-05-11 | 2022-05-11 | 基于区块链网络的数据存储方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114840604A true CN114840604A (zh) | 2022-08-02 |
Family
ID=82570969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210509407.1A Pending CN114840604A (zh) | 2022-05-11 | 2022-05-11 | 基于区块链网络的数据存储方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114840604A (zh) |
-
2022
- 2022-05-11 CN CN202210509407.1A patent/CN114840604A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10904009B2 (en) | Blockchain implementing delta storage | |
US11070360B2 (en) | Parallel transaction validation and block generation in a blockchain | |
JP7382108B2 (ja) | ブロックチェーンのための効率的な検証 | |
CN110620810B (zh) | 在区块链上的连续资产转移的非链接所有权 | |
CN106681739B (zh) | 一种智能合约的自动化生成方法 | |
US10671308B2 (en) | Private and fault-tolerant storage of segmented data | |
US11018853B2 (en) | Workflow management via distributed ledgers and smart contracts | |
CN110298755B (zh) | 一种区块链交易方法和装置 | |
US11423473B2 (en) | Blockchain-based leasing | |
CN110310203B (zh) | 一种区块链交易方法和装置 | |
CN114600420A (zh) | 修剪防篡改数据存储装置中的条目 | |
CN112003858A (zh) | 基于区块链的平台对接的方法、电子装置和存储介质 | |
CN111090581B (zh) | 智能合约测试方法、装置、计算机设备和存储介质 | |
CN110032568B (zh) | 数据结构的读取及更新方法、装置、电子设备 | |
US11070563B2 (en) | Trace-based transaction validation and commitment | |
US11144645B2 (en) | Blockchain technique for immutable source control | |
CN111010282B (zh) | 一种基于区块链的信息处理方法、相关装置及存储介质 | |
CN110192212B (zh) | 数字资产平台 | |
CN113486114B (zh) | 一种区块链智能合约调用管理方法 | |
CN116644122A (zh) | 数据事务处理方法、装置、计算机设备及存储介质 | |
CN110662210A (zh) | 基于区块链的二次或多次手机号的识别方法、系统及设备 | |
US20230367776A1 (en) | Distributed metadata definition and storage in a database system for public trust ledger smart contracts | |
CN115913734A (zh) | 应用于联盟链的用户权限管理方法、装置及设备 | |
CN114840604A (zh) | 基于区块链网络的数据存储方法、装置、设备和存储介质 | |
CN115203747A (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 |