System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种区块链归档数据的存储方法及系统技术方案_技高网

一种区块链归档数据的存储方法及系统技术方案

技术编号:40560670 阅读:13 留言:0更新日期:2024-03-05 19:23
本发明专利技术公开了一种区块链归档数据的存储方法及系统,属于区块链归档技术领域,采用三层分离的底层存储架构,针对不同的业务场景接入不同的账本存储,包括数据访问层、数据代理层、数据存储层;其中,数据访问层包括数据访问接口、数据路由、sql适配器、数据处理结果整合;区块链节点或cmd命令行通过归档模块发出归档指令,然后经由数据访问层的数据访问结构,通过数据路由分发到数据代理层,再由数据代理层调用数据存储层的存储资源进行存储;存储结果从数据存储层,经由数据代理层,反馈到数据访问层,再经过数据访问接口反馈给区块链节点或CMD命令行。本发明专利技术能够使得归档数据的存储逻辑清晰,安全可靠。

【技术实现步骤摘要】

本专利技术涉及区块链归档,具体地说是一种区块链归档数据的存储方法及系统


技术介绍

1、目前对于区块链归档数据存储存在以下问题:

2、业务功能方面:1.区块链归档数据简单存入数据库,仅能提供简单的kv查询以及整个区块记录的插入功能,无法满足负责业务处理逻辑的需求,如支持复杂查询,支持多种存储方式、支持存储过程,表之间关联和事务等,面对错综复杂的需求,区块链给业务逻辑提供的价值十分有限。2.对于多链多通道接入区块链持久化数据在目前架构下rocksdb或者leveldb在存储方面无法互相隔离应用数据。

3、存储架构方面:1.区块链归档数据库底层持久化存储,可能会采用rocksdb或者leverldb,这些开源nosql产品,大多企业都缺乏对这类产品的技术、运维监控的经验。2.从架构上分析数据库集成在区块链产品中,数据库与区块链逻辑处理高度耦合,且数据库随区块链产品单点部署,数据存储的高可用、扩展性存在困难。


技术实现思路

1、本专利技术的技术任务是针对以上不足之处,提供一种区块链归档数据的存储方法及系统,能够使得归档数据的存储逻辑清晰,安全可靠;使得软件系统更易于理解、开发、维护和扩展,大大提高了整体的质量和可靠性,并为团队协作和分工带来便利。

2、本专利技术解决其技术问题所采用的技术方案是:

3、一种区块链归档数据的存储方法,采用三层分离的底层存储架构,针对不同的业务场景接入不同的账本存储,包括数据访问层、数据代理层、数据存储层;其中,数据访问层包括数据访问接口、数据路由、sql适配器、数据处理结果整合;

4、区块链节点或cmd命令行通过归档模块发出归档指令,然后经由数据访问层的数据访问结构,通过数据路由分发到数据代理层,再由数据代理层调用数据存储层的存储资源进行存储;存储结果从数据存储层,经由数据代理层,反馈到数据访问层,再经过数据访问接口反馈给区块链节点或cmd命令行。

5、该方法的实现从上到下依次经过区块链节点或命令行、数据访问层、数据代理层、数据存储层四层架构;层与层之间彼此独立,通过特定方式进行通信,达到解耦合、高可用、易扩展的目的。

6、优选的,所述数据访问接口为智能合约或命令行提供接入方法,为区块链ledger链上存储数据与链下归档数据库提供交互接口,如put、query、restore,符合归档、查询、恢复的基本sql操作等接口;

7、对于关系型的数据库如mysql,运行支持通用sql和存储过程操作,并支持扩展应用层逻辑处理,如统计报表分析,运维数据监控等功能。

8、优选的,所述数据路由,主要实现数据库服务器的转接桥梁,建立应用、数据库产品类型、数据库服务器、数据表间的映射关系,支持分布式存储、负载均衡、查询优化和数据复制等功能,提高数据库的整体性能和吞吐量,减少网络传输和数据处理的开销,实现数据的复制和冗余存储,从而提高数据库系统的性能、可扩展性和可靠性。

