ForkBase:结合区块链实现高效存储引擎

这篇具有很好参考价值的文章主要介绍了ForkBase:结合区块链实现高效存储引擎。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ForkBase:结合区块链实现高效存储引擎

摘要:现有的数据存储系统提供了多种的功能,以适应多样化的应用程序。然而,新的应用程序类型已经出现,例如区块链和协作分析,featuring data versioning, fork semantics, tamper-evidence或它们的任意组合。它们为存储系统提供了新的机会,通过将上述需求嵌入到存储中来有效地支持此类应用程序。ForkBase,一个为区块链和分叉应用程序设计的存储引擎。通过将核心应用程序属性集成到存储中,ForkBase不仅提供了高性能,还减少了开发工作。该存储管理多版本数据并支持两种不同的fork语义,从而支持不同的fork工作流。ForkBase速度快,空间效率高,因为它有一个新的索引类,支持高效的查询以及跨数据对象、分支和版本的重复内容的有效检测。我们使用三个应用程序演示了ForkBase的性能:区块链平台、wiki引擎和协作分析应用程序。我们针对各自的最新解决方案进行了广泛的实验评估。结果表明,ForkBase在显著降低开发工作量的同时,取得了较好的性能

关键词:区块链和协作分析;区块链和分叉应用程序设计;for语义;wiki引擎和协作分析应用程序

ForkBase: Implementing an Efficient Storage Engine with Blockchain

Zou Wenzhe

(Nanchang Aviation University)

Abstract:  Existing data storage systems provide multiple functions to adapt to diverse applications. However, new application types have emerged, such as blockchain and collaborative analysis, feature data versioning, fork semantics, tapper provision, or any combination of them. They provide new opportunities for storage systems to effectively support such applications by embedding the aforementioned requirements into storage. ForkBase, a storage engine designed for blockchain and forked applications. By integrating core application attributes into storage, ForkBase not only provides high performance but also reduces development work. This storage manages multiple versions of data and supports two different fork semantics, thereby supporting different fork workflows. ForkBase is fast and spatially efficient because it has a new index class that supports efficient queries and effective detection of duplicate content across data objects, branches, and versions. We demonstrated the performance of ForkBase using three applications: blockchain platform, wiki engine, and collaborative analysis application. We conducted extensive experimental evaluations on our respective latest solutions. The results indicate that ForkBase achieves good performance while significantly reducing development workload

Keywords:  blockchain and collaborative analysis; Blockchain and fork application program design; For semantics; Wiki engine and collaborative analysis application

区块链是一个不可变的记录链,称为块,可促进交易,有助于跟踪资产并记录数据和文件。所有包含信息的块都用哈希链接在一起。从头开始开发区块链应用程序及其实施需要大量时间和深入研究。开发从寻找和选择最适合您要求的正确区块链协议开始。

创新者正在寻找在金融服务、供应链、政府、医疗保健、零售和许多其他行业实施区块链以转变商业模式的方法。区块链通过提供以下服务为企业增加价值:

  1. 透明度
  2. 可追溯性
  3. 提高速度
  4. 降低成本

随着区块链的实施,交易历史变得更加透明。由于区块链是分布式账本,所有网络成员共享同一个更新的账本。网络中的共识验证账本,这意味着每个人都必须同意它。

更改单个记录将导致修改所有后续记录。因此,保存在区块链上的数据是:

更安全

准确的

透明的

仅对具有访问权限的成员可用

可追溯性

区块链的核心理念:一个分布式数据库,其基本单元为区块,取款用来存储数据,区块之间前后关联,通过时间排序,基于PKI、摘要算法实现集体验证、维护。区块链提供了一个分布式总账,让用户对总账的数据实现共同治理,因而建立互信。

区块链基本逻辑

区块链有两个核心场景:

1、创建新的区块Create:创建的区块与前序区块关联,并按时间排序;

2、填充数据到区块VoteAndSignAndFillData:填充数据到区块需要住民集体共识,并有基于PKI的签名;

区块链分类

区块会因为使用场景的不同,而分组,用来记录不同场景的数据。这些分组也因为面向的用户群不一样而又所区别,有一些区块链面向所有人,所有人的权利一样,这就成了公有链;有一些区块链只面向特定的人群,这就成了私有链;公有链、私有链之间会有协作,相互之间按照特定规则实现数据互信,则成了联盟链。

几种分类

公有链主要以建立基础设施为主,例如比特币基于工作量证明来实现稀缺性,以太坊通过智能合约提供共识机制的基础实现。私有链是真实有价值的领域,可以在一个领域形成共识,例如供应链SRM;当多个私有链所在一个领域且有互通有无的需求时,联盟链就诞生了。

针对多版本数据的重复数据消除

减少存储开销

在数据集版本控制系统中最常用的方法,
Decibel and OrpheusDB, is record-level
delta encoding.
在这种方法中,新版本只存储从前一个版本修改的记录。因此,当连续版本之间的差异很小时,它是非常有效的。但是需要组合多个增量以重构版本的内容。
OrphusDB通过将增量平铺成记录引用的完整列表来优化重构。但是,对于大型表来说,这种方法不能很好地扩展。
Delta encoding 增量编码存在的问题是,无论何时修改版本,都会创建新的副本,即使新内容与某些较旧版本的版本或不同版本的版本相同安奇。换言之,对于非连续版本、发散分支或数据集而言,增量编码不是有效的。例如,在像DataHub这样的多用户应用中。

基于块的重复检测和删除

与增量编码不同,此方法应用于独立对象。
file systems , and is a core feature of git. 在这种方法中,文件被划分为称为块的单元,每个单元都被赋予一个唯一的标识符用于检测相同的块。基于块的去重对于很少被修改的大型文件来说是非常有效的。当更新导致更改现有块时,可以使用基于内容的切片,避免昂贵的重切问题,即边界偏移问题。

在本工作中,我们对结构化数据集(如关系表)采用基于块的去重复。我们不像在增量编码中那样对单个记录进行重复数据消除,而是在主索引中的data pages上应用重复数据删除。好处我们不再需要从记录中重建它,并且可以直接访问索引和数据页,以便快速查找和扫描。

DESIGN

SIRI Indexes

Structurally-Invariant Reusable Indexes (SIRI)
数据库中现有的主要索引侧重于提高读写性能。它们不考虑数据页共享,这使得页面级数据无法去重。提出了一类新的索引,结构不变可重用索引(SIRI),它便于不同索引实例之间的页面共享。
定义一个索引结构 I ,具有以下特性

除了以上SIRI的特性之外还包含一下3个特征:

  1. it is a probabilistically balanced search tree;
  2. it is efficient to find differences and to merge two instances;
  3. it is tamper evident.

类似于B+树和Merkle树的组合,定义节点(页)边界为从包含的条目中检测到模式,以避免结构上的差异。具体来说,为了构造一个节点,我们扫描目标条目直到出现预定义的模式,然后创建一个新的节点来保存被扫描的条目。由于叶节点和内部节点的特点不同,我们为它们定义了不同的模式。
类似于B+树,索引节点包含每个子节点的一个条目。每个条目都由一个子节点的标识符id和相应的拆分键key组成。pos-Tree也是Merkle树,因为子节点的标识符是子节点的加密散列值而不是存储器或文件指针。

SYSTEM IMPLEMENTATION

在本节中,我们将介绍ForkBase的实现细节。系统既可以作为嵌入式存储运行,也可以作为分布式服务运行。
下图显示了由四个主要组件组成的ForkBase群集的结构:master, dispatcher, servlet and chunk storage.主服务器、分派程序、服务程序和区块存储。

主服务器维护集群运行时信息,而请求分派程序则接收请求并将请求转发给相应的servlet。每个servlet管理由路由策略确定的密钥空间的不相交子集。servlet还包含三个子模块,用于执行请求:
1.access controller:访问控制器在执行前验证请求权限;
2.branch table : 分支表维护标记和未标记分支的分支头;
3.object manager : 对象管理器处理对象操作,将内部数据表示形式隐藏在主执行逻辑中。
chunk storage 区块存储给数据块提供访问,所有块存储实例都形成一个共享存储池,远程servlet可以访问它。实际上,每个servlet都与本地块存储共存,以支持快速数据访问和持久性。当使用ForkBase作为嵌入式存储时,例如在块链节点中,只实例化一个servlet和一个块存储。

