Hyperledger Fabric Orderer 配置解析
文中使用的 fabric 版本为 2.4.1
排序节点在 Fabric 网络中为 Peer 提供排序服务。与 Peer 节点类似,排序节点支持从命令行参数、环境变量或配置文件中读取配置信息。环境变量中配置需要以 ORDERER_前缀开头,例如,配置文件中的 general.ListenAddress 项,对应到环境变量 ORDERER_GENERAL_LISTENADDRESS。
排序节点默认的配置文件读取路径为 $FABRIC_CFG_PATH 中定义的路径;如果没找到,则尝试查找当前目录;如果还没有找到,则尝试查找默认的 /etc/hyperledger/fabric 路径。
在结构上,orderer.yaml 文件中一般包括 General 、FileLedger 、RAMLedger 、Kafka 、Debug 、Operations 、Metrics 和 Consensus 八大部分.
General 部分
这一部分主要是一些通用配置,如账本类型、服务信息、配置路径等。这些配置影响到服务的主要功能,十分重要.
| 配置项 | 作用 | 默认值 |
|---|---|---|
| ListenAddress | 服务绑定的监听地址,一般需要指定为所服务的特定网络接口的地址或全网(0.0.0.0) | 127.0.0.1 |
| ListenPort | 服务绑定的监听端口 | 7050 |
| TLS.Enabled | 启用 TLS 时的相关配置 | false |
| TLS.PrivateKey | Orderer 签名私钥 | tls/server.key |
| TLS.Certificate | Orderer 身份证书 | tls/server.crt |
| TLS.RootCAs | 信任的根证书 | tls/ca.crt |
| TLS.ClientAuthRequired | 是否对客户端也进行认证 | false |
| TLS.ClientRootCAs | 信任的客户端根证书列表 | N/A |
| Keepalive.ServerMinInterval | 允许其他客户端 ping 消息的最小间隔,超时则断开连接 | 60s |
| Keepalive.ServerInterval | 到客户端的 ping 消息的间隔 | 7200s |
| Keepalive.ServerTimeout | 关闭连接前等待响应的时间 | 20s |
| MaxRecvMsgSize | GRPC 服务器和客户端可以接收的最大消息大小 (以字节为单位) | 104857600 |
| MaxSendMsgSize | GRPC 服务器和客户端可以发送的最大消息大小 (以字节为单位) | 104857600 |
| Cluster | raft 模式下的集群配置 | N/A |
| Cluster.SendBufferSize | 发送缓冲区的最大长度 | 10 |
| Cluster.ClientCertificate | 双向 TLS 认证时,作为客户端证书的文件路径,如果没设置会使用 TLS.Certificate | N/A |
| Cluster.ClientPrivateKey | 双向 TLS 认证时,作为客户端私钥的文件路径,如果没设置会使用 TLS.PrivateKey | N/A |
| Cluster.ListenPort | 监听端口默认使用 gRPC 相同的端口 | N/A |
| Cluster.ListenAddress | 监听地址默认使用 gRPC 相同的地址 | N/A |
| Cluster.ServerCertificate | 双向 TLS 认证时,作为服务端证书的文件路径 | N/A |
| Cluster.ServerPrivateKey | 双向 TLS 认证时,作为服务端私钥的文件路径 | N/A |
| BootstrapMethod | 获取引导块的方法,2.x 版本中仅支持 file 或 none | file |
| BootstrapFile | 系统通道初始区块或最新配置区块文件路径 | N/A |
| LocalMSPDir | 本地 MSP 文件路径 | msp |
| LocalMSPID | MSP ID | SampleOrg |
| Profile | 是否启用 Go profiling , 开启会影响性能 | N/A |
| BCCSP | 密码库机制等,可以为 SW(软件实现)或 PKCS11 (硬件安全模块) | SW |
| Authentication.TimeWindow | 如果客户端和服务端时钟差异超过窗口指定值,则拒绝消息 | 15m |
FileLedger 部分
| 配置项 | 作用 | 默认值 |
|---|---|---|
| Location | 指定存放区块文件的位置,一般为 /var/hyperledger/production/orderer。该目录下面包括 chains 子目录,存放各个 chain 的区块;index 目录,存放索引文件 | /var/hyperledger/production/orderer |
Kafka 部分
因为不推荐使用了,暂时不关注
Debug 部分
Debug 部分主要用于对排序节点进行调试和差错时的追踪配置。
| 配置项 | 作用 | 默认值 |
|---|---|---|
| BroadcastTraceDir | 广播请求的追踪路径 | N/A |
| DeliverTraceDir | 交付请求的追踪路径 | N/A |
Operations 部分
Operations 部分与 Peer 相关配置类似,主要设置运行时对外的 RESTful 管理服务,包括监听的地址和 TLS 安全配置.
| 配置项 | 作用 | 默认值 |
|---|---|---|
| ListenAddress | RESTful 管理服务的监听地址 | 127.0.0.1:8443 |
| TLS.Enabled | 是否启用 TLS 保护 | false |
| TLS.Certificate | 服务端使用证书文件路径 | N/A |
| TLS.PrivateKey | 服务端使用私钥文件路径 | N/A |
| TLS.ClientAuthRequired | 是否开启客户端验证以限定访问的客户端,默认关闭,推荐开启 | false |
| TLS.ClientRootCAs | 开启客户端验证时,信任的客户端根证书路径列表 | [] |
Metrics 部分
Metrics 部分与 Peer 相关配置类似,负责配置统计服务
| 配置项 | 作用 | 默认值 |
|---|---|---|
| provider | 统计服务类型,可以为 statsd (推送模式),prometheus (拉取模式),disabled | disabled |
| statsd.network | 网络协议类型,tcp 或 udp | udp |
| statsd.address | 修改为外部 statsd 的服务地址 | 127.0.0.1:8125 |
| statsd.writeInterval | 推送统计汇报到 statsd 的时间间隔 | 10s |
| statsd.prefix | 为所有统计推送添加前缀 | N/A |
注意
statsd和prometheus都是流行的开源监控数据收集软件。
Consensus 部分
共识为 Raft 模式时的日志存储配置
| 配置项 | 作用 | 默认值 |
|---|---|---|
| WALDir | 预写日志的存储位置,每个通道独占一个同名的子目录 | /var/hyperledger/production/orderer/etcdraft/wal |
| SnapDir | 快照文件的存储位置,每个通道独占一个同名的子目录 | /var/hyperledger/production/orderer/etcdraft/snapshot |
| EvictionSuspicion | 节点怀疑被从通道移除,触发从其他节点获取区块来确认的等待时间。隐藏参数 | 10m |
statsdhyperledgerfabricgrpc
© 著作权归作者所有
相关文章:
Hyperledger Fabric Orderer 配置解析
文中使用的 fabric 版本为 2.4.1 排序节点在 Fabric 网络中为 Peer 提供排序服务。与 Peer 节点类似,排序节点支持从命令行参数、环境变量或配置文件中读取配置信息。环境变量中配置需要以 ORDERER_前缀开头,例如,配置文件中的 general.Liste…...
苹果电脑交互式原型设计软件Axure RP 9 mac特色介绍
Axure RP 9 for Mac是一款交互式原型设计软件,使用axure rp9以最佳的方式展示您的作品,优化现代浏览器并为现代工作流程设计。同时确保您的解决方案正确完整地构建。Axure RP 9 for Mac为您整理笔记,将其分配给UI元素,并合并屏幕注…...
Java 判断实体类对象的全部属性是否空
public boolean checkObjAllFieldsIsNull(Object object) {// 如果对象为null直接返回trueif (null object) {return true;}try {// 挨个获取对象属性值for (Field f : object.getClass().getDeclaredFields()) {f.setAccessible(true);// 如果有一个属性值不为null࿰…...
Vue3-44-Pinia- 安装步骤
介绍 本文介绍 在 vue3 中 安装 Pinia 的步骤 安装步骤 1、npm 安装 npm install pinia》 安装完成后可以看到 package.json 中添加了 pinia 的依赖信息 2、main.ts 中配置 // 引入 vue实例创建方法 import { createApp } from vue// 引入pinia import { createPinia } fro…...
L1-005 考试座位号(Java)
题目 每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换…...
HDFS概述
文章目录 HDFS背景定义HDFS 优缺点HDFS 组成HDFS文件块大小 HDFS背景定义 背景 先给大家介绍一下什么叫HDFS,我们生活在信息爆炸的时代,随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁…...
Hive 的 安装与部署
目录 1 安装 MySql2 安装 Hive3 Hive 元数据配置到 MySql4 启动 Hive Hive 官网 1 安装 MySql 为什么需要安装 MySql? 原因在于Hive 默认使用的元数据库为 derby,开启 Hive 之后就会占用元数据库,且不与其他客户端共享数据,如果想多窗口操作…...
【HBase】——优化
1 RowKey设计 重要:一条数据的唯一标识就是 rowkey,那么这条数据存储于哪个分区,取决于 rowkey 处于 哪个一个预分区的区间内,设计 rowkey的主要目的 ,就是让数据均匀的分布于所有的 region 中,在一定程度…...
什么是跨域以及怎么处理跨域问题
文章目录 什么是跨域?跨域问题常见场景怎么处理跨域1、配置代理2、CORS(跨域资源共享)3、JSONP(仅限 GET 请求)4、使用 WebSocket 注意事项: 什么是跨域? 跨域(Cross-Origin&#x…...
【Linux Shell】11. 输入/输出 重定向
文章目录 【 1. 重定向简介 】【 2. 输出重定向 】【 3. 输入重定向 】【 4. Here Document 】【 5. /dev/null 文件 】 【 1. 重定向简介 】 大多数 UNIX 系统命令从终端接受输入并将所产生的输出发送回到原来输入的终端。一个命令通常从标准输入的地方读取输入ÿ…...
数据库-简单表的操作And查看表的结构
查看表的结构 desc 表名;mysql> use study; Database changed mysql> create table Class(class_id int ,class_name varchar(128),class_teachar varchar(64)) ; Query OK, 0 rows affected (0.06 sec) mysql> show tables; ----------------- | Tables_in_study…...
<设计模式修炼>模板方法模式的使用场景和注意事项学习
介绍 模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 2) 简单说ÿ…...
android 分享文件
1.在AndroidManifest.xml 中配置 FileProvider <providerandroid:name"android.support.v4.content.FileProvider"android:authorities"com.example.caliv.ffyy.fileProvider"android:exported"false"android:grantUriPermissions"true…...
UE5 C++(十一)— 碰撞检测
文章目录 代理绑定BeginOverlap和EndOverlapHit事件的代理绑定碰撞设置 代理绑定BeginOverlap和EndOverlap 首先,创建自定义ActorC类 MyCustomActor 添加碰撞组件 #include "Components/BoxComponent.h"public:UPROPERTY(VisibleAnywhere, BlueprintRea…...
时序数据库InfluxDB、TimeScaleDB简介
一、时序数据库作用、优点 1、作用: 时序数据库通常被用在监控场景,比如运维和 IOT(物联网)领域。这类数据库旨在存储时序数据并实时处理它们。 比如。我们可以写一个程序将服务器上 CPU 的使用情况每隔 10 秒钟向 InfluxDB 中…...
复试 || 就业day05(2024.01.08)项目一
文章目录 前言代码模拟梯度下降构建函数与导函数函数的可视化求这个方程的最小值(直接求导)求方程最小值(不令方程导为0)【梯度下降】eta0.1eta 0.2eta 50eta 0.01画出eta0.1时的梯度下降x的变化过程 总结 前言 💫你…...
基于商品列表的拖拽排序后端实现
目录 一:实现思路 二:实现步骤 二:实现代码 三:注意点 一:实现思路 后台实现拖拽排序通常需要与前端进行配合,对商品的列表拖拽排序,前端需要告诉后端拖拽的元素和拖动的位置。 这里我们假…...
小游戏实战丨基于PyGame的贪吃蛇小游戏
文章目录 写在前面PyGame贪吃蛇注意事项系列文章写在后面 写在前面 本期内容:基于pygame的贪吃蛇小游戏 下载地址:https://download.csdn.net/download/m0_68111267/88700188 实验环境 python3.11及以上pycharmpygame 安装pygame的命令:…...
AOP(面向切面编程)基于XML方式配置
概念解释:(理解基本概念方可快速入手) 连接点(joinpoint) 被拦截到的点,因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截到的方法。 切入点(pointcut&#x…...
多线程的概念
多线程 同时执行多个任务,例如一个人一边听歌,一边跳舞 继承Thread类实现多线程的方式 定义一个MyThread类继承Thread类,重写里面的run方法 package com.itxs.demo01;/*** Classname : MyThread* Description : TODO 自定义线程继承Thread类*…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...
DiscuzX3.5发帖json api
参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...
xmind转换为markdown
文章目录 解锁思维导图新姿势:将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件(ZIP处理)2.解析JSON数据结构3:递归转换树形结构4:Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...
node.js的初步学习
那什么是node.js呢? 和JavaScript又是什么关系呢? node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说, 需要在node.js的环境上进行当JavaScript作为前端开发语言来说,需要在浏览器的环境上进行 Node.js 可…...
