ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Fabric2.0 使用开发模式(dev 模式)测试

2020-06-29 16:05:53  阅读:704  来源: 互联网

标签:Fabric2.0 fabric chaincode dev go 模式 peer 链码 docker


dev模式

  dev模式不是Fabric 2.0引入的,1.x版本就已存在的。对于Fabric 2.0来说,可以构建外部的链码容器,对于运维和开发调试来说,变得越来越方便。在2.0版本之前,链码是通过节点执行和维护的。开发模式在链码“编码/编译/运行/调试”的开发生命周期中很有用。本节不考虑外部链码的情形,后续会有博客去介绍外部链码。

基础环境

  确保已下载Fabric2.0版本镜像及二进制工具;已克隆fabric-samples。

实践

  fabric-samples 目录下执行:

cd chaincode-docker-devmode

  测试过程需要开启3个shell窗口,假设为shell1 ,shell2,shell3

shell1启动网络

  fabric-samples/chaincode-docker-devmode目录下执行:

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

  上边的命令启动了一个网络,网络的排序模式为 SingleSampleMSPSolo ,并且以“开发模式” 启动了 peer 节点。它还启动了另外两个容器 :一个是链码环境,另一个是和链码交互的 CLI。值得注意的一点是Peer 节点不会使用 TLS 因为 dev 模式不支持 TLS。

shell2编译并启动链码

  fabric-samples/chaincode-docker-devmode目录下执行:

docker exec -it chaincode sh

  执行成功,应该看到/opt/gopath/src/chaincode $
继续输入命令:

cd sacc
go build

  此时可能报错:
/opt/gopath/src/chaincode/sacc $ go build
go: github.com/hyperledger/fabric-chaincode-go@v0.0.0-20190823162523-04390e015b85: Get https://proxy.golang.org/github.com/hyperledger/fabric-chaincode-go/@v/v0.0.0-20190823162523-04390e015b85.mod: dial tcp 34.64.4.81:443: i/o timeout
  这是因为由于被墙无法下载依赖。这里设置go代理为阿里云并重新执行 go build:

export GOPROXY=http://mirrors.aliyun.com/goproxy/
go build

  运行链码:

CORE_CHAINCODE_ID_NAME=mycc:0 CORE_PEER_TLS_ENABLED=false ./sacc -peer.address peer:7052

  链码从 peer 节点启动并且日志表示链码成功注册到了 peer 节点上。注意,在这个阶段链码没有关联任何通道。这个过程通过 instantiate 命令的之后的步骤完成。

shell3使用链码

  即使在 --peer-chaincodedev 模式下,仍然需要安装链码,这样链码才能正常地通过生命周期系统链码的检查。这个需求能会在未来的版本中移除。

  进入 CLI 容器来执行这些调用:

docker exec -it cli bash
peer chaincode install -p chaincodedev/chaincode/sacc -n mycc -v 0
peer chaincode instantiate -n mycc -v 0 -c '{"Args":["a","10"]}' -C myc

  现在执行一个调用来将 “a” 的值改为 20

peer chaincode invoke -n mycc -c '{"Args":["set", "a", "20"]}' -C myc

  最后,查询 a ,返回结果:20

peer chaincode query -n mycc -c '{"Args":["query","a"]}' -C myc

在这里插入图片描述

测试新链码

  前面测试过程中,使用的是fabric-samples/chaincode/sacc下的链码,实际测试时可以通过更改挂载路径,以便测试不同链码。

标签:Fabric2.0,fabric,chaincode,dev,go,模式,peer,链码,docker
来源: https://blog.csdn.net/weixin_43839871/article/details/107002767

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有