Internal Data Representation

数据对象以数据块的形式存储。原始对象由单个块组成,而块对象则包含多个块。
Chunk and cid chunkForkBase中存储的基本单元,它包含一个字节序列。每个块有唯一标识cid,它是根据块中的字节序列使用加密散列函数计算出来的。
FNode and POS-tree 一个FNode被序列化并存储为一个meta chunk uid == cid 存储在索引条目中的子节点id是相应块的cid
Data Types对于原始对象,它的值嵌入meta chunk的数据字段中,以便快速访问。对于块状对象,数据字段包含一个cid,它指向相应POS-Tree的根。按需求访问对应的POS-Tree节点,而不是直接获取整棵树。

Chunk Storage

块存储保存数据块并支持使用cid检索,它公开了一个键值接口,其中密钥是所提交的cid。当请求包含现有块时,存储将检测它并立即返回。

Branch Management

每个键都有一个分支表,用于保存所有分支的。分支表包含两个分别用于标记和未标记分支的结构。
TB-table 标记的分支保留在TB-table的映射结构中,其中每个条目由标记和头cid组成。
UB-table未标记的分支保留在UB-table的集合结构中,其中每个条目只是冲突分支的头ID。其中每个条目只是一个冲突分支的头部cid
Conflict Resolution在合并(M7-M9)操作中使用了一种三路合并策略。如果合并失败,则返回冲突列表,要求解决冲突。这可以在应用层处理,合并的结果会返回到存储。另外,简单的冲突可以使用内置的解析函数(such as append, aggregate and choose-one)来解决。在发生冲突时,ForkBase还允许用户挂起定制的解析函数。

Cluster Management

ForkBase作为分布式服务部署时,它使用基于哈希的两层分区,在集群中的节点之间均匀地分配工作负载:
Request dispatcher to servlet调度器接收的请求并划分发送到相应的servlet(划分依据: keys’ hash)。
Servlet to chunk storageservlet中创建的块根据cid进行分区,然后转发到相应的块存储。

个人观点:

比特币-原理

可以把区块链想象成比特币网络的数据库

• 这个数据库以文件形式存放在互联网的各个比特币节点上,每个节点都有一份完整的备份。

• 这个数据库记录着自比特币诞生以来的所有比特币转账交易。

• 这个数据库是一块一块存储的,每一块包含一部分交易记录。

• 当要发起一笔比特币交易的时候只需要把交易信息广播到网络中,矿工把交易信息记录成一个新的区块连接到原来区块链上,交易就完成了。

比特币不能作为货币应用于经济:因为比特币总量只有2100万,螺旋式通缩最后会导致经济逐步停滞

今日,区块链是过去几十年来最激动人心的协议和技术集合。因为区块链使得无需许可的价值贮藏、价值汇聚和价值交易成为可能。

万维网协议使得信息成为可编程的。区块链则准备让所有类型的资产都变为可编程的。去中心化存储是存储技术发展的必然趋势,在大数据时代来临时可以满足人们对于数据存储容量和数据持久性的更高要求。

区块链与分布式存储尽管在有些方面存在联系,但他们代表完全不同的概念和功能。

区块链是一种分布式账本技术,它通过将数据分布在网络中的多个节点上,并使用密码学算法确保数据的安全性和完整性。区块链的核心特点是去中心化和不可篡改性,它可以用于创建可信任的交易记录、数字资产管理以及构建去中心化应用。

分布式存储是一种数据存储技术,它将数据分布在网络中的多个节点上,以提高数据的可靠性和可用性。分布式存储系统将数据划分为多个部分,并将这些部分存储在不同的Q节点上,通过冗余备份和数据复制来保证数据的安全性和可恢复性。

总的趋势还是利用ForkBase(结合区块链实现高效存储引擎),才可以将区块链的潜力全面挖掘。

References:

  1. Hardening Distributed and Encrypted Keyword Search via Blockchain | CYW
    2017 | The IEEE Symposium on Privacy-Aware Computing(PAC) (EI) |Hall T, Beecham S, Bowes D, Gray D, Counsell S. A systematic literature review on fault prediction performance in software engineering. IEEE Trans. on Software Engineering, 2012,38(6):12761304.
  2. Yu SS, Zhou SG, Guan JH. Software engineering data mining: A survey. Journal of Frontiers of Computer Science and Technology, 2012,6(1):131 (in Chinese with English abstract).
  3. A Searchable Symmetric Encryption Scheme using Blockchain | LZHT
    2017 | arXiv | Akiyama F. An example of software system debugging. In: Proc. of the IFIP Congress. 1971. 353359.
  4. Searching an Encrypted Cloud Meets Blockchain-A Decentralized, Reliable and Fair Realization | HCWW
    2018 | IEEE INFOCOMMcCabe TJ. A complexity measure. IEEE Trans. on Software Engineering, 1976,2(4):308320.
  5. Chidamber SR, Kemerer CF. A metrics suite for object oriented design. IEEE Trans. on Software Engineering, 1994,20(6): 476-493.
  6. Blockchain based searchable encryption for electronic health record sharing | CLCC
    2019 | Future Generation Computer Systems (FGCS)Subramanyam R, Krishnan MS. Empirical analysis of CK metrics for object-oriented design complexity: Implications for software defects. IEEE Trans. on Software Engineering, 2003,29(4):297310.
  7. Zhou YM, Xu BW, Leung H. On the ability of complexity metrics to predict fault-prone classes in object-oriented systems. Journal of Systems and Software, 2010,83(4):660-674.
  8. Zhou YM, Leung H, Xu BW. Examining the potentially confounding effect of class size on the associations between object- oriented metrics and change-proneness. IEEE Trans. on Software Engineering, 2009,35(5):607-623.
  9. Zhou YM, Xu BW, Leung H, Chen L. An in-depth study of the potentially confounding effect of class size in fault prediction. ACM Trans. on Software Engineering and Methodology, 2014,23(1):10:1-10:51.
  10. Zhao YY, Yang YB, Lu HM, Zhou YM, Song QB, Xu BW. An empirical analysis of package-modularization metrics: Implications for software fault-proneness. Information and Software Technology, 2015,57:186-203.
  11. Yang YB, Zhou YM, Lu HM, Chen L, Chen ZY, Xu BW, Leung H, Zhang ZY. Are slice-based cohesion metrics actually useful in effort-aware post-release fault-proneness prediction? an empirical study. IEEE Trans. on Software Engineering, 2015,41(4): 331-357.

附中文参考文献:

[1]  《区块链技术指南》 (唐宇飞、冯晓静 编著,清华大学出版社,2016年)

[2]  .《区块链:从数字货币到信任机器》(唐骏、王峰、周志华、林伟 编著,人民邮电出版社,2018年)

[3]  《区块链技术原理与应用》(黄浩涛、邓长清、吴钧璋 编著,电子工业出版社,2018年)

[4]  《区块链技术与应用》(李鹏 编著,科学出版社,2017年)

[5]  《区块链技术发展与趋势》 (黄小娜、李立军 编著,机械工业出版社,2018年)

[6]  《区块链技术及其应用》 (杨帆 编著,电子工业出版社,2018年)文章来源地址https://www.toymoban.com/news/detail-761165.html

