基于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 ...
随机推荐
- UVA - 11396 Claw Decomposition(二分图染色)
题目大意:给你一张无向图,每一个点的度数都是3. 你的任务是推断是否能把它分解成若干个爪(每条边仅仅能属于一个爪) 解题思路:二分图染色裸题.能够得出:爪的中心点和旁边的三个点的颜色是不一样的 #in ...
- Unity游戏中使用贝塞尔曲线
孙广东 2015.8.15 比方在3D rpg游戏中.我们想设置弹道,不同的轨迹类型! 目的:这篇文章的主要目的是要给你关于在游戏怎样使用贝塞尔曲线的基本想法. 贝塞尔曲线是最主要的曲线,一般用在 ...
- kotlin web开发教程【一】从零搭建kotlin与spring boot开发环境
IDEA中文输入法的智能提示框不会跟随光标的问题 我用的开发工具是IDEA 这个版本的IDEA有一个问题: 就是中文输入法的智能提示框不会跟随光标 解决这个问题的办法很简单,只有在安装目录下把JRE文 ...
- thinkphp5基础
前面的话 ThinkPHP是一个免费开源的,快速.简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持 ...
- 【quickhybrid】API的分类:短期API、长期API
前言 一切就绪,开始规划API,这里在规划前对API进行了一次分类:短期API.长期API 首先申明下,这个是在实际框架演变过程中自创的一个概念,其它混合框架可能也会有这个概念,但应该是会在原生底层来 ...
- Elasticsearch聚合——aggregation
聚合提供了分组并统计数据的能力.理解聚合的最简单的方式是将其粗略地等同为SQL的GROUP BY和SQL聚合函数.在Elasticsearch中,你可以在一个响应中同时返回命中的数据和聚合结果.你可以 ...
- dedecms在php7下的使用方法,织梦dedecsm后台一片空白的解决方法
前几天,一个老客户,最近升级了服务器,php到php7,把织梦dedecms转移到新服务器后,不能登录后台,让帮忙看一下. 我看了下他们的网站,使用的是织梦V57_UTF8_SP1前台页面是可以访问的 ...
- java-生成任意格式的json数据
最近研究java的东西.之前靠着自己的摸索,实现了把java对象转成json格式的数据的功能,返回给前端.当时使用的是 JSONObject.fromObject(object) 方法把java对象换 ...
- NodeJs学习笔记(四)---单元测试
sailsjs框架用了一段时间了,感觉如果功能复杂了,非常难以处理,想用一下单元测试,看是否能解决问题. sailsjs的官方文档使用的是mocha,我搜索了一些资料,主要参考了朴灵 ...
- 36、IO模型与socketserver实现并发
特别声明本随笔copy于egon(林海峰). 一 IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步.异步.阻塞.非阻塞 同步(synchronous) IO和异步(asynchronou ...