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类*…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...

多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...
计算机系统结构复习-名词解释2
1.定向:在某条指令产生计算结果之前,其他指令并不真正立即需要该计算结果,如果能够将该计算结果从其产生的地方直接送到其他指令中需要它的地方,那么就可以避免停顿。 2.多级存储层次:由若干个采用不同实现技术的存储…...