orderer在fabric中的作用是排序,另外orderer有点像是管理节点一样,通道之类的都是在orderer的基础之上建立的,有点像比特币,以太坊上面的全节点一样,不过责任比全节点少很多,甚至都不用背书和记录。

同样以一段配置代码来解释:

 1  services:
2 peer0.Peer_fish.com:
3 container_name: peer0.Peer_fish.com
4 image: hyperledger/fabric-peer:2.2
5 labels:
6 service: hyperledger-fabric
7 environment:
8 - FABRIC_CFG_PATH=/etc/hyperledger/peercfg
9 # - FABRIC_LOGGING_SPEC=INFO
10 - FABRIC_LOGGING_SPEC=DEBUG
11 - CORE_PEER_TLS_ENABLED=true
12 - CORE_PEER_PROFILE_ENABLED=false
13 - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
14 - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
15 - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt
16 # Peer specific variables
17 - CORE_PEER_ID=peer0.Peer_fish.com
18 #指定该组织下其他peer的通信ip和端口
19 - CORE_PEER_ADDRESS=peer1.Peer_fish.com:7053
20 - CORE_PEER_LISTENADDRESS=0.0.0.0:7051
21 - CORE_PEER_CHAINCODEADDRESS=peer0.Peer_fish.com:7052
22 - CORE_PEER_CHAINCODELISTENADDRESS=0.0.0.0:7052
23 - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.Peer_fish.com:7051
24 ​
25 - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.Peer_fish.com:7052
26 ​
27 - CORE_PEER_LOCALMSPID=Org1MSP
28 - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/fabric/msp
29 - CORE_OPERATIONS_LISTENADDRESS=peer0.Peer_fish.com:9444
30 - CORE_METRICS_PROVIDER=prometheus
31 - CHAINCODE_AS_A_SERVICE_BUILDER_CONFIG={"peername":"peer0fish"}
32 - CORE_CHAINCODE_EXECUTETIMEOUT=300s
33 - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
34 - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=fish
35 volumes:
36 - ../org_crypto_conf/organizations/peerOrganizations/Peer_fish.com/peers/peer0.Peer_fish.com:/etc/hyperledger/fabric
37 - peer0.Peer_fish.com:/var/hyperledger/production
38 - ./peercfg:/etc/hyperledger/peercfg
39 - /var/run/docker.sock:/host/var/run/docker.sock
40 working_dir: /root
41 command: peer node start
42 ports:
43 - 7051:7051
44 - 9444:9444
45 networks:
46 - test

1~8行:跟CA篇一样的理解,这里不做解释

10:指定运行的模式,我这里使用了DEBUG,可以在运行时看到详细的过程,用作生产建议使用info

11-15:配置了tls通信用到的证书和认证证书,但是路径是容器里的路径(需要主义的是后面的路径映射,他把容器外的证书目录映射到容器里面了)

17:指定运行时的id

19:指定其他peer的连接域名与端口

20:表示监听仍以ip对本机7051端口的连接,这就是orderer之间连接的方式

21-25:表示连接其他orderer的方法,只要配置怎么连其他的orderer,怎么让其他的orderer连接

27:MSPID,还是orderer间认证是的姓名

28:指定身份文件,下一期详细将orderer之间的身份认证过程

29-32:目前还没想明白

33-34:orderer中的docker映射,在fabric中所有的链码都是跑在容器里面的,所以如果用容器跑节点,那么链码就是跑在容器的容器里面,这里吧外面的容器server映射到容器里面,形成一种嵌套的东西。需要主义orderer一般不会跑用户链码,orderer中跑的是系统链码。

35-39:文件映射,需要主义的是第二个 ./peercfg 这个映射,peercfg这里面放的就是peer的配置文件,前面的大部分配置都可以在这里面写。

40:字面意思

41:指在容器中运行这个命令

总结:orderer在fabric网络中扮演着重要的角色,从他的配置文件可以看到,首先要自生组成网络,其次还要联系上peer节点,实际上在它的创世快中有整个区块链网络的信息,所以所有的关于对区块链的操作都要经过orderer的同意,其中包括应用通道的配置,链码的配置。

关于创世快的配置后面也会出一期来讲一讲。

