借助开发网络调试 fabric 源码本地调试
  
  准备工作
  
  IDE Goland
  
  Go 1.9.7
  
  fabric-samples 模块 chaincode-docker-devmode
  
  fabric 源码
  
  步骤
  
  添加本地域名
  
  127.0.0.1 peer
  
  127.0.0.1 orderer
  
  用 ide 打开 $GOPATH 下的fabric源码目录
  
  在源码目录下添加 dev-network
  
  把 sampleconfig 下的所有文件复制到 dev-network
  
  修改 core.yaml 中 fileSystemPath = fabric源码目录下dev-network/production/peer(绝对路径)
  
  修改 orderer.yaml 中 Location = fabric源码目录下dev-network/production/orderer(绝对路径)
  
  在 dev-network 新建 config,并复制 fabric-samples 模块 chaincode-docker-devmode下的 myc.tx 和 orderer.block
  
  1,接着调试网络,用debug模式运行 order 下的 main.go 文件 并添加配置,绝对路径的地方相对修改,然后运行
  
  Environment:
  
  ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
  
  ORDERER_GENERAL_GENESISMETHOD=file
  
  ORDERER_GENERAL_GENESISFILE=fabric源码目录下dev-network/config/orderer.block(绝对路径)
  
  ORDERER_GENERAL_LOCALMSPID=DEFAULT
  
  ORDERER_GENERAL_LOCALMSPDIR=fabric源码目录下dev-network/msp(绝对路径)
  
  FABRIC_CFG_PATH=fabric源码目录下dev-network(绝对路径)
  
  2,接着调试网络,用debug模式运行 peer 下的 main.go 文件 并添加配置,绝对路径的地方相对修改,然后运行
  
  Program arguments:
  
  node start --peer-chaincodedev=true -o 127.0.0.1:7050
  
  Environment:
  
  CORE_PEER_LOCALMSPID=DEFAULT
  
  CORE_PEER_ID=peer
  
  CORE_PEER_MSPCONFIGPATH=fabric源码目录下dev-network/msp(绝对路径)
  
  CORE_PEER_ADDRESS=127.0.0.1:7051
  
  FABRIC_CFG_PATH=fabric源码目录下/dev-network(绝对路径)
  
  3,接着调试网络,用debug模式运行 peer 下的 main.go 文件 并添加配置,绝对路径的地方相对修改,然后运行
  
  Program arguments:
  
  channel create -c myc -f fabric源码目录下dev-network/config/myc.tx(绝对路径) -o 127.0.0.1:7050
  
  Environment:
  
  CORE_PEER_LOCALMSPID=DEFAULT
  
  CORE_PEER_ID=cli
  
  CORE_PEER_MSPCONFIGPATH=fabric源码目录下dev-network/msp(绝对路径)
  
  CORE_PEER_ADDRESS=127.0.0.1:7051
  
  FABRIC_CFG_PATH=fabric源码目录下/dev-network(绝对路径)
  
  4,接着调试网络,用debug模式运行 peer 下的 main.go 文件 并添加配置,绝对路径的地方相对修改,然后运行
  
  Program arguments:
  
  channel join -b myc.block
  
  Environment:
  
  CORE_PEER_LOCALMSPID=DEFAULT
  
  CORE_PEER_ID=cli
  
  CORE_PEER_MSPCONFIGPATH=fabric源码目录下dev-network/msp(绝对路径)
  
  CORE_PEER_ADDRESS=127.0.0.1:7051
  
  FABRIC_CFG_PATH=fabric源码目录下/dev-network(绝对路径)
  
  5,接着调试网络,用debug模式运行 peer 下的 main.go 文件 并添加配置,绝对路径的地方相对修改,然后运行
  
  Program arguments:
  
  chaincode install -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -n mycc -v 1.0
  
  Environment:
  
  CORE_PEER_LOCALMSPID=DEFAULT
  
  CORE_PEER_ID=cli
  
  CORE_PEER_MSPCONFIGPATH=fabric源码目录下dev-network/msp(绝对路径)
  
  CORE_PEER_ADDRESS=127.0.0.1:7051
  
  FABRIC_CFG_PATH=fabric源码目录下/dev-network(绝对路径)
  
  6,打开终端
  
  cd $GOPATH/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
  
  编译chaincode
  
  go build -o chaincode_example02 接着运行
  
  CORE_PEER_ADDRESS=peer:7052 CORE_CHAINCODE_ID_NAME=mycc:1.0 ./chaincode_example02
  
  7,接着调试网络,用debug模式运行 peer 下的 main.go 文件 并添加配置,绝对路径的地方相对修改,然后运行
  
  星际文件系统(InterPlanetary File System,缩写IPFS)是一个旨在创建持久且分布式存储和共享文件的网络传输协议,它是一种内容可寻址的对等超媒体分发协议。在IPFS网络中的节点将构成一个分布式文件系统。
  
  准备两台 centos7 虚拟机,设置并网络连通
  
  192.168.1.210
  
  192.168.1.211
  
  到 https://github.com/ipfs/go-ipfs 下在安装包 https://www.fengshen157.com/ github.com/ipfs/go-ipfs/releases/tag/v0.4.18
  
  go-ipfs_v0.4.18_linux-amd64.tar.gz
  
  下载并安装密钥创建工具
  
  go get -u github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen
  
  将在 $GOPATH/bin/ipfs-swarm-key-gen 和 go-ipfs_v0.www.michenggw.com 4.18_linux-amd64.tar.gz 复制到两台虚拟机里
  
  两台虚拟机安装ipfs
  
  解压
  
  tar -zxvf go-ipfs_v0.4.18_linux-amd64.tar.gz
  
  移动文件
  
  cd go-ipfs && sudo mv ipfs /usr/local/bin/ipfs
  
  初始化IPFS节点(无需在内网寻找相邻节点)
  
  ipfs init
  
  在 192.168.1.210 虚拟机里创建共享密钥,同一个IPFS私链内的所有节点必须共享同一个密钥才能加入。
  
  创建密钥:
  
  ./ipfs-swarm-key-gen > /root/.ipfs/swarm.key
  
  创建完密钥放在了自己的ipfs默认配置文件夹下面(~/.ipfs/)
  
  并清除所有缺省启动节点
  
  ipfs bootstrap rm all
  
  在 192.168.1.211 里清除所有缺省启动节点
  
  ipfs bootstrap rm all
  
  将 192.168.1.210 创建的 /root/.ipfs/swarm.key 复制到 192.168.1.211 的 /root/.ipfs/ www.dasheng178.com swarm.key
  
  在 192.168.1.211 添加 192.168.1.210 为默认节点
  
  ipfs bootstrap add /ip4/192.168.1.210/tcp/4001/ipfs/QmRBWWrTwd7d1QCKEjcLdGgZAvSKtSNgZdQznzF58RBwZ2
  
  两台虚拟机启动IPFS节点
  
  ipfs daemon &
  
  查看peer
  
  ipfs swarm peers
  
  输出日志,成功
  
  /ip4/192.168.1.210/tcp/4001/ipfs/QmRBWWrTwd7d1QCKEjcLdGgZAvSKtSNgZdQznzF58RBwZ2

