为了弥补区块链在数据管理方面的不足,学术界和企业界在区块链和管理技术的整合上做了很多努力,比如BigChainDBl,SEBDBP,BlockchainDB和EtherQL。BigChainDB是基于MongoDB构建的具有区块链特征的数据库的典型代表。但其查询方法依赖于MongoDB的原始接口,查询性能也受到MongoDB的限制。SEBDB在区块链系统中添加了支持关系语义的查询处理引擎,通过构建索引结构加快查询速度。但支持的查询功能有限,二次开发难度大。BlockchainDB%在区块链上层添加数据库层,利用哈希将读写请求分发到不同的数据节点,为外界提供方便易用的查询接口。然而,它只支持单一的PUT/GET操作。
在传统数据库中,高效的数据管理离不开易于使用的抽象模型和丰富的语义描述。然而,区块链系统与传统数据管理系统在系统结构和存储模型上存在显著差异。提高区块链的数据管理效率将面临以下三个挑战.
(1)如何根据应用场景灵活地为交易数据添加抽象模型,将无序离散的交易构成结构化或非结构化数据?
(2)如何降低用户的使用成本,提供各种数据访问接口,抽象底层通信处理过程,降低开发人员使用区块链共享数据的复杂性。
(3)如何优化数据管理性能——优化区块链交易处理和数据查询流程,提高基于区块链的开发应用效率。
本文提出了基于区块链的数据管理架构,将现有的区块链系统作为防篡改和分散的存储层,无需更改,并在上层添加了数据管理中间件,为上述挑战提出相应的解决方案,改进数据管理。
管理效率。数据管理中间件提供以下功能。
(1)自定义数据模型通过灵活的Schema将区块链交易数据组织成各种抽象模型,并提供多种数据访问接口支持丰富的查询,包括易于使用的SQL接口和低耦合的REST接口。
(2)高效数据查询——查询引擎可以根据同步缓存机制高效处理不同类型的查询请求。此外,同步缓存机制的持久存储支持SQL数据库。
(3)优化交易处理,通过提前计算哈希降低交易延迟,通过异步批处理策略提高交易吞吐量,最大限度地利用系统资源。
面向区块链的数据管理中间件是通用的,为开发人员提供灵活的数据模型和用户友好的访问界面,兼容各种区块链系统和数据库,减少对存储层的依赖。同时,数据管理中间件的维护成本不会对整个架构产生额外影响。此外,数据管理架构是可扩展的,开发人员可以部署多种服务来支持高可。