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 多机环境搭建(下)的更多相关文章

  1. 基于docker的 Hyperledger Fabric 多机环境搭建(上)

    环境:ubuntu 16.04 Docker  17.04.0-ce go 1.7.4 consoul v0.8.0.4 ======================================= ...

  2. Hyperledger fabric 1.4 环境搭建(一)

    Hyperledger fabric 1.4 环境搭建(一) 1.更换下载源 更换apt的下载源,因为官方下载源很慢,需要更换到国内的镜像站 1.1.进入/etc/apt/目录 cd etc/apt ...

  3. Ubuntu下搭建Hyperledger Fabric v1.0环境

      多次尝试才正常启动了Fabric,如遇到各种莫名错误,请参考如下一步步严格安装,特别用户权限需要注意. 一.安装Ubuntu16 虚拟机或双系统,虚拟机有VirtualBox或者VMware,Ub ...

  4. jumpserver 堡垒机环境搭建

    jumpserver 堡垒机环境搭建(图文详解) https://blog.csdn.net/my_bai/article/details/62226474   http://docs.jumpser ...

  5. Linux基于Docker的Redis主从复制、哨兵模式搭建

    本教程基于CentOS7,开始本教程前,请确保您的Linux系统已安装Docker. 1.使用docker下载redis镜像 docker pull redis 安装完成后,使用docker imag ...

  6. 【转】jumpserver 堡垒机环境搭建(图文详解)

    jumpserver 堡垒机环境搭建(图文详解)   摘要: Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装ag ...

  7. 基于全志H3芯片的ARM开发环境搭建

    基于全志H3芯片的ARM开发环境搭建 最近买了个友善之臂的NanoPi M1板子,又在网上申请了个NanoPi NEO板子,这两个都是基于全志H3芯片的Crotex-A7四核ARM开发板,两个板子可以 ...

  8. ActiveMQ此例简单介绍基于docker的activemq安装与集群搭建

    ActiveMQ拓展连接 此例简单介绍基于Docker的activemq安装与集群搭建 一 :安装 1.获取activemq镜像 docker pull webcenter/activemq 2.启动 ...

  9. Windows系统appium移动端自动化真机环境搭建

    appium-windows-android环境搭建完成以后,就可以进行真机模式下的appium环境搭建啦!! 准备:把要测试的app下载至本机(小波的是把apk放在桌面上,例如:C:\Users\w ...

随机推荐

  1. Effective Java 第三版——1. 考虑使用静态工厂方法替代构造方法

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  2. 看看android基础知识,谁帮我作答

    无论怎么着,了解一点android的基本知识还是有必要的,就当开阔一些自己的眼界吧. .. . android的四大功能组件是_activity_,_service_,_BroadcastReceiv ...

  3. 在linux上手动搭建svn服务器

    svn服务器的搭建 环境: linux CentOS 7 安装: 1.安装svn服务器 yum install subversion 2.查看版本 svnserve --version 3.创建版本库 ...

  4. Winform开发框架中工作流模块的业务表单开发

    在我们开发工作流的时候,往往需要设计到具体业务表单信息的编辑,有些是采用动态编辑的,有些则是在开发过程中处理的,各有各的优点,动态编辑的则方便维护各种各样的表单,但是数据的绑定及处理则比较麻烦,而自定 ...

  5. IntelliJ Idea 2017 注册码 免费激活方法

    1. 到网站 http://idea.lanyus.com/ 获取注册码. 2.弹窗中选择最后一个页面license server,填入下面一种链接即可: http://idea.iteblog.co ...

  6. Softmax多分类算法

    List<double[]> inputs_x = new List<double[]>(); inputs_x.Add(new double[] { 0.2, 0.3 }); ...

  7. 《CLR via C#(第4版)》【PDF】下载

    <CLR via C#(第4版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382189 via C#(第4版)>[PD ...

  8. 小白的Python之路 day3 函数式编程,高阶函数

    函数式编程介绍   函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的 ...

  9. 【java】HashMap、Map、Set、HashMap.put()、HashMap.keySet()、HashMap.entrySet()、Map.Entry内部类

    package com.tn.hashMap; public class Student { private String id; private String name; public Studen ...

  10. ArcGIS API for JavaScript 4.2学习笔记[12] View的弹窗(Popup)

    看本文前最好对第二章(Mapping and Views)中的Map和View类有理解. 视图类有一个属性是Popup类型的popup,查阅API知道这个就是视图的弹窗,每一个View的实例都有一个p ...