分布式存储方法、系统及设备技术方案

技术编号:20389636 阅读:19 留言:0更新日期:2019-02-20 02:45
本发明专利技术公开了一种分布式存储方法,包括:当所述区块链网络中的一区块链节点发起交易请求时,所述一区块链节点对携带有所述交易请求的区块执行共识操作,并将经共识操作后的区块广播至所述区块链网络中的其余区块链节点;所述其余区块链节点从经共识操作后的区块中获取交易请求数据,并通过所述智能合约发起表创建、表插入或表查询请求,以调用所述键值对接口和所述存储引擎将所述交易请求数据传输至所述AMDB数据代理;所述其余区块链节点通过所述AMDB数据代理,依据所述交易请求数据,对所述数据库执行对应的数据库操作。本发明专利技术还公开了一种分布式存储系统及设备。本发明专利技术能够提高区块链中的数据存储效率,减少数据更新时间。

【技术实现步骤摘要】
分布式存储方法、系统及设备
本专利技术涉及数据存储的
,尤其涉及一种分布式存储方法、系统及设备。
技术介绍
基于以太坊的区块链采用MPT(MerklePatriciaTree,默克尔帕特里夏树)树存储区块链相关数据。具体利用状态树存储区块链中的合约和状态数据,利用存储树存储合约数据及其变化历史。在状态树或存储树中,当叶子节点的数据更新之后,会插入新节点,且新节点到根节点的一系列路径全部重新生成新节点。然而,当下层的存储树更新时,上层的状态树也随之更新,随着区块链中的交易量、智能合约和账户增多,MPT树的树高会同步增加,导致MPT树存储数据的效率降低,更新所需的时间也越来越多,影响区块链网络交易的执行。因此,如何提高区块链中的数据存储效率,减少数据更新时间是目前亟待解决的问题。
技术实现思路
本专利技术的主要目的在于提供一种分布式存储方法、系统及设备,旨在提高区块链中的数据存储效率,减少数据更新时间。为实现上述目的,本专利技术提供一种分布式存储方法,应用于区块链网络,所述区块链网络中的各区块链节点均部署有智能合约、键值对接口、存储引擎、AMDB分布式存储数据代理和数据库,所述分布式存储方法包括以下步骤:当所述区块链网络中的一区块链节点发起交易请求时,所述一区块链节点对携带有所述交易请求的区块执行共识操作,并将经共识操作后的区块广播至所述区块链网络中的其余区块链节点;所述其余区块链节点从经共识操作后的区块中获取交易请求数据,并通过所述智能合约发起表创建、表插入或表查询请求,以调用所述键值对接口和所述存储引擎将所述交易请求数据传输至所述AMDB数据代理;所述其余区块链节点通过所述AMDB数据代理,依据所述交易请求数据,对所述数据库执行对应的数据库操作。进一步地,所述AMDB数据代理启动时,在对应的数据库中创建区块链系统表,所述区块链系统表存储有系统字段和用户表的表名、主键字段和数据字段。进一步地,所述键值对接口为通用的数据访问接口,且所述键值对接口包括查询接口和提交接口;所述查询接口的参数包括区块哈希、区块高度、表名和表主键,所述提交接口的参数包括区块哈希、区块高度、表和表记录集合。进一步地,所述智能合约设置有表创建接口、表插入接口和表查询接口,所述表创建接口用于发起表创建请求,所述表插入接口用于发起表插入请求,所述表查询接口用于发起表查询请求。此外,本专利技术还提供一种分布式存储方法,应用于区块链网络,所述区块链网络中的各区块链节点均部署有智能合约、键值对接口、存储引擎、AMDB分布式存储数据代理和数据库,所述分布式存储方法包括以下步骤:当所述区块链节点接收到被广播的经共识操作后的区块时,所述区块链节点从经共识操作后的区块中获取交易请求数据;所述区块链节点通过所述智能合约发起表创建、表插入或表查询请求,以调用所述键值对接口和所述存储引擎将所述交易请求数据传输至所述AMDB数据代理;所述区块链节点通过所述AMDB数据代理,依据所述交易请求数据,对所述数据库执行对应的数据库操作。进一步地,所述通过所述AMDB数据代理,依据所述交易请求数据,对所述数据库执行对应的数据库操作的步骤包括:通过所述AMDB数据代理,依据所述交易请求数据,触发对应的数据库操作指令;若所述数据库操作指令为表创建指令,则从所述交易请求数据中读取表信息,并将所述表信息插入所述区块链系统表;依据所述表信息中的表名、主键字段和数据字段在所述数据库中创建对应的用户表,并将所述交易请求数据中的交易数据插入创建的用户表中。进一步地,依据所述交易请求数据,确定数据库操作指令的步骤之后,还包括:若所述数据库操作指令为表插入指令,则从所述交易请求数据中读取表信息,并依据读取到的表信息,判断所述数据库中是否存在目标用户表;若所述数据库中存在目标用户表,则将所述交易请求数据中的交易数据插入所述目标用户表中。进一步地,所述依据读取到的表信息,判断所述数据库中是否存在目标用户表的步骤之后,还包括:若所述数据库中不存在目标用户表,则依据读取到的表信息中的目标表名,查询所述区块链系统表,以获取目标主键字段和目标数据字段;依据所述目标表名、所述目标主键字段和所述目标数据字段在所述数据库中创建目标用户表,并将所述交易请求数据中的交易数据插入所述目标用户表中。此外,本专利技术还提供一种分布式存储系统,所述分布式存储系统包括一区块链网络,所述区块链网络中的各区块链节点均部署有智能合约、键值对接口、存储引擎、AMDB分布式存储数据代理和数据库,其中:当所述区块链网络中的一区块链节点发起交易请求时,所述一区块链节点对携带有所述交易请求的区块执行共识操作,并将经共识操作后的区块广播至所述区块链网络中的其余区块链节点;所述其余区块链节点从经共识操作后的区块中获取交易请求数据,并通过所述智能合约发起表创建、表插入或表查询请求,以调用所述键值对接口和所述存储引擎将所述交易请求数据传输至所述AMDB数据代理;所述其余区块链节点通过所述AMDB数据代理,依据所述交易请求数据,对所述数据库执行对应的数据库操作。进一步地,所述AMDB数据代理启动时,在对应的数据库中创建区块链系统表,所述区块链系统表存储有系统字段和用户表的表名、主键字段和数据字段。进一步地,所述键值对接口为通用的数据访问接口,且所述键值对接口包括查询接口和提交接口;所述查询接口的参数包括区块哈希、区块高度、表名和表主键,所述提交接口的参数包括区块哈希、区块高度、表和表记录集合。进一步地,所述智能合约设置有表创建接口、表插入接口和表查询接口,所述表创建接口用于发起表创建请求,所述表插入接口用于发起表插入请求,所述表查询接口用于发起表查询请求。此外,本专利技术还提供一种分布式存储设备,所述分布式存储设备包括接收获取模块、传输模块、智能合约、键值对接口、存储引擎、AMDB分布式存储数据代理和数据库,其中:所述接收获取模块,用于当接收到被广播的经共识操作后的区块时,从经共识操作后的区块中获取交易请求数据;所述传输模块,用于通过所述智能合约发起表创建、表插入或表查询请求,以调用所述键值对接口和所述存储引擎将所述交易请求数据传输至所述AMDB数据代理;所述AMDB数据代理,用于依据所述交易请求数据,对所述数据库执行对应的数据库操作。进一步地,所述AMDB数据代理还用于:依据所述交易请求数据,触发对应的数据库操作指令;若所述数据库操作指令为表创建指令,则从所述交易请求数据中读取表信息,并将所述表信息插入所述区块链系统表;依据所述表信息中的表名、主键字段和数据字段在所述数据库中创建对应的用户表,并将所述交易请求数据中的交易数据插入创建的用户表中。进一步地,所述AMDB数据代理还用于:若所述数据库操作指令为表插入指令,则从所述交易请求数据中读取表信息,并依据读取到的表信息,判断所述数据库中是否存在目标用户表;若所述数据库中存在目标用户表,则将所述交易请求数据中的交易数据插入所述目标用户表中。进一步地,所述AMDB数据代理还用于:若所述数据库中不存在目标用户表,则依据读取到的表信息中的目标表名,查询所述区块链系统表,以获取目标主键字段和目标数据字段;依据所述目标表名、所述目标主键字段和所述目标数据字段在所述数据库中创建目标用户表,并将所述交易请求数据中的交本文档来自技高网...

