京东秒杀
国美-超级5
索尼Xperia旗舰
限时优惠页 - 京东
自营热卖

区块链3.0_精通Hyperledger之搭建Frbric环境(1) 顶 原

空心人 1年前   阅读数 122 0

QQ群:693675108 (技术群,非区块链研究者勿扰)

序言:本人在linux搭建的hyperledger环境,mac搭建过程

1、环境

    1.1 linux Virtualbox(没有用VM)

    1.2 ubunto16.04(必须是该版本,不要下载最新版本)

    1.3 go环境(hyperledger基于go语言开发,环境需要go,记住目前最高版本是1.10.0,不是1.1.0,我每次都看成最低版本,切记!这是10和1的区别,不支持使用Go版本1.8.x构建,1.9以上版本)

    1.4 docker容器(必须,启动的时候一定要root,权限一定要高)

    1.5 docker-compose(必须,如果版本太高,1.21.0的话,需要改一下配置文件,解决办法在2.6.3已经解决,也会详细的介绍)

2、代码实现

2.1 用Virtual搭建ubuntu16.04

    2.1.1 在安装完Ubuntu后,需要保证apt source是国内的。

sudo vi /etc/apt/sources.list

打开这个apt源列表,如果其中看到是http://us.xxxxxx之类的,那么就是外国的,如果看到是[http://cn.xxxxx](http://cn.xxxxx/)之类的,那么就不用换的。我的是美国的源,所以需要做一下批量的替换。在命令模式下,输入:

:%s/us./cn./g

就可以把所有的us.改为cn.了。然后输入:wq即可保存退出。

sudo apt-get update

2.2 安装go环境

    2.2.1  安装go,现在已经到go1.10了,但是习惯go1.9.0了, 如果想改的话,更改下后面的数字就好了

wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz

    2.2.2 解压缩

sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz

    2.2.3 配置系统变量以及属性

vi ~/.profile

    2.2.4 添加变量,直接用下面的就可以

export PATH=$PATH:/usr/local/go/bin export GOROOT=/usr/local/go
export GOPATH=$HOME/go export PATH=$PATH:$HOME/go/bin

    2.2.5 保存配置文件

source ~/.profile

    2.2.6 创建go文件夹

cd ~ mkdir go

2.3 安装dokcer

    2.3.1 更新包

sudo apt-get update

    2.3.2 安装CA证书,支持Https:

sudo apt-get install apt-transport-https 
sudo apt-get install ca-certificates 
sudo apt-get install curl 
sudo apt-get install software-properties-common

    2.3.3 添加一个官方的GPG密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

返回结果是ok

    2.3.4 验证密钥指纹:

sudo apt-key fingerprint 0EBFCD88

输出的是:9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 即正确

    2.3.5 下载amd64的官方最新稳定版Docker:下面是一行,中间是一个空格

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

    2.3.6再次更新包信息:

sudo apt-get update

    2.3.7 安装Docker CE版本

sudo apt-get install docker-ce

    2.3.8 创建一个docker组,防止每次都要用sudo命令执行docker命令

sudo groupadd docker

    2.3.9 将该用户加入到组内

sudo gpasswd -a ${USER} docker

    2.3.10 重启docker

sudo service docker restart

    2.3.11 切花当前会话到新的组

newgrp - docker (如果这行命令有问题那就把‘-’与‘docker’相邻 newgrp -docker)

    2.3.12 去网易蜂巢镜像库下载docker测试镜像hello-word,看能否正常运行:

docker pull hub.c.163.com/library/hello-world:latest

    2.3.13 下载镜像后,运行:

docker run hub.c.163.com/library/hello-world:latest

 

成功的截图

2.4 安装docker-compose

 $ apt-get update

    2.4.2 apt-get install python-pip

    2.4.3 pip uninstall docker-compose (如果有老版的,先删除掉)

    2.4.4 pip install docker-compose

    2.4.5 docker-compose  vesion (我的已经是21了)

如果你用上面的命令出错的情况下,多重复几次,如果依旧错误,那么可能是自己的虚拟机安装其他的环境,你可以试一下curl的命令进行下载

curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-\`uname -s\`-\`uname -m\` > /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

docker-compose --vesion

2.5  Fabric源码下载

    2.5.1 go工程的安装目录

mkdir -p ~/go/src/github.com/hyperledger

    2.5.2 进入工程目录

cd ~/go/src/github.com/hyperledger

    2.5.3 下拉代码

git clone https://github.com/hyperledger/fabric.git

    2.5.4由于Fabric一直在更新,并不需要最新最新的源码,需要切换到v1.0.0版本的源码即可:

cd ~/go/src/github.com/hyperledger/fabric

git tag

git checkout v1.0.0

git branch (多试几次)

2.6 Fabric Docker镜像的下载

    2.6.1 进入fabric文件夹下的`examples/e2e_cli`, 下面我们要测试`e2e_cli`这个demo:

cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/

    2.6.2 执行download-dockerimage.sh,程序将会通过docker拉取项目所需镜像, 为了统一版本,请指定拉取镜像的版本号:

source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

或者,两个命令有一个对就行了

./download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

    2.6.3 执行启动 ,成功不会报错,也有界面,但是在启动之前需要改一下配置文件,因为你刚刚下载的docker,可能版本太高会引起启动有一个文件找不到,所以需要改一下。e2e\_cli目录是固定的,启动后会创建一个docker network以此为名字,这里是e2e\_cli。如果修改该目录,要修改gopath/src/github.com/hyperledger/fabric/examples/e2e_cli/base目录下的peer-base.yaml  

将网络名改成如下名称即可

- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=e2e_cli_default

最后启动项目,这个在gopath/src/github.com/hyperledger/fabric/examples/e2e_cli下

./network_setup.sh up

    2.6.4 关闭

./network_setup.sh down

注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: