一、配置

1.0.环境说明

  • 操作系统 :macOS Catalina/10.15.3
  • Docker : 19.03.5
  • Fabric :v1.4.4

1.1.网络拓扑

  • 一个orederer节点
  • 两个组织,一节点/组织
  • solo共识机制
  • 关闭TLS
类型/组织域名IP/端口组织名
Ordererorderer.yzm.com172.22.0.1:7050OrdererOrg
Peer/OrgApeer0.orga.com172.22.0.2:7051OrgAMSP
Peer/OrgBpeer0.orgb.com172.22.0.3:8051OrgBMSP

1.2.文件说明

base/peer-base.yaml            节点环境变量/基础镜像设置
base/docker-compose-base.yaml  节点磁盘映射/端口设置
docker-compose-cli.yaml        cli容器启动设置,节点网络设置
crypto-config.yaml             组织证书等生成配置
configtx.yaml                  创世区块/通道交易配置
script/gen.sh                  证书生成脚本
script/utils.sh                docker启动脚本
script/env.sh                  节点配置脚本

安装 Fabric 1.4.6 版本

$ curl -sSL http://bit.ly/2ysbOFE | bash -s -- 1.4.6 1.4.6 0.4.18

下载脚本和配置,地址,详细配置请参考文件注释、官方文档、博主其他博文

$ git clone https://github.com/Pipapa/fabric-sample

二、搭建

注意:修改cryptogenconfigtxgen程序到环境变量。

脚本使用为:

# 生成区块/配置
$ scripts/gen.sh
# 启动网络并安装链码测试
$ scripts/utils.sh up
# 关闭网络/清理文件
$ scripts/utils.sh down

2.1.生成证书/区块配置文件

脚本生成配置:

$ scripts/gen.sh

手动生成配置:

1.生成证书文件

$ cryptogen generate \
    --config <config-file>

2.生成创世块(环境变量FABRIC_CFG_PATH

$ configtxgen \
    -profile <p> \
    -channelID <channel> \
    -outputBlock <block-file>

3.生成通道配置

$ configtxgen \
    -profile <p> \
    -channelID <channel> \
    -outputCreateChannelTx <tx>

4.生成锚节点配置

$ configtxgen \
    -profile <p> \
    -channelID <channel> \
    -outputAnchorPeersUpdate <tx> \
    -asOrg <orgName>

2.2.网络启动

脚本启动网络:

$ ./scripts/utils.sh up

手动启动网络:

1.启动网络

$ docker-compose -f docker-compose-cli.yaml up -d

2.进入CLI

$ docker exec -ti cli /bin/bash

2.3.网络测试

脚本测试:

$ ./scripts/env.sh all

手动测试:

1.创建通道

$ peer channel create \
    -o <orderer:port> \
    -c <channel> \
    -f <channeltx-file> \
    --tls --cafile <tls>

2.加入通道

$ peer channel join -b <channel>.block

3.更新锚节点

$ peer channel update \
    -o <orderer> \
    -c <channel-name> \
    -f <channel-file> \
    --tls --cafile <orderer-tls>

4.安装链码

$ peer chaincode install \
    -n <name> \
    -v <version> \
    -p <path> \
    -l <language>

5.实例化链码

$ peer chaincode instantiate \
    -o <orderer:port> \
    --tls --cafile <tls> \
    -C <channel> \
    -n <name> \
    -v <version> \
    -c <args>

6.查询操作

$ peer chaincode query \
    -C <channel-name> \
    -n <name> \
    -c <args>

7.调用操作

$ peer chaincode invoke \
    -C <channel-name> \
    -o <orderer:port> \
    --tls --cafile <tls> \
    --peerAddresses <node> --tlsRootCertFIles <cert> \
    -c <args>

三、 结果

fabric_demo

四、参考

Last modification:March 11th, 2020 at 06:40 pm