本文共 6992 字,大约阅读时间需要 23 分钟。
服务器端 :
1. **GO语言的安装** 2. **DOCKER的安装** 3. **Tensorflow的安装** 3. **Fabric源码的CLONE** 4. **进行相关配置**
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
export GOPATH=/opt/gopath
export PATH=$PATH:/usr/local/go/bin
source /etc/profile
echo $PATH
cd ~
系统要求: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容器的一个组件。在安装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 随着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())
我们可以使用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
直接拉取即可,因为配置了快速的国内阿里云镜像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}好啦、阿里云的坑、到这里就已经暂时填满~\(≧▽≦)/~啦啦啦
要记得、在启动前、要留心是否已经启动。 如果启动了、就需要先关闭才能启动。
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、有多少钱啦!!!
exitcd ~$GOPATH/github.com/hyperledger/fabric/examples/e2e_cli/./network_setup.sh down
祝票票学习愉快。(๑•̀ㅂ•́)و✧加油 (๑•̀ㅂ•́)و✧加油 (๑•̀ㅂ•́)و✧加油
(๑•̀ㅂ•́)و✧加油
hhh到这里是不是就玩得很开心成功了、如果搭建的时候、出现任何问题、都可以在评论榜上提问哦。
学习了四篇文章
转载地址:http://ptka.baihongyu.com/