`
wx1569488408
  • 浏览: 75241 次
文章分类
社区版块
存档分类
最新评论

各区块链底层数据存储分析(二)

 
阅读更多

目前市场上主流的区块链系统有比特币,Ripple,以太坊和 Hyperledger Fabric 。昨天小编已经为大家介绍了比特币和瑞波币(Ripple),今天小编将继续为大家分析当前主要流行的区块链的存储技术——以太坊和Hyperledger Fabric。

区块链简介

区块链(英语:blockchain或block chain)是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。中本聪于2008年在《比特币白皮书》中提出“区块链”概念,并在2009年创立了比特币社会网络,开发出第一个区块,即“创世区块”。区块链包含一张被称为区块的列表,有着持续增长并且排列整齐的记录。每个区块都包含一个时间戳和一个与前一区块的链接,这样设计区块链使得数据不可篡改,一旦记录下来,在一个区块中的数据将不可逆。

各区块链底层数据存储分析(二)

数据存储(二)

1、以太坊

以太坊是一个开源的有智能合约功能的公共区块链平台。通过其专用加密货币以太币(Ether,又称为「以太币」)提供去中心化的虚拟机(称为「以太虚拟机」Ethereum Virtual Machine)来处理点对点合约。

以太坊的区块主要由区块头和交易组成,区块在存储的过程中分别将区块头和交易体经过 RLP 编码后存入至 KV 数据当中。以太坊在数据存储的过程中,每个 value 对应的key 都有相对应的前缀,不同类型的 value 对应不同的前缀。

区块交易体的存储过程如下:

1. 将区块中的交易数据和叔块头信息进行 RLP 编码从而生成存储值value;

2. 将数据类型前缀,编码后的区块高度和区块哈希拼接生成 key;

3.将存储至db数据库中。

区块的信息可以通过区块哈希和区块高度进行检索,其存储过程如下:

1.将区块头信息进行 RLP 编码从而生成存储值 value

2.将区块高度进行编码(转发成大端格式数据)生成encNum

3. 将数据类型前缀 (headerPrefix) 和 encNum 生成以区块高度为检索信息的 key

4.将存储至db数据库中,从而生成以区块高度为检索的信息

5.将数据类型前缀(blockHashPrefix)和区块哈希生成以区块哈希为检索信息的key

6.将存储至db数据库中,从生成区块哈希为检索的信息

在数据查询的时候,应用层只需要提供交易 hash、区块高度和区块哈希就能得到交易 key,从而查询到相关的交易信息。

2、Hyperledger Fabric

Hyperledger fabric (HLF)是由Linux基金会主导推广的区块链开源项目。在Hyperledger Fabric的基础上又衍生出了其他一些相关的项目。HyperLedger项目汇集了金融、银行、物联网、供应链、制造等各界开发人员的心血。目的是为了打造一个跨领域的区块链应用。

HLF 的存储系统和比特币一样,也是由普通的文件和 kv 的数据库(levelDB/couchDB)组成。在 HLF 中,每个 channel 对应一个账本目录,在账本目录中由 blockfile_000000、blockfile_000001 命名格式的文件名组成。为了快速检索区块数据每个文件的大小是64 M Bytes。每个区块的数据(区块头和区块里的所有交易)都会序列成字节码的形式写入 blockfile 文件中。

HLF存储区块数据的文件名格式如图所示:

各区块链底层数据存储分析(二)

HLF检索信息文件如图所示:

各区块链底层数据存储分析(二)

在序列化的过程中,程序以 append 方式打开 blockfile 文件,然后将区块大小和和区块数据写入至 blockfile 文件中。

以下是区块数据写入的具体描述:

1.写入区块头数据,依次写入的数据为区块高度、交易哈希和前一个区块哈希;

2. 写入交易数据,依次写入的数据为区块包含交易总量和每笔交易详细数据;

3. 写入区块的Metadata 数据,依次写入的数据为 Metadata 数据总量和每个 Metadata 项的数据详细信息。

在写入数据的过程中会以 kv 的形式保存区块和交易在 blockfile 文件中的索引信息,以方便 HLF 的快速查询。

HLF 区块索引信息格式在 kv 数据库中存储的最终的 LevelKey 值有前缀标志和区块 hash 组成,而 LevelValue 的值由区块高度,区块 hash,本地文件信息(文件名,文件偏移等信息),每个交易在文件中的偏移列表和区块的 MetaData 组成, HLF 按照特定的编码方式将上述的信息拼接成 db 数据库中的 value 。

HLF交易索引信息格式在kv数据库中存储最终的LevelKey值由channel_name,chaincode_name和chaincode中的key值组合而成:

LevelKey = channel_name + []byte + chaincode_name + []byte + key

而 LevelValue 的值由BlockNum 区块号,TxNum 交易在区块中的编号组成, HLF 通过将区块号和交易编号按照特定的方式编码,然后与 chaincode 中的 value 相互拼接最终生成 db 数据库中的 value 。

总结

综上所述,本文介绍的主要区块链除了 Ripple 使用的关系型数据库存储、检索区块数据外,其他三种类型的区块链都使用 kv 数据库存储区块链的检索信息。在存储、检索数据上,比特币和 Hyperledger Fabric 高度一致,即使用普通文件存储区块数据,使用 kv 数据库存储检索信息;以太坊的区块数据和检索信息都存储至 kv 数据库中,而 Ripple 的区块数据也会存储至 kv 数据库中。

转载于:https://my.oschina.net/u/3734614/blog/1590178

分享到:
评论

相关推荐

    区块链底层技术在平台打造上的应用-以智臻链技术平台为例.docx

    【区块链底层技术在平台打造上的应用】 区块链技术作为一种分布式数据库技术,近年来在互联网行业中引发了广泛的关注和探索。本文以智臻链技术平台为例,探讨区块链底层技术如何在平台构建上发挥重要作用。 首先,...

    区块链底层技术在平台打造上的应用-以智臻链技术平台为例.pdf

    区块链底层技术在平台构建上扮演着至关重要的角色,特别是在智臻链技术平台的实例中。区块链行业在2018年经历了戏剧性的起伏,年初的乐观情绪被虚拟货币的暴跌所打击,但区块链的底层技术却在这一年取得了实质性的...

    区块链安全技术指南.pdf

    区块链技术的应用非常广泛,包括数字货币、技术应用、数据存证、底层服务等方面。在这些应用中,安全诉求是非常重要的,需要对区块链技术的安全性进行保障。 四、区块链安全攻击实例及分析 区块链安全攻击实例包括...

    文物艺术品资产数字化--基于区块链的底层资产.pdf

    * 科技创新:区块链技术是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术在互联网时代的创新应用模式。它具有去中心化、时序数据、集体维护、可编程和安全可信等特点,特别适合构建编程的货币系统、...

    区块链互联网融合趋势分析.pptx

    【区块链互联网融合趋势分析】 区块链互联网的融合是当前信息技术领域的重要发展趋势,它旨在解决现有互联网存在的诸多问题,如中心化架构、数据安全、个人隐私、知识产权保护以及网络效率低下等。这种融合不仅仅是...

    区块链应用_23个应用场景

    区块链底层平台应用解决方案 (1)现状和需求分析 Ø 在传统互联网金融领域存在系统性安全风险、技术选择风险和技术外部 风险这三大风险,另外国内的互联网技术设备严重依赖国外,存在信息 安全和金融安全风险。 Ø ...

    区块链底层开发分布式部署—基于MySQL的分布式数据存储技术

    本套教程基于Linux操作系统为你讲述分布式引入概念。 课程收益: 掌握CentOS环境下Java和Go开发环境的搭建; 掌握基于MySQL的分布式数据存储技术; 

    基于区块链的农产品溯源系统设计.pdf

    * 广义的区块链技术包括点对点网络设计、加密技术应用、分布式算法的实现、数据存储技术的使用等四个方面。 * 狭义的区块链技术指的是类似比特币的数据存储方式,或许是数据库设计,或许是文件形式的设计。 知识点2...

    区块链底层开发—分布式集群部署

     掌握基于MySQL的分布式数据存储技术; 掌握分布式离线数据平台Hadoop的使用; 掌握基于Zookeeper的分布式数据协调技术; 掌握消息队列和负载均衡技术; 掌握Redis的数据持久化和事务操作; 课程配套学习资料...

    区块链底层开发—分布式离线数据平台Hadoop的使用

    本套教程基于Linux操作系统...掌握分布式离线数据平台Hadoop的使用。 课程配套学习资料,建议学员学习过程中跟着视频教程实操,可理解更加深入。技术问题可在下方留言,每晚8点我会准时答疑。感谢观看,祝您学习愉快!

    基于区块链Fisco-Bcos应用实战项目源码

    基于区块链的这两大特点,本篇将介绍如何将区块链应用于政府办公,实现协同办公,数据脱敏上链,以及数据溯源打破数据孤岛等功能。以小程序为载体,体现区块链在实际生活中的具体作用。 区块链部分基于FISCO BCOS ...

    从区块链技术浅谈民生档案的开发与利用.pdf

    区块链技术是一种创新的数据存储和传输方式,源自比特币的底层架构,它通过分布式共识机制、非对称加密技术、点对点传输协议以及脚本代码系统等集成创新,形成了一种去中心化的分布式基础架构。区块链可以分为公有链...

    区块链即服务平台BaaS白皮书.docx

    高可用的存储方案保证数据的安全存储;多类型账本支持满足多样化需求;多类型的交易模型,如UTXO和账户模型,满足不同业务逻辑;智能合约引擎支持多种编程语言,便于开发;同时,安全隐私保护机制确保用户数据的保密...

    基于CITA区块链的纠删码分片存储实现.docx

    基于CITA区块链的纠删码分片存储实现 纠删码是一种数据保护方法,最初被用于解决网络传输中的丢包问题,后被推广到...本系统可以降低数据存储的冗余度,提高系统的可靠性和存储效率,是一种高效的区块链存储解决方案。

    物联网 区块链技术的先行者.pdf

    在技术开发和服务方面,羿贝科技精通多种主流区块链底层技术,具备开发工具、应用平台、业务交互模块、智能合约和区块链核心的全方位能力。他们的区块链产品已经成功应用于农产品管控与溯源、工业物联网改造、金融...

    区块链技术在图书馆的应用场景分析.pdf

    区块链的核心在于利用块链式数据结构存储和验证数据,通过分布式节点共识算法生成和更新数据,并采用密码学方法确保数据传输和访问的安全。此外,智能合约的引入使得数据操作和编程自动化,进一步增强了区块链的灵活...

    《区块链即服务平台BaaS白皮书(1.0版)》(1).pdf

    白皮书深入剖析了BaaS平台的技术构成,分为资源管理层、区块链底层技术和平台管理层三个层次。关键的底层技术涵盖了可插拔的共识机制,如PoW、PoS等,高可用存储解决方案,多类型账本支持,如UTXO和账户模型,多语言...

    基于区块链的健康链系统设计与实现.pdf

    2. 区块链技术:用于底层数据存储和优化,确保数据的完整性和不可篡改性。每个数据块(block)包含了时间戳和前一块的哈希值,形成链式结构,防止数据被非法修改。 3. 数据安全与溯源:区块链技术的分布式特性使得...

    区块链视角下高校图书馆的发展战略研究——基于EFE和IFE的矩阵分析.pdf

    区块链技术,源自比特币的底层技术,是一种去中心化、分布式的数据库技术。它通过将数据记录在连续的区块上,并利用时间戳、密码学和共识机制确保数据的安全性和不可篡改性。区块链的核心特征包括去中心化、高安全性...

    基于tendermint构建自己的区块链

    Tendermint的架构设计将区块链的底层技术进行了解耦,Tendermint Core(“共识引擎”)通过一个满足ABCI标准的socket协议与应用进行交流。这种架构设计可以使得开发者更方便地构建自己的区块链应用。 Tendermint的...

Global site tag (gtag.js) - Google Analytics