fabric compose文件解读(Orderer篇)的更多相关文章

  1. fabric compose文件解读(CA篇)

    CA在fabric中的作用是:分配证书,实现身份认证,配普通的CA机构没什么区别(所以可以用其他CA机构颁发的证书,只要商量好就行) 我的一段CA的conpose文件 1 services: 2 ca ...

  2. trace文件解读

    *********************************************************************示例:全表扫描的10046文件解读************** ...

  3. 附005.Docker Compose文件详解

    一 Docker Compose文件简介 compose文件使用yml格式,主要分为了四个区域: version:用于指定当前docker-compose.yml语法遵循哪个版本 services:服 ...

  4. PE文件解析 基础篇

    PE文件解析 基础篇 来源 https://bbs.pediy.com/thread-247114.htm 前言 之前学习了PE格式,为了更好的理解,决定写一个类似LoadPE的小工具. 编译器是VS ...

  5. Python Fabric ssh 配置解读

    Python Fabric ssh 配置解读 Fabric 2.4简介: Fabric is a high level Python (2.7, 3.4+) library designed to e ...

  6. Java自动化测试框架-12 - TestNG之xml文件详解篇 (详细教程)

    1.简介 现在这篇,我们来学习TestNG.xml文件,前面我们已经知道,TestNG就是运行这个文件来执行测试用例的.通过本篇,你可以进一步了解到:这个文件是配置测试用例,测试套件.简单来说,利用这 ...

  7. Docker Compose 文件讲解

    Docker Compose 是什么 官方文档: Docker Compose是定义和运行多容器 Docker 应用程序的工具.使用"Compose",您可以使用 YAML 文件来 ...

  8. 如何用区块链技术解决信任问题?Fabric 架构深度解读

    阿里妹导读:区块链技术,随着比特币的兴起而为大家所知.但是具体到技术本身,大家相对熟悉的几个词可能是“数据不可篡改”.“公开链”.“分布式数据”.“共识机制”等. 这篇文章将抛砖引玉,通过深度解读Hy ...

  9. Hyperledger Fabric相关文件解析

    1相关文件说明 这一部分涉及相关配置文件的解析, 网络的启动涉及到多个文件,本文按以下顺序进行分析: . ├── base │   ├── docker-compose-base.yaml #1 │  ...

  10. C语言读取写入CSV文件 [一]基础篇

    本系列文章目录 [一] 基础篇 [二] 进阶篇--写入CSV [三] 进阶篇--读取CSV 什么是CSV? CSV 是一种以纯文本形式存储的表格数据,具体介绍如下(来自维基百科): 逗号分隔值(Com ...

随机推荐

  1. nginx重新整理——————分析log数据[六]

    前言 简单介绍一下goaccess. 正文 安装: yum install epel-release yum install GeoIP GeoIP-devel GeoIP-data yum inst ...

  2. sql 语句系列(更新系列)[八百章之第六章]

    使用另一个表更新记录 有时候我们的数据不会立即去更新,而是存在另外一张表中等待更新,这是在日常开发中常见的操作. update e set e.SAL=ns.SAL+e.SAL, e.COMM=ns. ...

  3. spring boot 手动value和自动注入配置的区别[五]

    前言 前面两篇中,写道我们注入配置的方式,是通过是注解的方式完成,如下: @ConfigurationProperties(prefix ="person") 这意味着: 我们写一 ...

  4. Visual Studio 2019汇编报错 warning LNK4258: 指令“/ENTRY:main@0”与开关“/ENTRY:main”不兼容;已忽略

    Visual Studio 2019汇编报错 warning LNK4258: 指令"/ENTRY:main@0"与开关"/ENTRY:main"不兼容:已忽略 ...

  5. vue项目node-scss装不上问题( vue执行npm install报错: Can‘t find Python executable “python“, you can set the PYTHON env variable

    一.描述从网上下载的一个Vue模板项目,导入VsCode,执行npm install命令后,报错了,报错的信息是node-sass安装失败,同时提示需要python环境的错误信息,这是因为安装node ...

  6. Django框架——ajax补充、多对多三种创建、序列化组件、批量操作数据、分页器

    ajax补充说明 主要是针对回调函数args接收到的响应数据 1.后端request.is_ajax() 用于判断当前请求是否由ajax发出 2.后端返回的三板斧都会被args接收不再影响整个浏览器页 ...

  7. Spring 源码阅读(一)环境搭建

    注意事项: 使用 2024-03-14 发布的 Spring 5.3.33 版本 IDE 工具使用了 Intellij IDEA,同时为了简化不必要的内容没单独配置 Gradle 环境 JDK 版本采 ...

  8. 力扣697(java)-数组的度(简单)

    题目: 给定一个非空且只包含非负数的整数数组 nums,数组的 度 的定义是指数组里任一元素出现频数的最大值. 你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度 ...

  9. Java工具篇之Disruptor高性能队列

    简介: disruptor适用于多个线程之间的消息队列,`作用与ArrayBlockingQueue有相似之处`,但是disruptor从功能.性能都远好于ArrayBlockingQueue,当多个 ...

  10. AI运动:阿里体育端智能最佳实践

    简介: 过去一年,阿里体育技术团队在端智能方面不断探索,特别在运动健康场景下实现了实践落地和业务赋能,这就是AI运动项目.AI运动项目践行运动数字化的理念,为运动人口的上翻提供了重要支撑,迈出了阿里体 ...