Hyperledger Fabric 实战(十二): Fabric 源码本地调试相关推荐

  1. OpenCV C++案例实战十二《图像全景拼接》

    OpenCV C++案例实战十二<图像全景拼接> 前言 一.OpenCV Stitcher 1.功能源码 2.效果 二.图像全景拼接 1.特征检测 2.计算单应性矩阵 3.透视变换 4.图 ...

  2. Spark机器学习实战 (十二) - 推荐系统实战

    0 相关源码 将结合前述知识进行综合实战,以达到所学即所用.在推荐系统项目中,讲解了推荐系统基本原理以及实现推荐系统的架构思路,有其他相关研发经验基础的同学可以结合以往的经验,实现自己的推荐系统. 1 ...

  3. 【fabric实战指南二】Fabric v1.0 部署过程原理详解

    2019独角兽企业重金招聘Python工程师标准>>> 区块链兄弟社区,区块链技术专业问答先行者,中国区块链技术爱好者聚集地 作者:吴寿鹤 来源:区块链兄弟 原文链接:http:// ...

  4. SpringBoot 实战 (十二) | 整合 thymeleaf

    微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 如题,今天介绍 Thymeleaf ,并整合 Thymeleaf 开发一个简陋版的学生信息管理系统. Spring ...

  5. [python opencv 计算机视觉零基础到实战] 十二 直方图

    一.学习目标 了解matplotlib绘图库的使用 了解如何通过折线图或者直方图对图表进行绘制 了解了通过图标对图片内容进行直观判断 如有错误欢迎指出~ 二.了解图像直方图及其应用 2.1 了解mat ...

  6. SpringBoot实战(十二)之集成kisso

    关于kisso介绍,大家可以参考官方文档或者是我的博客:https://www.cnblogs.com/youcong/p/9794735.html 一.导入maven依赖 xsi:schemaLoc ...

  7. MATLAB强化学习实战(十二) 创建自定义强化学习算法的智能体

    创建自定义强化学习算法的智能体 创建环境 定义策略 自定义智能体类 智能体属性 构造函数 相关函数 可选功能 创建自定义智能体 训练自定义智能体 自定义智能体仿真 本示例说明如何为您自己的自定义强化学 ...

  8. Hyperledger系列(十二)MSP详细介绍

    简介 MSP的作用,不仅仅在于列出谁是网络参与者或Channel成员. MSP可以确定,成员在MSP所代表的Org(trust domain)(例如,MSP管理员,组织细分成员)中扮演的特定角色. 它 ...

  9. springcloud 微服务鉴权_springcloud 微服务权限校验JWT模式获取 token 实战(十二)...

    springcloud 微服务权限校验JWT模式获取 token 实战(十二) springcloud 微服务权限校验JWT模式获取 token 实战(十二) JWT:json web token 是 ...

最新文章

  1. 嵌入式学习笔记之一:嵌入式linux中混合编译入门
  2. 《开源思索集》一黑客的胜利——读《增长黑客》有感
  3. 用面向对象解决问题(洛谷P1093题题解,Java语言描述)
  4. 温故知新,HTTP/2
  5. Field+offset(len)
  6. 说说Javascript
  7. 【linux学习笔记五】帮助命令
  8. Django基础—— 4.项目目录结构
  9. 从EXCEL导入CAD后如何设置表格文字大小?
  10. GNU Makefile
  11. 最难忘的一节计算机课,难忘的一堂课作文(共10篇)
  12. sql优化之b+树锁引实战
  13. java中jstl核心包丢失,小博老师解析Java核心技术 ——JSTL核心标签库
  14. 数据结构--逻辑结构和存储结构区别和内容
  15. android8.1新建分区并挂载,Android8.1 MTK Vendor分区大小调整无效分析
  16. 浅谈机器人的定位技术 激光SLAM VS 视觉SLAM
  17. SPA,什么是单页面应用,为什么要使用单页面应用,单页面应用有啥好处
  18. python将99乘法表写入到Excel中
  19. 5G 应用及应用场景总结
  20. 一文读懂“资产上链”

热门文章

  1. redis官方下载安装(Windows64位)
  2. 游戏开发者必须是骨灰级玩家吗?
  3. mili u盘 android手机,mili otg数据线如何使用?
  4. 图片验证码显示不出来的问题
  5. 理解对比学习(contrasive learning)
  6. 1597_AURIX_TC275_GPIO简介
  7. *p++和(*P)++的区别
  8. recovery time和removal time
  9. c语言对孩子的作用,爸爸用C语言给孩子早教,孩子逐渐崩溃,网友:你别害孩子秃顶...
  10. UI进阶——XML解析与Json解析