(三)Hyperledger Fabric 1.1安装部署-chaincode测试
环境搭建完毕,需要的工具和镜像安装完毕,就可以进行chaincode测试了,接下来参考官方教程运行first-network。
进入first-netwok:
cd first-network
first-network的文件结构如下

在first-network目录下有两个自动化脚本byfn.sh和eyfn.sh,这两个脚本的启动顺序是先执行byfn.sh再执行eyfn.sh(eyfn.sh不是必须的,eyfn.sh的作用稍后再介绍)。
byfn.sh的执行格式为:./byfn.sh (up|down|restart|generate|upgrade)
执行参数说明:
up:启动
down:清除网络
restart:重新启动
generate:生成证书及创世块
upgrade:将网络从1.0升级到1.1 -c:用于指定channelName,默认值"mychannel"
-t:CLI timeout时间,默认值10
-d:延迟启动,默认值3
-f:使用指定的网络拓扑结构文件,默认使用docker-compose-cli.yaml
-s:指定使用的数据库,可选 goleveldb或couchdb
-l:指定chaincode使用的语言,可选golang 或node
-i:指定镜像tag,默认 "latest"
详细参数可通过./byfn.sh help查看。
启动first-network网络:
因为测试chaincode不需要其他辅助的功能,只要将网络启动即可。
./byfn.sh up
执行过程如下

遇到提示输入“y”。

最终看到输出上面的信息,证明启动成功。
first-network会生成1orderer+4peer+1CLI的网络结构,整个网络包括2个org。
输入命令
docker ps
列出所有已启动的容器。

整个网络的启动执行了以下操作:
1、生成创世区块、通道、每个组织的msp等信息,保存在channel-artifacts文件夹中,配置信息对应configtx.yaml文件。
2、生成orderer和peer使用的公私钥和证书等信息,保存在crypto-config文件夹中,配置信息对应crypto-config.yaml文件。
3、创建channel、加入channel、为通道的每个组织设置锚节点,安装chaincode,实例化chaincode,查询chaincode,调用chaincode等操作。
添加组织:
eyfn.sh脚本提供了增加组织的功能,启动./eyfn.sh up会安装jq,等待时间稍长一些。

执行成功后,使用docker ps查看已启动的容器,会发现已经添加了org3。
手动测试chaincode:
测试chaincode,需要先进入到cli容器,后续的操作都在容器内进行。
docker exec -it cli bash
按照官方给出的,有a和b两个账户,查看a账户的余额。
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
a账户的余额是80。
查看b账户的余额
peer chaincode query -C mychannel -n mycc -c '{"Args":["query","b"]}'
b账户的余额是220
下面做以下转账测试,把b账户的钱转给a账户20。
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","b","a","20"]}'

再分别查看a和b的账户,a的账户变为100,b的账户变为200。
整个网络测试完毕,使用exit退出容器。接下来就可以进行下一步的学习了。
(三)Hyperledger Fabric 1.1安装部署-chaincode测试的更多相关文章
- (二)Hyperledger Fabric 1.1安装部署-Fabric Samples
Hyperledger Fabric Samples是官方推荐的First Network,对于熟悉fabric和测试基础环境很有好处. Fabric Samples源码下载:使用git下载源码,进入 ...
- (一)Hyperledger Fabric 1.1安装部署-基础环境搭建
在学习和开发hyperledger fabric的时候遇到了一些坑,现将自己的一些总结和心得整理如下,以期对大家有所帮助.本次使用的宿主机环境:ubuntu,版本:Ubuntu 16.04.3 LTS ...
- Ubuntu下Hyperledger Fabric v0.6安装部署
系统环境:虚拟机VMware Workstation中的Ubuntu 16.04LTS 1.环境准备 1.1安装Docker Docker安装命令: curl –fsSL https://get.do ...
- HyperLedger Fabric 1.1 手动部署单机单节点
手动部署单机单节点 之前发布过官方的e2e部署方案,由于环境或是访问权限等各种问题,还是有相当一部分码友无法成功跑起来,故此,本章将来一次纯手动操作的集群部署. 主要需要的步骤如下: 1:环境整理 2 ...
- Hyperledger Fabric(4)链码ChainCode
智能合约,是一个抽象的概念,智能合约的历史可以追溯到 1990s 年代.它是由尼克萨博(Nick Szabo)提出的理念,几乎与互联网同龄. 我们这里所说的智能合约只狭义的指区块链中.它能够部署和运行 ...
- Storm入门教程 第三章Storm集群安装部署步骤、storm开发环境
一. Storm集群组件 Storm集群中包含两类节点:主控节点(Master Node)和工作节点(Work Node).其分别对应的角色如下: 主控节点(Master Node)上运行一个被称为N ...
- Hyperledger Fabric 2.2 学习笔记:测试网络test-network
写在前面 最近被Hyperledger Fabric折磨,归根结底还是因为自己太菜了qwq.学习路漫漫,笔记不能少.下面的步骤均是基于已经成功搭建了Fabric2.2环境,并且拉取fabric-sam ...
- Hive_初步见解,安装部署与测试
一.hive是什么东东 1. 个人理解 hive就是一个基于hdfs运行于MapReduce上的一个java项目, 这个项目封装了jdbc,根据hdfs编写了处理数据库的DDL/DML,自带的 二进制 ...
- Nginx安装部署与测试
场景:项目需要部署在生产环境中,这些新的工具都需要在生产环境中去实践练习.有时间再部署一套ELK的日志分析系统,这样的系统才算具有一定的应用价值. 1 Nginx安装 用root用户安装,采用源代码编 ...
随机推荐
- windows下安装python3 新手上路
本文只针对刚刚拿到“驾照”的实习生 老司机回去开车.. 下载python 地址:https://www.python.org/ 选择Downloads下的windows 选择自己合适的版本 下面的是 ...
- Django商城项目笔记No.14用户部分-用户中心邮箱绑定
保存邮箱界面如下 接口设计如下 视图逻辑: 因为url是不接受pk参数的,所以UpdateApiView无法确定要更新哪个模型类,所以要重写get_object,告诉他更新哪个模型类.这里更新的是us ...
- 【Ansible 文档】配置
http://docs.ansible.com/ansible/latest/intro_configuration.html http://docs.ansible.com/ansible/late ...
- ubuntu 视频播放问题
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/chang_xing/article/details/30976659 ...
- easyui combobox 带 checkbox 亲自验证
$('#cc').combobox({ url:'combobox_data1.json', method:'get', ...
- MacOS 快速搭建Odoo开发环境
转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9307325.html 一:安装PostgreSQL 下载并安装PostgreSQL数据库:http://do ...
- undefined symbol: ap_log_rerror;apache2.4与weblogic点so文件
没法子啊:只能用 httpd-2.2.26 ============================== https://www.google.com.hk/#newwindow=1&q=un ...
- 使用java实现hex和ascii码的转换
几乎很少写JAVA代码,第一是确实不会,第二感觉JAVA写起来不爽(较python.golang),但总有万不得已必须要用java的时候.这里记录下使用java实现的hex十六进制和acsii码之间的 ...
- Matlab警告消息消除
在运行matlab程序时候,有些matlab子函数在高版本将会被舍弃,在使用的时候,matlab编译器就会报出警告信息. The COMBNTNS function will be removed i ...
- PAT B1013 数素数 (20 分)
令 Pi 表示第 i 个素数.现任给两个正整数 M≤N≤104,请输出 PM 到 PN 的所有素数. 输入格式: 输入在一行中给出 M 和 N,其间以空格分隔. 输出格式: 输 ...