【技术保护点】
1.一种分布式存储方法,其特征在于,应用于区块链网络,所述区块链网络中的各区块链节点均部署有智能合约、键值对接口、存储引擎、AMDB分布式存储数据代理和数据库,所述分布式存储方法包括以下步骤:当所述区块链网络中的一区块链节点发起交易请求时,所述一区块链节点对携带有所述交易请求的区块执行共识操作,并将经共识操作后的区块广播至所述区块链网络中的其余区块链节点;所述其余区块链节点从经共识操作后的区块中获取交易请求数据,并通过所述智能合约发起表创建、表插入或表查询请求,以调用所述键值对接口和所述存储引擎将所述交易请求数据传输至所述AMDB数据代理;所述其余区块链节点通过所述AMDB数据代理,依据所述交易请求数据,对所述数据库执行对应的数据库操作。

【技术特征摘要】
1.一种分布式存储方法,其特征在于,应用于区块链网络,所述区块链网络中的各区块链节点均部署有智能合约、键值对接口、存储引擎、AMDB分布式存储数据代理和数据库,所述分布式存储方法包括以下步骤:当所述区块链网络中的一区块链节点发起交易请求时,所述一区块链节点对携带有所述交易请求的区块执行共识操作,并将经共识操作后的区块广播至所述区块链网络中的其余区块链节点;所述其余区块链节点从经共识操作后的区块中获取交易请求数据,并通过所述智能合约发起表创建、表插入或表查询请求,以调用所述键值对接口和所述存储引擎将所述交易请求数据传输至所述AMDB数据代理;所述其余区块链节点通过所述AMDB数据代理,依据所述交易请求数据,对所述数据库执行对应的数据库操作。2.如权利要求1所述的分布式存储方法,其特征在于,所述AMDB数据代理启动时,在对应的数据库中创建区块链系统表,所述区块链系统表存储有系统字段和用户表的表名、主键字段和数据字段。3.如权利要求1所述的分布式存储方法,其特征在于,所述键值对接口为通用的数据访问接口,且所述键值对接口包括查询接口和提交接口;所述查询接口的参数包括区块哈希、区块高度、表名和表主键,所述提交接口的参数包括区块哈希、区块高度、表和表记录集合。4.如权利要求1所述的分布式存储方法,其特征在于,所述智能合约设置有表创建接口、表插入接口和表查询接口,所述表创建接口用于发起表创建请求,所述表插入接口用于发起表插入请求,所述表查询接口用于发起表查询请求。5.一种分布式存储方法,其特征在于,应用于区块链网络,所述区块链网络中的各区块链节点均部署有智能合约、键值对接口、存储引擎、AMDB分布式存储数据代理和数据库,所述分布式存储方法包括以下步骤:当所述区块链节点接收到被广播的经共识操作后的区块时,所述区块链节点从经共识操作后的区块中获取交易请求数据;所述区块链节点通过所述智能合约发起表创建、表插入或表查询请求,以调用所述键值对接口和所述存储引擎将所述交易请求数据传输至所述AMDB数据代理;所述区块链节点通过所述AMDB数据代理,依据所述交易请求数据,对所述数据库执行对应的数据库操作。6.如权利要求5所述的分布式存储方法,其特征在于,所述通过所述AMDB数据代理,依据所述交易请求数据,对所述数据库执行对应的数据库操作的步骤包括:通过所述AMDB数据代理,依据所述交易请求数据,触发对应的数据库操作指令;若所述数据库操作指令为表创建指令,则从所述交易请求数据中读取表信息,并将所述表信息插入所述区块链系统表;依据所述表信息中的表名、主键字段和数据字段在所述数据库中创建对应的用户表,并将所述交易请求数据中的交易数据插入创建的用户表中。7.如权利要求6所述的分布式存储方法,其特征在于,依据所述交易请求数据,确定数据库操作指令的步骤之后,还包括:若所述数据库操作指令为表插入指令,则从所述交易请求数据中读取表信息,并依据读取到的表信息,判断所述数据库中是否存在目标用户表;若所述数据库中存在目标用户表,则将所述交易请求数据中的交易数据插入所述目标用户表中。8.如权利要求7所述的分布式存储方法,其特征在于,所述依据读取到的表信息,判断所述数据库中是否存在目标用户表的步骤之后,还包括:若所述数据库中不存在目标用户表,则依据读取到的表信息中的目标表名,查询所述区块链系统表,以获取目标主键字段和目标数据字段;依据所述目标表名、所述目标主...

【专利技术属性】
技术研发人员:莫楠张开翔范瑞彬廖飞强白兴强
申请(专利权)人:深圳前海微众银行股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1