Hyperledger Fabric是一款企业级的带权限分布式账本平台,支持Java、Go和node.js等通用编程语言编写的智能合约,部署在不同的网络中就可以发挥不同的效应了,可以很好的适应特定的用例和信任模型,具有开源和易操作的特点。
基本介绍
Hyperledger Fabric 是由 Linux 基金会发起创建的开源区块链分布式账本。
Hyperledger Fabric 是一个开源区块链实现,开发环境建立在 VirtualBox 虚拟机上,部署环境可以自建网络,也可以直接部署在 BlueMix 上,部署方式可传统可 Docker 化,共识达成算法插件化,支持用 Go 和 JavaScript 开发智能合约,尤以企业级的安全机制和 membership 机制为特色。
你要是不知道这些术语什么意思,就记住一点,Fabric 之于区块链,很可能正如 Hadoop 之于大数据。
Fabric组成模型
资产定义
资产这里理解为任何具有货币价值的东西,它们都可以通过网络进行交易,无论是有形资产还是无形资产都属于资产。
资产在Hyperledger Fabric中以键-值对集合的形态存在,在通道(channel)中各本地账本可以对其状态提交变更事务。资产可以用二进制或JSON形式表示。
智能合约
链码(chaincode)即Fabric的智能合约,分为系统链码和用户链码。链码的执行由事务排序划分,限制了节点类型间的信任和验证级别,并优化了网络的可伸缩性和性能。
共享账本
在Fabric中产生的所有针对数据状态变更的请求都会生成有序且不可篡改的记录存于账本中。数据状态的变更是由所有参与方认可的智能合约调用事务的结果。每个事务都将产生一组资产键-值对,这些键值对作为创建、更新或删除等操作而同步到所有账本。
账本由区块链(区块根据hash等算法组成的链条)组成,而每一个区块中都存储有一条或一组有序的且不可篡改的记录,也就是一个状态数据库来维护当前的Fabric的状态。每个通道(channel)都有且仅有一个账本,在该通道(channel)中的每个加盟成员的对等点都维护同一份账本。
隐私通道
多通道(channel)交易的设计方案可以确保竞争的企业和受监管的行业在一个公共网络上交换资产时的高度隐私及保密性。
成员服务
Hyperledger Fabric只允许被授权加盟的成员参与数据维护,且成员间相互认可所有的交易都会被彼此发现和跟踪。这种方式提供了一个可信的区块链网络。
共识机制
共识机制的设定是为了达成一致的一种独特的方法,它可以实现企业间所需的灵活性和可伸缩性。
Fabric账本数据结构
要达到数据不可篡改首先从数据结构上来看,也是区块链之所以称之为区块链的原因。如下图1-1所示,每个存储单元包含上一存储单元的hash值(图中hash值的对应关系不完全精确,仅示意用)以及自身存储的交易数据块,可以从表象来看就像把所有数据块连接在一起,称之为“区块链”,形成链状可追述的交易记录。这种链状结构的数据称之为账本数据,保存着所有交易的记录,此外还有一个“世界状态”,其实质为Key-Value数据库,维护着交易数据的最终状态,便于查询等操作运算,并且每个数据都有其对应的版本号。
Fabric涉及的技术及要求
Docker容器
掌握docker的环境搭建。掌握Docker的基本操作命令,包括打包、拆包、tag、容器管理、镜像管理等。掌握Docker Compose和YAML的编排方案,了解如何挂载文件路径、设置端口绑定、确定Network以及掌握环境变量的用法等。
Go语言
掌握go语言的环境部署即可。
gRPC框架
gRPC 是一个高性能、通用的开源RPC框架,其由 Google 公司主要面向移动应用开发并基于HTTP/2 协议标准而设计的,基于 ProtoBuf(Protocol Buffers) 序列化协议开发,且支持众多开发语言。
CA认证
CA是PKI系统中通信双方信任的实体,被称为可信第三方(Trusted Third Party,简称TTP)。作为可信第三方的行为具有非否认性。
P2P传输
Peer-to-Peer,对等网络,即对等计算机网络,是一种在对等者(Peer)之间分配任务和工作负载的分布式应用架构。
∨ 展开