区块链是一个透明的,基于不可变模式的去中心化系统,核心就是一个分布式账本,记录网络上发生的所有交易。
区块链网络主要有三种类型:公共区块链、联盟区块链,以及私有区块链;我们熟知的比特币、以太坊这些数字货币其实就是属于公共区块链平台;
而今天要介绍的 Fabric
则是属于联盟链类型的;Fabric是一个企业级的分布式账本技术平台,也是目前应用最广泛的区块链项目。
本文将梳理区块链技术平台 Fabric
的核心概念与关键功能。
二、特点
Fabric与其他区块链平台对比有以下几个特点:
开源:它是Linux基金会旗下的一个重量级区块链平台。
身份管理:fabric和其他区块链系统的不同之处在于它是私有的,有准入资格授权的,并非一个公开的允许不明身份参与者进入网络的系统;它提供了一个成员身份服务,用于管理网络上的所有参与者和权限。
隐私和保密:有一个通道的概念提供了交易隐私和机密性,一个Fabric的网络可以创建多个通道,任何未正式授权的网络成员都没办法看到或者访问通道上的任何数据;可以理解为就是支持多租户,通道与通道之间的数据都是隔离的。
链码功能:智能合约在Fabric 中称之为链码,用于对账本的访问,例如写入交易信息,查询数据等等。
模块化设计:Fabric实现了模块化架构,例如身份、排序、链码等服务和功能,都是可选的可插拔的非常灵活。
三、系统功能
Fabric的一个功能架构图:
四、组件逻辑关系 图中的浅蓝色方块
N
代表整个区块链网络;网络底部的 C
为 通道
相当于是一个子链,一个区块链网络可以创建多个通道,通道与通道之间是数据隔离的,可以理解为是一个多租户系统;一个通道上面可以部署多个 Peer 节
点为图中蓝色方块 P1
和 P2
,区块链网络主要由 Peer 节
点组成;每个 Peer 节
点上都有一份 账本
的全量副本为红色的 L1
,然后 智能合约
是部署在每个节点上的为黄色 S1
,一个节点可以部署多个 智能合约
;最后区块链网络外面的白色方块A指的是访问区块链的 应用
,应用是通过通道来与节点上的账本进行交易的。
五、账本
账本是 Hyperledger Fabric 中的一个重要概念,它存储了有关业务对象的重要事实信息,其中既包括对象属性的当前值,也包括产生这些当前值的交易的历史。
账本由一个区块链(链)构成,并将不可变的、有序的记录存放在区块中;同时包含一个状态数据库来记录当前的Fabric状态。每个 通道
中各有 一个账本
。各个节点对于它所属的每个通道,都会保存一份该通道的 账本副本
。
如下图所示,Hyperledger Fabric 中的账本由“世界状态“和”区块链“这两部分组成:
世界状态:世界状态是以数据库的形式实现,默认使用的是LevelDB,这是一个KeyValue数据库;里面记录的是业务对象的最新值;智能合约主要与账本中的世界状态进行交互。
区块链:以文件形式实现的,记录交易日志明细,相当于是一个交易的台账表。
例如有一个银行账户,发生一次存款和三次取款 *** 作,则最终区块链里面会记录四条记录的日志,而世界状态则只记录一条记录,就是当前账户最新的余额。
六、智能合约
智能合约
是一个运行在账本上的应用程序,它可以对资产进行编码,其中的交易指令(或者叫业务逻辑)也可以用来修改资产。
在 Fabric2.0
以后引入了新的生命周期来管理合约:
关于 Java 智能合约的开发可以看我之前的文章《Hyperledger Fabric 2.x 自定义智能合约》
七、交易流程 首先区块链应用发起一笔交易;然后
背书节点
对交易进行签名验证,返回验证结果;客户端将背书结果封装发给 Peer 节点,然后再提交给 Order 节点进行数据同步;Order 节点按顺序把交易信息同步给其他的 Peer 节点进行验证和提交;最后账本更新,完成整个交易。
扫码关注有惊喜!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)