到了这里,关于ForkBase:结合区块链实现高效存储引擎的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Docker本地部署MinIO对象存储服务器结合Cpolar内网穿透实现远程访问

    MinIO是一个开源的对象存储服务器,可以在各种环境中运行,例如本地、Docker容器、Kubernetes集群等。它兼容Amazon S3 API,因此可以与现有的S3工具和库无缝集成。MinIO的设计目标是高性能、高可用性和可扩展性。它可以在分布式模式下运行,以满足不同规模的存储需求。 MinIO是

    2024年02月04日
    浏览(33)
  • 开源对象存储服务器MinIO本地部署并结合内网穿透实现远程访问管理界面

    MinIO是一个开源的对象存储服务器,可以在各种环境中运行,例如本地、Docker容器、Kubernetes集群等。它兼容Amazon S3 API,因此可以与现有的S3工具和库无缝集成。MinIO的设计目标是高性能、高可用性和可扩展性。它可以在分布式模式下运行,以满足不同规模的存储需求。 MinIO是

    2024年02月01日
    浏览(22)
  • B+树:高效存储与索引的完美结合

    在计算机科学领域中,数据结构的选择对于高效存储和索引数据至关重要。B+树(B+ tree)作为一种自平衡的搜索树,被广泛应用于数据库和文件系统等领域。本篇博文将为您详细介绍B+树的定义、特点、记忆口诀以及适用场景,帮助您深入理解和应用这一强大的数据结构。

    2024年02月09日
    浏览(14)
  • 区块链:OpenDataPlatform如何与区块链结合用于数据存储和管理

    作者:禅与计算机程序设计艺术 区块链(Blockchain)近年来受到越来越多人的关注,因为其能够提供不可篡改、透明、安全、高效率的数据存证功能。随着其功能的不断完善,越来越多的创业公司都开始使用区块链技术进行数据存证及管理。然而,不同于传统互联网应用中的数据

    2024年02月12日
    浏览(31)
  • 解锁高效存储管理:OpenStack Cinder与NFS的完美结合

    安装NFS 查询是否安装 如果没有安装,执行以下安装命令 启动NFS服务 关闭防火墙及SELinux 创建共享目录 修改配置文件 重启服务 客户端测试挂载 使用控制节点测试挂载 创建文件并配置 修改文件权限 增加NFS后端定义 修改参数 enabled_backends 增加NFS后端参数 增加 nfs 后端参数,

    2024年02月11日
    浏览(18)
  • PB级区块链开源存储引擎“泓”Huge

    区块链的特有属性使数据可追溯、不可篡改的同时弊端也很明显,采用的分布式存储技术需要每一个节点保存一份数据库,存储成本高;网络中发生的每笔交易都需要其它节点认证和记录,处理速度慢;这让区块链的系统的存储效率相较集中式存储受到诟病。作为数字经济新

    2024年01月17日
    浏览(18)
  • BNetDisk:一个安全高效、基于区块链的云存储解决方案

    项目地址:https://gitcode.com/SunRain/BNetDisk BNetDisk 是一个创新性的开源项目,它利用区块链技术构建了一个去中心化的云存储平台。这个项目旨在提供更安全、透明且高效的个人和企业数据存储服务,改变传统云存储模式。 BNetDisk 的核心理念是通过区块链的分布式特性,将用户的

    2024年04月11日
    浏览(21)
  • 面向WEB3.0提升存储性能,蚂蚁鲸探底层区块链存储引擎正式对外开放

    11月3日,蚂蚁集团数字科技在云栖大会上宣布,其历经4年的关键技术攻关与测试验证的区块链存储引擎LETUS(Log-structured Efficient Trusted Universal Storage),首次对外开放。该产品主要用于可信数据在区块链上的存储,LETUS今年在蚂蚁数字藏品平台“鲸探”成功应用,真实业务环境

    2024年02月12日
    浏览(26)
  • 云计算的自动化与脚本:实现高效运维

    云计算是一种基于互联网和服务器集群的计算模式,它允许用户在需要时从任何地方访问计算资源。自动化和脚本在云计算中发挥着至关重要的作用,因为它们可以帮助管理员更高效地运行和维护云计算环境。在本文中,我们将探讨云计算自动化和脚本的核心概念、算法原理

    2024年04月12日
    浏览(24)
  • 并行计算与云计算的结合:实现高效计算

    并行计算和云计算都是当今计算技术的重要组成部分,它们各自具有独特的优势和应用场景。并行计算可以在多个处理单元之间分配任务,以提高计算效率,而云计算则可以通过分布式资源共享和虚拟化技术,实现计算资源的灵活性和可扩展性。随着数据量的增加和计算任务

    2024年04月11日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包