hyperledger-fabric 运行测试网络(避坑啊。坑都被我踩结实了)

文章目录

  • 一、准备
  • 二、先决条件
    • 1、git安装
    • 2、cURL
    • 3、Docker 、Docker Compose
    • 4、运行docker
  • 三、安装go
  • 四、下载最新版本的 Fabric 示例、Docker 映像和二进制文件。
  • 五、git克隆fabric文件
  • 六、启动测试网络
  • 七、创建channel
  • 八、部署链码
  • 九、节点安装链码

一、准备

linux环境或者在windows装个虚拟机。
以下都是Linux环境下的测试。

二、先决条件

Git 、cURL、Docker、Docker Compose

1、git安装

sudo yum install git

测试
git --version
在这里插入图片描述

2、cURL

sudo yum install curl

3、Docker 、Docker Compose

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

在这里插入图片描述

4、运行docker

sudo systemctl start docker

三、安装go

注意:不是必需,但是测试的时候我就是用的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

四、下载最新版本的 Fabric 示例、Docker 映像和二进制文件。

curl -sSL https://bit.ly/2ysbOFE | bash -s

★报错:TCP connection reset by peer
多试几次 网络问题 一直试 总会成功的

五、git克隆fabric文件

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

出现下面这样表示成功
hyperledger-fabric 运行测试网络(避坑啊。坑都被我踩结实了)_第1张图片

七、创建channel

./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说明真正的成功了!

你可能感兴趣的:(区块链,fabric,区块链,智能合约)