基于docker的 Hyperledger Fabric 多机环境搭建(下)
Docker环境部署见上一篇博客:http://www.cnblogs.com/cnblogs-wangzhipeng/p/6994541.html。
我们部署分布式容器服务后就要在上面部署Fabric网络,这时候我们的Fabric-sdk-node 就派上用场了,选择orderer节点所在的主机进行fabric-sdk-node部署,不过在部署环境之前我们要先安装一些额外的nodejs包:
Fabric-sdk-node部署
1>先安装nodejs (目前Fabric要求的版本是6.9.x的版本),再安装npm(nodejs包的管理工具。)
2> 执行命令 code bash:
cd $fabric-sdk-node
npm install #这里面注意,最好是准备个梯子,否则极大概率安装不成功,或者用cpm代替 npm(推荐)
3>对sdk进行测试
npm install gulp
gulp ca
gulp test-headless
所有测试都跑过才算ok
4>整体测试
cd test/fixtures/
docker-compose up --force-recreate
此时单机模拟环境已经启动
cd $fabric-sdk-node
gulp test
所有测试都跑过才算ok
参考网址:https://github.com/luckydogchina/fabric-sdk-node/blob/v1.0.0-alpha.1/README.md
以上都ok了说明,你的fabric-sdk-node sdk没有问题。
Fabric网络部署
方法一:
1>启动分布式环境:
这个具体操作见上一篇博客,我将fabric-sdk-node 和 fabric orderer以及Org1、Couhdb节点部署在了 主机192.168.1.104上,Org2部署在了主机192.168.1.121上。
2> 我们要对Fabric-sdk-node的代码进行一下修改:
$fabric-sdk-node/test/integration/e2e/joinchannel.js
var Client = require('fabric-client');
var EventHub = require('fabric-client/lib/EventHub.js');
var Block = require('fabric-client/lib/Block.js');
var grpc = require('grpc');
var _commonProto = grpc.load(path.join(__dirname, '../../../fabric-client/lib/protos/common/common.proto')).common;
var _configtxProto = grpc.load(path.join(__dirname, '../../../fabric-client/lib/protos/common/configtx.proto')).common;
var testUtil = require('../../unit/util.js');
var the_user = null;
var tx_id = null;
var nonce = null;
Client.addConfigFile(path.join(__dirname, './config.json'));
var ORGS = Client.getConfigSetting('test-network');
//此处添加以下两行,192。168.1.121是另一个主机的ip,修改时请替换为实际主机的ip
ORGS.org2.peer1.requests = "grpcs://192.168.1.121:7051"
ORGS.org2.peer1.events = "grpcs://192.168.1.121:7053"
var allEventhubs = [];
//
$fabric-sdk-node/test/integration/e2e/e2eUtils.js
var hfc = require('fabric-client');
var EventHub = require('fabric-client/lib/EventHub.js');
var testUtil = require('../../unit/util.js');
var e2e = testUtil.END2END;
hfc.addConfigFile(path.join(__dirname, './config.json'));
var ORGS = hfc.getConfigSetting('test-network');
//添加以下代码,192.168.1.121为另一个主机的地址,请根据实际情况进行替换
ORGS.org2.peer1.requests = "grpcs://192.168.1.121:7051"
ORGS.org2.peer1.events = "grpcs://192.168.1.121:7053"
var tx_id = null;
var nonce = null;
var the_user = null;
修改后按如下顺序执行js脚本:
$fabric-sdk-node/test/integration/e2e/create-channel.js
$fabric-sdk-node/test/integration/e2e/join-channel.js
$fabric-sdk-node/test/integration/e2e/install-chaincode.js
$fabric-sdk-node/test/integration/e2e/instantiate-chaincode.js
如果都执行通过了,那么fabric的的网络搭建和chaincode安装部署就已经完成。
利用Fbaric网络执行交易
与上面的修改类似,也是将容器所在的地址,替换成对应的地址(主机ip:本地映射端口号)。执行invoke-chaincode.js 和query-chaincode.js,就可进行交易。
方法二:
除了上面的修改方法之外,还有一个最简单实用的方法,修改工程的配置文件:

把里面grpcs 的地址修改成容器对应的地址(具体端口是由docker-compose中的配置文件决定的,id是宿主机的本地ip):

cd $fabric-sdk-node/test/fixtures/
-->
随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题
-->
随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题
-->
基于docker的 Hyperledger Fabric 多机环境搭建(下)的更多相关文章
- 基于docker的 Hyperledger Fabric 多机环境搭建(上)
环境:ubuntu 16.04 Docker 17.04.0-ce go 1.7.4 consoul v0.8.0.4 ======================================= ...
- Hyperledger fabric 1.4 环境搭建(一)
Hyperledger fabric 1.4 环境搭建(一) 1.更换下载源 更换apt的下载源,因为官方下载源很慢,需要更换到国内的镜像站 1.1.进入/etc/apt/目录 cd etc/apt ...
- Ubuntu下搭建Hyperledger Fabric v1.0环境
多次尝试才正常启动了Fabric,如遇到各种莫名错误,请参考如下一步步严格安装,特别用户权限需要注意. 一.安装Ubuntu16 虚拟机或双系统,虚拟机有VirtualBox或者VMware,Ub ...
- jumpserver 堡垒机环境搭建
jumpserver 堡垒机环境搭建(图文详解) https://blog.csdn.net/my_bai/article/details/62226474 http://docs.jumpser ...
- Linux基于Docker的Redis主从复制、哨兵模式搭建
本教程基于CentOS7,开始本教程前,请确保您的Linux系统已安装Docker. 1.使用docker下载redis镜像 docker pull redis 安装完成后,使用docker imag ...
- 【转】jumpserver 堡垒机环境搭建(图文详解)
jumpserver 堡垒机环境搭建(图文详解) 摘要: Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装ag ...
- 基于全志H3芯片的ARM开发环境搭建
基于全志H3芯片的ARM开发环境搭建 最近买了个友善之臂的NanoPi M1板子,又在网上申请了个NanoPi NEO板子,这两个都是基于全志H3芯片的Crotex-A7四核ARM开发板,两个板子可以 ...
- ActiveMQ此例简单介绍基于docker的activemq安装与集群搭建
ActiveMQ拓展连接 此例简单介绍基于Docker的activemq安装与集群搭建 一 :安装 1.获取activemq镜像 docker pull webcenter/activemq 2.启动 ...
- Windows系统appium移动端自动化真机环境搭建
appium-windows-android环境搭建完成以后,就可以进行真机模式下的appium环境搭建啦!! 准备:把要测试的app下载至本机(小波的是把apk放在桌面上,例如:C:\Users\w ...
随机推荐
- Linux安装Nginx以及简单理解
1.Nginx简单介绍 ①.Nginx:一个高性能的HTTP和反向代理服务器,高并发处理很不错. ②.反向代理:在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限,当用户的接入请求蜂 ...
- java线程池的创建使用
利用java的多线程编程可以大大的提高系统的并发运行效率,线程越多并发执行的任务就越多,但是并不意味着效率会一直提高,相反会得到适得其反的效果. java中的多线程编程一共有三种方法: 继承Threa ...
- svn文件回滚到某个历史版本号
转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/50819642 本文出自[我是干勾鱼的博客] 有时候想要将svn中的某个文件回滚到 ...
- HDOJ--4893--Wow! Such Sequence!【线段树+单点、区间更新】
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4893 题意:给你一个长度n的数列,初始都为0.有三种操作,第一种给第k个位置的数加d.另外一种是查询区间 ...
- Principle of Computing (Python)学习笔记(7) DFS Search + Tic Tac Toe use MiniMax Stratedy
1. Trees Tree is a recursive structure. 1.1 math nodes https://class.coursera.org/principlescomputin ...
- nyist oj 756 重建二叉树
重建二叉树 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描写叙述 题目非常easy.给你一棵二叉树的后序和中序序列,求出它的前序序列(So easy!). 输入 输入有多组 ...
- 我的GIS观
申明: 文章所述观点与不论什么组织或个人无关,仅代表我个人观点,如有不正确,还望批评指正. 概述: 从毕业到如今,在GIS这条路上也算是摸爬滚打4.5年了.说长也不长,说短也不短.在这4.5年的时间里 ...
- 获取手机是否root信息
private String isRoot(){ String bool = "Root:false"; try{ if ((!new File("/system/bin ...
- (转自知乎https://www.zhihu.com/question/20794107)动态代理
作者:雨夜偷牛的人链接:https://www.zhihu.com/question/20794107/answer/23330381来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...
- sublime text 3配置使用python
1. 在sublime text的官网下载,是适合自己系统的版本.官网地址:https://www.sublimetext.com/3 2. 安装好后,在菜单栏打开:Preferences---> ...