fabric 1.1环境安装
简介
系统环境为 ubuntu 16.04
go版本为1.10
docker版本为 18.03-ce
docker-compose版本为 1.21.0
本机系统
输入uname -a
查看本机系统环境
ubuntu 16.04.2 x86_64
安装软件
docker ce
安装依赖
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
添加教育网镜像地址
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add
添加仓库
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
更新软件源
sudo apt-get update
安装docker-ce 也可以指定固定的版本,默认是安装最新版本。
默认最新:sudo apt-get install docker-ce
指定版本:sudo apt-get install docker-ce=<VERSION>
根据需要来 配置docker 自启动或者禁用
sudo systemctl enable/disable docker
启动docker
sudo systemctl start docker
建立docker 组
sudo groupadd docker 可能提示你已经存在
将当前用户添加进docker组
sudo gpasswd -a ${USER} docker
此时group命令获取到的是缓存组的信息。所以我们要手动刷新一下
newgrp - docker
输入docker version
查看版本为
18.03.0-ce
这个网络你不设置个加速器能气死你。
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://8ad7943c.m.daocloud.io
重启docker
sudo systemctl restart docker
尝试下载hello-world镜像。
docker run hello-world 屏幕会输出hello world
安装vim
sudo apt-get install vim
安装docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
如果上面的命令执行不成功也可以执行(注意:仅限系统为Linux-x86_64的用户):
sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
修改二进制的权限
sudo chmod +x /usr/local/bin/docker-compose
docker-compose -v
查看版本
安装golang
创建go的工作环境
注意:我将go的工作环境放在了/home/mark/go
cd /home/mark/
mkdir go
cd go
mkdir src pkg bin
下载安装包
wget https://storage.googleapis.com/golang/go1.10.1.linux-amd64.tar.gz
将安装包解压缩到/usr/local/
tar -C /usr/local -xzf go1.10.1.linux-amd64.tar.gz //这时,安装包就可以删除了
在~/.bahsrc文件中添加下面内容
vim ~/.bashrc
export GOROOT=/usr/local/go
export GOPATH=/home/mark/code/go //这里的路径是你go语言的工作环境,按照自己的路径配置。
export GOBIN=$GOROOT/bin
export PATH=$GOPATH/bin:$GOBIN:$PATH
注意 :这个地方一定要配置对,配置仔细,要不然在启动网络的时候会出现找不到文件的问题。
保存文件退出,并执行
source ~/.bashrc
输入 go version 查看go的版本信息,确定是否安装成功。
你也可以输入
echo $PATH
echo $GOROOT
echo $GOBIN
等命令来检查环境是否正确。
安装node
sudo apt-get install nodejs
sudo apt-get install nodejs-legacy
sudo apt-get install npm
安装nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
source ~/.bashrc
nvm install v9.10.1
查看node 版本 和npm版本
node -v v9.10.1
npm -v 5.6.0
提示
我们会下载fabric的代码和fabric-samples的代码,两个项目的代码处于hyperledger目录下
下载fabric代码
新建文件夹结构
sudo mkdir -p $GOPATH/src/github.com/hyperledger/
进入文件夹目录
cd $GOPATH/src/github.com/hyperledger/
拉取代码
git clone https://github.com/hyperledger/fabric.git
进入fabric文件夹
cd fabric
查看代码分支
git branch -a
如果是release 1.1
则不用进行分支切换
如果当前分支不是release 1.1
则切换分支
git checkout 分支名
下载fabric-samples代码
进入github.com/hyperledger文件夹
cd $GOPATH/src/github.com/hyperledger
拉取代码
git clone https://github.com/hyperledger/fabric-samples.git
进入fabric-samples文件夹
cd fabric-samples
查看当前分支
git branch -a
如果当前分支不是release 1.1
则切换分支
git checkout 分支名
拉取二进制依赖文件及docker镜像
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash -s 1.1.0
输入 docker images查看镜像版本。会显示出有1.1.0和0.4.6两个版本。
image.png下载完二进制文件之后,fabric-samples文件夹内会多出个bin文件夹,将该bin文件夹加入PATH路径。
进入bin 文件夹
cd bin
输入 ls 查看内容。存在多个二进制文件
image.png进入bin文件夹,输入pwd命令,记录路径
比如说路经为:/home/mark/go/src/github.com/hyperledger/fabric-samples/bin
修改bashrc文件
vim ~/.bashrc
将下面的内容加入到.bashrc文件。
export PATH=/home/mark/go/src/github.com/hyperledger/fabric-samples/bin:$PATH
保存并退出。然后输入
source ~/.bashrc
查看是否加入成功,输入cryptogen version
会显示
cryptogen:
Version: 1.1.0
Go version: go1.9.2
OS/Arch: linux/amd64
运行first-network环境
注意:如果你是在阿里云服务器,请将下面的参数添加到配置文件(.yaml文件)的所有environment下面
- GODEBUG=netdns=go
进入first-network文件夹
cd $GOPATH/src/github.com/hyperledger/fabric-samples/first-network
运行网络
./byfn -m up
当网络启动成功之后,将网络终止
./byfn -m down
运行e2e_cli网络
注意:如果你是在阿里云服务器,请将下面的参数添加到配置文件(.yaml文件)的所有environment下面
- GODEBUG=netdns=go
在命令行输入
echo $(echo "$(uname -s|tr '[:upper:]' '[:lower:]'|sed 's/mingw64_nt.*/windows/')-$(uname -m | sed 's/x86_64/amd64/g')" | awk '{print tolower($0)}')
会显示出你当前的环境信息。比如我的环境信息为:
linux-amd64
然后在fabric/release文件夹下新增linux-amd64文件夹
cd $GOPATH/src/github.com/hyperledger/fabric/release
mkdir linux-amd64
然后将fabric-samples下的bin文件夹复制到新增的linux-amd64文件夹中
cd $GOPATH/src/github.com/hyperledger/fabric-samples/
cp -rf bin ../fabric/release/linux-amd64/
上面的操作是因为在启动e2e_cli网络的时候,会自动在release/文件夹下新增一个符合自己系统的文件夹名字,然后在其内部生成一个bin文件夹,里面包含二进制工具文件。
进入e2e_cli文件夹,启动网络。
./network_setup.sh up
image.png
出现上面的内容,就说明环境成功跑通了。
如果出现错误,提示说找不到e2ecli_default网络。
解决方法:
我们进入e2e_cli目录中的base目录,修改一下peer-base.yaml文件
cd $GOPATH/src/github.com/hyperledger/fabric/examples/e2e_cli/base
vim peer-base.yaml
将CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2ecli_default
改成CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2e_cli_default
保存并退出。
后续会介绍手动调用chaincode。
网友评论