BlockchainDB - 构建于区块链之上的分片数据库

本文介绍了一种名为BlockchainDB的系统,它建立在区块链之上,旨在解决区块链性能和扩展性问题,提供易用的查询接口和一致性保证。通过在存储层和数据库层的架构设计,实现了对区块链的高效利用。实验评估显示,BlockchainDB能够在吞吐量和一致性之间取得平衡,支持灵活的参数调优以适应不同场景需求。
摘要由CSDN通过智能技术生成

这篇论文主要分为9部分,其中1 2节介绍BlockchainDB要解决的问题,3 4 5 6四节介绍了BlockchainDB的架构和技术细节,7节对其性能进行评估,最后总结展望。

这篇文章很长,可以直接到最后查看结论~

问题及挑战

区块链技术的兴起催生了很多新的应用场景,一个非常重要的场景是:互不信任的多方实现数据共享读写,比如供应链上的货物追踪。但是,原生区块链存在如下缺陷:

1.区块链的性能和扩展性存差:区块链的事务处理能力在10-100 tx/s2.缺少易于使用的抽象层:区块链没有提供像数据库那样简单方便的查询接口、一致性等功能

上面两个主要缺陷极大阻碍了区块链在数据共享读写场景的使用和推广。为了解决上面的问题,这篇论文基于区块链开发了BlockchainDB,它主要有以下优势:

1.把区块链作为存储层(Storage Layer),不需要修改底层区块链代码,同时充分利用其去中心化、tamper-proof log等原生技术优势2.提供易用的查询接口和一致性保证3.提高区块链的性能、降低使用复杂度

具体实现

架构

上图是BlockchainDB的架构图,自下而上分为存储层和数据库层,数据存储在底层区块链上,通过Client提供简单易用的put/get/verify接口。

peer指区块链里面的多个节点,常用于区块链场景,类比分布式数据库中的node。分为fully peer和thin peer,前者存储数据、资源要求高,后者不存储数据,资源要求低。

需要注意的是,每个party在加入BlockchainDB网络时需要进行认证并且做到彼此知晓,认证通过后才能加入。

约定

为了方便后续讨论,这里做如下约定:

1.加入BlockchainDB网络的peer需要认证,认证通过后才能加入2.peer可以代表本地所有的client进行验证操作3.peer信任本地读写的数据4.通过大多数进行认证,如果大多数peer上的数据是可信的,那么数据是可信的

基于上述约定,在进行验证时,主要验证下面两个方面:

1.put操作是否被恶意丢弃2.get得到的数据真假

Database Layer

数据库层为用户提供client,封装了put/get/verify接口:

•get(t, k) --> v,返回表t对应主键k的值•put(t, k, v) --> void 所有数据被编码到v中,作为文档插入表t中,主键为k•verify() --> bool 该方法用于在线验证,put/get后调用verify()

•put:插入操作(事务)是否commit•get:返回的结果是否正确、真实

如图3所示:client读写请求先到off-chain verifer,然后放到请求队列中。由事务管理(Tx Mgr)和分片管理(Shard Mgr)处理后转发到对应的底层区块链上,最后返回结果。

需要注意,Backend Connector用于连接底层不同的区块链。

一致性

针对目前提供的功能,论文介绍了getput的一致性保证,put操作的事

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值