Hyperledger Fabric v2.5.4安装部署
一、环境准备
1. 换源
# 1.访问 https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
# 2.粘贴、替换
sudo gedit /etc/apt/sources.list
# 3.更新
sudo apt update
2. 安装工具
1. 基础工具
sudo apt-get install git # 安装git
sudo apt-get install jq # json工具
sudo apt-get install curl
2. 安装docker
sudo apt-get install docker-ce #下载最新版
docker -v #查看版本
sudo gpasswd -a 用户名 docker # 将用户加入到“docker”组中
newgrp docker #更新用户组
sudo vim /etc/docker/daemon.json # 加速镜像下载
# 写入以下内容
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
3. 安装docker-compose
sudo apt install docker-compose
4. 安装golong
# 1. 访问 https://go.dev/doc/install,选择最新版
# 2. 下载最新版,并解压
sudo tar -C /usr/local -xzf go1.21.6.linux-amd64.tar.gz
# 3. 配置环境
vi ~/.bashrc
# 插入
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
source ~/.bashrc # 使配置生效
go version # 检查
# 配置go代理
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
二、Fabric安装
1. 新建文件夹并下载Fabric、Fabric-samples
mkdir myFabric
# 1. 访问 https://github.com/hyperledger/fabric 下载zip文件
# 解压到myFabric文件下
# 进入 myFabric/fabric/fabric-main/scripts
# 2. 访问 https://github.com/hyperledger/fabric-samples 下载zip文件
# 解压到scripts文件下
# 3. 找到scripts下的bootstrap.sh文件,修改如下:
DOCKER=true
SAMPLES=false
BINARIES=false
# 4. 拉取docker镜像
./bootstrap.sh
# 5. 下载二进制文件
https://github.com/hyperledger/fabric/releases/download/v2.5.4/hyperledger-fabric-linux-amd64-2.5.4.tar.gz
https://github.com/hyperledger/fabric-ca/releases/download/v1.5.7/hyperledger-fabric-ca-linux-amd64-1.5.7.tar.gz
# 6. 解压
tar -xzvf hyperledger-fabric-linux-amd64-2.5.4.tar.gz -C ../myFabric/fabric/fabric-main/scripts/fabric-samples/fabric-samples-main #Download文件下解压
tar -xzvf hyperledger-fabric-ca-linux-amd64-1.5.7.tar.gz -C ../myFabric/fabric/fabric-main/scripts/fabric-samples/fabric-samples-main
2. 拉取Docker镜像
# 3. 找到scripts下的bootstrap.sh文件,修改如下:
DOCKER=true
SAMPLES=false
BINARIES=false
# 4. 拉取docker镜像
./bootstrap.sh
3. 下载二进制文件
# 5. 下载二进制文件
https://github.com/hyperledger/fabric/releases/download/v2.5.4/hyperledger-fabric-linux-amd64-2.5.4.tar.gz
https://github.com/hyperledger/fabric-ca/releases/download/v1.5.7/hyperledger-fabric-ca-linux-amd64-1.5.7.tar.gz
# 6. 解压
tar -xzvf hyperledger-fabric-linux-amd64-2.5.4.tar.gz -C ../myFabric/fabric/fabric-main/scripts/fabric-samples/fabric-samples-main #Download文件下解压
tar -xzvf hyperledger-fabric-ca-linux-amd64-1.5.7.tar.gz -C ../myFabric/fabric/fabric-main/scripts/fabric-samples/fabric-samples-main
解压之后出现bin和config文件
环境部署完成
三、测试
1. 启动网络
进入fabric-samples文件下的test-network文件
./network.sh up
2. 创建通道
./network.sh createChannel
3. 部署链码
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
4. 与网络交互
1. 能够使用fabric-samples文件下的二进制文件
export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/
2. Org1 的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
3. 初始化账本
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":[]}'
4. 查询账本
peer chaincode query -C mychannel -n basic -c '{"Args":["GetAllAssets"]}'
5. 改变账本资产
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"]}'