论文标题
将关系数据库变成区块链的最简单方法 - 这样做的成本
The Easiest Way of Turning your Relational Database into a Blockchain -- and the Cost of Doing So
论文作者
论文摘要
区块链系统基本上由两个级别组成:网络级别有责任以完全相同的方式将有序的交易流分配给网络的所有节点,即使在存在一定数量的恶意方(拜占庭式容错)的情况下也是如此。在节点级别上,每个节点随后接收到该有序的交易流并在某种类型的事务处理系统中执行,通常以更改某种状态。将这种清晰的分离分为两个层次以及截然不同的应用要求,导致了网络级别以所谓的区块链框架的形式实现。在提供所有“区块链功能”的同时,这些框架使节点级别的后端灵活或什至根据应用程序的特定需求而实现。 在下文中,我们介绍了如何将高度通用的交易处理系统(即关系DBM)集成到这样的区块链框架中。作为框架,我们使用流行的Tendermint Core,现在是IGNITE/COSMOS生态系统的一部分,该系统可以同时运行公共和权限网络,并将其与关系DBMS结合在一起。这将产生一个“关系区块链”,该区块链能够在完全复制的关系数据库上运行确定性SQL。除了呈现集成及其陷阱外,我们还将仔细评估此类组合的性能含义,特别是由DBMS顶部的区块链层引起的吞吐量和潜伏期开销。结果,我们就如何在实践中有效地运行此类系统组合提出了建议。
Blockchain systems essentially consist of two levels: The network level has the responsibility of distributing an ordered stream of transactions to all nodes of the network in exactly the same way, even in the presence of a certain amount of malicious parties (byzantine fault tolerance). On the node level, each node then receives this ordered stream of transactions and executes it within some sort of transaction processing system, typically to alter some kind of state. This clear separation into two levels as well as drastically different application requirements have led to the materialization of the network level in form of so-called blockchain frameworks. While providing all the "blockchain features", these frameworks leave the node level backend flexible or even left to be implemented depending on the specific needs of the application. In the following paper, we present how to integrate a highly versatile transaction processing system, namely a relational DBMS, into such a blockchain framework. As framework, we use the popular Tendermint Core, now part of the Ignite/Cosmos eco-system, which can run both public and permissioned networks and combine it with relational DBMSs as the backend. This results in a "relational blockchain", which is able to run deterministic SQL on a fully replicated relational database. Apart from presenting the integration and its pitfalls, we will carefully evaluate the performance implications of such combinations, in particular, the throughput and latency overhead caused by the blockchain layer on top of the DBMS. As a result, we give recommendations on how to run such a systems combination efficiently in practice.