目錄python
1 前言linux
2 操做系統環境設置git
2.1 主機與操做系統github
2.2 設置主機名golang
2.3 設置 DNSdocker
2.4 關閉防火牆json
2.5 關閉 selinuxbootstrap
2.6 關閉 swapcentos
3 操做系統軟件安裝網絡
4 安裝 docker
5 安裝 docker-compose
5.1 jsonschema 版本不匹配
5.2 cffi 版本不匹配
5.3 dnspython 版本不匹配
5.4 python-ldap 版本不匹配
5.5 subprocess32 卸載失敗
6 安裝配置 go
6.1 安裝 go
6.2 配置 go
7 下載 fabric 源碼
1 前言
本文介紹如何手動部署 fabric 區塊鏈,經過 fabric 的搭建來了解區塊鏈的網絡結構和組件運用。
2 操做系統環境設置
除 2.2 外,其餘每臺主機都須要執行以下步驟。
2.1 主機與操做系統
本區塊鏈須要三臺主機。底層操做系統爲 centos7。
2.2 設置主機名
三臺主機的主機名分別爲 peer0.example.com、peer1.example.com、peer2.example.com。
hostnamectl set-hostname peer0.example.com
hostnamectl set-hostname peer1.example.com
hostnamectl set-hostname peer2.example.com
2.3 設置 DNS
三臺主機運行四個節點(其中一臺主機既作 order 節點,也作 peer 節點)。編輯 /etc/hosts:
192.168.182.168 peer0.org1.example.com order.example.com
192.168.182.169 peer1.org1.example.com
192.168.182.170 peer2.org2.example.com
2.4 關閉防火牆
systemctl disable firewalld && systemctl stop firewalld
2.5 關閉 selinux
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
setenforce 0
2.6 關閉 swap
sed -i '$d' /etc/fstab
swapoff -a
3 操做系統軟件安裝
每臺主機都須要安裝。
yum update
yum install -y git
yum install -y curl
yum install -y epel-release
yum install -y openldap-devel
yum install -y python-devel
yum install -y python-pip
pip install --upgrade pip
4 安裝 docker
docker 版本 1.13.1。每臺主機都須要安裝。
yum install docker
systemctl enable docker && systemctl start docker
docker version // 驗證是否安裝成功
5 安裝 docker-compose
docker-compose 版本 1.25.0。每臺主機都須要安裝。
pip install docker-compose
docker-compose version // 驗證是否安裝成功
若是安裝報錯,能夠參考以下狀況進行修改。
5.1 jsonschema 版本不匹配
ERROR: jsonschema 3.2.0 has requirement six>=1.11.0, but you'll have six 1.9.0 which is incompatible.
執行以下語句:
pip install six --user -U
pip install ipython --user -U
5.2 cffi 版本不匹配
ERROR: cryptography 2.8 has requirement cffi!=1.11.3,>=1.8, but you'll have cffi 1.6.0 which is incompatible.
執行以下語句:
pip install cffi --user -U
5.3 dnspython 版本不匹配
ERROR: ipapython 4.6.5 has requirement dnspython>=1.15, but you'll have dnspython 1.12.0 which is incompatible.
執行以下語句:
pip install dnspython --user -U
5.4 python-ldap 版本不匹配
ERROR: ipapython 4.6.5 has requirement python-ldap>=3.0.0b1, but you'll have python-ldap 2.4.15 which is incompatible.
執行以下語句:
pip install --upgrade python-ldap --user -U
5.5 subprocess32 卸載失敗
ERROR: Cannot uninstall 'subprocess32'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
執行以下語句:
pip install docker-compose --ignore-installed subprocess32
6 安裝配置 go
每臺主機都要安裝和配置 go。
6.1 安裝 go
cd /usr/local
wget https://studygolang.com/dl/golang/go1.13.1.linux-amd64.tar.gz
tar -xvf go1.13.1.linux-amd64.tar.gz
mkdir -p /workspace // fabric 源碼存放目錄
mkdir -p /workspace/fabric/bin // fabric 目標代碼存放目錄
6.2 配置 go
vi /etc/profile
export GOROOT=/usr/local/go
export GOPATH=/workspace/fabricexport
PATH=$PATH:$GOROOT/bin:$GOPATH/bin
7 下載 fabric 源碼
每臺主機都須要下載 fabric 源碼。
cd /workspace
git clone https://github.com/hyperledger/fabric.git
編輯 /workspace/fabric/scripts/bootstrap.sh,修改 download() 方法,去掉 curl 下載的靜默模式,不然整個下載過程當中,你會看不到任何下載的狀態。
curl -L -s "${URL}" | tar xz || rc=$?
改成:
curl -L "${URL}" | tar xz || rc=$?
修改完,執行一下 bootstrap.sh 腳本,腳本執行會下載 fabric-sample 代碼和大量鏡像。並且下載過程也可能會時不時被中斷,具體緣由你本身檢討一下,不要尖叫,人生就是這樣,你接受就好。腳本執行完畢,本地就會多出以下的鏡像:
自此,fabric 安裝成功。下小節將介紹 fabric 的部署。