Fabric 1.4 基于 couchdb 环境搭建
第一部分:环境搭建
第一章 准备阶段
1.1 win7 64 位操作系统
1.2 虚拟机镜像:CentOS-7-x86_64-LiveGNOME-1804.iso
1.3 产 品 : VMware® Workstation 12 Pro 版 本 : 12.5.9
build-7535481
第二章 虚拟机环境准备阶段
2.1 开启 SSH 服务
systemctl start sshd service
随系统一起启动 SSH 服务
systemctl enable sshd.service
关闭防火墙:systemctl stop firewalld.service
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.0.114
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=114.114.114.114
DNS2=8.8.8.8
2.2 yum install update
2.3 CentOS 升内核至最新
2.4 安装 couchdb
注意:必须是 apache-couchdb-2.1.1
cd /opt
yum -y install wget
wget http://archive.apache.org/dist/couchdb/source/2.1.1/apache-couchdb-2.1.1.tar.gz
tar zxvf apache-couchdb-2.1.1.tar.gz && cd apache-couchdb-2.1.1
时间设置:
date -s 15:30:50
安装依赖:
sudo yum install autoconf
sudo yum install autoconf-archive
sudo yum install automake
sudo yum install curl-devel
sudo yum install erlang-asn1
sudo yum install erlang-erts
sudo yum install erlang-eunit
sudo yum install erlang-os_mon
sudo yum install erlang-xmerl
sudo yum install help2man
sudo yum install js-devel
sudo yum install libicu-devel
sudo yum install libtool
sudo yum install perl-Test-Harness
sudo yum install openssl-devel
sudo yum install erlang-reltool
sudo yum install autoconf autoconf-archive automake \
curl-devel erlang-asn1 erlang-erts erlang-eunit gcc-c++ \
erlang-os_mon erlang-xmerl erlang-erl_interface help2man \
js-devel-1.8.5 libicu-devel libtool perl-Test-Harness
yum -y update
yum -y groupinstall "Development Tools" "Development Libraries"
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
yum install autoconf automake curl-devel help2man libicu-devel libtool perl-Test-Harness wget
libicu-devel curl-devel ncurses-devel libtool libxslt fop java-1.7.0-openjdk
java-1.7.0-openjdk-devel unixODBC unixODBC-devel vim openssl-devel
wget http://erlang.org/download/otp_src_19.3.tar.gz
tar -xvf otp_src_19.3.tar.gz
cd otp_src_19.3
./configure && make
make install
#满足依赖的最新版 erlang
安装 couchdb:
cd /opt/apache-couchdb-2.1.1/
./configure
make && sudo make install
make release
启动 couchdb:
cd /opt/apache-couchdb-2.1.1/rel/couchdb
./bin/couchdb
nohup /opt/apache-couchdb-2.1.1/rel/couchdb/bin/couchdb & #后台启动
验证:curl 127.0.0.1:5984
{"couchdb":"Welcome","version":"2.1.2","features":["scheduler"],"vendor":{"name":"The
Apache Software Foundation"}}
CouchDB 配置与控制台的使用:
cd /opt/apache-couchdb-2.1.1/rel/couchdb/etc/local.d/
vi couchdb.ini
内容:
[chttpd]
port = 5984
bind_address = 0.0.0.0
[admins]
admin = password
然后重启 couchdb
控制台 url:http://192.168.0.112:5984/_utils
curl -X PUT http://127.0.0.1:5984/_users -u admin:password
curl -X PUT http://127.0.0.1:5984/_replicator -u admin:password
curl -X PUT http://127.0.0.1:5984/_global_changes -u admin:password
2.5 yum -y install zip unzip
2.6 yum install perl openssh git
2.7 yum -y install wget
2.8 下载 golang
wget https://dl.google.com/go/go1.11.2.linux-amd64.tar.gz
需要上传或者下载,需要使用 rz 和 sz 命令,可以使用 yum 安装,运行命令 sudo yum install lrzsz
2.9 sudo tar -C /usr/local -xzf go1.11.2.linux-amd64.tar.gz
2.10 sudo vi /etc/profile
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/opt/gopath
2.11 source /etc/profile
2.12 yum install docker python-pip
2.13 下载 pip
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py
2.14 yum install docker python-pip
2.15 pip install --upgrade pip
2.16 pip install docker-compose
2.17 sudo service docker start
systemctl enable docker
2.18 sudo yum install gcc
2.19 导入镜像
docker pull hyperledger/fabric-baseimage:latest
docker pull hyperledger/fabric-baseos:latest
docker pull hyperledger/fabric-ccenv:latest
docker pull hyperledger/fabric-javaenv:latest
如果已经有 docker 镜像
导入导出命令如下:
docker save -o nginx.tar nginx:latest
docker load -i nginx.tar
镜像删除:
docker ps -a
docker rm 65e94723f0ed
docker images
docker rmi 65e94723f0ed
第三章 区块链环境搭建
第一步:创建目录并下载代码
mkdir -p $GOPATH/src/github.com/hyperledger
cd $GOPATH/src/github.com/hyperledger
git clone https://github.com/hyperledger/fabric
git clone https://github.com/hyperledger/fabric-samples(可忽略)
git clone https://github.com/hyperledger/fabric-ca(可忽略)
查看版本:
cd fabric/
git branch -a (切换如:git checkout release-1.2)
第二步:安装相关依赖软件
go get github.com/golang/protobuf/protoc-gen-go
mkdir -p $GOPATH/src/github.com/hyperledger/fabric/build/docker/gotools/bin
cp $GOPATH/bin/protoc-gen-go
$GOPATH/src/github.com/hyperledger/fabric/build/docker/gotools/bin
注意:go get 之后编译好的文件会存放到环境变量$GOBIN 对应的目录中,如果没有设置
$GOBIN 的值,系统默认将生成的文体存放到$GOPATH/bin 下面.
第三步:编译 Fabric 的模块
进入到 Fabirc 源码所在的文件夹,执行以下命令可以一次完成 Fabric5 个主要模块的编译
过程,具体的命令如下所示:
cd $GOPATH/src/github.com/hyperledger/fabric
make release
make docker
对于 Macos 系统,在编译之前需要进行以下设置:
打开文件$GOPATH/src/github.com/hyperledger/fabric/Makefile
找到其中的第一个 GO_LDFLAGS 字符串的位置,在该字符串所在行的在行的末尾加
上字符串-s
保存文件 Makefile
上述命令执行完成之后,会自动将将编译好的二进制文件存放在以下路径中:
Ubuntu 和 Centos 系统的存放路径
$GOPATH/src/github.com/hyperledger/fabric/release/linux-amd64/bin
Macos 系统的存放路径
$GOPATH/src/github.com/hyperledger/fabric/release/darwin-amd64/bin
第四步:Fabric 模块的安装
编译完成之后,这些模块已经已经可以被运行了,但是目前只能在编译文件所在的文件夹中
运行这些模块,这样是非常不方便的。为了更加方便的使用这些模块,可以通过下面的命令
将这些模块的可执行文件复制到系统目录中,这样在系统中的任何路径下面都运行这些可执
行这些模块。
Ubuntu 和 Centos 将 Fabric 模块编译后的文件复制到系统文件夹中的方法如下:
cp $GOPATH/src/github.com/hyperledger/fabric/release/linux-amd64/bin/* /usr/local/bin
Macos 上面将 Fabric 模块编译后的文件复制到系统文件夹中的方法如下:
cp $GOPATH/src/github.com/hyperledger/fabric/release/darwin-amd64/bin/* /usr/local/bin
复制成功之后通过以下命令修改文件的执行权限,否则无法执行。
sudo chmod -R 775 /usr/local/bin/configtxgen
sudo chmod -R 775 /usr/local/bin/configtxlator
sudo chmod -R 775 /usr/local/bin/cryptogen
sudo chmod -R 775 /usr/local/bin/peer
sudo chmod -R 775 /usr/local/bin/orderer
通过上面这些命令之后,可以在系统的任何路径下面运行这些模块了。下面通过一组命令来
进检查安装过程是否成功。
第五步: 检查安装步骤
采用 version 命令行选项
Fabric 的模块
模块名称
功能
peer
主节点模块,负责存储区块链数据,运行维护链码
orderer
交易打包、排序模块
cryptogen
组织和证书生成模块
configtxgedn 区块和交易生成模块
configtxlator
区块和交易解析模块
快速启动 Fabric 一个 Fabric 应用
生成 Fabric 需要的证书文件