fabric 1.4.3环境搭建

环境:centos7.6 ,fabric 1.4.3 ,

1、linux内核升级(可参考:https://blog.csdn.net/tianshuhao521/article/details/84021064

2、安装git、curl、pip

yum install git

yum install curl

yum -y install epel-release

yum install python-pip

pip install --upgrade pip

3、安装docker

(3.1)如果以前安装过Docker,需要先卸载,命令如下:

# sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine

我以前没有安装过,所以提示以下信息:

(3.2)在线安装docker ce

(3.2.1)安装yum-utils提供的yum-config-manager,device-mapper-persistent-data和lvm2,命令如下:

# sudo yum install -y yum-utils device-mapper-persistent-data lvm2

最后complete!

(3.2.2)设置稳定存储库:

# sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo


(3.2.3)可以选择性的启用edge和测试存储库,这些存储库包含在Docker中,默认是禁用的,命令如下:

# sudo yum-config-manager --enable docker-ce-edge
# sudo yum-config-manager --enable docker-ce-test
(3.2.4)以下命令为禁用edgecunc存储库:

sudo yum-config-manager --disable docker-ce-edge
(3.2.5)安装最新版的Docker CE:

sudo yum install docker-ce

最后complete!

(3.2.6)查看docker版本,如图表示安装成功:docker --version

(3.2.7)启动docker:systemctl start docker     (有些版本的启动命令为service docker start)

(3.2.8)设置docker开机自启:chkconfig docker on

(3.3)安装Docker-Compose(离线安装)

(3.3.1)下载最新版的docker-compose-Linux-x86_64,下载地址为:https://github.com/docker/compose/releases。下载完后上传至/tmp/docker/docker-compose文件夹下,若无此文件夹,创建即可。

(3.3.2)进入文件所在目录:cd /tmp/docker/docker-compose

(3.3.3)将其移动至/usr/local/bin安装目录:mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose

(3.3.4)赋予可执行权限:chmod +x /usr/local/bin/docker-compose

(3.3.5)查看版本信息:docker-compose --version

如图表示安装成功。

注意:若安装不成功,尝试一下以下命令:cp /usr/local/bin/docker-compose /usr/bin

最终环境如图:

4、安装golang、nodejs、npm

安装golang:

(1)安装必要的依赖:# sudo yum install libtool libltdl-dev

(2)下载go语言包:https://studygolang.com/dl

(3)将下载的语言包go1.12.9.linux-amd64.tar.gz上传至文件夹/tmp/docker

(4)进入/tmp/docker:cd /tmp/docker

(5)解压至/usr/local目录下:# tar -C /usr/local -zxvf go1.12.9.linux-amd64.tar.gz

(6)配置go语言环境变量,参照配置jdk环境变量,在/etc/profile文件后加以下内容(别忘了使文件生效):

        #go环境变量
        export PATH=$PATH:/usr/local/go/bin
        export GOPATH=/opt/gopath

(6)查看go版本:go version

安装node.js和npm

(1)下载nodejs最新版:https://nodejs.org/dist/v12.9.1/

(2)# mkdir /tmp/docker/nodejs

(3)# cd /tmp/docker/nodejs 将node-v12.9.1-linux-x64.tar.gz上传到/tmp/docker/nodejs目录并解压。

(4)配置环境变量:vim /etc/profile,添加以下内容

# nodejs environment
export NODE_HOME=/tmp/docker/nodejs/node-v12.9.1-linux-x64
export PATH=$PATH:${NODE_HOME}/bin

然后source /etc/profile使配置文件生效。

(5)查看版本:

node -v

npm -v

升级gcc

(1)查看gcc版本为4.8.5:gcc -v

(2)执行以下命令进行升级:

# sudo yum install centos-release-scl

# sudo yum install devtoolset-7-gcc*

# scl enable devtoolset-7 bash

# which gcc

# gcc -v

如图表示升级成功。

5、查看各版本信息如图:

go version

gcc -v

node -v

npm -v

6、下载fabric和fabric-samples源码:

# mkdir -p $GOPATH/src/github.com/hyperledger

# cd $GOPATH/src/github.com/hyperledger

# git clone https://github.com/hyperledger/fabric.git

# cd fabric

# git branch -a

# git checkout release-1.4

下载fabric镜像:

# cd /opt/gopath/src/github.com/hyperledger/fabric/scripts

# cat bootstrap.sh 

可以看到版本是1.4.3

执行此文件下载镜像:# ./bootstrap.sh

下载完成如图:

查看多了fabric-samples目录:# ls

7、运行fabric-samples提供的first-network网络:

# cd fabric-samples

# cd first-network

创建第一个channel(firstchannel为通道名称,可以自己定义):# ./byfn.sh -m generate -c firstchannel

启动网络:./byfn.sh -m up -c firstchannel

我这里报了个错,顺便说一下解决方案:

错误信息:

Error: error getting endorser client for channel: endorser client failed to connect to peer0.org1.example.com:7051: failed to create new connection: context deadline exceeded
peer0.org1 failed to join the channel, Retry after 3 seconds

解决方案:

执行以下命令查看错误日志如图:# docker logs peer0.org1.example.com

原因是peer节点启动之后又自动关闭了导致连接不到peer节点。

解决方法一:

在first-network目录下的docker-compose-cli.yaml文件和base中的docker-compose-cli.yaml中添加环境变量- GODEBUG=netdns=go即可,如图:

若方法一无效,可用方法二解决:

修改 /etc/resolv.conf 文件将options行注释掉即可,如图:

再次启动网络:# ./byfn.sh -m up -c firstchannel

此时可以进入cli客户端进行操作:

# docker exec -it cli bash

查询用户a的资产,能看到余额是90:

# peer chaincode query -C firstchannel -n mycc -c '{"Args":["query","a"]}'

退出cli:# exit

关闭网络:./byfn.sh -m down

注:

关闭所有docker的命令:docker rm -f $(docker ps -aq)

删除全部镜像:docker rmi $(docker images -q)

用image id删除镜像时候若提示多个引用,可以先用仓库名删除再执行全部删除:

比如,docker rmi hyperledger/fabric-tools

这样会删除掉latest标签的镜像。

若还是不行就加标签,docker rmi hyperledger/fabric-tools:1.4.3

这样会删掉标签为1.4.3的fabric-tools镜像。

发布了52 篇原创文章 · 获赞 19 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/tianshuhao521/article/details/100538262