hyperledger fabric测试网络搭建流程记录

ps:本机为windows系统,所使用的虚拟机软件为virtual box,安装的虚拟机为ubuntu20 64位。

一.准备阶段

1.安装git

root@yu-VirtualBox:/home/yu# sudo apt-get install git

2.安装curl

root@yu-VirtualBox:/home/yu# sudo apt-get install curl

3.安装docker

root@yu-VirtualBox:/home/yu# sudo apt-get -y install docker-compose

4.验证docker是否安装成功

root@yu-VirtualBox:/home/yu# docker --version
Docker version 20.10.21, build 20.10.21-0ubuntu1~20.04.1
root@yu-VirtualBox:/home/yu# docker-compose --version
docker-compose version 1.25.0, build unknown

5.运行docker daemon;设置自启动;将你的用户添加到docker组。注意,yu为你的用户名。

root@yu-VirtualBox:/home/yu# sudo systemctl start docker
root@yu-VirtualBox:/home/yu# sudo systemctl enable docker
root@yu-VirtualBox:/home/yu# sudo usermod -a -G docker yu

5.安装go:下载安装包并解压至/usr/local文件夹;增添环境变量;验证go是否安装成功。

root@yu-VirtualBox:/home/yu/下载#  rm -rf /usr/local/go && tar -C /usr/local -xzf go1.20.2.linux-amd64.tar.gz
root@yu-VirtualBox:/home/yu/下载# export PATH=$PATH:/usr/local/go/bin
root@yu-VirtualBox:/home/yu/下载# go version
go version go1.20.2 linux/amd64

6.更换go代理,执行

go env -w GOPROXY=https://goproxy.cn,direct
go env -w GO111MODULE=on

7.下载jq,执行sudo apt-get install jq

二.安装示例(fabric-samples),二进制文件(fabric和fabric-ca)和docker镜像 (docker images)

1.创建文件夹并cd到文件夹内

mkdir -p $HOME/go/src/github.com
cd $HOME/go/src/github.com

2.下载hyperledger fabric压缩包,并解压至创建的文件夹内。 解压成功后github.com文件夹内出现fabric文件。

hyperledger fabric下载地址

3.手动下载fabric-samples,并解压到github.com/fabric/scripts

fabric-samples下载地址

4.下载docker images

注意:需要保证下载的镜像版本和hyperledger fabric版本一致,目前最新版本为fabric 2.5.0和fabric-ca 1.5.6。若版本不一致后续会报错。

5.手动下载二进制文件fabric和fabric-ca

注意:下载的二进制版本应该和hyperledger fabric版本一致,当前版本为2.5.0,所以应该下载fabric v2.5.0和fabric-ca v1.5.6

下载fabric二进制

下载fabric-ca二进制

解压后fabric中有bin文件,fabric-ca中有bin和config文件。将两个bin文件合并为一个,并将合并后的bin文件和config文件放入fabric-samples中。

三.测试网络

1.进入路径fabric-samples/test-network,执行./network.sh up启动测试网络

2.创建通道,执行./network.sh createChannel

3.将实例链码asset-transfer-basic安装到通道(链码在fabric-samples/asset-transfer-basic/chaincode-go)。运行./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go

4.使用peer CLI与网络交互,执行

export PATH=${PWD}/../bin:$PATH

export FABRIC_CFG_PATH=$PWD/../config/

5.设置环境变量,作为组织1操作peer CLI,执行

export CORE_PEER_TLS_ENABLED=true

export CORE_PEER_LOCALMSPID="Org1MSP"

export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt

export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp

export CORE_PEER_ADDRESS=localhost:7051

6.使用一些资产来初始化账本,执行

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" --peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" -c '{"function":"InitLedger","Args":[]}'

7.使用CLI工具来查询账本,例如,获取添加到通道账本的资产列表。执行

peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'

8.调用链码改变账本上的资产所有者。执行

peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls --cafile "${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem" -C mychannel -n basic --peerAddresses localhost:7051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt" --peerAddresses localhost:9051 --tlsRootCertFiles "${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt" -c '{"function":"TransferAsset","Args":["asset6","Christopher"]}'

9. 设置环境变量,作为组织2的peer操作peer CLI,例如,查看账本资产,执行

export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org2MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org2.example.com/users/Admin@org2.example.com/msp
export CORE_PEER_ADDRESS=localhost:9051

10.查看账本资产的改变情况,执行

peer chaincode query -C mychannel -n basic -c '{"Args":["ReadAsset","asset6"]}'

11.关闭网络,删除节点和链码容器,删除组织加密材料,移除链码镜像,删除运行的通道项目和docker卷。执行./network.sh down

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值