在Ubuntu中部署并测试Fabric 1.0 Beta

简介:

【更新:1.0Beta已经是过去式了,现在出了1.0.0的正式版,请大家参照 http://www.cnblogs.com/studyzy/p/7437157.html  安装Fabric 1.0.0】

今天HyperLedger Fabric放出了1.0 Beta版的镜像,按照命名上来说,这应该是一个基本可用的版本了,所以我赶紧第一时间下载下来,把玩把玩。以下是在Ubuntu中安装并测试Fabric 1.0 Beta的步骤:

一、环境准备

1.1 安装VirtualBox并在其中安装好Ubuntu

这一步其实没啥好说的,下载好最新版的VirtualBox,下载Ubuntu Server,我用的是16.10 X64。在安装完Ubuntu后,需要保证apt source是国内的,不然如果是国外的话会很慢很慢的。具体做法是

sudo vi /etc/apt/sources.list

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

:%s/us./cn./g

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

sudo apt-get update

更新一下源。

然后安装ssh,这样接下来就可以用putty或者SecureCRT之类的客户端远程连接Ubuntu了。

sudo apt-get install ssh

1.2 安装Docker

安装Docker也会遇到外国网络慢的问题,幸好国内有很好的镜像,推荐DaoClound,安装Docker的命令是:

curl -sSL https://get.daocloud.io/docker | sh
安装完成后,运行以下脚本将当前用户添加到Docker的组中
sudo usermod -aG docker studyzy
重新登录当前用户,接下来修改 Docker 服务配置(/etc/default/docker 文件)。
sudo vi /etc/default/docker
添加以下内容:
DOCKER_OPTS="$DOCKER_OPTS -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --api-cors-header='*'"
接下来就需要设置国内的Docker镜像地址,需要注册一个账号,然后在加速器页面提供了设置Docker镜像的脚本,加速器页面是:
https://www.daocloud.io/mirror 我提供的脚本是:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://d4cc5789.m.daocloud.io
运行完脚本后,重启Docker服务
sudo service docker restart

1.3 安装docker-compose

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

sudo apt-get install python-pip

安装完成后,接下来从DaoClound安装Docker-compose,运行脚本:

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

二、部署Fabric 1.0 Beta

2.1下载官方自动化部署脚本

我们首先创建一个文件夹,用于存放自动化部署的脚本。

mkdir fabric-sample
cd fabric-sample
然后就可以使用curl命令下载并运行自动化部署脚本了:
1.0 beta的命令是:
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap-1.0.0-beta.sh | bash
【2017/6/24更新: 1.0 rc1 那么获取的命令是:】
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap-1.0.0-rc1.sh | bash

这个过程会比较漫长,会下载大量的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-amd64
./network_setup.sh up
系统运行完毕后会看到这样的界面:
image
系统就会创建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用户下,得到如下的命令行目录:
root@12f2eb6d9fa6:/opt/gopath/src/github.com/hyperledger/fabric/peer#
与0.6Fabric不同的是,在1.0中,链上代码是需要经过Install和Instantiate两步的。下面我们首先安装Example02,并指定一个名字,比如我们这里就用devincc:
peer chaincode install -n devincc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
运行后可以看到提示运行成功,返回200状态:
image
接下来是Instantiate,也就是初始化实例,设置a账户有100元,b账户有200元。
peer chaincode instantiate -o orderer.example.com:7050 --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 1.0 -c '{"Args":["init","a", "100", "b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')"
运行成功后可以看到如下的结果:
image
接下来我们用Query命令来看一看a账户的余额:
peer chaincode query -C mychannel -n devincc -c '{"Args":["query","a"]}'
返回的结果是:
image
好接下来我们需要把a账户的10元转给b账户,需要调用invoke命令:
peer chaincode invoke -o orderer.example.com:7050  --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 '{"Args":["invoke","a","b","10"]}'
运行返回的结果为:

image

最后我们再调用query命令来查一下b账户的余额,如果没有计算错,应该是210元。

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

image

看来我们的Fabric 1.0 Beta已经部署成功并测试通过了。

本文转自深蓝居博客园博客,原文链接:http://www.cnblogs.com/studyzy/p/6973334.html,如需转载请自行联系原作者


相关文章
|
2月前
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
3404 1
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
Ubuntu 测试技术 网络安全
Ubuntu系统下部署flatpress轻量级博客系统
【10月更文挑战第3天】Ubuntu系统下部署flatpress轻量级博客系统
56 3
Ubuntu系统下部署flatpress轻量级博客系统
|
1月前
|
缓存 自然语言处理 并行计算
基于NVIDIA A30 加速卡推理部署通义千问-72B-Chat测试过程
本文介绍了基于阿里云通义千问72B大模型(Qwen-72B-Chat)的性能基准测试,包括测试环境准备、模型部署、API测试等内容。测试环境配置为32核128G内存的ECS云主机,配备8块NVIDIA A30 GPU加速卡。软件环境包括Ubuntu 22.04、CUDA 12.4.0、PyTorch 2.4.0等。详细介绍了模型下载、部署命令及常见问题解决方法,并展示了API测试结果和性能分析。
1209 1
|
2月前
|
机器学习/深度学习 监控 计算机视觉
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
591 0
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
机器学习/深度学习 并行计算 数据可视化
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
171 0
|
2月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
69 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
机器学习/深度学习 XML 并行计算
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用YOLOX完成图像目标检测任务的完整流程,包括数据准备、模型训练、验证和测试。
254 0
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
缓存 NoSQL Ubuntu
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
65 3
|
7天前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
94 11
|
1月前
|
Ubuntu 开发工具 git
Ubuntu安装homebrew的完整教程
本文介绍了如何在没有公网的情况下安装 Homebrew。首先访问 Homebrew 官网,然后通过阿里云的镜像克隆安装脚本,并创建普通用户进行安装。接着修改 `install.sh` 文件指向国内镜像,执行安装命令。最后配置环境变量并更换 Homebrew 源为国内镜像,确保安装顺利。
269 50

热门文章

最新文章