Hyperledger Fabric 1.0 从零开始(七)——启动Fabric多节点集群

5启动Fabric多节点集群

5.1启动orderer节点服务

上述操作完成后,此时各节点的compose配置文件及证书验证目录都已经准备完成,可以开始尝试启动多机Fabric集群。

首先启动orderer节点,切换至orderer.example.com服务器,即前文指定的10.130.116.8服务器,执行如下命令进入启动docker进程: 

docker-compose -f docker-compose-orderer.yaml up -d

 

 运行完毕后我们可以使用docker ps看到运行了一个名字为orderer.example.com的节点。如下图所示:

 

 

5.2启动peer节点服务

切换到peer0.org1.example.com服务器,即前文指定的10.130.116.9服务器,启动本服务器的peer节点和cli,执行如下命令: 

docker-compose -f docker-compose-peer.yaml up -d

 

运行完毕后我们使用docker ps应该可以看到2个正在运行的容器,如下视图:

接下来依次在另外3台服务器运行启动peer节点容器的命令,执行命令与上述方案一致,如下所示: 

docker-compose -f docker-compose-peer.yaml up -d

 

 现在我们整个Fabric4+1服务器网络已经成型,接下来是创建channel和运行ChainCode。

 

5.3创建channel和运行chaincode

切换到peer0.org1.example.com服务器上,使用该服务器上的cli来运行创建Channel和运行ChainCode的操作。首先需要进入cli容器,执行如下命令: 

docker exec -it cli bash 

进入容器后我们可以看到命令提示变为如下所示: 

root@dd815a900955:/opt/gopath/src/github.com/hyperledger/fabric/peer#

参考如下视图:

 说明我们已经以root的身份进入到cli容器内部。官方已经提供了完整的创建Channel和测试ChainCode的脚本,并且已经映射到cli容器内部,所以我们只需要在cli内运行如下命令: 

./scripts/script.sh mychannel

 

 该脚本会一步一步的完成创建通道,将其他节点加入通道,更新锚节点,创建ChainCode,初始化账户,查询,转账,再次查询等链上代码的各个操作都可以自动化实现。直到最后,系统提示如下视图:

 

 说明我们的4+1的Fabric多级部署成功了。我们现在是在peer0.org1.example.com的cli容器内,我们也可以切换到peer0.org2.example.com服务器,运行docker ps命令,可以看到本来是2个容器的,现在已经变成了3个容器,因为ChainCode会创建一个容器,如下视图: 

上图第一个docker ps执行只有最开始创建的两个容器,后一个docker ps命令执行后会发现有三个容器。

至此,整个官方给予的Fabric多机集群部署的工作都已经验证完成,下面需要我们通过手动方式来一台服务器一台服务器的配置,分别执行加入通道,更新锚节点,创建ChainCode,初始化账户,查询,转账,再次查询等链上代码的各个操作。

这些手动提交的步骤及代码均可在./scripts/script.sh中看到,具体的执行和操作流程将会在下一章详细讲解。

 

本章节及前面的一章可以直接参阅:Fabric 1.0的多机部署,在这位老师的博客里写的非常清楚,而且我也是参考这篇博客来完成多机多节点自动部署方案的,只是手动调配及后续操作在网上基本上没有可供参考的中文内容,需要查看官网文档来逐步实现。

截至目前,网络上已有的所有中文方面的博客、文档都是教会你如何跑通官方的e2e demo,也就是本章节及之前的内容,而后续的内容基本上找不到,但会有部分零散的存在,后续章节中在引用到的时候会添加对应的链接方便各位参阅。

转载于:https://www.cnblogs.com/aberic/p/7542167.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[转载] python中print()函数的用法和end=““不换行详解

参考链接&#xff1a; Python | print()中的结束参数 需求&#xff1a;打印五个字符&#xff0c;在一行上 代码&#xff1a; i 0 while i< 5 : i 1 print(i,end’’) 结果&#xff1a; 1 2 3 4 5那么问题来了&#xff0c;为什么加一个end"" 就不换…

css中图片左右边距_CSS中的边距

css中图片左右边距CSS保证金属性 (CSS margin property) CSS Margins are used to space around any element, for this we use "margin" property in the CSS. CSS边距用于在任何元素之间留出空间&#xff0c;为此&#xff0c;我们在CSS中使用“ margin”属性 。 S…

js 实现网页显示倒计时

