fabric2.2环境搭建(ubuntu18.04)
安装git
sudo apt-get install git
安装curl
sudo apt-get install curl
安装docker、docker-compose
-
卸载旧版本docker
sudo apt-get remove docker docker-engine docker.io containerd runc
-
使用存储库安装docker
//更新
sudo apt-get update
//设置存储库
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
//添加docker官方密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
//设置稳定存储库
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
//安装docker引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
apt-cache madison docker-ce
sudo apt-get install docker-ce=5:20.10.12~3-0~ubuntu-focal docker-ce-cli=5:20.10.12~3-0~ubuntu-focal containerd.io
//检查安装
docker --version
sudo docker run hello-world
//重启docker
sudo service docker restart
//安装docker-compose
sudo apt install python3-pip
sudo apt-get update
sudo pip3 install --upgrade pip
sudo pip3 install docker-compose
docker-compose --version
//docker守护进程运行
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -a -G docker zhd
安装go
wget -c https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local
export GOPATH=/home/user/go
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
go version
安装fabric
mkdir -p $HOME/go/src/github.com/hyperledger
cd $HOME/go/src/github.com/hyperledger
//以下两命令可能都无法连接
curl -sSL https://bit.ly/2ysbOFE | bash -s
git clone http://github.com/hyperledger/r/fabric.git
//根据上面命令的网址复制脚本到虚拟机中,新建fabric.sh文件,执行脚本文件
bash ./fabric.sh
//查看是否新增fabric-samples文件夹,bin目录中有创世块和加入通道等的文件,查看镜像下载是否完整
docker images
//如果部分镜像拉取不下来,则手动拉取对应版本
docker pull hyperledger/fabric-ccenv:2.4.1
docker tag d873cda39577 hyperledger/fabric-ccenv:latest
docker tag d873cda39577 hyperledger/fabric-ccenv:2.4
测试fabric
cd fabric-samples/test-network/
//一个order和两个peer容器起来
./network.sh up一个order和两个peer容器起来
//创建默认名为mychannel的通道
/network.sh createChannel
//下面这条命令在通道上启动链码会报错,因为这个路径下链码没有安装go依赖,-ccn 链码名称 -ccp 链码路径 -ccl 链码语言
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
//解决上述问题
//该路径下正常下载没有vendor文件夹
cd asset-transfer-basic/chaincode-go
//手动下载go依赖,但是国内访问不了,更换go的源
go mod vendor
go env -w GOPROXY=https://goproxy.cn,direct
//查看是否更换成功
go env
go mod vendor
//回到测试网络路径
./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
//与网络交互
export PATH=${PWD}/../bin:$PATH
export FABRIC_CFG_PATH=$PWD/../config/
//添加组织1的环境变量
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export ORE_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
//初始化分类账本
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":[]}'
//如有问题,删器重新安装链码
docker images
docker images | awk '($1 ~ /dev-peer.*.mycc.*/) {print $3}'
docker rmi -f $(docker images | awk '($1 ~ /dev-peer.*.mycc.*/) {print $3}')
//查询分类账本
peer chaincode query ***\*-\****C mychannel ***\*-\****n basic ***\*-\****c '{"Args":["GetAllAssets"]}'
//添加组织2的环境变量
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.exa mple.com/users/Admin@org2.example.com/msp
export CORE_PEER_ADDRESS=localhost:9051
//查询分类账本
peer chaincode query ***\*-\****C mychannel ***\*-\****n basic ***\*-\****c '{"Args":["ReadAsset","asset6"]}'
//关闭网络
./network.sh down
浙公网安备 33010602011771号