博客
关于我
A最初篇:GO-DOCKER-Tensorflow-Fabric-1.0完整环境搭建
阅读量:263 次
发布时间:2019-03-01

本文共 6992 字,大约阅读时间需要 23 分钟。

Fabric-1.0完整环境搭建

服务器端 :

1. **GO语言的安装** 2. **DOCKER的安装** 3. **Tensorflow的安装** 3. **Fabric源码的CLONE** 4. **进行相关配置**

GO语言的安装

  • 下载 wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz
  • 解压 sudo tar -C /usr/local -xzf go1.9.linux-amd64.tar.gz
  • 编辑环境变量 vim /etc/profile
    • GOPATH export GOPATH=/opt/gopath
    • PATH export PATH=$PATH:/usr/local/go/bin
    • 复制完之后 按下ESC + : + wq + 回车
  • 编辑保存 source /etc/profile
  • 使其修改生效。随后可通过下述命令: echo $PATH
  • 回到目录 cd ~

Ubuntu安装Docker CE

系统要求:64位 、Ubuntu16.0.4

卸载旧版本

旧版本的Docker称为docker或者docker-engine,使用以下命令卸载旧版本:

$ sudo apt-get remove docker \               docker-engine \               docker.io

在测试或开发环境中Docker官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu系统上可以使用这套脚本安装:

$ curl -fsSL get.docker.com -o get-docker.sh$ sudo sh get-docker.sh --mirror Aliyun

启动dockerCE

$ sudo systemctl enable docker$ sudo systemctl start docker

Docker-Compose的安装

Docker-compose是支持通过模板脚本批量创建Docker容器的一个组件。在安装Docker-Compose之前,需要安装Python-pip,运行脚本:

sudo apt-get install python-pip

