一.Hyperledger Fabric介绍
Hyperledger区块链全家桶
Hyperledger Fabric技术特性
- 资产 — 资产定义使得几乎任何具有货币价值的东西都可以在网络上交 换,包括从食品到古董汽车再到货币期货。
- 链码 — 链码执行与交易排序的分离,限制了跨节点类型所需的信任和 验证级别,优化了网络可扩展性和性能。
- 账本特性 — 不可更改的共享账本编码记录了每个通道所有的交易历史, 并具有类似 SQL 的查询功能,以便进行高效的审计和解决争议。
- 隐私 — 通道和私有数据集合使进行隐私且机密的多边交易成为可能, 这通常是竞争企业和受监管行业在共同网络上交换资产所需要的。
- 安全和成员服务 — 许可成员资格提供了一个可信的区块链网络,参与 者知道所有交易都可以由授权的监管机构和审计员检测和跟踪。
- 共识 — 独特的共识方法提供了企业所需的灵活性和可扩展性
Hyperledger Fabric区块链网络
- 三个组织 R1、R2 和 R0,他们共同决定,从而建立一个网络。该网络有一个所有组织都同意 的配置CC1,并且列出了组织的定义,以及定义每个组织将在通道上扮演的角色的策略。
- 在该通道上,R1和R2将节点P1和P2加入到通道C1,而R0拥有该通道的排序服务O。所有这 些节点都将包含通道账本(L1)的副本,记录交易。注意,排序服务保存的分类帐副本不包含状 态数据库。R1和R2也将通过它们拥有的应用程序A1和A2与通道进行交互。这三个组织都有一 个证书颁发机构,该机构为其组织的节点、管理员、组织定义和应用程序生成了必要的证书。
Hyperledger Fabric架构
- 账本:存储方式公有链数据层 账本技术相同,有多账本形式
- 链码:联盟链中的智能合约, 拥有与公有链相同的执行逻辑
- 交易:调用链码的操作
- 事件:与公有链智能合约中的 事件功能类似
Hyperledger Fabric使用方式:
Hyperledger Fabric中的账本(Ledger)
Fabric中的节点(Peer)
区块链网络是由 Peer 节点组成的,每个节点都保存着账本和智能合约的副本
Hyperledger Fabric中的通道(Channel)
- 通道允许区块链网络中特定的一些 Peer 节点以及应用程序来彼此交互
- 由物理的 Peer 节点的组成的逻辑结构,通过通道配置进行管理
- 是其中组件能够进行交流和私密交易的机制
Hyperledger Fabric中多账本与多链机制
Peer 节点在维护账本和链码的实例,其被创建时,它并没有账本也没有链码
Hyperledger Fabric中节点(Peer)的类型
Hyperledger Fabric中数据共识流程
Hyperledger Fabric中Orderer(排序机制)
Hyperledger Fabric中MSP(身份证)
- • 通过将成员的公钥加入到组织的M S P中来实现成员身份
- • M S P决定在组织、节点、通道级别,谁可以做什么
M S P域:MSP可以在两个地方进行配置:本地MSP和通道MSP
Hyperledger Fabric整体架构流程:
Fabric架构中的关键信息
二.环境配置
安装VSCode
安装VMWare Workstation
正常运行Fabric镜像(密码:123456)
打开“Terminal” -> 输入 “ip addr”------获取虚拟机IP
使用Mobaxterm连接,
检查运行工具,输入“cryptogen version”检查Fabric工具
输入“docker images”检查镜像
三.快速部署Hyperledger Fabric测 试区块链网络
1. 快速启动区块链测试网络
启动Fabric虚拟机
将fabric-samples.zip拷贝进虚拟机
解压并重命名为fabric-samples
unzip fabric-samples.zip
mv fabric-samples-main fabric-samples
拷贝bin和config目录
cd fabric-samples
cp ~/fabric/bin bin -r
cp ~/fabric/config config -r
启动测试网络
./network.sh up
验证启动情况
docker ps
2. 使用测试区块链网络
安装jq
apt install -y jq
创建通道(Channel)(自动创建“mychannel”通道)
./network.sh createChannel
在通道启动一个链码
./network.sh deployCC -ccn basic -ccp ../asset-transfer- basic/chaincode-go -ccl go
与测试区块链网络交互
参考以下链接:
https://hyperledger-fabric.readthedocs.io/zh-cn/release-2.5/test_network.html