没有合适的资源?快使用搜索试试~ 我知道了~
区块链:研究与应用4(2023)100116评论文章适合区块链技术的数据库:完整概述Jovan Kalajdjieskia,**,Mayank Raikwarb,*,Nino Arsova,Goran Velinova,Danilo Gligoroskib计算机科学与工程学院,SS。西里尔和美多迪乌斯大学,1000斯科普里,北马其顿挪威科技大学(NTNU),NO-7491 Trondheim,NorwayA R T I C L E I N F O关键词:区块链数据库交易ACID分析TranslyticalA B S T R A C T高效的数据存储和查询处理系统在许多不同的研究领域中发挥着至关重要的作用区块链技术和分布式账本吸引了大量关注,并引发了各个行业的多个项目然而,区块链仍然缺乏数据库管理系统(DBMS或简单的数据库)的功能,例如高吞吐量,低延迟和高容量。为此,已经提出了许多用于在区块链中处理数据存储和查询处理解决方案的方法。本文全面概述了许多不同的DBMS类型,以及如何使用这些系统来实现、增强和进一步改进区块链技术。更具体地说,我们给出了10个交易型的概述,14个分析型的广泛概述,9个混合型,即,translytical和13个区块链DBMS。我们解释了数据库技术如何通过解锁不同的功能来促进区块链技术的发展,例如原子性,一致性,隔离性和持久性(ACID),事务一致性,丰富的查询,实时分析和低延迟。使用类似于用于证明一致性,可用性,分区容差(CAP)定理的松弛方法,我们假设一个我们还提供了不同的DBMS的概述,强调他们的体系结构,存储管理器,查询处理和实现。1. 介绍加密货币最近引起了业界和学术界的极大关注。到目前为止,第一种加密货币比特币[1]相当成功,其资本市场在 2021年 12月达到9220亿美元 [2]。比特币最初被接受的原因是它被用作一种价值代币,为政府发行的货币提供了一种替代品。然而,在比特币之后,许多加密货币的设计带来了金融市场的范式转变。因此,加密货币的金融市场正在迅速增长,目前价值约2万亿美元[2]。与此同时,基于区块链的新金融形式也被引入,如&区块链于2008年首次提出,并于2009年实施[1]。一些作者认为,它是一种颠覆性技术,彻底改变了市场,特别是金融市场,并在许多行业引发了新的思维方式。 区块链可以被解释为一个公共的分布式账本,用于安全执行的点对点(P2P)交易,并以不可变的方式存储。 区块链将交易存储在不断增长的区块链中。 它的特点是去中心化,持久性,匿名性和可扩展性。 它可以在一个分散的环境中工作,通过集成几个核心技术,如加密哈希函数,数字签名(基于非对称加密)和分布式共识机制[4]。区块链交易以分散的方式发生在去中心化网络中,没有单一故障点,因此网络变得安全和防篡改。相比之下,集中式网络的安全性要低得多,因为中央服务器或数据库的故障将导致整个网络的故障。没有中央* 通讯作者。** 通讯作者。电子邮件地址:jovan.nki.ukim.mk(J. Kalajdjieski),mayank. ntnu.no(M. Raikwar),nino. gmail.com(N. Arsov),goran.velinov@finki.ukim.tv(G. Velinov),danilog@ntnu.no(D. Gligoroski)。https://doi.org/10.1016/j.bcra.2022.100116接收日期:2022年2月2日;接收日期:2022年11月18日;接受日期:2022年11月28日2096-7209/©2022作者。出版社:Elsevier B.V.代表浙江大学出版社。这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表区块链:研究与应用杂志主页:www.journals.elsevier.com/blockchain-research-and-applicationsJ. Kalajdjieski等人区块链:研究与应用4(2023)1001162授权增加了事务的计算成本,但是开销成本降低了。双方之间的P2P价值转移不依赖于外部或第三方权威机构,消除了双方相互了解 共识使大多数伪造尝试成为不可能,因为每笔交易都经过验证,降低了篡改的风险。除此之外,区块链网络更容易访问:任何拥有计算机和互联网连接的人都可以加入网络。尽管区块链在效率方面具有巨大潜力,但它仍然面临挑战性的短期挑战。其中一些包括但不限于可扩展性、能源消耗、隐私泄露和自挖矿。然而,随着区块链技术的最新进展,这些挑战已经通过适当的解决方案得到了解决[5]。除了金融应用外,区块链还可用于物联网(IoT)、公共和社会服务、声誉系统,或作为提供安全和隐私的服务区块链也可以被视为数据库(DB),因为它配备了存储机制[6]。比特币出现后,人们开始质疑区块链和数据库之间的区别,以及区块链是否可以用作数据库机制[7]。虽然区块链确实提供了一种存储机制,但事实上,它与传统数据库有许多关键的区别,例如它的去中心化,使用链式哈希的加密安全性,没有管理控制,不变性,以及在没有任何中央机构许可的情况下自由转移。许多企业应用程序已经转向区块链存储,以提供更安全的实现,并减少行业各方之间的信任。由于许多企业都在关注[9-区块链不仅具有上述功能,而且还提供了更好的功能,用户隐私和使用加密原语的安全性。另一方面,区块链缺乏传统数据库提供的一些功能,例如丰富的查询。 将这些数据库功能纳入区块链的努力正在不断发展和进步。如果用传统的DB标准来衡量区块链存储,它不会提供有希望的结果。它的吞吐量只有每秒几个交易(tps),在一次确认写入(对于比特币)之前有10分钟的延迟,容量只有几十GB。在区块链中,向网络添加节点会增加流量,但也会降低性能。另一方面,现代分布式数据库可以具有超过1百万tps的吞吐量、数TB的容量以及仅几分之一秒的延迟最后,增加节点可以提高系统的吞吐量和容量[6]。类似地,将区块链转化为有效存储机制的一种方法是将传统数据库与现有的区块链技术相结合,目前许多平台都在这样做。我们的目标是产生一种增强的存储机制,具有高吞吐量,可扩展性,低延迟和更大的安全性,因为这种机制将建立在现有区块链技术的基础另一种方法是使用近年来广泛发展的所谓区块链数据库[6,12这些数据库有自己的共识机制,用于网络各方它们被干扰,并提供对复杂数据类型、丰富查询结构和ACID兼容事务的支持[18]。此外,它们还提供低延迟、快速可扩展性和云托管。因此,将区块链和数据库功能结合在一起,使这些数据库成为许多企业解决方案中有前途的替代方案。此外,许多区块链平台现在与一些数据库集成。在一些区块链系统中使用的现有数据库具有主从或P2P体系结构,通过该体系结构,事务日志和状态的复制”[19]这是一个关于《易经》的故事。由于数据库可以是SQL/关系型或后关系型,因此选择用于区块链的数据库应该基于许多关键点,如数据库结构和查询处理速度。与区块链功能集成的数据库的开发是一个活跃的研究课题。 本文分析了区块链的功能以及现代数据库解决方案对区块链的适应性。一般来说,区块链功能是通过在现有数据库层之上添加区块链层来实现的,反之亦然,通过在数据库层和架构模型内实现区块链功能来实现。首先,我们升华了七个基线,即去中心化,一致性,可扩展性,不变性,低延迟,高吞吐量和分片,这些都是区块链数据库系统的基础。然后,我们描述和分析了与这些基线相关的10个交易型、14个分析型、9个混合型和13个区块链数据库系统 这项工作是第一次,旨在提供一个总结性的概述,这将有助于选择最适合他们需求的数据库管理系统。本文的其余部分组织如下。在第2节中,我们提供了CAP和DCS定理的概述,以及两者如何相互联系。我们还分析了数据库类型的主要特征,并根据区块链所需的属性、功能和特性,列出了一个表格,总结了适合区块链的数据库系统不同类型的区块链数据库分为三类-交易型,分析型和混合型(即,translytical)-在第3节中描述。 在第4节中,我们详细解释了数据库和区块链技术如何相互影响和相互改进。 我们将在第4.2节中继续讨论将这两种技术结合起来的挑战,并提供适用于区块链的数据库摘要。第5节简要介绍了数据库和DCS定理。最后,第6节对本文进行了总结,并提出了未来的研究方向.2. DCS:区块链CAP是指一致性、可用性和分区容限。 CAP在20年前由Brewer [18]作为一个原理或猜想提出,两年后,Gilbert和Lynch在参考文献[19]中证明了异步网络模型中的CAP定理。[20 ]第20段。在同一篇论文中,他们证明了部分同步网络模型的类似不可能结果。此外,通过削弱一致性条件,他们表明在所谓的t-连接一致性模型中可以实现所有三个属性CAP定理是定义分布式系统事务性质的基本定理。 分布式系统被定义为通过网络连接的一组计算节点,它们彼此通信以执行某些任务。更详细地说,CAP定理确定了任何分布式/分散式系统的三个特定系统属性。 这些特性是一致性、可用性和局部公差。一致性-分布式系统中的任何读操作都会在每个计算节点上给出最新的写操作。可用性-客户端总是在任何时间点接收响应,而不管读取是否是最新的写入,这意味着对某些数据的请求总是可用的。分区容限-在分布式系统中的节点之间存在分区的情况下(当节点的子集无法运行时),系统应该仍然运行。CAP定理指出,在分布式系统中有可能实现这三个特性中的两个作为保证特性,但不可能同时实现所有三个特性。在实践中,分布式系统总是需要分区容忍,因此让我们从一致性或可用性中选择一个属性因此,在一致性和可用性之间存在权衡 CAP在NoSQL运动中的影响[21]之后,它成为数据库系统中权衡以实现数据库系统的强一致性保证的大辩论[22]。CAP定理也影响了区块链领域(参见,●●●J. Kalajdjieski等人区块链:研究与应用4(2023)1001163例如,参考[23])。 在区块链环境中,CAP属性意味着:1)一致性:区块链中的所有节点都有一个最近更新的相同账本; 2)可用性:网络中任何时间点生成的交易都将被区块链的一个区块接受和可用; 3)分区容忍:即使区块链P2P网络中的一部分节点出现故障,网络仍然可以进行正常操作。分区容忍对应于区块链上下文中的去中心化。区块链环境中的CAP定理是指,如果没有这三个属性,一个被广泛接受的区块链就很难存在如果我们选择Availability over Consistency,那么任何读取都不能保证是最新的,我们将系统称为AP。但是,如果我们选择一致性而不是可用性,那么称为CP的系统在分区时将不可用,并且可能会破坏共识。因此,在区块链系统中,这两个属性都是理想的。虽然区块链并不总是需要强一致性,但最终的一致性可以达到目的,并且可以通过共识来实现。例如,在比特币的情况下,最长链方法带来了最终的一致性,但没有固定的方法来实现最终的一致性,这使得这个话题成为争论的焦点。 图 1显示了根据CAP定理的不同数据库系统。PACELC定理:分区,可用性,一致性,延迟和一致性(PACELC)定理[30]基于CAP模型。它最好用下面的语句来描述:“如果发生了分区(P),则在可用性(A)或一致性(C)之间进行选择,否则(E)在延迟(L)或一致性(C)之间进行选择。它被认为是设计分布式系统的一种更有针对性的方法(因为区块链本身就是一种具体的分布式系统),并且比CAP定理更有意义一般认为CAP的有效性被高估了[30]。 在其核心,PACELC扩展到延迟除了一致性,可用性和分区容差,通过添加一个逻辑排除之间的组合的四个概念的基础上是否出现网络分区。PACELC还引入了一个新的相关的权衡一致性和延迟之间,这在现代分布式数据库系统的设计中已经取得了进展。只要系统复制数据,假设没有发生网络分区,根据系统处理读取的方式,一致性-延迟权衡包括:(1)同步复制,在延迟上实现一致性(主节点等待,直到所有更新都到达副本,确保一致性以损害等待时间),(2a)通过主节点路由的异步复制,在延迟上实现一致性(通过主节点路由读请求确保了一致的读结果,但是繁忙的、故障的或远距离的主节点增加了读的延迟),(2b)从任何节点提供读的异步复制,导致延迟超过一致性(不同的节点具有所请求的数据项的不同版本),以及(3)同步和异步复制((1)、(2a)和(2b)的组合,其分配数据被同步复制到的节点的子集,而其余节点被异步更新;如果读取被路由到至少一个同步更新的节点,则以等待时间为代价来保持一致性,否则,读取具有低等待时间,但可能是不一致的结果)。DCS定理:去中心化,一致性和可扩展性(DCS)定理[31,32]被提出作为区块链CAP定理的类比。DCS定理指出,区块链系统可以图1.一、数据库系统的CAP(一致性,可用性,分区容差)三角形[24- 29 ]。同时满足三个属性中的最多两个:去中心化、一致性和可伸缩性。 虽然PACLEC定理是建立在真实系统的CAP定理之上的,但用CAP来说明DCS定理更容易。由于这两个定理都指出分布式系统最多可以满足三个属性中的两个,因此将DCS属性与CAP属性映射也更容易。DCS属性定义如下:去中心化-没有可信实体控制网络,因此没有单点故障。 区块链本质上是去中心化的,但在DCS三角中,我们正在考虑完全去中心化的情况。在完全去中心化的情况下,任何节点都可以加入网络并作为验证者参与一致性-区块链节点将同时读取相同的数据对任何区块链节点上的区块链数据的查询应该获取相同的结果。区块链的一致性应该防止双重支出,并且应该从所使用的共识算法中获得可扩展性-区块链的性能应该随着对等点数量和分配的计算资源数量的增加而增加。系统的吞吐量和容量应该很高,延迟应该很低。与CAP类似,我们也可以根据DCS属性之间的权衡将DCS中的区块链系统为DC,CS和DS系统。图2描述了根据DCS定理的各种系统。下面,我们详细定义这些系统:DC系统。这些系统的主要重点是在分散的网络环境中提供一致的区块链状态。大多数加密货币,如比特币[1]和以太坊[33],都属于DC系统的范畴。 其中许多系统都有工作量证明(PoW)作为其共识机制,每个节点都存储区块链的完整数据。此外,这些系统中的节点(矿工)受到激励,以增加他们使用ASIC(专用集成电路)农场成功因此,随着时间的推移,这些系统不会扩展。实现更高的性能会对这些系统的一致性产生负面影响。因此,为了实现最终的一致性,这些系统采用了一些技术,例如比特币中的最长链规则或以太坊中的GHOST协议[36]作为分支选择规则。CS系统。 所有被许可的区块链都不具有完全的去中心化;因此,如果它们达到行星规模,它们可以被视为CS系统。 这些系统具有一定程度的去中心化,因为不是每个节点都可以成为参与共识的验证者。这些系统中的节点具有分布式计算资源,并且为了加入共识,节点可以通过现有节点联盟之间的公平投票机制成为验证者。由于使用了通信密集型协议,如实用拜占庭容错(PBFT)协议[38],诸如Hyperledger Fabric [37]之类的许可区块链具有可扩展性瓶颈一个体面的工作量[39,40]已经做了规模,图二. 区块链系统的DCS(去中心化,一致性,可扩展性)三角[1,33-35]。●●●●●J. Kalajdjieski等人区块链:研究与应用4(2023)1001164Hyperledger Fabric。此外,最近的工作[41]提供了一种新的方法来实际提高许可区块链的可扩展性。DS系统。这些系统是分散的,并提供良好的可扩展性,同时兼顾一致性。该系统的节点不试图存储整个网络;相反,它受到节点容量的限制星际文件系统(IPFS)[35]是一个不提供一致性的DS系统,因为数据的不同部分被分发到不同的节点。它就像Git和BitTorrent的混搭。虽然一致性可以防止双重支出,但DS系统在许多不存储值的令牌的应用中仍然很有用,例如存储数据和资产。IPFS可以通过采用无连接的复制数据类型(CRDT)来实现最终的一致性[42]。猜想1.(DCS满意度)。对于DCS属性,存在一套平衡和宽松的要求,使得区块链系统可以满足所有三个属性。而对于CAP定理,通过引入t-连通一致性模型[20]实现了要求的放松,并且我们可以应用类似的放松方法来证明上述猜想。Slepak和Petrova [31]表明,一个去中心化的共识系统不可能同时具有所有三个属性。他们还提出了两种绕过DCS三角形的 我们使用类似的想法来提出一组要求或方法,以便区块链系统可以拥有所有三个属性。接下来,我们为上述三个系统中的每一个提出了绕过DCS三角形的要求/方法。请注意,我们只描述了DCS可满足性猜想的几种方法我们没有穷尽所有可能的要求/方法。下面的讨论提出了绕过DCS三角形的一般方法,特别是那些与区块链系统更一致的应用这些方法使区块链系统实现DCS属性,也可以在实际系统中使用然而,对于数据库,在第4.1节中提供了简要描述。第4.1节介绍了许多不同数据库的示例,以及这些数据库如何同时实现所有三个DCS属性DC系统→DCS:DC系统可以通过几种方法实现可扩展性。我们描述了以下两种直流系统扩展的方法1. 使用第2层解决方案,DC系统可以通过采用第2层扩展协议进行扩展[43]。第2层解决方案以链下方式处理事务,因此提供可扩展性。虽然有许多第2层解决方案,但有些解决方案倾向于集中化。因此,为了使DC系统具有可扩展性,有必要找到一个分散的第2层解决方案这些分散的第2层解决方案(例如, 闪电网络[44])可以归类为DS系统。因此,将直流系统与直流系统相结合,使整个系统成为DCS,如图所示。 3.2. 使用ShardingDC系统可以使用分片进行扩展[45]。 分片是一种技术,其中事务在一组称为分片的节点之间进行分割。这些分片并行工作以提高吞吐量,从而实现更好的可扩展性。 这些分片应该具有一定程度的透明度,以信任其他分片,参与共识。 碎片可以被认为是一个小的DC系统。因此,分片的并行工作对应于组合多个DC系统,使整个系统DCS,如图所示。 四、CS系统→ D CS:CS系统可以通过多个CS系统之间的互操作性来实现去中心化。 在这个意义上,单个CS系统不具有对系统的完全控制。区块链系统中的互操作性可以使用跨链方法来实现,例如跨链通信协议[46]或使用跨链互操作性使用事务[47]。交叉链方法基本上是将多个CS系统组合在一起,形成一个DCS系统,如图所示。 五、DS系统→ DC S:DS系统可以通过使用安全和可验证的智能合约来实现一致性[48,49],同时使区块链具有攻击弹性并处理分叉。可验证的智能合约有助于保持区块链数据的一致性。除了这样的智能合约,防止区块链攻击,例如,双重支出攻击,并通过处理区块链中的分叉事件,可以使DS系统实现更大的一致性。在这样的系统中,验证更简单,通常只检查哈希值,并且没有严格的交易顺序需要维护。然而,存在基于散列对象的隐式排序。一致性有三个级别:无一致性、强最终一致性和CAP一致性。数据复制方法也可用于在DS系统中实现一定程度的一致性,从而使DS系统成为DCS。一个例子是CRDT [42],当不同的数据更新之间存在冲突时,它可以确保一致性和数据完整性DS系统,如IPFS,使用CRDT,它保证了强大的实际一致性。CRDT是一个代码版本控制系统,增加了无合并连接。然而,CRDT并不能解决所有问题,DS系统中仍然存在双重花费攻击。然而,参考文献[50]通过在CRDT之上构建一个群币来处理双重花费攻击,这使得攻击变得昂贵。因此,DS系统可以成为DCS。3. 适用于区块链的数据库和区块链数据库表2中总结的数据库显示了各个系统如何符合DCS定理和我们的猜想。在这里,我们详细描述和分析了10个交易型、14个分析型、9个混合型(也称为“translytical”)和13个区块链数据库解决方案,以及它们为实现区块链而在实现或存储区块链时,这三种类型中的每一种都有其相对于其他类型的优势。大多数知名的解决方案都提供了支持区块链的功能,如Oracle数据库和Microsoft SQL Server,而其他解决方案,如PostgreSQL和MySQL,也可以用于区块链,尽管它们不提供应用程序就绪功能。但也有一些新兴的技术是很好的候选者,因为它们的创造性的架构模型和功能,旨在满足当代应用的需求在描述交易、分析、混合和区块链数据库系统之前,我们强调分散和分布式系统。去中心化系统没有中心节点。相反,系统图三. 使用第2层解决方案的DC系统到DCS。见图4。使用分片的DC系统到DCS。●●●●J. Kalajdjieski等人区块链:研究与应用4(2023)1001165图五. CS系统到DCS采用跨链方式。具有存储资源的副本的多个中心节点在一个分散的系统中,系统的每个节点都有自己的决策。系统的最终行为是单个节点的总体决策。这确保没有单个节点具有完整的系统信息。分散式系统对故障的容忍度更高 这是因为当一个或多个中心节点发生故障时,其他节点仍然保持系统运行。分布式系统类似于分散式系统,但决策可以以集中或分散的方式进行。在分布式系统中,节点在物理上是分离的,但通过传递消息进行通信和协调。在分布式系统中,节点对数据具有平等的访问权限,尽管可以在需要时启用特权。这些系统促进了资源共享,具有较好的容错性和可扩展性。3.1. 事务数据库人们可以将区块链存储在传统的SQL数据库中。这种存储允许快速访问区块链数据,以及通过复杂查询分析区块链数据的有效机制因此,SQL为区块链增加了许多功能,并使使用SQL工具和库处理区块链数据变得更容易。下面,我们对区块链中不同SQL数据库的使用及其特点进行了广泛的分析。AergoLite1允许我们拥有由私有和轻量级区块链保护的复制SQLite数据库。每个应用程序都有数据库的本地副本。 新的数据库事务被分发给所有节点,一旦它们就执行顺序达成共识,所有节点就会执行事务。由于事务的执行顺序相同,因此所有节点都具有相同的结果数据库内容。AergoLite使用特殊的区块链技术,专注于资源受限的设备。共识协议使用可验证随机函数(Verifiable Random Function,VRF)来确定哪个节点将产生下一个块,节点无法提前发现哪个节点被选中,这使得它可以安全地抵御拒绝服务(Denialof Service,DoS)攻击。AergoLite使用绝对有限性。一旦节点就新区块达成共识并确认交易,就没有回头路了。 只需要最后一个区块来检查区块链和数据库状态的完整性;因此,节点不需要保存和验证所有区块和交易的历史。也可以设置一些节点来保存所有用于审计的历史记录它还使用数据库状态的散列。CovenantSQL(CQL)是一个分散的,可信的,符合GDPR的数据库,具有构建在SQLite之上的区块链功能,使数据库不可变。它是一个基于SQLite构建的拜占庭容错(Byzantine Fault Tolerance,BFT)关系数据库。它可以用作低成本的数据库即服务(DBaaS)。 CQL有一个分层的体系结构,由全局共识层、SQL共识层和SQL层组成。 它支持两种共识算法:委托权益证明(DPoS) 2和拜占庭容错RAFT(BFT-RAFT)[51]。 CovenantSQL提供了一个基础设施,以促进和构建具有完整SQL支持的分散式应用程序。它还可以集成到资产管理和物联网解决方案中。Dqlite(数据库与内存选项。它支持SQLite事务,并使用C-RAFT共识,这是一个优化的RAFT [52],具有高性能,超低延迟和容错能力。如果一台或多台机器出现故障,只要大多数机器存活下来,共识就能确保数据的持久性。因此,它最适合容错IoT和边缘设备。Dqlite尚未在区块链中使用,但它可以在区块链实现中有所帮助Microsoft SQL Server [53] 是 一 个 专 有 的 关 系 数 据 库 管 理 系 统(RDBMS)。 作为一个主要集中的系统,它提供了各种各样的本地数据类型,并支持企业IT环境中各种各样的事务处理、商业智能和分析应用程序。Azure Blockchain Azure提供了一个适合区块链的SQL数据库。 它构建 在 Azure SQL 之上[54] , Azure SQL 是 使 用 Microsoft SQL ServerEngine的智能,可扩展和分布式关系数据库云服务。Azure Blockchain将数据从分布式账本传递到链下SQL数据库,并提供消息传递API和REST API进行抽象。REST API允许用户在区块链联盟内创建和管理区块链应用程序和工作流,并完全支持区块链交易。它还提供高可用性,调优,备份和执行复杂的SQL查询,主要适用于构建私有区块链。其PACELC分类为PC/EC,确保所有情况下的一致性。MySQL [55]及其社区开发的分支MariaDB是一个开源关系数据库系统,具有高级复制和集群功能。在MySQL中,实现区块链生命周期的最大挑战是它在多个实例中的分发和复制。 就PACELC而言,它是一个支持一致性的系统,但在网络分区下的可用性和正常操作下的延迟都很差。OurSQL 3是一个连接到MySQL数据库的独立服务器。它是区块链和MySQL的结合 OurSQL可用于私有区块链应用程序。 它支持PoW类型的共识算法。它最适合构建私有区块链。Oracle Database 21c是一个专有的,可扩展的,可靠的,安全的关系数据库管理系统,围绕关系数据库框架构建。Oracle Database21c通过使用各种类型的锁和多版本一致性模型来解决并发问题。为了管理多版本一致性模型,它在查询(读)和同时更新(写)表时创建一个读一致的数据集,因此由于其ACID属性而属于PACELC设计原则中支持一致性的PC/EC类别。PostgreSQL[57]是一个开源的企业RDBMS。它具有各种各样的原生数据类型,并支持用户定义的对象,这对于在区块链系统中定义区块链资产是有益的 它是高度模块化和可扩展的,并支持不同级别的隔离。PostgreSQL已被用于创建所谓的区块链关系数据库,其中副本由互不信任的不同组织管理[58]。 PostgreSQL是一个PC/EC系统,根据PACELC原则,它支持一致性而不是可用性/延迟,并支持即时和最终的一致性。 后者用于扩展原因,并且在写入时,所有区块链节点迟早都会同步,而在此期间,写入可能会在区块链节点上被反射或仍在另一个区块链节点上运行。相比之下,即时一致性断言每个读操作将返回整个系统中最新写入存储的值不管访问的区块链节点。RQLITE是一个开源的、轻量级的、容错的分布式关系数据库。RQLITE使用SQLite数据库和RAFT [52]作为共识机制。它允许动态创建节点集群,并提供节点到节点加密。因此,RQLITE似乎是用于区块链系统,特别是轻量级区块链解决方案的潜在候选者。1https://aergolite.aergo.io/。2https://en.bitcoinwiki.org/wiki/DPoS。3https://en.bitcoinwiki.org/wiki/DPoS,http://oursql.org,https://covenantsql.io,https://dqlite.io,http://www.rqlite.com/。J. Kalajdjieski等人区块链:研究与应用4(2023)1001166SQLite[59]是一个嵌入式、非客户端-服务器、ACID兼容的关系数据库系统。它适合作为本地数据库嵌入到区块链节点中。 要在SQLite中实现区块链,首先需要实现基本的加密、区块链和数据库操作。然后,必须实现将SQLite呈现为P2P网络的网络接口。最后,密钥管理操作将允许实体签署其他人的密钥作为最重要的过程。然而,自动密钥管理仍然是一个挑战性的功能。通常,不会有加密货币层,链中每个区块的元数据将存储在数据库中。接受新区块的协商一致规则必须以数据库的方式加以VoltDB[60]是一个开源的内存分布式数据库,专注于快速数据。 增加VoltDB集群中的节点数量既可以增加吞吐量(通过增加同时运行的队列数量),也可以增加数据容量(通过增加每个表使用的分区数量)。新版本的VoltDB V8增加了许多区块链功能。 它提供了SQL支持,用于遍历具有递归公共表E X队列(CTE)的区块链记录。 使用CTE,在VoltDB中实现区块链可以提供高吞吐量和低延迟,并允许复杂的查询。最终,VoltDB是一个PC/EC系统,根据PACELC设计原则,在网络分区和正常操作下的延迟下,支持一致性而不是可用性。3.2. 分析数据库本节对14个分析数据库引擎进行了广泛的概述,包括用于数据仓库的列存储和分析系统最流行和最常见的系统是Apache Hadoop框架,下一节将详细分析其与区块链相关的功能。ApacheHadoop [61]是一个提供分布式存储的框架,允许跨通用硬件集群处理大型数据集。 它提供了一个高可用性服务,当节点发生故障时,自动将作业重定向到健康的节点,并通过数据复制进行整合。与传统的关系数据库不同,它支持非结构化数据,如文本、图像和视频。关于Hadoop系统与区块链技术(如Refs)的集成已经做了很多研究[62Hadoop生态系统包含六个适用于存储和分析区块链数据的突出模块:HBase,HBasechainDB,Spark,Hive,Pig和Kudu。HBase [65]是一个可扩展的、分布式的、面向列的非关系数据库管理系统。 它通过利用主从副本架构来存储大量数据集。它为存储稀疏数据集提供了一种容错机制,这在大数据用例中很常见它非常适合于实时数据 处 理 或 数 据 的 远 程 读 写 存 储 。 Itensurescon-similarity overavailability/latency,因此是PACELC方面的PC/EC系统Spark[66]是一个数据处理框架,可以通过将处理任务分配给多个节点来快速执行超大型数据集的处理任务,无论是单独还是与其他分布式计算工具相结合它与HBase的集成使开发人员能够执行高性能的分析任务。Kudu[67]是为Apache Hadoop开发的一个免费开源的列式存储系统。它支持低延迟随机访问、对单个行的毫秒级访问以及出色的分析访问模式。它旨在集成HDFS和HBase。 Kudu融合了HBase和Parquet 4的优点,在输入数据方面与HBase一样快,在分析查询方面几乎与Parquet一样快。根据需要,Apache Kudu使用RAFT共识4https://parquet.apache.org/。算法来水平地向上或向下缩放。它还具有就地更新功能。它可以扩展到每个节点数十个核心,甚至可以从SIMD操作中受益,以进行数据并行计算。 Kudu已经用于以太坊区块链分析5,与Hadoop集成。Apache Cassandra[27]是Facebook开发的最受欢迎的NoSQL数据库之一由于大规模写入的出色吞吐量,许多大型企业,如NetWEBX,Instagram,GitHub和eBay都使用Cassandra。 它是一个完全分散的系统,提供卓越的性能,耐用性和容错性,而不会影响可用性。此外,Cassandra支持轻量级事务来建立一致性。宽列存储架构、Paxos共识以及与DynamoDB的相似性使其非常适合区块链。它是区块链存储解决方案的明确候选者,但到目前为止,还没有具体的实现。就PACELC而言,Apache Cassandra是一个PA/EL系统,这意味着如果发生分区,它有利于可用性而不利于一致性,否则,其正常操作有利于低延迟而不是一致性。BigQuery是一个企业级的、可扩展的数据仓库,它通过使用Google基础设施的处理能力来实现超快速的SQL查询,从而解决了它是由Google提供的基于云的大数据分析服务由于该服务提供的高性能,它最适合区块链数据分析。一个这样的方法是在参考解释。[68],其中BigQuery用于查询以太坊网络。此外,还发布了六个加密货币区块链数据集进行比较分析。ClickHouse 6是一个开源的面向列的DBMS。 由于其高性能的特点,ClickHouse是一个可行的存储解决方案,用于区块链和对区块链数据执行的分析,如参考文献中所述。[69]第二章。CouchDB[29]是Apache的一个键值数据库,提供了类似于MongoDB的丰富查询功能。例如,CouchDB支持基于内容的JSON查询,这反过来使其适 合 在 Hyperledger Fabric 中 使 用 在 Hyperledger Fabric [37] 中 ,CouchDB充当状态数据库,用于将链码处理的交易数据存储为键值对。它支持对链码数据的丰富查询 Hyper-ledger Composer还通过将SQL查询转换为CouchDB支持的上述基于内容的JSON查询来使用CouchDB。CouchDB使其能够用于区块链的另一个好处是其可扩展的集群能力。集群可以在任意数量的节点上运行 CouchDB支持多个级别的可用性,使其成为一个“最终一致性”系统,随着数据的增长,牺牲即时一致性以实现巨大的性能提升。因此,CouchDB是PACELC方面的PA/EL系统,但其可调节的可用性使PC/EC系统成为可能。CrateDB 7是一个分布式数据库,它集成了一个基于无共享架构的完全可搜索的面向文档的数据存储。 它提供了通常与NoSQL数据库相关联的可扩展性和可扩展性,并且被设计为在廉价的商品机器上运行。它的无共享体系结构在异构环境中提供了更大的部署灵活性。到目前为止,还没有研究将CrateDB集成到区块链系统中,但基于其高性能,它可能是一种可能的解决方案。DynamoDB[28]是一个完全托管的NoSQL数据库服务,提供快速和可预测的性能,以及Amazon Web Services(AWS)提供的无缝可扩展性。它提供键-值和文档模型,并在任何规模下提供个位数毫秒级的性能 。 它 是 一 个具 有 内 置 安 全 性 和 内 存 缓 存 的 多 主 持 久 数 据 库 。DynamoDB5https://www.phdata.io/blog/hadoop-meets-blockchain-trust-your-big-data。6https://clickhouse.tech/。7https://cbrate.io/。J. Kalajdjieski等人区块链:研究与应用4(2023)1001167þ保护敏感数据所涉及的操作负担和复杂性DynamoDB已经在许多不同的区块链系统中使用[70,71],它与区块链系统处于同一级别,仅用于存储和验证目的。然而,随着AWS模块对区块链的支持,DynamoDB的使用在区块链解决方案中得到了进一步的DynamoDB与PA/EL兼容,在发生网络分区时牺牲一致性以保证可用性虽然DynamoDBElasticsearch是一个分布式开源搜索和分析引擎,用于文本,数字,地理空间,结构化和非结构化数据。 它将数据存储为JSON文档,并提供Elasticsearch查询来查询数据。它提供了一个基于群体的共识算法和主备份方法。 Elasticsearch对区块链的适用性与构建在其之上的ElasticStack(ELK Stack)有关,Elastic Stack是一套用于数据摄取、丰富、存储、分析和可视化的开源工具。 ELK Stack通常用于区块链上的可观察性,使用户能够轻松监控他们的区块链系统。其中一种方法是将Elastic Stack作为Hyperledger Fabric框架的监控工具进行集成,如参考文献中所述[74].ScyllaDB 8是一个开源的分布式NoSQL面向列的数据存储。 其基于分片的设计使其与Apache Cassandra兼容,同时实现显著更高的吞吐量和更低的延迟。在每个节点上,它通过将数据分片为多个子集并将每个分片分配给不同的CPU核心来并行处理数据。核心不共享分
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功