目录
[Hyperledger Fabric 基础知识](#Hyperledger Fabric 基础知识)
[1、什么是 Hyperledger Fabric](#1、什么是 Hyperledger Fabric)
区块链基本概念
1、什么是区块
Block
,每个区块记录着上一个区块的hash
值、本区块中的交易集合、本区块的hash
等基础数据。由于每个区块都有上一区块的hash
值,区块间由这个值两两串联,形成了区块链。
2、什么是区块链
Blockchain
,最早起源于比特币的底层技术,并在其后不断演进发展。区块链本质上就是一个多方共享的分布式账本技术,用来记录网络上发生的所有交易。
而其中去中心化 的概念,是因为账本信息会被复制到许多网络参与者中,每个参与者都在协作维护账本,不像传统应用的数据被中心管理着。
另外信息只能以附加的方式记录到账本上,并使用加密技术保证一旦将交易添加到账本就无法修改。这种不可修改 的属性简化了信息的溯源,因为参与者可以确定信息在记录后没有改变过。所以区块链有时也被称为证明系统。
3、什么是公链、联盟链和私链
区块链分为公有链、联盟链、私有链三种基本类型。其中:
完全去中心化:公链,人人都可以参与,就像比特币(挖矿相当于在记账)。主要采取工作量证明机制(POW)、权益证明机制(POS)、股份授权证明机制(DPOS)等方式。
部分去中心化:联盟链,参与者是指定的。联盟链可以是几家公司共同拥有的链,也可能是几个国家共同承认的链。这是后续发展的趋势。
中心化:私链,写入权限仅在一个组织手里的区块链,仅对特定的团队、组织或者个人开放。
4、什么是交易
Transaction
,区块链接收的数据称之为交易。
5、什么是智能合约
Smart contract
,为了支持以同样的方式更新信息,并实现一整套账本功能(交易,查询等),区块链使用智能合约来提供对账本的受控访问。智能合约不仅是在网络中封装和简化信息的关键机制,它还可以被编写成自动执行参与者的特定交易的合约。
例如,可以编写智能合约以规定运输物品的成本,其中运费根据物品到达的速度而变化。根据双方同意并写入账本的条款,当收到物品时,相应的资金会自动转手。
通俗易懂点,智能合约就是按照大家约定好的规则编写的业务逻辑代码实现,然后只能通过这些合约来操作区块链网络这个账本。
6、什么是共识
保持账本在整个网络中同步的过程称为共识。该过程确保账本仅在交易被相应参与者批准时才会更新,并且当账本更新时,它们以相同的顺序更新相同的交易。
Hyperledger Fabric 基础知识
1、什么是 Hyperledger Fabric
Linux 基金会于 2015 年创建了 Hyperledger(超级账本)项目,而 Hyperledger Fabric 是其中一个用 Go 语言实现的版本。
Hyperledger Fabric 网络的成员只能从可信赖的成员服务提供者(MSP) 注册,也就是说 Hyperledger Fabric 搭建的区块链是一种联盟链。
Hyperledger Fabric 的账本包括两个组件: 世界状态和交易日志。并且每个参与者都拥有他们所属的每个 Hyperledger Fabric 网络的账本的副本。
-
世界状态:描述了在给定时间点的账本的状态。它是账本的数据库。默认情况下,使用 LevelDB 键值存储数据库,可插拔,可替换为 CouchDB 。
-
交易日志:记录产生世界状态中当前值的所有交易。这是世界状态的更新历史。它只记录区块链网络使用账本数据库前后的值。
总结:Hyperledger Fabric 是一种账本技术,其账本包括世界状态数据库和交易日志历史记录。
2、什么是联盟
联盟指参与一个基于区块链的业务协作或业务交易网络的所有组织的集合,一个联盟一般包含多个组织。
一般由联盟发起方或运营方创建 Orderer
排序节点,并负责交易排序、区块产生和达成共识。联盟发起方或运营方邀请各个组织实例加入联盟,进而创建通道。
3、什么是组织
组织代表的是参与区块链网络的企业、政府机构、团体等实体。
一个组织实例主要包含如下节点:
-
CA
:区块链节点类型之一,全称 Certificate Authority ,数字证书颁发机构,负责组织内部成员的register
和enroll
等,为该组织的区块链用户生成和颁发数字证书。 -
Peer
:区块链节点类型之一,负责保存和记录账本数据、对交易背书、运行智能合约等。
4、什么是节点
节点(Peers)是区块链的通信实体。它只是一个逻辑功能,只要能在"信任域"中分组并与控制它们的逻辑实体相关联,就可以将不同类型的多个节点运行在同一个物理服务器上,比如用 Docker 部署。
-
Orderer
排序服务节点 或 排序节点:Orderer 是一个运行实现交付担保的通信服务节点,例如原子性或总顺序广播。排序节点负责接受交易并排序(排序算法有: SOLO,KAFKA,RAFT,PBFT),最后将排序好的交易按照配置中的约定整理为区块之后提交给记账节点进行处理。 -
Peer
节点:Peer 是业务参与方组织在区块链网络中所拥有的参与共识和账本记录的节点。可以有多种角色。作为Committing Peer
记账节点时,无需安装链码,只负责验证从 Orderer 发出的区块和交易的合法性、并存储账本区块信息。作为Endorsing Peer
背书节点时,必须安装链码,在交易时需进行签名背书。 -
Anchor
锚节点:为了实现高可用,每个参与方组织一般包含两个或多个Peer
节点,可以设置其中的一个为Anchor
,与区块链网络中的其他组织进行信息同步。 -
客户端节点:客户端扮演了代表最终用户的实体,可以同时与
Peer
和Orderer
通信,创建并调用交易。这里客户端可以指应用程序、SDK、命令行等。
5、什么是通道
Hyperledger Fabric 中的通道(Channel
)是两个或两个以上特定网络成员之间通信的专用"子网",用于进行私有和机密的交易。
可以理解为组织间拉了个群聊,这个群聊就是通道,在里面聊天交易,一个联盟链中可以有多个群聊(通道),一个组织可以加入多个群聊,每个群聊可以代表一项具体的业务,有自身对应的一套账本,群聊间互不干扰,互相隔离。
6、什么是链码
Hyperledger Fabric 的智能合约用链码(Chaincode
)编写。在大多数情况下,链码只与账本的数据库即世界状态交互,而不与交易日志交互。
链码可以用多种编程语言实现。有 Go、Node.js 和 Java 链码等。