linux环境或者在windows装个虚拟机。
以下都是Linux环境下的测试。
Git 、cURL、Docker、Docker Compose
sudo yum install git
sudo yum install curl
Docker应该都会安装官方文档走就行,我安装时没啥问题
Docker官方地址;
测试:
docker --version
Docker Compose:
从github下载最新版
sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
添加可执行权限
sudo chmod +x /usr/local/bin/docker-compose
测试:
docker-compose --version
sudo systemctl start docker
注意:不是必需,但是测试的时候我就是用的go
进入目录
cd /usr/local/
下载安装包
wget https://studygolang.com/dl/golang/go1.14.1.linux-amd64.tar.gz
★注意:这里如果报错没有发现 wget 则使用yum安装wegt
yum -y install wget
解压安装包
tar -zxvf go1.14.1.linux-amd64.tar.gz
curl -sSL https://bit.ly/2ysbOFE | bash -s
★报错:TCP connection reset by peer
多试几次 网络问题 一直试 总会成功的
https://github.com/GitHeP/fabric-samples.git
项目中包含了 bootstrap.sh 文件
克隆很慢,所以我是先把他下载到window上,然后使用文件传输到Linux上
进入目录
cd fabric-samples-main/test-network
★报错:
Permission denied
更改最高权限
sudo chmod -R 777 文件夹名
先安装脚本文件 bootstrap.sh
sh bootstrap.sh
启动
./network.sh up
测试:
docker ps -a
./network.sh createChannel
这里需要使用go语言
进入go目录
cd fabric-samples-main/chaincode/ fabcar/go
然后
G0111MODUL E=on go mod vendor
返回test-network所在目录
cd ../../../test-network
将bin目录中二进制文件添加到cLI路径
export PATH=${PWD}/.. /bin:$PATH
设置IFABRIC_ CFG_ PATH为 指向fabric- samples[中的core . yam1文件
export FABRIC_CFG_PATH=$PWD/.. /config/
创建链码包
使用 peer lifecycle chaincode package
命令创建链码包。
peer lifecycle chaincode package fabcar.tar.gz --path . ./ chaincode/fabcar/go/ -- lang golang
-label fabcar _1
★这里报错
Error: failed to normalize chaincode path: 'go list' failed with: go:
github.com/golang/[email protected]: Get
"https://proxy.golang.org/github.com/golang/protobuf/@v/v1.3.2.mod": dial tcp
172.217.160.81:443: connect: connection refused: exit status 1
解决:
go的问题 切换go代理
go env -w GOPROXY=https://goproxy.io,direct
go env -w GO111MODULE=on
到这里会生成一个 fabcar.tar.gz 文件
报错 应该是打错了
export CORE_ PEER_TLS_ENABLED=true
export CORE_ PEER_ LOCALMSPID="Org1MSP"
export CORE_ PEER_TLS_ ROOTCERT_ FILE=${PWD}/ organizat ions/ peerOrganizations/ org1.example.com/ peers/ peer0. org1.example.com/tls/ca.crt
export CORE_ PEER_ ADDRESS=localhost:7051
使用peer lifecycle chaincode install
命令在peer节点王安装链码
peer lifecycle chaincode install fabcar. tar.gz
★报错:这句代码报错 还是以为go语言问题
报错信息:
500错误
Error: chaincode install failed with status: 500 - failed to invoke backing implementation of
'InstallChaincode': could not build chaincode: docker build failed: docker image build
failed: docker build failed: Error returned from build: 1 "go:
github.com/golang/[email protected]: Get
"https://proxy.golang.org/github.com/golang/protobuf/@v/v1.3.2.mod": dial tcp
172.217.24.17:443: connect: connection refused
解决:到链码所在目录提交下载依赖包
cd fabric-samples-main/asset-transfer-basic/chaincode-go
更改代理
go env -w GOPROXY=https://goproxy.io,direct
go env -w GO111MODULE=on
go mod vendor
重新打包安装链码
peer lifecycle chaincode package fabcar.tar.gz --path ../asset-transfer-basic/chaincode-go/ --lang golang --label basic_1.0
peer lifecycle chaincode install fabcar.tar.gz
出现200说明真正的成功了!