如何将区块链数据库化:以 Hyperledger Fabric 为例
分布式、并行与集群计算
2018-11-01 v1
摘要
在过去几年中,无数区块链系统涌现于市场,各自宣称以某种方式革新分布式事务处理。许多区块链特性(如拜占庭容错(BFT))确为现代环境中的宝贵补充。然而,尽管围绕该技术喧嚣不断,区块链系统所面临的诸多挑战实为基本的事务管理问题。这些与传统数据库系统(已存在数十年)在很大程度上共有。对于模糊了区块链系统与传统数据库系统界限的系统,这些相似性尤为明显。Hyperledger Fabric 便是一个绝佳例子:这是由 IBM 开发的开源许可链区块链系统。通过对 BFT 的宽松看法,Fabric 的事务流水线高度类似于经典分布式数据库系统的工作流。这引出两个问题:(1)诸如 Fabric 这样的系统与传统分布式数据库系统之间实际存在哪些概念上的异同?(2)能否通过将数据库界的技术迁移至区块链来提升 Fabric 性能,从而进一步模糊这两类系统间的界限?为应对这些问题,我们首先从数据库研究视角探究 Fabric,发现其事务流水线存在弱点。随后我们将公认的数据库概念(即事务重排序与早期事务中止)迁移至 Fabric 以解决这些问题。实验评估表明,我们改进的 Fabric++ 版本相较原版将成功事务的吞吐量提升了最高达 3 倍。
引用
@article{arxiv.1810.13177,
title = {How to Databasify a Blockchain: the Case of Hyperledger Fabric},
author = {Ankur Sharma and Felix Martin Schuhknecht and Divya Agrawal and Jens Dittrich},
journal= {arXiv preprint arXiv:1810.13177},
year = {2018}
}