CN115150413A - 区块链数据的存储方法、装置、电子设备及存储介质 - Google Patents
区块链数据的存储方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115150413A CN115150413A CN202210550136.4A CN202210550136A CN115150413A CN 115150413 A CN115150413 A CN 115150413A CN 202210550136 A CN202210550136 A CN 202210550136A CN 115150413 A CN115150413 A CN 115150413A
- Authority
- CN
- China
- Prior art keywords
- service
- block chain
- contract
- data
- data storage
- 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.)
- Granted
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 156
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000012545 processing Methods 0.000 claims description 15
- 238000010606 normalization Methods 0.000 claims description 13
- 238000013499 data model Methods 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种区块链数据的存储方法、装置、电子设备及存储介质,所述区块链数据的存储方法,包括:获取父区块链中第一业务区块链的第一业务合约,其中,所述父区块链为基于至少两种业务合约生成的主区块链,所述业务合约分别对应于所述父区块链中的子区块链;所述第一业务区块链为与所述至少两种业务合约中的第一业务合约对应的子区块链;根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,并将所述第一业务数据发送至所述第一数据存储模型存储。
Description
技术领域
本申请涉及区块链技术领域,具体涉及一种区块链数据的存储方法、装置、电子设备及存储介质。
背景技术
区块链是一种基于分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用体系。它本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
现有的区块链中,往往基于不同业务的业务合约将业务数据聚合在一起保存在MPT树中,进而确保业务数据不被篡改,但此种区块链因涉及多种不同的业务方向,需用到多种对应不同业务方向的数据存储模型,但目前的区块链无法支持针对不同业务合约部署不同类型的数据存储模型。
因此,如何解决上述技术问题成为本领域技术人员亟需解决的技术问题。
发明内容
本申请提供一种区块链数据的存储方法、装置、电子设备及存储设备,以解决现有技术中存在的问题。
所述区块链数据的存储方法,包括:
获取父区块链中第一业务区块链的第一业务合约,其中,所述父区块链为基于至少两种业务合约生成的主区块链,所述业务合约分别对应于所述父区块链中的子区块链;所述第一业务区块链为与所述至少两种业务合约中的第一业务合约对应的子区块链;
根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,并将所述第一业务数据发送至所述第一数据存储模型存储。
可选的,所述获取父区块链中第一业务区块链的第一业务合约,包括
获取所述父区块链中的业务合约列表,其中,所述业务合约列表中包括所述第一业务合约的合约地址信息;
根据所述业务合约列表中的所述第一业务合约的合约地址信息,获得所述第一业务合约的存储位置信息;
基于所述第一业务合约的存储位置信息,获得所述第一业务区块链的第一业务合约。
可选的,所述根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,包括:
根据所述第一业务合约的合约参数,确定所述第一业务数据的数据量级;
根据所述第一业务数据的数据量级,从部署有多个不同类型的数据存储模型的模型部署单元中获得与所述数据量级相匹配的所述第一数据存储模型。
可选的,所述根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,包括:
根据所述第一业务合约的合约参数,确定所述第一业务合约指定的第一数据存储类型;
基于所述第一业务合约指定的第一数据存储类型,从部署有多个不同类型的数据存储模型的模型部署单元中获得与所述第一数据存储类型相匹配的所述第一数据存储模型。
可选的,所述根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,包括:
根据所述第一业务合约,确定部署有多个不同类型的数据存储模型的模型部署单元中是否存在至少一个与所述第一业务合约相匹配的数据存储模型;
在所述模型部署单元不存在所述至少一个与所述第一业务合约相匹配的数据存储模型的情况下,根据所述第一业务合约,选择至少一个与所述第一业务合约相匹配的数据存储模型部署至所述模型部署单元,并将所述至少一个与所述第一业务合约相匹配的数据存储模型作为所述第一数据存储模型。
可选的,所述方法还包括:
在所述模型部署单元存在至少一个与所述第一业务合约相匹配的数据存储模型的情况下,确定与所述至少一个与所述第一业务合约相匹配的数据存储模型未与所述第一业务区块链之外的其他区块链建立存储关系的数据模型存储模型;
将所述未与所述第一业务区块链之外的其他区块链建立存储关系的数据模型存储模型作为所述第一数据存储模型。
可选的,所述多个不同类型的数据存储模型通过以下方式部署在所述模型部署单元:
对待部署的数据存储模型的调用接口的接口参数进行归一化处理,将接口参数归一化处理后的数据存储模型部署在所述模型部署单元。
可选的,所述父区块链中的第一业务区块链通过以下方式生成:
分别从所述父区块链的各父区块中获取所述各父区块存储的业务数据;
对所述各父区块存储的业务数据进行业务合约维度的划分,基于划分结果获得各父区块中与第一业务合约对应的第一业务数据;
根据所述各父区块中与所述第一业务合约对应的第一业务数据,生成所述第一业务区块链。
可选的,通过各子区块链记录各个业务的业务数据变化,并根据所述各个业务的业务数据变化,生成对应各子区块链的新子区块。
可选的,所述方法还包括:
分别获得各子区块链的新子区块记录的业务数据;
根据所述个子区块链的新子区块记录的业务数据,生成与各新子区块的哈希值;
基于所述各新子区块的哈希值,生成所述父区块链的新的父区块。
本申请同时提供一种区块链数据的存储装置,包括:
获取单元,用于获取父区块链中第一业务区块链的第一业务合约,其中,所述父区块链为基于至少两种业务合约生成的主区块链,所述业务合约分别对应于所述父区块链中的子区块链;所述第一业务区块链为与所述至少两种业务合约中的第一业务合约对应的子区块链;
存储单元,用于根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,并将所述第一业务数据发送至所述第一数据存储模型存储。
可选的,所述获取所述第一业务区块链的第一业务合约,包括
获取所述父区块链中的业务合约列表,其中,所述业务合约列表中包括所述第一业务合约的合约地址信息;
根据所述业务合约列表中的所述第一业务合约的合约地址信息,获得所述第一业务合约的存储位置信息;
基于所述第一业务合约的存储位置信息,获得所述第一业务区块链的第一业务合约。
可选的,所述根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,包括:
根据所述第一业务合约的合约参数,确定所述第一业务数据的数据量级;
根据所述第一业务数据的数据量级,从部署有多个不同类型的数据存储模型的模型部署单元中获得与所述数据量级相匹配的所述第一数据存储模型。
可选的,所述根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,包括:
根据所述第一业务合约的合约参数,确定所述第一业务合约指定的第一数据存储类型;
基于所述第一业务合约指定的第一数据存储类型,从部署有多个不同类型的数据存储模型的模型部署单元中获得与所述第一数据存储类型相匹配的所述第一数据存储模型。
可选的,所述根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,包括:
根据所述第一业务合约,确定部署有多个不同类型的数据存储模型的模型部署单元中是否存在至少一个与所述第一业务合约相匹配的数据存储模型;
在所述模型部署单元不存在所述至少一个与所述第一业务合约相匹配的数据存储模型的情况下,根据所述第一业务合约,选择至少一个与所述第一业务合约相匹配的数据存储模型部署至所述模型部署单元,并将所述至少一个与所述第一业务合约相匹配的数据存储模型作为所述第一数据存储模型。
可选的,所述装置还用于:
在所述模型部署单元存在至少一个与所述第一业务合约相匹配的数据存储模型的情况下,确定与所述至少一个与所述第一业务合约相匹配的数据存储模型未与所述第一业务区块链之外的其他区块链建立存储关系的数据模型存储模型;
将所述未与所述第一业务区块链之外的其他区块链建立存储关系的数据模型存储模型作为所述第一数据存储模型。
可选的,所述多个不同类型的数据存储模型通过以下方式部署在所述模型部署单元:
对待部署的数据存储模型的调用接口的接口参数进行归一化处理,将接口参数归一化处理后的数据存储模型部署在所述模型部署单元。
本申请同时提供一种电子设备,包括:
处理器;
存储器,用于存储方法的程序,所述程序在被所述处理器读取执行时,执行上述业务子链的创建的方法。
本申请同时提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述程序被执行时实现上述业务子链的创建方法。
与现有技术相比,本申请具有以下优点:
本申请提供的区块链数据的存储方法,包括:获取父区块链中第一业务区块链的第一业务合约,其中,所述父区块链为基于至少两种业务合约生成的主区块链,所述业务合约分别对应于所述父区块链中的子区块链;所述第一业务区块链为与所述至少两种业务合约中的第一业务合约对应的子区块链;根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,并将所述第一业务数据发送至所述第一数据存储模型存储。
该方法基于业务合约维度的基础上,将父区块链分为多个对应不同业务类型的子区块链,之后基于子区块链的业务合约,分别为子区块链构建数据存储模型,解决了现有技术中无法支持针对不同业务合约部署不同类型的数据存储模型的问题,同时提高了区块链本身的数据存储能力。
附图说明
图1为本申请实施例提供的一种区块链数据的存储方法流程图;
图2为本申请另一实施例提供的一种区块链的结构示意图;
图3为本申请另一实施例提供的基于子区块链生成父区块链中新区块的示意图;图4为本申请另一实施例提供的支撑多种数据存储模型的区块链构架示意图;
图5为本申请另一实施例提供的业务子链的生成装置示意图;
图6为本申请另一实施例提供的电子设备的结构示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其他方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施例的限制。
本申请中使用的术语是仅仅出于对特定实施例描述的目的,而非旨在限制本申请。在本申请中和所附权利要求书中所使用的描述方式例如:“一种”、“第一”、和“第二”等,并非对数量上的限定或先后顺序上的限定,而是用来将同一类型的信息彼此区分。
本申请实施例首先提供一种区块链数据的存储方法,在本申请的一种可选实施中,该方法的实施主体可以是笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,游戏主机)等各种类型的用户终端或者这些数据处理设备中任意两个或多个的组合,也可以是服务器。
请参考图1,图1为本申请实施例提供的一种区块链数据的存储方法流程图,该方法包括以下步骤S101至步骤S102。
步骤S101,获取父区块链中第一业务区块链的第一业务合约,其中,所述父区块链为基于至少两种业务合约生成的主区块链,所述业务合约分别对应于所述父区块链中的子区块链;所述第一业务区块链为与所述至少两种业务合约中的第一业务合约对应的子区块链。
所述父区块链可以理解为包含多个业务的智能合约生成的区块链主链,比如说,所述父区块链可以理解为用于存储企业A与企业B之间的资金流水数据和两企业之间签署的合同数据的区块链,其中,所述父区块链中存储的资金流水数据为通过智能合约1生成的数据,合同数据则为通过智能合约2生成的数据。
所述业务合约即为智能合约,智能合约是指一份能够自动执行本需要手动才能完成任务的电子协议,比如说,一份能自动计算合同当事人代付金额,并安排支付遮蔽金额的合约。智能合约保证了区块链“去中心化的特点”,允许交易双方在虚无第三方公正的情况下执行可溯源、不可逆转的安全交易。
具体的,所述智能合约可以理解为一种生活中的数字合约,在满足一定条件的情况下由程序自动执行合约规定的内容的技术。比如说,用户A和用户B之间做了一个具备奖惩措施的约定,之后将上述约定以代码的形式录入区块链,一旦约定规定的条件达成,则对应的奖惩措施将由程序自动执行。
在本申请实施例中,所述第一业务合约即为一种业务类型对应的智能合约。进一步的,为了便于理解本申请实施例的步骤S101中的父区块链与所述第一业务区块链之间的关系,以下首先对基于所述父区块链生成各种业务类型对应的子区块链的过程进行介绍。
请参考图2,图2为本申请另一实施例提供的一种区块链的结构示意图。
图2中包括父区块链201;父区块链201中的子区块:父区块201-1、父区块202-2、父区块202-3;
第一业务区块链202、第二业务区块链203、第三业务区块链204;
在图2中,将业务合约1作为所述第一业务合约,所述业务合约1对应第一业务区块链202,进一步的,业务合约2和业务合约3对应父区块链201中除业务合约1之外的其他业务合约。
业务合约2和业务合约3分别是第二业务区块链203和第三业务区块链204的业务合约。
第一业务区块链202还包括:子区块202-1、子区块202-2、子区块202-3;
第二业务区块链203还包括:子区块203-1、子区块203-2、子区块203-3;
第三业务区块链204还包括:子区块204-1、子区块204-2、子区块204-3;
具体的,第一业务区块链202中的子区块202-1、第二业务合约203中的子区块203-1以及第三业务合约204中的子区块204-1是根据父区块链201的父区块201的业务数据生成的。
此处以第一业务区块链202中的子区块202-1至子区块202-3的生成过程为例进行说明,以便于理解各子区块的生成过程。
对于子区块202-1的生成过程:
首先,将父区块201-1中的业务数据进行合约维度的划分,根据划分结果获得不同业务合约对应的业务数据,进而获得父区块201-1中与业务合约1对应的业务数据,此处,将父区块201-1中与业务合约1对应的业务数据记为业务数据1-1;
其次,将所述业务数据1-1和父区块201-1中全量的业务数据发送至父区块链201的全网节点,通过各节点按照所述全量的业务数据的处理过程对所述业务数据1-1进行处理,并基于各节点的处理结果,判断全网节点是否对业务数据1-1达成节点共识;
最后,在全网节点达成节点共识的情况下,将业务数据1-1作为子区块202-1记录的业务数据,并基于所述业务数据1-1构造子区块202-1的哈希值,以便于将子区块202-1与后续区块相关联。
进一步的,对于子区块202-2的生成过程:
与上述子区块202-1的生成过程类似的,首先,将父区块201-2中的业务数据进行合约维度的划分,进而获得父区块201-2中与业务合约2对应的业务数据,此处,将父区块201-2中与业务合约2对应的业务数据,记为业务数据1-2;
其次,与上述节点共识的过程类似的,将业务数据1-2和父区块201-2中全量的业务数据发送至全网节点,进而判断全网节点是否对业务数据1-2达成节点共识;
最后,在全网节点达成节点共识的情况下,将业务数据1-2作为子区块202-2记录的业务数据,并基于业务数据1-2构造子区块202-2的哈希值,以便于子区块202-1与后续区块相关联;同时将子区块202-1的哈希值记录至子区块202-2,以将子区块202-1与子区块202-2相关联。
进一步的,对于子区块202-3的生成过程:
与上述子区块202-1和子区块202-2的生成过程类似的,首先,将父区块201-3中的业务数据进行合约维度的划分,进而获得父区块201-3中与业务合约3对应的业务数据,记为业务数据1-3;
其次,与上述节点共识的过程类似的,将业务数据1-3和父区块201-3中全量的业务数据发送至全网节点,进而判断全网节点是否对业务数据1-3达成节点共识;
最后,在全网节点达成节点共识的情况下,将业务数据1-3作为子区块202-3记录的业务数据,并基于业务数据1-3构造子区块202-3的哈希值,以便于子区块202-3与后续区块相关联;同时将子区块202-2的哈希值记录至子区块202-3,以将子区块202-2与子区块202-3相关联。
以上即为本申请实施例提供的图2中的第一业务区块链202的各子区块的生成过程,第二业务区块链203和第三业务区块链204的各子区块的生成过程与第一业务区块链202的各子区块的生成过程类似,此处不再赘述。
在本申请的可选实施方式中,在所述父区块链的基础上建立各业务合约对应的子区块链后,父区块链只需记录子区块链中个子区块的哈希值以及监控父区块链中各业务,父区块链原有的记录、监控业务数据的功能则由各业务合约对应的子区块链完成。
进一步的,各子区块链生成新的子区块后,本申请实施例还包括根据各自区块链新生成的子区块合并成所述父区块链的新的服区块的过程:
请参考图3,图3为本申请另一实施例提供的基于子区块链生成父区块链中新区块的示意图。
图3中包括:父区块链301;父区块链中的子区块:父区块301-1、父区块301-2、父区块301-3、父区块301-4。
其中,父区块301-1和父区块301-2为父区块链301中原有的子区块。
第一业务区块链302、第二业务区块链303、第三业务区块链304;
其中,第一业务区块链302中包括:基于父区块301-1和父区块301-2的业务数据生成的子区块302-1和子区块302-2、通过第一业务区块链监控第一业务数据后新生成的子区块302-3和子区块302-4;
与上述第一业务区块链302类似的,第二业务区块链303中包括:基于父区块301-1和父区块301-2的业务数据生成的子区块303-1和子区块303-2、通过第二业务子区块链监控第一业务数据后生成的子区块303-3和子区块303-4;
第三业务区块链中包括:基于父区块301-1和父区块301-2的业务数据生成的子区块304-1和子区块304-2、通过第三业务子区块链监控第三业务数据后生成的子区块304-3和子区块304-4;
具体的,上述第一业务区块链302、第二业务区块链303以及第三业务区块链304中的根据父区块链中原有的父区块生成子区块的过程与图2中描述的过程类似,相关之处可参考对图2的介绍,此处不再赘述。
进一步的,以父区块301-3的生成过程为例,对业务子链合并生成新的父区块的过程进行说明。
如图3所示,第一业务区块链302、第二业务区块链303和第三业务区块链304生成了新的子区块,分别为:子区块302-3、子区块303-3、子区块303-4,之后,基于上述子区块存储的业务数据,生成新的哈希值,分别即为哈希值1、哈希值2以及哈希值3,将所述哈希值1、哈希值2、哈希值3提供至父区块链301,以供父区块链301将上述哈希值作为哈希值集合记录至新的父区块301-3.
与上述父区块301-3类似的,父区块301-4也基于上述类似的方式生成,此处不再赘述。
通过上述描述可以可知,步骤S101中的第一业务区块链为所述主区块链派生出的具有主区块链中的某种业务功能的区块链。且该区块链可以基于业务对应的业务合约单独运行,保证了子链独立发展自己的业务。
进一步的,在上述步骤S101中,所述第一业务区块链的第一业务合约可以根据以下步骤S1至步骤S3获得:
步骤S1,获取所述父区块链中的业务合约列表,其中,所述业务合约列表中包括所述第一业务合约的合约地址信息;
步骤S2,根据所述业务合约列表中的所述第一业务合约的合约地址信息,获得所述第一业务合约的存储位置信息;
步骤S3,基于所述第一业务合约的存储位置信息,获得所述第一业务区块链的第一业务合约。
在本申请实施例中,在基于所述父区块链创建各业务区块链的过程中,与各业务区块链对应的业务数据是存储与所述父区块链对应的数据存储模型中的,比如说,所述父区块链的各业务合约,因此,为了获得所述第一业务区块链的第一业务合约,首先需要通过根据所述父区块链中的业务合约列表找到所述第一业务合约的合约地址,之后,基于所述第一业务合约的合约地址,确定所述第一业务合约的存储位置,以便于获得所述第一业务合约的各种属性信息。
步骤S102,根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,并将所述第一业务数据发送至所述第一数据存储模型存储。
在本申请实施例中,所述数据存储模型描述了区块链中数据库中的结构化和操纵数据的方法,该模型规定了数据被如何描述(例如:通过树结构或者表结构等进行描述)。模型的操纵部分规定了数据的添加、删除、显示、维护、打印、查找、选择、排序、更新等操作,在本申请的一种可选实施方式中,所述数据存储模型的类型包括但不限于概念模型、层次模型、网状模型、关系模型、面向对象模型等。
所述根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,包括:根据所述第一业务合约的属性信息,确定与所述第一业务区块链对应的第一数据存储模型。
在本申请的一种可选实施方式中,所述第一业务合约的属性信息,包括:所述第一业务合约的存储类型。
进一步的,上述步骤S102可以通过以下步骤S4和步骤S5实现:
步骤S4,根据所述第一业务合约的合约参数,确定所述第一业务合约指定的第一数据存储类型;
步骤S5,基于所述第一业务合约指定的第一数据存储类型,从部署有多个不同类型的数据存储模型的模型部署单元中获得与所述第一数据存储类型相匹配的所述第一数据存储模型。
在本申请的另一种可选实施方式中,还可以根据所述第一业务合约指定的合约数量级确定与所述第一数据存储类型相匹配的所述第一数据存储模型。
其中,所述第一业务合约指定的合约数量级具体为所述第一业务数据的数据量。
具体的,上述步骤S102还可以通过以下步骤S6和步骤S7实现:
步骤S6,根据所述第一业务合约的合约参数,确定所述第一业务数据的数据量级;
步骤S7,根据所述第一业务数据的数据量级,从部署有多个不同类型的数据存储模型的模型部署单元中获得与所述数据量级相匹配的所述第一数据存储模型。
比如说,假设所述第一业务合约的合约参数指定的数据量级小于10万级,则可以选择levelDB数据库;再比如,假设所述第一业务合约的合约参数指定的数据量级为百万级,则可以选择RockDB数据库;再比如,假设所述第一业务合约的合约参数指定的数据量级为千万级,则可以选择Mysql数据库,再比如,假设所述第一业务合约的合约参数指定的数量级超过千万级,则可以选择分布式数据库。
在本申请实施例中,上述步骤S5和步骤S7中提到的所述模型部署单元可以理解为针对所述父区块链的多个业务子区块链设计的专用于选择数据存储模型的单元,该单元可部署多个不同类型的数据存储模型。
具体的,请参考图4,图4为本申请另一实施例提供的支撑多种数据存储模型的区块链构架示意图。
与上述图2类似的,图4中包括父区块链401、父区块401-1、父区块402-2、父区块402-3;
第一业务区块链402、第二业务区块链403、第三业务区块链404;其中,第一业务区块402链对应的智能合约为业务合约1、第二业务区块链403对应的智能合约为智能合约2、第三业务区块链404对应的智能合约为智能合约3;
第一业务区块链402还包括:子区块402-1、子区块402-2、子区块402-3;
第二业务区块链403还包括:子区块403-1、子区块403-2、子区块403-3;
第三业务区块链404还包括:子区块404-1、子区块404-2、子区块404-3;
上述区块链和子区块与本申请图2中介绍的区块链和子区块基本相同,相关之处参考图2的相关介绍即可,此处不再赘述。
进一步的,图4中还包括:模型部署单元405。
在具体应用的过程中,为了提高各业务区块链选择数据存储模型的效率,在将不同类型的数据存储模型部署至所述模型部署单元405的过程中,首先将所述不同的数据存储模型的调用接口进行归一化处理,再将归一化处理后的所述数据存储模型部署至所述模型部署单元405。
具体的,所述归一化处理即统一所述数据存储模型的查询接口和修改接口的定义方式。比如说,所述查询接口可以归一化处理为:value=query(key);所述修改接口可以归一化处理为bool result=modify(key,value)。
进一步的,在为业务区块链选择数据存储模型的过程中,还需考虑所述模型部署单元中是否存在可用的、对应所述业务区块链的数据存储类型的数据存储模型。
具体的,所述方法还包括以下步骤S8至步骤S11:
步骤S8,根据所述第一业务合约确定部署有多个不同类型的数据存储模型的模型部署单元是否存在至少一个与所述第一业务合约相匹配的数据存储模型;
步骤S9,在所述模型部署单元不存在所述至少一个与所述第一业务相匹配的数据存储模型的情况下,根据所述第一业务合约,选择至少一个与所述第一业务相匹配的数据存储模型部署至所述模型部署单元,并将所述至少一个与所述第一业务合约相匹配的数据存储模型作为所述第一数据存储模型。
步骤S10,在所述模型部署单元存在至少一个与所述第一业务合约相匹配的数据存储模型的情况下,确定与所述至少一个与所述第一业务合约相匹配的数据存储模型未与所述第一业务区块链之外的其他区块链建立存储关系的数据模型存储模型;
步骤S11,将所述未与所述第一业务区块链之外的其他区块链建立存储关系的数据模型存储模型作为所述第一数据存储模型。
也就是说,如果所述模型部署单元不存在对应类型的数据存储模型,则可以选择一对应类型的数据存储模型,并对所述数据存储模型的调用接口进行归一化处理,将归一化处理后的数据存储模型部署在所述模型部署单元,以便于业务区块链调用。
综上所述,本申请实施例提供的所述区块链数据的存储方法,基于业务合约维度的基础上,将父区块链分为多个对应不同业务类型的子区块链,之后基于子区块链的业务合约,分别为子区块链构建数据存储模型,解决了现有技术中无法支持针对不同业务合约部署不同类型的数据存储模型的问题,同时提高了区块链本身的数据存储能力。
本申请另一实施例同时提供一种区块链的存储装置,由于该装置实施例与上述方法实施例相对应,所以描述的比较简单,相关之处可参考上述对方法实施例的介绍,此处不再赘述。
请参考图5,图5为本申请另一实施例提供的区块链数据存储装置结构示意图。
所述区块链数据存储装置,包括:
获取单元501,用于获取第一业务区块链的第一业务合约,其中,所述第一业务区块链为根据基于至少两种业务合约生成的父区块链获得的、与所述至少两种业务合约中的第一业务合约对应的所述父区块链的子区块链;
存储单元502,用于根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,并将所述第一业务数据发送至所述第一数据存储模型存储。
可选的,所述获取所述第一业务区块链的第一业务合约,包括
获取所述父区块链中的业务合约列表,其中,所述业务合约列表中包括所述第一业务合约的合约地址信息;
根据所述业务合约列表中的所述第一业务合约的合约地址信息,获得所述第一业务合约的存储位置信息;
基于所述第一业务合约的存储位置信息,获得所述第一业务区块链的第一业务合约。
可选的,所述根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,包括:
根据所述第一业务合约的合约参数,确定所述第一业务数据的数据量级;
根据所述第一业务数据的数据量级,从部署有多个不同类型的数据存储模型的模型部署单元中获得与所述数据量级相匹配的所述第一数据存储模型。
可选的,所述根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,包括:
根据所述第一业务合约的合约参数,确定所述第一业务合约指定的第一数据存储类型;
基于所述第一业务合约指定的第一数据存储类型,从部署有多个不同类型的数据存储模型的模型部署单元中获得与所述第一数据存储类型相匹配的所述第一数据存储模型。
可选的,所述根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,包括:
根据所述第一业务合约,确定部署有多个不同类型的数据存储模型的模型部署单元中是否存在至少一个与所述第一业务合约相匹配的数据存储模型;
在所述模型部署单元不存在所述至少一个与所述第一业务合约相匹配的数据存储模型的情况下,根据所述第一业务合约,选择至少一个与所述第一业务合约相匹配的数据存储模型部署至所述模型部署单元,并将所述至少一个与所述第一业务合约相匹配的数据存储模型作为所述第一数据存储模型。
可选的,所述装置还用于:
在所述模型部署单元存在至少一个与所述第一业务合约相匹配的数据存储模型的情况下,确定与所述至少一个与所述第一业务合约相匹配的数据存储模型未与所述第一业务区块链之外的其他区块链建立存储关系的数据模型存储模型;
将所述未与所述第一业务区块链之外的其他区块链建立存储关系的数据模型存储模型作为所述第一数据存储模型。
可选的,所述多个不同类型的数据存储模型通过以下方式部署在所述模型部署单元:
对待部署的数据存储模型的调用接口的接口参数进行归一化处理,将接口参数归一化处理后的数据存储模型部署在所述模型部署单元。
本申请另一实施例同时提供一种电子设备,请参考图6,图6为本申请另一实施例提供的电子设备的结构示意图。
该电子设备包括:
至少一个处理器601、至少一个存储器603、至少一个通信接口602以及至少一个通信总线604;
可选的,通信接口602可以为通信模块的接口,如GSM模块的接口;
处理器601可能是CPU,或者是特定集成电路ASIC(APPlication SpecificIntegrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路;
存储器603可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
其中,存储器603为用于存储方法的程序,所述程序在被处理器读取执行时,执行本申请方法实施例提供的方法。
本申请第六实施例同时提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述程序在被执行时实现上述方法实施例中提供的方法。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为系统或电子设备。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (13)
1.一种区块链数据的存储方法,其特征在于,包括:
获取父区块链中第一业务区块链的第一业务合约,其中,所述父区块链为基于至少两种业务合约生成的主区块链,所述业务合约分别对应于所述父区块链中的子区块链;所述第一业务区块链为与所述至少两种业务合约中的第一业务合约对应的子区块链;
根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,并将所述第一业务数据发送至所述第一数据存储模型存储。
2.根据权利要求1所述的方法,其特征在于,所述获取父区块链中第一业务区块链的第一业务合约,包括:
获取所述父区块链中的业务合约列表,其中,所述业务合约列表中包括所述第一业务合约的合约地址信息;
根据所述业务合约列表中的所述第一业务合约的合约地址信息,获得所述第一业务合约的存储位置信息;
基于所述第一业务合约的存储位置信息,获得所述第一业务区块链的第一业务合约。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,包括:
根据所述第一业务合约的合约参数,确定所述第一业务数据的数据量级;
根据所述第一业务数据的数据量级,从部署有多个不同类型的数据存储模型的模型部署单元中获得与所述数据量级相匹配的所述第一数据存储模型。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,包括:
根据所述第一业务合约的合约参数,确定所述第一业务合约指定的第一数据存储类型;
基于所述第一业务合约指定的第一数据存储类型,从部署有多个不同类型的数据存储模型的模型部署单元中获得与所述第一数据存储类型相匹配的所述第一数据存储模型。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,包括:
根据所述第一业务合约,确定部署有多个不同类型的数据存储模型的模型部署单元中是否存在至少一个与所述第一业务合约相匹配的数据存储模型;
在所述模型部署单元不存在所述至少一个与所述第一业务合约相匹配的数据存储模型的情况下,根据所述第一业务合约,选择至少一个与所述第一业务合约相匹配的数据存储模型部署至所述模型部署单元,并将所述至少一个与所述第一业务合约相匹配的数据存储模型作为所述第一数据存储模型。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述模型部署单元存在至少一个与所述第一业务合约相匹配的数据存储模型的情况下,确定与所述至少一个与所述第一业务合约相匹配的数据存储模型未与所述第一业务区块链之外的其他区块链建立存储关系的数据模型存储模型;
将所述未与所述第一业务区块链之外的其他区块链建立存储关系的数据模型存储模型作为所述第一数据存储模型。
7.根据权利要求3或4所述的方法,其特征在于,所述多个不同类型的数据存储模型通过以下方式部署在所述模型部署单元:
对待部署的数据存储模型的调用接口的接口参数进行归一化处理,将接口参数归一化处理后的数据存储模型部署在所述模型部署单元。
8.根据权利要求1所述的方法,其特征在于,所述父区块链中的第一业务区块链通过以下方式生成:
分别从所述父区块链的各父区块中获取所述各父区块存储的业务数据;
对所述各父区块存储的业务数据进行业务合约维度的划分,基于划分结果获得各父区块中与第一业务合约对应的第一业务数据;
根据所述各父区块中与所述第一业务合约对应的第一业务数据,生成所述第一业务区块链。
9.根据权利要求1所述的方法,其特征在于,通过各子区块链记录各个业务的业务数据变化,并根据所述各个业务的业务数据变化,生成对应各子区块链的新子区块。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
分别获得各子区块链的新子区块记录的业务数据;
根据所述个子区块链的新子区块记录的业务数据,生成与各新子区块的哈希值;
基于所述各新子区块的哈希值,生成所述父区块链的新的父区块。
11.一种区块链数据的存储装置,其特征在于,包括:
获取单元,用于获取父区块链中第一业务区块链的第一业务合约,其中,所述父区块链为基于至少两种业务合约生成的主区块链,所述业务合约分别对应于所述父区块链中的子区块链;所述第一业务区块链为与所述至少两种业务合约中的第一业务合约对应的子区块链;
存储单元,用于根据所述第一业务合约,确定与所述第一业务区块链对应的第一数据存储模型,并将所述第一业务数据发送至所述第一数据存储模型存储。
12.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储方法的程序,所述程序在被所述处理器读取执行时,执行权利要求1-10任意一项所述的方法。
13.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述程序被执行时实现权利要求1-10任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210550136.4A CN115150413B (zh) | 2022-05-20 | 2022-05-20 | 区块链数据的存储方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210550136.4A CN115150413B (zh) | 2022-05-20 | 2022-05-20 | 区块链数据的存储方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115150413A true CN115150413A (zh) | 2022-10-04 |
CN115150413B CN115150413B (zh) | 2023-11-03 |
Family
ID=83406809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210550136.4A Active CN115150413B (zh) | 2022-05-20 | 2022-05-20 | 区块链数据的存储方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115150413B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117171236A (zh) * | 2023-11-02 | 2023-12-05 | 中电科大数据研究院有限公司 | 一种基于区块链的数据溯源方法及系统 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647361A (zh) * | 2018-05-21 | 2018-10-12 | 中国工商银行股份有限公司 | 一种基于区块链的数据存储方法、装置及系统 |
CN108764925A (zh) * | 2018-05-31 | 2018-11-06 | 李沁福 | 一种基于区块链技术的综合业务平台 |
CN109241087A (zh) * | 2018-09-27 | 2019-01-18 | 福建福链科技有限公司 | 一种联盟链的数据处理方法及终端 |
US20200118068A1 (en) * | 2018-10-10 | 2020-04-16 | QuestaWeb, Inc. | Hierarchical Blockchain Architecture for Global Trade Management |
US20200250174A1 (en) * | 2019-01-31 | 2020-08-06 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing efficient storage and validation of data and metadata within a blockchain using distributed ledger technology (dlt) |
CN111625593A (zh) * | 2020-04-21 | 2020-09-04 | 金蝶软件(中国)有限公司 | 基于区块链的数据处理方法、装置、计算机设备 |
CN111988402A (zh) * | 2020-08-20 | 2020-11-24 | 支付宝(杭州)信息技术有限公司 | 一种数据核验方法、装置及电子设备 |
CN112015806A (zh) * | 2019-05-30 | 2020-12-01 | 中国移动通信集团浙江有限公司 | 区块链存储数据的方法及装置 |
CN112788108A (zh) * | 2020-12-29 | 2021-05-11 | 深圳前海微众银行股份有限公司 | 一种跨区块链分布式消息处理方法、平台及存储介质 |
CN113177092A (zh) * | 2021-05-21 | 2021-07-27 | 中船黄埔文冲船舶有限公司 | 一种船舶制造检验数据的共享方法、联盟链及系统 |
US11100501B1 (en) * | 2020-05-22 | 2021-08-24 | Kpmg Llp | Modular, configurable smart contracts for blockchain transactions |
WO2022069136A1 (en) * | 2020-09-30 | 2022-04-07 | Nchain Licensing Ag | Verification system and method |
-
2022
- 2022-05-20 CN CN202210550136.4A patent/CN115150413B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647361A (zh) * | 2018-05-21 | 2018-10-12 | 中国工商银行股份有限公司 | 一种基于区块链的数据存储方法、装置及系统 |
CN108764925A (zh) * | 2018-05-31 | 2018-11-06 | 李沁福 | 一种基于区块链技术的综合业务平台 |
CN109241087A (zh) * | 2018-09-27 | 2019-01-18 | 福建福链科技有限公司 | 一种联盟链的数据处理方法及终端 |
US20200118068A1 (en) * | 2018-10-10 | 2020-04-16 | QuestaWeb, Inc. | Hierarchical Blockchain Architecture for Global Trade Management |
US20200250174A1 (en) * | 2019-01-31 | 2020-08-06 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing efficient storage and validation of data and metadata within a blockchain using distributed ledger technology (dlt) |
CN112015806A (zh) * | 2019-05-30 | 2020-12-01 | 中国移动通信集团浙江有限公司 | 区块链存储数据的方法及装置 |
CN111625593A (zh) * | 2020-04-21 | 2020-09-04 | 金蝶软件(中国)有限公司 | 基于区块链的数据处理方法、装置、计算机设备 |
US11100501B1 (en) * | 2020-05-22 | 2021-08-24 | Kpmg Llp | Modular, configurable smart contracts for blockchain transactions |
CN111988402A (zh) * | 2020-08-20 | 2020-11-24 | 支付宝(杭州)信息技术有限公司 | 一种数据核验方法、装置及电子设备 |
WO2022069136A1 (en) * | 2020-09-30 | 2022-04-07 | Nchain Licensing Ag | Verification system and method |
CN112788108A (zh) * | 2020-12-29 | 2021-05-11 | 深圳前海微众银行股份有限公司 | 一种跨区块链分布式消息处理方法、平台及存储介质 |
CN113177092A (zh) * | 2021-05-21 | 2021-07-27 | 中船黄埔文冲船舶有限公司 | 一种船舶制造检验数据的共享方法、联盟链及系统 |
Non-Patent Citations (3)
Title |
---|
ANICHUR RAHMAN ETAL: "《DistB-Condo: Distributed Blockchain-Based IoT-SDN Model for Smart Condominium》", 《IEEE ACCESS》 * |
孙国梓;冒小乐;陈鼎洁;雷鹏;李华康;: "基于区块链技术的电子数据存证系统", 西安邮电大学学报, no. 04 * |
谷宁静;: "基于区块链的电子政务数据共享设计研究", 信息安全与通信保密, no. 04 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117171236A (zh) * | 2023-11-02 | 2023-12-05 | 中电科大数据研究院有限公司 | 一种基于区块链的数据溯源方法及系统 |
CN117171236B (zh) * | 2023-11-02 | 2024-02-06 | 中电科大数据研究院有限公司 | 一种基于区块链的数据溯源方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115150413B (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108846659B (zh) | 基于区块链的转账方法、装置及存储介质 | |
EP3591510B1 (en) | Method and device for writing service data in block chain system | |
US20190266128A1 (en) | Method and system for verification of deleted data for blockchains | |
US20170212966A1 (en) | Vectorized graph processing | |
CN109597822B (zh) | 一种用户数据的存储及查询方法和用户数据处理装置 | |
US20220083917A1 (en) | Distributed and federated learning using multi-layer machine learning models | |
CN110020854B (zh) | 一种基于多个区块链网络的数据存证方法及系统 | |
CN110020945B (zh) | 一种基于多个区块链网络的数据读取方法及系统 | |
CN110060153B (zh) | 一种基于多个区块链网络的数据存证方法及系统 | |
CN110022315A (zh) | 一种块链式账本中的权重管理方法、装置及设备 | |
EP3572995A1 (en) | Case management by a state machine | |
CN106649602A (zh) | 业务对象数据处理方法、装置和服务器 | |
CN115150413B (zh) | 区块链数据的存储方法、装置、电子设备及存储介质 | |
WO2021007863A1 (en) | Integrity auditing for multi-copy storage | |
CN114971827A (zh) | 一种基于区块链的对账方法、装置、电子设备及存储介质 | |
CN110879808A (zh) | 一种信息处理方法和装置 | |
US20200089539A1 (en) | Optimization of memory usage by integration flows | |
CN109934584A (zh) | 区块链账户交易方法及设备 | |
CN110851343A (zh) | 一种基于决策树的测试方法和装置 | |
CN109976870A (zh) | 虚拟机的创建方法、装置、设备及介质 | |
CN110060151B (zh) | 一种业务执行方法及装置 | |
WO2023025033A1 (en) | Intelligent dataset slicing during microservice handshaking | |
CN115174589B (zh) | 区块链虚拟机的选择方法、装置、电子设备及存储介质 | |
CN114296651B (zh) | 一种用于存储自定义数据信息的方法与设备 | |
CN115098297A (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 |