$ sudo apt-get update $ sudo apt-get install build-essential git curl make $ $ which gcc /usr/bin/gcc
参考: ubuntu16.04下docker安装和简单使用
! 注意安装的docker版本是否知足要求
查看docker版本html
$ docker --version Docker version 18.06.1-ce, build e68fc7a
! 注意版本
参考:
docker-compose安装node
# 下载 $ sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 添加写权限 $ sudo chmod +x /usr/local/bin/docker-compose # 查看docker-compose版本 $ docker-compose --version docker-compose version 1.22.0, build f46880fe
go下载地址
! 注意go版本是否知足要求python
$ wget https://dl.google.com/go/go1.10.1.linux-amd64.tar.gz $ tar zxvf go1.10.1.linux-amd64.tar.gz $ sudo mv go /usr/local/ $ mkdir -p ~/go/{src,bin} $ vi ~/.bashrc
须要在~/.bashrc中设置环境变量GOPATH
,GOROOT
,PATH
,例如:linux
export GOROOT=/usr/local/go export GOPATH=~/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:.
保存退出,使得配置当即生效git
source ~/.bashrc
$ echo $GOROOT /usr/local/go $ echo $GOPATH /home/bob/go $ which go /usr/local/go/bin/go
! 注意版本
参考: nodejs ubuntu安装github
# 查看版本 $ node -v v8.11.4 $ npm -v 5.6.0
# 安装python $ sudo apt-get install python $ python -V Python 2.7.12 # 安装pip $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 切换到root用户 $ su # python get-pip.py
!!!!!! 友情提示: 若是使用了VMware Workstation,作到这里的时候,最好先使用快照(snapshot
)进行快速备份,防止以后出现莫名其妙的问题实在解决不了,能够从备份点恢复再来,以避免彻底从新开始,建立虚拟机。golang
$ cd ~ $ mkdir hyperledger-fabric $ cd hyperledger-fabric $ curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/release-1.2/scripts/bootstrap.sh -o bootstrap.sh $ ls bootstrap.sh $ chmod +x bootstrap.sh $ ./bootstrap.sh 1.2.0 1.2.0 0.4.10
注意:
hyperledger-fabric
和
hyperledger-fabric-ca下载速度较慢
能够考虑使用代理加速下载docker
安装过程记录:npm
===> List out hyperledger docker images hyperledger/fabric-ca 1.2.0 66cc132bd09c hyperledger/fabric-ca latest 66cc132bd09c hyperledger/fabric-tools 1.2.0 379602873003 hyperledger/fabric-tools latest 379602873003 hyperledger/fabric-ccenv 1.2.0 6acf31e2d9a4 hyperledger/fabric-ccenv latest 6acf31e2d9a4 hyperledger/fabric-orderer 1.2.0 4baf7789a8ec hyperledger/fabric-orderer latest 4baf7789a8ec hyperledger/fabric-peer 1.2.0 82c262e65984 hyperledger/fabric-peer latest 82c262e65984 hyperledger/fabric-zookeeper 0.4.10 2b51158f3898 hyperledger/fabric-zookeeper latest 2b51158f3898 hyperledger/fabric-kafka 0.4.10 936aef6db0e6 hyperledger/fabric-kafka latest 936aef6db0e6 hyperledger/fabric-couchdb 0.4.10 3092eca241fc hyperledger/fabric-couchdb latest 3092eca241fc
在PATH中加入~/~/hyperledger-fabric/fabric-samples/bin,形如:bootstrap
$ vi ~/.bashrc # 修改PATH export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:~/hyperledger-fabric/fabric-samples/bin:.
使得环境变量当即生效
$ source ~/.bashrc
测试修改是否生效
$ fabric-ca-client version fabric-ca-client: Version: 1.2.0 Go version: go1.10 OS/Arch: linux/amd64
$ cd ~/hyperledger-fabric/fabric-samples/first-network/ $ ./byfn.sh generate Generating certs and genesis block for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' seconds Continue? [Y/n] y proceeding ... /home/bob/hyperledger-fabric/fabric-samples/first-network/../bin/cryptogen ...
其中byfn.sh为启动这个网络的启动脚本,启动脚本中除创建一个包含4个节点和1个Order service的网络外,还会启动一个容器用来执行脚本在channel中加入节点,部署和初始化chaincode,以及在部署的chaincode上执行交易。默认channel名称为mychannel,脚本程序会给网络实例生成数字证书和密钥;生成genesis block用来启动ordering service;一些用来配置channel的配置交易
$ ./byfn.sh up Starting for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' seconds Continue? [Y/n] y proceeding ... LOCAL_VERSION=1.2.0 ...
安装过程记录:
使用docker ps
来查看节点启动状况
使用docker images
查看安装镜像
使用./byfn.sh down
$ ./byfn.sh down Stopping for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' seconds Continue? [Y/n] y proceeding ... Stopping cli ... done Stopping peer0.org1.example.com ... done Stopping peer1.org1.example.com ... done Stopping orderer.example.com ... done Stopping peer0.org2.example.com ... done Stopping peer1.org2.example.com ... done Removing cli ... done Removing peer0.org1.example.com ... done Removing peer1.org1.example.com ... done Removing orderer.example.com ... done Removing peer0.org2.example.com ... done Removing peer1.org2.example.com ... done Removing network net_byfn Removing volume net_orderer.example.com Removing volume net_peer0.org1.example.com Removing volume net_peer1.org1.example.com Removing volume net_peer0.org2.example.com Removing volume net_peer1.org2.example.com Removing volume net_peer0.org3.example.com WARNING: Volume net_peer0.org3.example.com not found. Removing volume net_peer1.org3.example.com WARNING: Volume net_peer1.org3.example.com not found. ...
参考: