Fabric VS Ethereum 中存储方案思考《联盟链》应有的存储(二)

大家好,我是Neo,这篇文章我们通过Fabric和Ethereum的存储解析来思考一下国内联盟链需要什么样的存储,以及我思考的,联盟链存储方案。希望对学习中的朋友有帮助。

Fabric 存储详述

这节主要是给大家讲解Fabric 存储的内容,和存储的方式,Fabric有两个存储数据库可选,一个LevelDB,一个是CouchDB。这里主要讲解LevelDB。

Fabric 存储框架

Fabric 存储内容

Fabric 是一个权限管理严格的联盟链,当时设计的时候考虑要适用多行业,所以设计了多链结构,主要是有多channel,每个channel都是一条链,所以是多链结构。 那么Fabric 存储的内容有哪些呢?

1、Ledger-账本

  • 账本是Fabric中所有状态转换记录具有有序和防篡改的特点。状态转换是参与各方提交链代码调用(交易)产生的结果。每个交易会产生一组资产键值对,这些键值对作为“创建”、“更新”或者“删除”提交给账本

2、Chain-链

  • 就是BlockChain

3、State Database-状态数据库

  • 状态很多人都不知道是什么,简单来说,就是每个账户在不同的时间(也就是不同的block高度)余额情况。特别好理解了吧。

4、Transaction Flow-交易流

  • 每个交易在连上都是可查,这个是和blockchain 存储不在一起,block 里面存储的都是transtion的Hash。

并且每个Peer节点都需要维护4个DB

  • idStore,存储chainID。用户快速查询节点存在哪些账本
  • stateDB,存储world state(默认为LevelDB,可替换为CouchDB)
  • historyDB,存储stateDB的key的版本变化
  • blockIndex,存储区块文件索引

Fabric 存储框架

通过图可以看出来整个存储架构,图只有展示单链结构。这里面展示了Blockchain和StateDB


Fabric VS Ethereum 中存储方案思考《联盟链》应有的存储(二)


Fabric 存储细节

我们在来仔细看看几个重要的存储细节

  • 账本数据
    其实里面就是每一个Block的存储。下图看一下Block
Fabric VS Ethereum 中存储方案思考《联盟链》应有的存储(二)

  • Block Block 里面包含了哪些东西,都可以通过下图来了解,


Fabric VS Ethereum 中存储方案思考《联盟链》应有的存储(二)


  • Transtion
    Transtion 里面的包含哪些东西,图可以了解,其中占用空间比较大的都是签名。


Fabric VS Ethereum 中存储方案思考《联盟链》应有的存储(二)


  • 区块链索引
    BlockIndex 是为了快速找到Block,里面包含fileSuffixNum,offset,bytesLength。
  • State数据库 状态数据(state database)记录的是交易执行的结果,最新的状态代表了通道(channel)上所有键的最新值,所以又称为“世界状态”。状态数据库目前支持LevelDB和CouchDB不同的Ledger包含不同的stateDB。

本人对联盟链颇有研究,为了推广联盟链在全国的使用,响应国家政策,免费提供联盟链选型咨询。欢迎来撩。

推荐

推荐泰岳联盟链推荐指数 ⭐️⭐️⭐️⭐️⭐️哥伦布科技公司旗下的泰岳联盟链是全国区块链和分布式记账技术标准化技术委员会委员,参与制定工信部国家技术标准。中国云体系联盟成员,清华大学互联网产业研究院成员,国家千人计划评审专家沈寓实博士是公司技术顾问及公司董事,瑞典皇家工程院院士林垂宙院士为公司院士顾问。泰岳链已通过工信部标准院区块链系统功能测试单位。哥伦布成立于2016年。

未完待续......


分享到:


相關文章: