在Ubuntu中部署并测试Fabric 1.0 Beta
今天HyperLedger Fabric放出了1.0 Beta版的镜像,按照命名上来说,这应该是一个基本可用的版本了,所以我赶紧第一时间下载下来,把玩把玩。以下是在Ubuntu中安装并测试Fabric 1.0 Beta的步骤: 一、环境准备1.1 安装VirtualBox并在其中安装好Ubuntu这一步其实没啥好说的,下载好最新版的VirtualBox,下载Ubuntu Server,我用的是16.10 X64。在安装完Ubuntu后,需要保证apt source是国内的,不然如果是国外的话会很慢很慢的。具体做法是 /etc/apt/sources.list
打开这个apt源列表,如果其中看到是http://us.xxxxxx之类的,那么就是外国的,如果看到是之类的,那么就不用换的。我的是美国的源,所以需要做一下批量的替换。在命令模式下,输入: :%s/us./cn./g
就可以把所有的us.改为cn.了。然后输入:wq即可保存退出。 apt-get update
更新一下源。 然后安装ssh,这样接下来就可以用putty或者SecureCRT之类的客户端远程连接Ubuntu了。 apt-get
1.2 安装Docker安装Docker也会遇到外国网络慢的问题,幸好国内有很好的镜像,推荐DaoClound,安装Docker的命令是: curl -sSL https:
usermod -aG docker studyzy
重新登录当前用户,接下来修改 Docker 服务配置(
/etc/default/docker
DOCKER_OPTS=
我提供的脚本是: curl -sSL https:
service docker restart
1.3 安装docker-composeDocker-compose是支持通过模板脚本批量创建Docker容器的一个组件。在安装Docker-Compose之前,需要安装Python-pip,运行脚本: apt-get python-pip
安装完成后,接下来从DaoClound安装Docker-compose,运行脚本: curl -L https: ~/docker-compose
~/docker-compose /usr/local/bin/docker- +x /usr/local/bin/docker-compose
二、部署Fabric 1.0 Beta2.1下载官方自动化部署脚本我们首先创建一个文件夹,用于存放自动化部署的脚本。 fabric--sample
然后就可以使用curl命令下载并运行自动化部署脚本了:1.0 beta的命令是: curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap-1.0.0-beta.sh | bash
curl -sSL https:
这个过程会比较漫长,会下载大量的x86_64-1.0.0-beta或者x86_64-1.0.0-rc1的docker image。下载完所有镜像后会再做一次rename,把x86_64-1.0.0-beta改为latest,这样才方便使用。 当所有下载完毕后,我们运行 docker images
可以看到有如下的镜像: REPOSITORY???????????????????? TAG???????????????? IMAGE ID??????????? CREATED???????????? SIZE hyperledger/fabric-tools?????? latest????????????? ae6b0f53cb70??????? 14 hours ago??????? 1.32 GB hyperledger/fabric-tools?????? x86_64-1.0.0-beta?? ae6b0f53cb70??????? 14 hours ago??????? 1.32 GB hyperledger/fabric-couchdb???? latest????????????? 31bbbec3d853??????? 14 hours ago??????? 1.48 GB hyperledger/fabric-couchdb???? x86_64-1.0.0-beta?? 31bbbec3d853??????? 14 hours ago??????? 1.48 GB hyperledger/fabric-kafka?????? latest????????????? c4ac1c9a4797??????? 14 hours ago??????? 1.3 GB hyperledger/fabric-kafka?????? x86_64-1.0.0-beta?? c4ac1c9a4797??????? 14 hours ago??????? 1.3 GB hyperledger/fabric-zookeeper?? latest????????????? 2c4ebacb6f00??????? 14 hours ago??????? 1.31 GB hyperledger/fabric-zookeeper?? x86_64-1.0.0-beta?? 2c4ebacb6f00??????? 14 hours ago??????? 1.31 GB hyperledger/fabric-orderer???? latest????????????? 11ff350dd297??????? 14 hours ago??????? 179 MB hyperledger/fabric-orderer???? x86_64-1.0.0-beta?? 11ff350dd297??????? 14 hours ago??????? 179 MB hyperledger/fabric-peer??????? latest????????????? e01c2b645f11??????? 14 hours ago??????? 182 MB hyperledger/fabric-peer??????? x86_64-1.0.0-beta?? e01c2b645f11??????? 14 hours ago??????? 182 MB hyperledger/fabric-javaenv???? latest????????????? 61c188dca542??????? 14 hours ago??????? 1.42 GB hyperledger/fabric-javaenv???? x86_64-1.0.0-beta?? 61c188dca542??????? 14 hours ago??????? 1.42 GB hyperledger/fabric-ccenv?????? latest????????????? 7034cca1918d??????? 14 hours ago??????? 1.29 GB hyperledger/fabric-ccenv?????? x86_64-1.0.0-beta?? 7034cca1918d??????? 14 hours ago??????? 1.29 GB hyperledger/fabric-ca????????? latest????????????? e549e8c53c2e??????? 15 hours ago??????? 238 MB hyperledger/fabric-ca????????? x86_64-1.0.0-beta?? e549e8c53c2e??????? 15 hours ago??????? 238 MB 2.2启动Fabric实例在前面下载的官方提供的自动化部署脚本中,已经包含了启动Fabric实例的脚本。直接运行: cd ~/fabric-sample/release/linux-/network_setup. up
系统运行完毕后会看到这样的界面: 系统就会创建1个客户端实例cli,1个orderer节点,还有4个peer节点。另外,当前的脚本包含了我们接下来要测试的mycc的实例,所以可能还会看到3个链上代码的实例在运行。 这是命令运行完毕后,使用docker ps命令看到的实例: CONTAINER ID??????? IMAGE???????????????????????????????? COMMAND????????????????? CREATED???????????? STATUS????????????? PORTS????????????????????????????????????????????? NAMES 0bfa0ff5e77c??????? dev-peer1.org2.example.com-mycc-1.0?? "chaincode -peer.a..."?? 3 minutes ago?????? Up 3 minutes?????????????????????????????????????????????????????????? dev-peer1.org2.example.com-mycc-1.0 05751dedc36a??????? dev-peer0.org1.example.com-mycc-1.0?? "chaincode -peer.a..."?? 4 minutes ago?????? Up 4 minutes?????????????????????????????????????????????????????????? dev-peer0.org1.example.com-mycc-1.0 7006bcd8e671??????? dev-peer0.org2.example.com-mycc-1.0?? "chaincode -peer.a..."?? 4 minutes ago?????? Up 4 minutes?????????????????????????????????????????????????????????? dev-peer0.org2.example.com-mycc-1.0 fd52ef8e4be8??????? hyperledger/fabric-tools????????????? "/bin/bash -c './s..."?? 5 minutes ago?????? Up 5 minutes?????????????????????????????????????????????????????????? cli 11e34078645f??????? hyperledger/fabric-peer?????????????? "peer node start"??????? 5 minutes ago?????? Up 5 minutes??????? 0.0.0.0:10051->7051/tcp,0.0.0.0:10053->7053/tcp?? peer1.org2.example.com af042ab813ed??????? hyperledger/fabric-peer?????????????? "peer node start"??????? 5 minutes ago?????? Up 5 minutes??????? 0.0.0.0:8051->7051/tcp,0.0.0.0:8053->7053/tcp???? peer1.org1.example.com 08723b2ec1ec??????? hyperledger/fabric-peer?????????????? "peer node start"??????? 5 minutes ago?????? Up 5 minutes??????? 0.0.0.0:7051->7051/tcp,0.0.0.0:7053->7053/tcp???? peer0.org1.example.com e84bc309e09e??????? hyperledger/fabric-orderer??????????? "orderer"??????????????? 5 minutes ago?????? Up 5 minutes??????? 0.0.0.0:7050->7050/tcp???????????????????????????? orderer.example.com 3ec6e7cf006b??????? hyperledger/fabric-peer?????????????? "peer node start"??????? 5 minutes ago?????? Up 5 minutes??????? 0.0.0.0:9051->7051/tcp,0.0.0.0:9053->7053/tcp???? peer0.org2.example.com 三、测试Fabric其实我们在前面运行./network_setup.sh up的时候系统已经运行了一个Example02的ChainCode测试,部署上去的ChainCodeName是mycc,所以接下来我们要测试的话不能再初始化并部署同样名字的ChainCode了,我们可以使用自己另外命名的名字,比如devincc。 3.1在CLI中测试Example02首先我们需要登录到CLI这个容器中,才能执行Fabric的CLI命令。 docker exec -it cli bash
如果成功进入,我们会切换到该容器的root用户下,得到如下的命令行目录: # 与0.6Fabric不同的是,在1.0中,链上代码是需要经过Install和Instantiate两步的。下面我们首先安装Example02,并指定一个名字,比如我们这里就用devincc: peer chaincode -n devincc -v -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
运行后可以看到提示运行成功,返回200状态: 接下来是Instantiate,也就是初始化实例,设置a账户有100元,b账户有200元。 peer chaincode instantiate -o orderer.example.com: --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C mychannel -n devincc -v -c -P
运行成功后可以看到如下的结果: 接下来我们用Query命令来看一看a账户的余额: peer chaincode query -C mychannel -n devincc -c
返回的结果是: 好接下来我们需要把a账户的10元转给b账户,需要调用invoke命令: peer chaincode invoke -o orderer.example.com: --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C mychannel -n devincc -c
运行返回的结果为: 最后我们再调用query命令来查一下b账户的余额,如果没有计算错,应该是210元。 peer chaincode query -C mychannel -n devincc -c
看来我们的Fabric 1.0 Beta已经部署成功并测试通过了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |