一直以来,写完链码进行测试都要先搭建一个Fabric环境,然后安装链码进行测试,实际上Fabric提供了最为简单的方式可以允许我们对编写的应用链码进行功能测试,不需要搭建一个完整的Fabeic环境。而且测试完直接停止网络也不会担心有残余的文件没有删除干净,以至于搭建正式环境的时候出现各种错误。

进入正题好了,Fabric提供了一个开发模式,是专门用来对链码进行测试用的。

其实,这些内容在Fabric官方文档中都是有的,但是一般我们都忽略掉了,所以简单说一下步骤

官方文档地址:点这里

1.先决条件

首先,也是需要一些先决条件,比如Golang环境,Docker容器,docker-compose工具,等等,这些不再说明,可以看这里完成先决条件的安装

2.开始


完成准备工作后,我们需要将Fabric-sample文件夹从Githubpull下来,地址在这里,最简单的方式是直接下载压缩文件,然后到本地解压出来,但是推荐使用IDE工具通过git工具从Github上拉取下来,具体方法自行百度。

完成之后,会有一个fabric-sample文件夹,将该文件夹放在$GOPATH/src/github.com/hyperledger/路径下,路径不存在自行创建。

切换版本

进入fabric-samples文件夹,执行以下命令,将Fabric版本切换至1.4,如果使用其他版本请下面部分下载二进制与Docker镜像的时候要对应。

git checkout release-1.4

3.二进制文件以及Docker镜像


下载二进制文件是比较容易出错的地方,因为容易因为版本不匹配导致网络启动失败,所以在下载二进制文件的时候一定要注意使用的版本。

curl -sS https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh -o ./scripts/bootstrap.sh
chmod +x ./scripts/bootstrap.sh
## ./scripts/bootstrap.sh [version] [ca version] [thirdparty_version]

这里需要输入三个版本号,第一个是Fabric的版本号,第二个是Ca的版本号(在这里我们用不到),第三个是第三方工具的版本号。

我们之前是使用了1.4的Fabric,所以我们直接指定好版本就好了。

  • Fabric >> 1.4.3(只要前缀是1.4就可以)
  • CA >> 1.4.3
  • ThirdParty >> 0.4.15

完整的命令为:

#记得要在bootstrap.sh文件的上一级目录进行执行。
./scripts/bootstrap.sh 1.4.3 1.4.3 0.4.15

或者直接将版本号在文件中修改:

打开刚下载的bootstrap.sh文件,前面几行就是指定版本号的,自行修改就好,修改完直接使用命令进行下载就好了。

./scripts/bootstrap.sh

4.测试链码

前面几部没有出现问题的话,到这里我们就可以对链码进行测试了,进入fabric-sample/chaincode-docker-devmode文件夹下,执行以下命令:

docker-compose -f docker-compose-simple.yaml up

如果没有错误的话,我们的开发环境已经准备好了,接下来是对链码进行测试的步骤:

  1. 将编写的链码放到fabric-sample/chaincode/文件夹下
# 打开第二个终端执行:
docker exec -it chaincode sh

如果已经将链码放到fabric-sample/chaincode/文件夹内,执行以下命令应该可以看到自己的链码:

ls
  1. 编译链码,以官方的例子为例:
cd chaincode_example02/go
go build -o chaincode_example02
CORE_PEER_ADDRESS=peer:7052 CORE_CHAINCODE_ID_NAME=mycc:0 ./chaincode_example02

3.安装与实例化

打开第三个终端执行:

docker exec -it cli bash
# 以下命令按照自己的链码内容自行修改
peer chaincode install -p chaincodedev/chaincode/chaincode_example02/go -n mycc -v 0
peer chaincode instantiate -n mycc -v 0 -c '{"Args":["init","a","100","b","200"]}' -C myc

4 测试

如果以上步骤没有报错的话,准备工作已经全部完成,剩下的就是测试自己的链码了。如果链码需要更新的话,只需要关闭网络:

docker-compose -f docker-compose-simple.yaml down --volumes

重新启动网络并进行测试就好了。

Hyperledger Fabric:最简单的方式测试你的链码的更多相关文章

  1. Hyperledger fabric 链码篇GO(四)

    Hyperledger fabric 链码篇GO(四) fabric中的链码也就是我们区块链所认知的智能合约,fabric中可由nodejs,java,go编写,本篇只针对GO语言编写链码.将详细介绍 ...

  2. Hyperledger Fabric 1.2 --- Chaincode Operator 解读和测试(一)

    前言 本文主要目的是用于整理Hyperledger  Fabric中关于chaincode 管理和操作的内容,作者以release-1.2为范本进行讲解. 主要参考链接: https://hyperl ...

  3. 【推荐】 HyperLedger Fabric环境搭建、测试及注意事项 [详尽指导] [亲测有效]

    系统:Ubuntu16.04 LTS 一.环境准备 1.1 Ubuntu下安装 crul sudo apt install curl curl是利用URL语法在命令行方式下工作的开源文件传输工具.它被 ...

  4. Hyperledger Fabric 建立一个简单网络

    Building you first network 网络结构: 2个Orgnizations(每个Org包含2个peer节点)+1个solo ordering service 打开fabric-sa ...

  5. 在Ubuntu中部署并测试HyperLedger Fabric 0.6

    最近开始研究区块链,对这个新兴的技术有了基本概念上的了解,所以打算基于一个开源项目做做实验.如果是做数字货币,那么比特币的源代码是最好的了,不过这算是区块链1.0吧,已经有很多改进的竞争币和山寨币出来 ...

  6. ubuntu16.04下Hyperledger之搭建Fabric环境简单操作(五步启动e2e_cli)

    如果你已经安装好go等工具.git及checkout相关代及下载相关镜像,您只需下面5步就能up e2e_cli~/go/src/github.com/hyperledger/fabric$ sudo ...

  7. 基于Debian搭建Hyperledger Fabric 2.4开发环境及运行简单案例

    相关实验源码已上传:https://github.com/wefantasy/FabricLearn 前言 在基于truffle框架实现以太坊公开拍卖智能合约中我们已经实现了以太坊智能合约的编写及部署 ...

  8. (三)Hyperledger Fabric 1.1安装部署-chaincode测试

    环境搭建完毕,需要的工具和镜像安装完毕,就可以进行chaincode测试了,接下来参考官方教程运行first-network. 进入first-netwok: cd first-network fir ...

  9. Hyperledger Fabric 1.2 --- Chaincode Operator 解读和测试(二)

    本文接上一节是测试部分 搭建一个模拟测试环境 作者将fabric release1.2工程中的 example-e2e进行了改造来进行本次实验: (1)首先我们将examples/e2e_cli/sc ...

随机推荐

  1. 实战!轻松搭建图像分类 AI 服务

    人工智能技术(以下称 AI)是人类优秀的发现和创造之一,它代表着至少几十年的未来.在传统的编程中,工程师将自己的想法和业务变成代码,计算机会根据代码设定的逻辑运行.与之不同的是,AI 使计算机有了「属 ...

  2. luogu P2417 课程

    题目描述 n个学生去p个课堂,每一个学生都有自己的课堂,并且每个学生只能去一个课堂,题目要求能够安排每一个课堂都有人吗? 输入格式 第一行是测试数据的个数, 每组测试数据的开始分别是p和n, 接着p行 ...

  3. 大数据之Linux基本指令

    1:文件操作类指令 ls 是英文单词list 的简写, 其功能为列出目录的内容,是最常用的命令之一 -a all 显示指定目录下所有子目录与文件, 包含隐藏文件 -l 以列表方式显示文件的详细信息 - ...

  4. 强化学习七 - Policy Gradient Methods

    一.前言 之前我们讨论的所有问题都是先学习action value,再根据action value 来选择action(无论是根据greedy policy选择使得action value 最大的ac ...

  5. SpringMvc 跨域处理

    导读 由于浏览器对于JavaScript的同源策略的限制,导致A网站(Ajax请求)不能通过JS去访问B网站的数据,于是跨域问题就出现了. 跨域指的是域名.端口.协议的组合不同就是跨域. http:/ ...

  6. 这个Python爬虫的简单入门及实用的实例,你会吗?

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:HOT_and_COOl 利用爬虫可以进行数据挖掘,比如可以爬取别人的网 ...

  7. tensorflow word2vec详解

    maybe_download 下载text8.zip.可以手工下载下来.然后指定text8.zip的路径. read_data 解压text8.zip,把数据读入到data中. data是一个长数组, ...

  8. 改变SecureCRT的背景颜色

    1.在使用secureCRT客户端时,可以连接服务器,默认为白色底. 2.要进行对把底色的白色改为黑色的底色,右击的窗口的位置. 3.下拉菜单中点击 Session Options 4.点击Appea ...

  9. 4种MySQL分页查询优化的方法,你知道几个?

    前言 当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分页查询,也有很多种方法和优化的点.下面简单说一下我知道的 ...

  10. python爬虫--selenium模块.上来自己动!

    selenium 基本操作 from selenium import webdriver from time import sleep #实例化一个浏览器对象 bro = webdriver.Chro ...