9、优选的,所述sql适配器,实现将数据访问接口中的sql语句,解析成对链下归档数据库中的kv数据结构。

10、优选的,智能合约层提供sql语句、查询过程,则sql适配器提炼其中的sql语句(增删查改)并解析成json格式记录操作(json:{key,value}/table/column),用于通讯及状态加密hash值得计算等,而json报文在数据代理词则转化为具体的sql格式。

11、优选的,所述数据处理结果整合,主要实现关系型数据库中数据以数据表逻辑存储,获取的数据为字段column对应的值;在通信网络中需要json或者proto序列化传输;从数据库返回的处理结果进行json序列化成marshal对象,通信之后再进行unmarshal处理得到对应的数据结构。

12、优选的,所述数据代理层,实现关系型数据库的接入协议,与数据库服务器建立socket连接,创建连接池的功能;

13、数据代理层支持多种数据库存储,支持多种数据库的接入协议,并且能够适配go语言的客户端。

14、数据代理层作为中间层,灵活配置多种数据库的接入协议,可以与上层的数据适配器和数据路由、数据整合集成,为请求方提供整合后的完整数据结果。

15、优选的,所述数据代理层,适配postgresql时,引入对应的postgresql驱动库,经由客户端发起tcp连接、客户端发送启动请求、服务器发送认证请求、客户端进行认证、服务器返回认证结果、数据交换、连接维持和关闭的步骤,完成与postgresql数据库的通信;

16、利用原生协议提供的高效的数据传输和处理机制,在处理大量数据时提供出色性能,使用连接池和并发控制来应对高并发请求和大规模数据处理;同时利用postgresql原生协议支持的数据库功能,包括事务控制、视图、触发器、存储过程、用户自定义函数、加密通信和身份验证机制等,在灵活管理数据库的同时,确保数据在传输和存储过程中的安全性。

17、优选的,所述数据存储层实现结构化数据和非结构化数据(大数据)存储,根据不同的应用场景,按照需要搭配组合存储,应用根据不同的业务场景选择合适的存储模型;通过权限控制实现数据间在应用间隔离。

18、结构化数据是指以明确定义的模式和格式组织和存储的数据,这种数据以表格、关系型数据库或类似的结构形式存在,每个数据字段都有明确的定义和类型,如已归档的区块信息,包括高度,链id等已归档的链下区块信息;非结构化数据是指没有明确定义模式或格式的数据,通常不适合放入传统的关系型数据库表中进行存储和查询,这类数据不容易通过结构化方法进行整理和组织,比如序列化后的区块数据、交易读写集数据等。

19、数据库存储模型对于选择关系型数据mysql,redis按照分库分表的基本设计原则,根据应用数据量、性能要求灵活设计,通过权限控制实现数据间在应用间隔离,灵活配置多用户、多实例、多节点实现逻辑和物理上的隔离。

20、本专利技术还要求保护一种区块链归档数据的存储系统,包括区块链节点或命令行、数据访问层、数据代理层和数据存储层,

21、区块链节点或cmd命令行通过归档模块发出归档指令,然后经由数据访问层的数据访问结构,通过数据路由分发到数据代理层,再由数据代理层调用数据存储层的存储资源进行存储;存储结果从数据存储层,经由数据代理层,反馈到数据访问层,再经过数据访问接口反馈给区块链节点或cmd命令行。

22、该系统具体通过上述的区块链归档数据的存储实现区块链归档数据存储。

23、本专利技术的一种区块链归档数据的存储方法及系统与现有技术相比,具有以下有益效果:

24、1、解决归档存储时,存储与查询运算高度耦合的缺点,实现链下数据存储查询解耦,数据存储高可用、易扩展、数据库监控运维也会更加方便和快捷。

25、2、适配多种数据库,可以根据不同的使用场景选择不同的数据库,通过不同的数据库装载不同组本文档来自技高网...

【技术保护点】

