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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2022-02-21 11:20  开飞机的二娃  阅读(241)  评论(2)    收藏  举报