1.安装docker
1.1 基础软件安装
# 安装基本软件
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates curl git software-properties-common lrzsz -y
1.2 添加阿里的docker镜像仓库
# 添加阿里的docker镜像仓库
$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# 更新软件源
$ sudo apt-get update
1.3 安装docker
# 安装docker
$ sudo apt-get install docker-ce -y
# 查看安装的docker版本
$ docker version
Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:24:51 2018
OS/Arch: linux/amd64
Experimental: false
Got permission denied while trying to connect to the Docker daemon socket at
unix:///var/run/docker.sock: Get
http://%2Fvar%2Frun%2Fdocker.sock/v1.38/version:
dial unix /var/run/docker.sock: connect: `permission denied`
# 当前用户直接操作docker时, 权限不够, 需要做下面的第4不操作
1.4 将当前用户添加到docker组
# 将用户加入该 group 内。然后退出并重新登录就生效啦。
$ sudo gpasswd -a ${USER} docker
# 重启docker服务
$ systemctl restart docker
# 当前用户切换到docker群组
$ newgrp - docker
$ docker version
Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:24:51 2018
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.06.1-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:23:15 2018
OS/Arch: linux/amd64
Experimental: false
1.5 安装docker-compose
#安装依赖工具
$ sudo apt-get install python-pip -y
#安装编排工具
$ sudo pip install docker-compose
#查看版本
$ sudo docker-compose version
2.安装go语言
#安装包下载地址:
https://golang.org/dl/ - 翻墙
https://studygolang.com/dl - 国内镜像源
如果没有进行安装包下载, 可直接终端中使用如下命令进行安装(目前最新版本):
# 1. 使用wget工具下载安装包
$ wget https://dl.google.com/go/go1.11.linux-amd64.tar.gz
# 2. 解压tar包到/usr/local
$ sudo tar zxvf go1.11.linux-amd64.tar.gz -C /usr/local
# 3. 创建Go目录
$ mkdir $HOME/go
# 4. 用vi打开~./bashrc,配置环境变量
$ vim ~/.bashrc
# 5. 增加下面的环境变量,保存退出
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# 6. 使环境变量立即生效, 一些命令二选一
$ source ~/.bashrc
$ . ~/.bashrc
# 7. 检测go是否安装好
$ go version
3.安装Node.js
3.1官方下载地址
https://nodejs.org/en/download/
3.2下载二进制源码包
$ wget https://nodejs.org/dist/v8.11.4/node-v8.11.4-linux-x64.tar.xz
3.3解压并安装
# 指定压缩包解压到/opt目录下
$ sudo tar xvf node-v8.11.4-linux-x64.tar.xz -C /opt
- 在/opt目录下得到 node-v8.11.4-linux-x64 目录
3.4将node.js设置为全局可用
# 打开系统级别的配置文件 /etc/profile
$ sudo vim /etc/profile
# 添加如下配置项, 保存退出
export NODEJS_HOME=/opt/node-v8.11.4-linux-x64
export PATH=$PATH:$NODEJS_HOME/bin
# 重新加载配置文件
$ . /etc/profile
/etc/profile -> 设置环境变量的配置文件
- 对当前系统下所有用户生效
3.5测试
$ node -v
4.部署hyperledger Fabric
4.1下载并执行fabric的引导脚本bootstrap.sh
# 参考资料
https://hyperledger-fabric.readthedocs.io/en/release-1.4/install.html
# 创建放置的目录,然后进入该目录,用curl下载脚本。
$ cd ~ # 这里在家目录下创建放置目录
$ mkdir hyperledger-fabric # 创建放置目录
$ cd hyperledger-fabric
# 下载并执行脚本, [ ***语法格式*** ]如下:
$ curl -sSL http://bit.ly/2ysbOFE | bash -s <fabric> <fabric-ca> <thirdparty>
- fabric: fabric的版本
- fabric-ca: fabric-ca的版本
- thirdparty: 第三方库的版本
# 下载并执行脚本, [ ***需要翻墙, 需要翻墙, 需要翻墙, 需要翻墙, 需要翻墙,*** ]
$ curl -sSL http://bit.ly/2ysbOFE | bash -s 1.2.1 1.2.1 0.4.10
- http://bit.ly/2ysbOFE: 该地址必须翻墙才能访问
# ***不翻墙的方式***
$ curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash -s 1.2.1 1.2.1 0.4.10
# 该脚本启动之后会下载两个压缩包和一些镜像文件, 整个过程会比较长, 耐心等待...
# 1. hyperledger-fabric-linux-amd64-1.2.0.tar.gz
# 2. hyperledger-fabric-ca-linux-amd64-1.2.0.tar.gz
以上两个压缩包下载下来之后会被解压, 解压目录:
~/hyperledger-fabric/fabric-samples
可以将事先下载好的两个压缩包放到该目录下, 提高下载速度 (强烈建议), 放好之后再重新执行上边的curl命令
通过上述操作拉取的docker镜像为:
镜像文件名称 | 用途 |
---|---|
hyperledger/fabric-peer | peer模块镜像文件 |
hyperledger/fabric-orderer | orderer节点库镜像文件 |
hyperledger/fabric-ccenv | Go语言chaincode运行环境库镜像文件 |
hyperledger/fabric-tools | 相关工具镜像文件包含了cryptogen, configtxgen等工具 |
hyperledger/fabric-ca | CA模块镜像文件 |
hyperledger/fabric-couchdb | couchdb数据库镜像文件 |
hyperledger/fabric-kafka | kafka库镜像文件 |
hyperledger/fabric-zookeeper | zookeeper库镜像文件 |
4.2设置全局访问
# 进入到 ~/hyperledger-fabric/fabric-samples/bin 目录
$ cd ~/hyperledger-fabric/fabric-samples/bin
$ ~/hyperledger-fabric/fabric-samples/bin$ tree
.
├── configtxgen
├── configtxlator
├── cryptogen
├── discover
├── fabric-ca-client
├── get-docker-images.sh
├── idemixgen
├── orderer
└── peer
# 将这些二进制文件拷贝到 /usr/local/bin 目录下
$ sudo cp * /usr/local/bin
# 执行完上述操作之后, fabric的这些可执行程序就可以在全局范围内使用了
5.First-Network 环境测试
5.1生成相应文件
执行 ./byfn.sh generate 命令生成相应的文件
$ cd ~/hyperledger-fabric/fabric-samples/first-network/
$ ./byfn.sh generate
5.2启动网路
执行 ./byfn.sh up 启动网络
# byfn == build your first network
$ ./byfn.sh up
当我们看到START的时候,表示启动成功。
...
执行结束,显示END
5.3停止网络
通过docker ps命令可以查看到节点的启动情况。
$ docker ps
如果我们要停止网络,可以执行./byfn.sh down 命令来停止
$ ./byfn.sh down