1.一种区块链归档数据的存储方法,其特征在于,采用三层分离的底层存储架构,针对不同的业务场景接入不同的账本存储,包括数据访问层、数据代理层、数据存储层;其中,数据访问层包括数据访问接口、数据路由、sql适配器、数据处理结果整合;

2.根据权利要求1所述的一种区块链归档数据的存储方法,其特征在于,所述数据访问接口为智能合约或命令行提供接入方法,为区块链ledger链上存储数据与链下归档数据库提供交互接口,包括符合归档、查询、恢复的基本sql操作接口;

3.根据权利要求1所述的一种区块链归档数据的存储方法,其特征在于,所述数据路由,建立应用、数据库产品类型、数据库服务器、数据表间的映射关系,支持分布式存储、负载均衡、查询优化和数据复制功能。

4.根据权利要求1所述的一种区块链归档数据的存储方法,其特征在于,所述sql适配器,实现将数据访问接口中的sql语句,解析成对链下归档数据库中的kv数据结构。

5.根据权利要求4所述的一种区块链归档数据的存储方法,其特征在于,智能合约层提供sql语句、查询过程,则sql适配器提炼其中的sql语句,并解析成json格式记录操作,用于通讯及状态加密hash值的计算,其中json报文在数据代理转化为具体的sql格式。

6.根据权利要求1所述的一种区块链归档数据的存储方法,其特征在于,所述数据处理结果整合,实现关系型数据库中数据以数据表逻辑存储,获取的数据为字段column对应的值;在通信网络中json或者proto序列化传输;从数据库返回的处理结果进行json序列化成marshal对象,通信之后再进行unmarshal处理得到对应的数据结构。

7.根据权利要求1至6任一项所述的一种区块链归档数据的存储方法,其特征在于,所述数据代理层,实现关系型数据库的接入协议,与数据库服务器建立socket连接,创建连接池的功能;

8.根据权利要求7所述的一种区块链归档数据的存储方法,其特征在于,所述数据代理层,适配postgreSQL时,引入对应的postgreSQL驱动库,经由客户端发起TCP连接、客户端发送启动请求、服务器发送认证请求、客户端进行认证、服务器返回认证结果、数据交换、连接维持和关闭的步骤,完成与postgreSQL数据库的通信。

9.根据权利要求7所述的一种区块链归档数据的存储方法,其特征在于,所述数据存储层实现结构化数据和非结构化数据存储,根据不同的应用场景,按照需要搭配组合存储,应用根据不同的业务场景选择合适的存储模型;通过权限控制实现数据间在应用间隔离。

10.一种区块链归档数据的存储系统,其特征在于,包括区块链节点或命令行、数据访问层、数据代理层和数据存储层,

...

【技术特征摘要】

1.一种区块链归档数据的存储方法,其特征在于,采用三层分离的底层存储架构,针对不同的业务场景接入不同的账本存储,包括数据访问层、数据代理层、数据存储层;其中,数据访问层包括数据访问接口、数据路由、sql适配器、数据处理结果整合;

2.根据权利要求1所述的一种区块链归档数据的存储方法,其特征在于,所述数据访问接口为智能合约或命令行提供接入方法,为区块链ledger链上存储数据与链下归档数据库提供交互接口,包括符合归档、查询、恢复的基本sql操作接口;

3.根据权利要求1所述的一种区块链归档数据的存储方法,其特征在于,所述数据路由,建立应用、数据库产品类型、数据库服务器、数据表间的映射关系,支持分布式存储、负载均衡、查询优化和数据复制功能。

4.根据权利要求1所述的一种区块链归档数据的存储方法,其特征在于,所述sql适配器,实现将数据访问接口中的sql语句,解析成对链下归档数据库中的kv数据结构。

5.根据权利要求4所述的一种区块链归档数据的存储方法,其特征在于,智能合约层提供sql语句、查询过程,则sql适配器提炼其中的sql语句,并解析成json格式记录操作,用于通讯及状态加密hash值的计算,其中json报文在数据代理转化为具体的sql格式。

6.根据权利要求1所述的一种区块链归档数据的存储方法...

【专利技术属性】
技术研发人员:夏子扬李林
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

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

1