工具: VMware 14 PRO + Centos 7
1、Fabric所需的工具:
Docker-ce;
Docker-compose;
nodejs(gcc编辑器)
2、Docker-ce安装:
(1)安装所需要的依赖包
[root@bogon ~]# yum install -y yum-utils device-mapper-persistent-data
(2)配置稳定的仓库
[root@bogon ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
(3)安装指定版本的docker-ce
[root@bogon ~]# yum list docker-ce --showduplicates | sort -r
[root@bogon ~]# yum install docker-ce-17.12.1.ce-1.el7.centos.x86_64
(4)启动docker以及开机自启动
[root@bogon ~]# systemctl start docker
[root@bogon ~]# systemctl enable docker
(5)查看docker版本
[root@bogon ~]# docker version
3、docker-compose安装
(1)首先检查是否安装python-pip
[root@bogon ~]# pip -v
(2)执行
[root@bogon ~]# yum -y install epel-release
(3)[root@bogon ~]# yum -y install python-pip
(4)对安装的pip进行升级
[root@bogon ~]# pip install --upgrade pip
(5)检查pip安装
[root@bogon ~]# pip -V
(6)安装docker-compose
[root@bogon ~]# pip install docker-compose
(7)遇到的问题:
1、安装jinja2
下载jinja2
wget https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.7.3.tar.gz
解压
[root@bogon ~]# tar xvf Jinja2-2.7.3.tar.gz
安装
[root@bogon Jinja2-2.7.3]# python setup.py install
2 安装pyudev
安装git [root@bogon ~]# sudo yum install git
下载pyudev [root@bogon ~]# git clone https://github.com/lunaryorn/pyudev.git
进入 pyudev文件夹 [root@bogon ~]# cd pyudev
安装 [root@bogon pyudev]# python setup.py install
3 安装dnspython
下载dnspython [root@bogon~]# wget http://www.dnspython.org/kits/1.15.0/dnspython-1.15.0.tar.gz
解压 [root@bogon ~]# tar -zxvf dnspython-1.15.0.tar.gz
进入 [root@bogon ~]# cd dnspython-1.15.0
安装 [root@bogon dnspython-1.9.4]# python setup.py install
4 运行 [root@bogon dnspython-1.15.0]# pip install --ignore-installed requests
[root@bogon ~]# pip install docker-compose
5 查看docker-compose版本 [root@bogon ~]# docker-compose version
4、安装go语言
(1)使用yum工具安装 [root@bogon ~]# yum install golang -y
(2)打开 etc/profile [root@bogon ~]# vim /etc/profile
添加:export GOROOT=/usr/lib/golangexport GOPATH=/home
(4)保存配置 [root@bogon ~]# source /etc/profile
(5)查看go环境 [root@bogon ~]# go env
5、安装node.js
(1)下载nodejs [root@bogon ~]# wget https://npm.taobao.org/mirrors/node/v9.9.0/node-v9.9.0.tar.gz
(2)解压 [root@bogon ~]# tar -C /usr/local -xzf node-v9.9.0.tar.gz
(3)安装编译软件 [root@bogon ~]# yum install gcc gcc-c++
(4)查看编译软件版本 [root@bogon ~]# gcc -v
(5)4.8.5版本过低,若已为最新版请跳过至步骤,升级gcc,前往http://ftp.gnu.org/gnu/gcc/下载你想要的版本
(6)下载新版本[root@bogon ~]# wget http://ftp.gnu.org/gnu/gcc/gcc-8.1.0/gcc-8.1.0.tar.gz
(7)解压 [root@bogon ~]# tar -C /usr/local -xzf gcc-8.1.0.tar.gz
(8)[root@bogon ~]# cd /usr/local/gcc-8.1.0
(9)[root@bogon gcc-8.1.0]# ./contrib/download_prerequisites
(10) [root@localhost gcc-8.1.0]# mkdir build && [root@localhost gcc-8.1.0]# cd build
(11)[root@localhost build]# ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
(12)[root@localhost build]# yum groupinstall "Development Tools"
(13)[root@localhost build]# make
(14)[root@localhost build]# make install
(15)重启系统
(16)查看gcc的版本 [root@localhost /]# gcc -v
(17)[root@localhost /]# cd /usr/local/node-v9.9.0/ 进入node安装的目录
(18)[root@bogon node-v9.9.0]# ./configure
(19)[root@bogon node-v9.9.0]# make
这是可能会遇到一个问题:
/usr/local/node-v9.9.0/out/Release/mksnapshot: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/local/node-v9.9.0/out/Release/mksnapshot)
/usr/local/node-v9.9.0/out/Release/mksnapshot: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/local/node-v9.9.0/out/Release/mksnapshot)
(20)运行下面的命令,查找最新安装的gcc动态库:
[root@bogon node-v9.9.0]# find / -name "libstdc++.so*"
(21)[root@bogon node-v9.9.0]# cp /usr/local/gcc-8.1.0/build/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.25 /usr/lib64
(22)[root@bogon node-v9.9.0]# cd /usr/lib64
(23)[root@bogon lib64]# rm -rf libstdc++.so.6
(24)[root@bogon lib64]# ln -s libstdc++.so.6.0.25 libstdc++.so.6
(25)[root@bogon lib64]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC
(26)[root@localhost /]# cd /usr/local/node-v9.9.0/
(27)[root@bogon node-v9.9.0]# make
(28)[root@bogon node-v9.9.0]# make install
(29)[root@bogon node-v9.9.0]# node -v
6、安装npm
(1)[root@bogon node-v9.9.0]# npm install npm -g
(2)[root@bogon /]# npm -v
7、下载fabric源码
(1)[root@bogon /]# mkdir -p $GOPATH/src/github.com/hyperledger
(2)[root@bogon /]# cd $GOPATH/src/github.com/hyperledger
(3)[root@bogon hyperledger]# git clone https://github.com/hyperledger/fabric.git
如果连接不到网站运行
[root@bogon hyperledger]# systemctl stop firewalld
(4)[root@bogon hyperledger]# cd fabric
(5)[root@bogon fabric]# git checkout v1.0.0
(6)[root@bogon fabric]# cd examples
(7)[root@bogon examples]# cd e2e_cli
(8)[root@bogon e2e_cli]# source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
(9)[root@bogon e2e_cli]# docker images
(10)开启fabric客户端
[root@bogon e2e_cli]# ./network_setup.sh up
如果出现以下问题
Creating network "e2e_cli_default" with the default driver
ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-fd4ac061fe5d -j RETURN: iptables: No chain/target/match by that name.
需要重开docker服务
[root@bogon e2e_cli]# ./network_setup.sh down
[root@bogon e2e_cli]#systemctl restart docker
[root@bogon e2e_cli]# ./network_setup.sh up
如果之后遇到
Error: Error endorsing chaincode: rpc error: code = Unknown desc = Error starting container: API error (404): {"message":"network e2ecli_default not found"}
[root@bogon e2e_cli]# cd base
[root@bogon base]# vim peer-base.yaml
修改:- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2e_cli_default
[root@bogon e2e_cli]# ./network_setup.sh down
[root@bogon e2e_cli]# ./network_setup.sh up