通过hyperledger fabric理解区块链存储

hyperledger fabric 是一个联盟链框架,基于这个框架的最简单案例,A与B转账,我们来理解一下什么是区块链。

第一个问题,区块链是干什么用的?

       很多人想到了比特币,以太坊等等;那具体是干什么用的呢?实际上可以理解为一个特别的数据存储工具,比特币、以太坊,都是利用区块链技术进行保存着账户信息和账户金额信息。hyperledger fabric同样也是这样,在最简单的智能合约里,同样是保存着A和B账户的信息和金额。

那我们先来看一下hyperledger fabric是如何存储数据的?(案例为公司内部搭建的简易区块链平台)

通过hyperledger fabric理解区块链存储_第1张图片

这个是简易区块链网络的部署图。

hyperledger fabric数据存储的概念分为两部分,一部分是区块所组成的链,一部分类似于传统的key-value数据库。

首先我们先展示一下key-value数据库概念部分。

hyperledger-fabric是使用couchdb来实现key-value部分,所以下列图是部署完网络之后,四个节点中couchdb自带的浏览器查看截图。

通过hyperledger fabric理解区块链存储_第2张图片

通过hyperledger fabric理解区块链存储_第3张图片

通过hyperledger fabric理解区块链存储_第4张图片

通过hyperledger fabric理解区块链存储_第5张图片

通过上图我们可以看到四个节点couchdb中都保存着一份同样的A和B账户的金额信息。

然后我们执行一下A向B转账1元

通过hyperledger fabric理解区块链存储_第6张图片

执行成功后,我们再看

通过hyperledger fabric理解区块链存储_第7张图片

通过hyperledger fabric理解区块链存储_第8张图片

通过hyperledger fabric理解区块链存储_第9张图片

通过hyperledger fabric理解区块链存储_第10张图片通过hyperledger fabric理解区块链存储_第11张图片

因为value是加密的,但从这个现象,我们就能看出来,hyperledger-fabric会在每一个节点上都部署一个couchdb数据库,当我们对数据进行更改时,所有的节点的couchdb数据都会进行更改。这个就是hyperledger-fabric中的key-value数据库的概念含义。

 

上面演示的hyperledger-fabric的数据库概念,那第二部分呢,我们来学习一下区块和链的概念。

区块链可以部署区块浏览器,我们通过区块浏览器来查看一下这次转账的新的反应

通过hyperledger fabric理解区块链存储_第12张图片

可以看出来,我们在最近的一次转账动作中,新生成了一个区块。

通过hyperledger fabric理解区块链存储_第13张图片

可以看出来是那个通道,第多少个区块,创建时间(显示时间+8小时),交易的数量,区块的hash值,数据的hash值,上一个区块的hash值。

我们再看一下这一调交易信息。

通过hyperledger fabric理解区块链存储_第14张图片

可以看出来这一次交易信息对A和B账户进行了新的值得设定。

我们也可以通过转账的接口来查询一下实际的A的金额

通过hyperledger fabric理解区块链存储_第15张图片

通过hyperledger fabric理解区块链存储_第16张图片

给出的结果是{状态值:结果值}。

那这个时候,我们可以将hyperledger-fabric区块链技术和传统的reids数据库技术进行比较

通过hyperledger fabric理解区块链存储_第17张图片

传统的key-value数据库只存储了当前的数据信息,但是hyperledger-fabric既利用couchdb保存了当前的数据信息,还利用区块所组成的链,记录了所有的操作信息。并且hyperledger-fabric在每一个节点也都保存了一份区块组成的链的信息。

这就是hyperledger-fabric技术底层存储数据的结构。

 

你可能感兴趣的:(hyperledger,fabic)