然后是安装docker-compose,我们从官方网站(

curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > ~/docker-composesudo mv ~/docker-compose /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose

Tensorflow的安装

关于TensorFlow

TensorFlow 随着AlphaGo的胜利也火了起来。

google又一次成为大家膜拜的大神了。google大神在引导这机器学习的方向。 同时docker
也是一个非常好的工具,大大的方便了开发环境的构建,之前需要配置安装。 看各种文档,现在只要一个 pull 一个 run
就可以把环境弄好了。 同时如果有写地方需要个性化定制,直接在docker的镜像上面再加一层补丁就好了。
自己的需求就能满足了,同时还可以将这个通用的方法分享出去。

下载TensorFlow images

使用hub.docker.com的镜像

docker pull tensorflow/tensorflow:latest

启动镜像

启动命令,设置端口,同时配置volume 数据卷,用于永久保存数据。加上 –rm 在停止的时候删除镜像。

sudo mkdir -p /data/tensorflow/notebooksdocker run -it --rm --name myts -v /data/tensorflow/notebooks:/notebooks -p 8888:8888 daocloud.io/daocloud/tensorflow:latest

然后打开浏览器测试吧~~

import tensorflow as tfa = tf.constant(10)b = tf.constant(32)with tf.Session():    c = tf.add(a,b)    print(c)    print(c.eval())

下载Fabric源代码

我们可以使用Git命令下载源码,首先需要建立对应的目录,然后进入该目录,Git下载源码:

mkdir -p $GOPATH/github.com/hyperledger cd $GOPATH/src/github.com/hyperledger git clone https://github.com/hyperledger/fabric.git

我们可以使用Git命令下载源码,也可以使用go get命令,偷懒一点,我们直接用go get命令获取最新的Fabric源码

go get github.com/hyperledger/fabric

检查是否为1.0版本、实验阶段、仅需要1.0

cd /opt/gopath/src/github.com/hyperledger/fabric/git checkout -b v1.0.0

Fabric Docker镜像的下载

直接拉取即可,因为配置了快速的国内阿里云镜像cd $GOPATH/github.com/hyperledger/fabric/examples/e2e_cli/source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

然后检查docker images

sudo docker images
root@***> 如果出现、代表成功:***/home/lantian/go/src/github.com/hyperledger/fabric/examples/e2e_cli# docker imagesREPOSITORY                        TAG                 IMAGE ID            CREATED             SIZEdaocloud.io/daocloud/tensorflow   latest              414b6e39764a        5 weeks ago         1.27GBhello-world                       latest              f2a91732366c        4 months ago        1.85kBhyperledger/fabric-tools          latest              0403fd1c72c7        9 months ago        1.32GBhyperledger/fabric-tools          x86_64-1.0.0        0403fd1c72c7        9 months ago        1.32GBhyperledger/fabric-couchdb        latest              2fbdbf3ab945        9 months ago        1.48GBhyperledger/fabric-couchdb        x86_64-1.0.0        2fbdbf3ab945        9 months ago        1.48GBhyperledger/fabric-kafka          latest              dbd3f94de4b5        9 months ago        1.3GBhyperledger/fabric-kafka          x86_64-1.0.0        dbd3f94de4b5        9 months ago        1.3GBhyperledger/fabric-zookeeper      latest              e545dbf1c6af        9 months ago        1.31GBhyperledger/fabric-zookeeper      x86_64-1.0.0        e545dbf1c6af        9 months ago        1.31GBhyperledger/fabric-orderer        latest              e317ca5638ba        9 months ago        179MBhyperledger/fabric-orderer        x86_64-1.0.0        e317ca5638ba        9 months ago        179MBhyperledger/fabric-peer           latest              6830dcd7b9b5        9 months ago        182MBhyperledger/fabric-peer           x86_64-1.0.0        6830dcd7b9b5        9 months ago        182MBhyperledger/fabric-javaenv        latest              8948126f0935        9 months ago        1.42GBhyperledger/fabric-javaenv        x86_64-1.0.0        8948126f0935        9 months ago        1.42GBhyperledger/fabric-ccenv          latest              7182c260a5ca        9 months ago        1.29GBhyperledger/fabric-ccenv          x86_64-1.0.0        7182c260a5ca        9 months ago        1.29GBhyperledger/fabric-ca             latest              a15c59ecda5b        9 months ago        238MBhyperledger/fabric-ca             x86_64-1.0.0        a15c59ecda5b        9 months ago        238MB

阿里云的一点小坑

说到这里应该已经到达创世区块的环节了,

但是、、、在阿里云上,会出现一些小坑(O__O "…基本折腾了三天)
peer,orderer一些yaml加载中出现问题。

(⊙v⊙)嗯!!!!!!

不过是可以解决的~~

只需要修改几个yaml就可以运行了~
先回退到当前demo目录作为切入点
我这里从理解记忆角度出发,首先观察启动.sh中加载的yaml文件,这些就是需要我们修改的(因为默认加载会失败)

cd $GOPATH/github.com/hyperledger/fabric/examples/e2e_clils(会看到network_setup.sh)vi network_setup.sh(那咱就进去看看咋回事){.......然后就发现啦~哦~原来是加载这两个yaml出错了COMPOSE_FILE=docker-compose-cli.yamlCOMPOSE_FILE_COUCH=docker-compose-couch.yaml.......}cd base(那么这个是基本,里面同样有个yaml需要被加载)ls (猜猜看是什么呀~~O(∩_∩)O~)vi docker-compose-base.yaml(没错!就是你了){这次要做一点骚操作。。。看到环境变量了没有,environment,那么就在这个环境变量的尾部~照猫画虎的加上这一行代码....- GODEBUG=netdns=go....}cd $GOPATH/github.com/hyperledger/fabric/examples/e2e_cli/(回来这里){	同样骚操作。。。	vi compose-cli.yaml	vi docker-compose-couch.yaml}好啦、阿里云的坑、到这里就已经暂时填满~\(≧▽≦)/~啦啦啦

启动Fabric网络并完成ChainCode的测试

要记得、在启动前、要留心是否已经启动。 如果启动了、就需要先关闭才能启动。

cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/./network_setup.sh down(已经启动的话、或者不知道有没有启动)./network_setup.sh up

这个做了以下操作:

7.1编译生成Fabric公私钥、证书的程序,程序在目录:fabric/release/linux-amd64/bin

7.2基于configtx.yaml生成创世区块和通道相关信息,并保存在channel-artifacts文件夹。

7.3基于crypto-config.yaml生成公私钥和证书信息,并保存在crypto-config文件夹中。

7.4基于docker-compose-cli.yaml启动1Orderer+4Peer+1CLI的Fabric容器。

7.5在CLI启动的时候,会运行scripts/script.sh文件,这个脚本文件包含了创建Channel,加入Channel,安装Example02,运行Example02等功能。

手动交易

官方例子中,channel名字是mychannel,链码的名字是mycc。我们首先进入CLI,我们重新打开一个命令行窗口,输入:

docker exec -it cli bash

运行以下命令可以查询a账户的余额:

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'

留心观察,result是不是查询出来 a 是90块钱。

然后,我们试一试把a账户的余额再转20元给b账户,运行命令:

peer chaincode invoke -o orderer.example.com:7050  --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem  -C mychannel -n mycc -c '{"Args":["invoke","a","b","20"]}'

然后,如果出现一大堆英文,又没有Exception和error的,那么恭喜你!成功转账。

(o)/~
那么猜想,b应该多了20块钱,a则少了20块钱,再试试看!!!

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'peer chaincode query -C mychannel -n mycc -c '{"Args":["query","b"]}'

相信聪明的傻温已经明白a和b、有多少钱啦!!!

最后记得,离开的时候。记得把fabric网络关闭哦

exitcd ~$GOPATH/github.com/hyperledger/fabric/examples/e2e_cli/./network_setup.sh down

祝票票学习愉快。(๑•̀ㅂ•́)و✧加油 (๑•̀ㅂ•́)و✧加油 (๑•̀ㅂ•́)و✧加油

(๑•̀ㅂ•́)و✧加油

hhh到这里是不是就玩得很开心成功了、如果搭建的时候、出现任何问题、都可以在评论榜上提问哦。

学习了四篇文章

转载地址:http://ptka.baihongyu.com/

你可能感兴趣的文章
MySQL5.7.19-win64安装启动
查看>>
mysql5.7.19安装图解_mysql5.7.19 winx64解压缩版安装配置教程
查看>>
MySQL5.7.37windows解压版的安装使用
查看>>
mysql5.7免费下载地址
查看>>
mysql5.7命令总结
查看>>
mysql5.7安装
查看>>
mysql5.7性能调优my.ini
查看>>
MySQL5.7新增Performance Schema表
查看>>
Mysql5.7深入学习 1.MySQL 5.7 中的新增功能
查看>>
Webpack 之 basic chunk graph
查看>>
Mysql5.7版本单机版my.cnf配置文件
查看>>
mysql5.7的安装和Navicat的安装
查看>>
mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
查看>>
Mysql8 数据库安装及主从配置 | Spring Cloud 2
查看>>
mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
查看>>
MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
查看>>
MYSQL8.0以上忘记root密码
查看>>
Mysql8.0以上重置初始密码的方法
查看>>
mysql8.0新特性-自增变量的持久化
查看>>
Mysql8.0注意url变更写法
查看>>