用 js 来实现网页显示倒计时效果 1 function checkTime( time ){2 var data new Data(); // 获取现在时间3 var nowData data.getTime(); // 转化成毫秒数4 var time ; // 结束的时间5 var t time - nowData ;6 var HH, mm , ss 0;7 var sta "…

scala方法中的变量_Scala中的变量

scala方法中的变量Scala变量 (Scala variables) A variable is named a reference to a memory location. The location stores the data that is used by the program. 变量被称为对存储位置的引用。 该位置存储程序使用的数据。 Based on the data type of the variable the…

[转载] python[1]-print中的sep、end参数

参考链接&#xff1a; Python | print()中的sep参数 读示例程序代码时遇到的问题&#xff0c;看不懂end和sep参数。经过查找&#xff0c;基本弄清楚了。 sep&#xff1a;可以设置print中分割不同值的形式。应该是separation的缩写。 end&#xff1a;可以设置print打印结束时最…

分区 主分区 和 扩展分区_等和分区

分区 主分区 和 扩展分区Description: 描述&#xff1a; This is a popular interview coding problem which has been featured in interview rounds of Amazon, Oyo rooms, Adobe. 这是一个受欢迎的采访编码问题&#xff0c;已在亚马逊&#xff0c;Oyo房间&#xff0c;Adobe…

ORACLE 物理读 逻辑读 一致性读 当前模式读总结浅析

在ORACLE数据库中有物理读&#xff08;Physical Reads&#xff09;、逻辑读&#xff08;Logical Reads&#xff09;、一致性读&#xff08;Consistant Get&#xff09;、当前模式读&#xff08;DB Block Gets&#xff09;等诸多概念&#xff0c;如果不理解或混淆这些概念的话&a…

[转载] Java Formatter toString()方法与示例

参考链接&#xff1a; Python | 输出格式化 output format 格式化程序类toString()方法 (Formatter Class toString() method) toString() method is available in java.util package. toString()方法在java.util包中可用。 toString() method is for the string representat…

arm tbh_TBH的完整形式是什么?

arm tbhTBH&#xff1a;说实话 (TBH: To Be Honest) TBH is an abbreviation of "To Be Honest". It is internet slang which generally used as an acronym or hashtag over the internet on social media networking sites like Facebook, Instagram, Twitter, Yo…

异常:fatal: unable to access 'https://git.oschina.net/pcmpcs/library.git/': Could not resolve host...

git fork项目时出现的异常. 原因: 我以前用的是ssh地址做的远程通信地址&#xff0c;而这次是用的是https&#xff0c;因为很久没用&#xff0c;所以忘记了以前是用ssh的了。解决方案一&#xff1a;复制ssh协议的地址&#xff0c;然后再关联远程仓库。并且在VCS下的git下的Rem…

计数器数组_子数组计数

计数器数组Problem statement: 问题陈述&#xff1a; Given an array of N positive integers a1, a2, ..., an. The value of each contiguous subarray of a given array is the maximum element present in that subarray. The task is to return the number of subarrays…

[转载] 列表、元组及通用序列操作

参考链接&#xff1a; Python | 重点数据类型 (字符串&#xff0c;列表&#xff0c;元组&#xff0c;迭代)(String, List, Tuple, Iteration) 序列是Python中最基本的数据结构&#xff08;一些基本特性类似于C中的数组模板类&#xff09;&#xff0c;序列中的每一个元素都有相…

onActivityResult()后onresume()

当你调用完一个存在的activity之后&#xff0c;onActivityResult将会返回以下数据&#xff1a;你调用时发出的requestCode、被调用activity的结果标志resultCode&#xff08;如RESULT_OK&#xff09;和其他的额外数据。我们期望的都是得到RESULT_OK&#xff0c;表示调用成功&am…

java反射用法示例_Java包| 类型,用法,示例

java反射用法示例配套 (Packages) Packages in Java is simply a mechanism to encapsulate (i.e. to put in a short and concise form) a group of classes,interfaces,enumerations, sub packages, etc. In real world, application is developed in such a manner so that …

[转载] python 元组tuple - python基础入门(14)

参考链接&#xff1a; Python元组Tuple 目录 一.元组tuple定义 二.元组tuple查询 三.元组tuple不支持删除/修改数据 四.元组tuple与列表list的相互转换 五.重点总结 在上一篇文章中我们讲解了关于python列表List的相关内容&#xff0c;今天给大家解释一下列表List的…

MaxCompute 2.0—从ODPS到MaxCompute

从ODPS到MaxCompute-阿里大数据的进化之路是一个商用大数据系统发展史&#xff0c;一个商业大数据系统要解决的问题有可靠性&#xff0c;高性能&#xff0c;安全性等等六个方面。内部产品名ODPS的MaxCompute&#xff0c;是阿里巴巴内部发展的一个高效能、低成本&#xff0c;完全…

python数值类型_Python数值类型

python数值类型In programming, Data Types are an essential concept. Data of various types can be stored in variables as per the task we want the variables to perform. 在编程中&#xff0c;数据类型是必不可少的概念。 根据我们希望变量执行的任务&#xff0c;各种类…

[转载] Python高级变量(列表、元组、字典、字符串、公共方法)

参考链接&#xff1a; Python | 重点数据类型 (字符串&#xff0c;列表&#xff0c;元组&#xff0c;迭代)(String, List, Tuple, Iteration) 文章目录 高级变量类型目标知识点回顾 01. 列表1.1 列表的定义1.2 列表常用操作del 关键字&#xff08;科普&#xff09;关键字、函数…

python 操作mongodb数据库参考文档

参考文档链接&#xff1a;https://pypi.python.org/pypi/pymongo pymongo的参考文档http://api.mongodb.com/python/current/tutorial.html mongoengine的参考文档&#xff1a;https://pypi.python.org/pypi/mongoengine#downloads Flask-MongoEngine的参考文档&#xff1a;htt…

php eot eod_EOD的完整形式是什么?

php eot eodEOD&#xff1a;一天结束 (EOD: End Of Day) EOD is an abbreviation of "End Of Day". EOD是“ End Of Day”的缩写 。 It is an expression, which is commonly used in the Gmail platform. In a particular mail, if the sender wants to give the d…