rippled节点配置文件详解

2023-11-15

一、简介

  • .cfg 是ripple节点的配置文件,文件名默认为 ripple.cfg
  • 文档中以 # 开头的内容是注释
  • 文档中以 [] 修饰一个配置项单元的名称
  • 文档中需要空格的地方只允许一个空格,多于一个空格会识别不了

rippled.cfg配置示例:

  • rippled.cfg配置示例1:https://github.com/ripple/rippled/blob/master/cfg/rippled-example.cfg
  • rippled.cfg配置示例2:https://github.com/ripple/rippled/blob/8429dd67e60ba360da591bfa905b58a35638fda1/cfg/rippled-example.cfg#L1050-L1073
  • rippled服务器无法启动,可能的配置原因以及修复方法:https://xrpl.org/server-wont-start.html#cannot-create-database-path
  • chainsql配置文件详解(仅用于参考):http://docs.chainsql.net/theory/cfg.html#id4

二、配置文件示例

#端口配置列表
[server]
port_rpc_admin_local
port_peer
port_ws_admin_local


#http端口配置,用于rpc请求
[port_rpc_admin_local]
port = 5005
ip = 0.0.0.0
admin = 127.0.0.1
protocol = http

#peer端口配置,用于p2p节点发现
[port_peer]
port = 51235
ip =  0.0.0.0
protocol = peer

#websocket端口配置
[port_ws_admin_local]
port = 6006
ip = 0.0.0.0
admin = 127.0.0.1
protocol = ws

# 缓存级别
[node_size]
medium


#区块数据存储配置,windows下用NuDB,Linux/Mac下用RocksDB
[node_db]
type=RocksDB
path=/opt/docker/ripple/data/rocksdb
open_files=2000
filter_bits = 12
cache_mb = 256
file_size_mb = 8
file_size_mult = 2
online_delete=200000000000
advisory_delete=0

#是否全节点
[ledger_history]
full

#sqlite数据库(存储区块头数据,交易概要数据)
[database_path]
/opt/docker/ripple/data

#日志目录
[debug_logfile]
/opt/docker/ripple/logs/debug.log

#时间服务器,用于不同节点单时间同步
[sntp_servers]
time.windows.com
time.apple.com
time.nist.gov
pool.ntp.org

#信任节点列表文件
[validators_file]
validators.txt

#日志级别,一般设置为warning级别
[rpc_startup]
{ "command": "log_level", "severity": "warning" }
[ssl_verify]
1

三、配置项说明

[server]

端口配置列表

  • 端口列表,ripple 会查找文件中具有与列表项相同名称的配置项,并用这些配置荐创建监听端口。
  • 列表中配置项的名称不会影响功配置功能

[port_rpc_admin_local]

  • 字段内容:
[port_rpc_admin_local]
port = 5005  
ip = 0.0.0.0
admin = 127.0.0.1
protocol = http
  • 字段含义:
[port_rpc_admin_local]:http端口配置
port: 配置端口,此端口为rpc服务的端口
ip: 哪个ip可以连接这一端口,0.0.0.0 代表任意ip可以连接这一端口
admin: ripple中有一些命令只有拥有admin权限的ip才能调用,配置方法与 ip 相同
protocol: 协议名称,rippple中支持协议有 http,https,ws,wss,peer(此处为http,可调用rpc接口)

注:rippled API方法分为“公共方法”和“管理方法”,要访问管理方法或公共方法的管理功能,必须在服务器的配置文件中标记为admin的端口和IP地址上连接到API,公共方法为ip字段的IP地址可以请求,管理方法为admin字段的IP地址可以请求

  • 公共方法接口:https://xrpl.org/public-rippled-methods.html
  • 管理方法接口:https://xrpl.org/admin-rippled-methods.html

[port_peer]

  • 字段内容:
[port_peer]
port = 51235
ip =  0.0.0.0
protocol = peer
  • 字段含义:
[port_peer]:peer端口配置,用于p2p节点发现,区块链节点间的数据通信
port: rippled服务器使用p2p协议的端口号,通常为51235
ip: 任何rippled服务器,按主机名或IP地址,0.0.0.0 代表任意ip可以连接这一端口
protocol: 协议名称,rippple中支持协议有 http,https,ws,wss,peer(此处为peer,可用于区块链节点间通信)

注:向Ripple的一台公共服务器请求节点程序信息。

curl --insecure https://172.31.56.172:51235/crawl

例如:

rpc:curl --insecure https://s1.ripple.com:51235/crawl
http:GET https://localhost:51235/crawl

参考文献:https://xrpl.org/peer-crawler.html#request-format

[port_ws_admin_local]

  • 字段内容:
[port_ws_admin_local]
port = 6006
ip = 0.0.0.0
admin = 127.0.0.1
protocol = ws
  • 字段含义:
[port_ws_admin_local]:websocket端口配置
port: 配置端口,此端口为websocket服务的端口
ip: 哪个ip可以连接这一端口,0.0.0.0 代表任意ip可以连接这一端口
admin: ripple中有一些命令只有拥有admin权限的ip才能调用,配置方法与 ip 相同
protocol: 协议名称,rippple中支持协议有 http,https,ws,wss,peer(此处为ws,可调用websocket接口)

node_size

  • 字段内容:
[node_size]
medium

node_size 用于设置和检索历史数据的客户端使用,应该根据服务器目前的可用内存进行设置,以下是建议设置的参数说明

可用内存 node_size 备注
< 8GB tiny 不建议用于测试或生产服务器。如果在rippled.cfg配置文件中未指定值,则此参数为默认值
8 GB small 建议用于测试服务器
16 GB medium rippled-example.cfg文件使用此值(官方配置文件)
32 GB huge 推荐用于生产服务器

注:

  • 每个node_size 都有对可用内存的相应要求。例如,如果设置node_size为huge,则应至少具有32 GB的可用内存,以帮助确保其rippled可以平稳运行
  • 如果将node_size参数设置为无效值,则服务器无法启动,可能会出现以下错误
Terminating thread rippled: main: unhandled N5beast14BadLexicalCastE 'std::bad_cast'

参考文献:https://xrpl.org/capacity-planning.html#node-size

node_db

  • 字段内容:
[node_db]
type=RocksDB
path=/opt/docker/ripple/data/rocksdb
open_files=2000
filter_bits = 12
cache_mb = 256
file_size_mb = 8
file_size_mult = 2
online_delete=200000000000
advisory_delete=0
  • 字段含义:
[node_db] 
type:节点数据库类型,可以将该值设置为rocksdb或nudb
path:存放数据的位置
open_files:打开的文件列表,仅适用于RocksDB
filter_bits:仅适用于RocksDB
cache_mb:缓存,仅适用于RocksDB
file_size_mb:仅适用于RocksDB
file_size_mult:仅适用于RocksDB
online_delete:设置在线删除时保留的最新的ripple账本数量,如果使用自动删除(默认设置),则服务器通常会在账本累积到参数的两倍左右时运行删除,此值必须大于或等于ledger_history

advisory_delete:是否接受管理员手动删除账本数量,online_delete若要自动运行,则必须设置advisory_delete=0;参数值为1,就意味着可手动删除

注:节点数据库类型

  • 可将type的值设置为RocksDB或NuDB
  • 如果rippled作为验证运行的节点,应该只保留几天或更少的数据。Ripple建议使用RocksDB进行验证
  • 在大多数情况下,请使用NuDB,因为即使磁盘上有大量数据,它的性能也是恒定的。但它需要快速的SSD
  • 一般建议windows下用NuDB,Linux/Mac下用RocksDB
  • 若使用RocksDB,rippled官方推荐推荐以下配置:
[node_db]
type=RocksDB
path=/opt/docker/ripple/data/rocksdb
open_files=2000
filter_bits = 12
cache_mb = 256
file_size_mb = 8
file_size_mult = 2
online_delete=200000000000
advisory_delete=0

可根据自身情况调整存储目录(path),根据配置的需要调整online_deleteadvisory_delete设置。

参考文献:

  • 数据容量规划:https://xrpl.org/capacity-planning.html#more-about-using-rocksdb
  • 配置在线删除:https://xrpl.org/configure-online-deletion.html#configure-online-deletion
  • 配置手动删除:https://xrpl.org/configure-advisory-deletion.html
  • 在线删除配置不生效:https://github.com/ripple/rippled/issues/2306

ledger_history

  • 字段内容:
[ledger_history]
full

指定本节点是否为保存全部历史,如果是,则修改为full,默认为256,意为保存最近256个区块。

注意:如果使用了online_delete,此值必须小于或等于online_delete !!!

注:xrp并不需要完整的历史记录节点也可参与网络,验证交易或了解网络的当前状态。完整历史记录仅对了解过去发生的交易的结果或过去给定时间的分类帐状态有用。

参考文献:

  • 配置完整历史记录:https://xrpl.org/configure-full-history.html
  • 账本历史数据:https://xrpl.org/ledger-history.html#ledger-history
  • online_delete与ledger_history关系:https://xrpl.org/online-deletion.html

database_path

  • 字段内容:
[database_path]
/opt/docker/ripple/data

此配置为要存储其他数据库数据的位置。(这包括带有配置数据的SQLite数据库,通常在[node_db]path字段上方一层。

参考文献:

  • rippled配置:https://xrpl.org/build-run-rippled-ubuntu.html#2-configure-rippled
  • 修复SQLite事务数据库页面大小问题:https://xrpl.org/fix-sqlite-tx-db-page-size-issue.html#migration-process

debug_logfile

[debug_logfile]
/opt/docker/ripple/logs/debug.log

ripple日志文件保存路径

sntp_servers

  • 字段内容
[sntp_servers]
time.windows.com
time.apple.com
time.nist.gov
pool.ntp.org

时间服务器,用于不同节点单时间同步,以上默认配置即可

validators_file

  • 字段内容
[validators_file]
validators.txt

包含受信任的验证者密钥或验证者列表发布者的文件,此文件应与rippled.cfg配置文件在同一级目录中

  • ripple信任节点密钥替换:https://xrpl.org/blog/2019/labeling-the-internet-of-value.html?q=validators_file#validators

rpc_startup

  • 字段内容
[rpc_startup]
{ "command": "log_level", "severity": "warning" }

记录本地程序运行产生的日志级别,默认为:debug,此配置可减少磁盘空间以及磁盘IO使用率,若需要查看ripple故障原因,可设置更加详细的日志级别

日志级别分别为: trace(跟踪), debug(调试), info(信息), warning(警告), error(错误), fatal (严重)

ssl_verify

  • 字段内容
[ssl_verify]
1

参数为:0或1

0:HTTPS客户端连接不会验证证书。 
1:将检查证书以获取HTTPS客户端连接。 

内部使用,一般填写为0
如果未指定,则此参数默认为1。

信任节点列表文件

  • 文件内容
# cat validators.txt 
[validator_list_sites]
https://vl.ripple.com
[validator_list_keys]
ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734

这种需要有一个信任的服务器,该服务器对外公开发布信任度高的节点公钥列表,同时提供一个列表有效时间点。这种配置为远程配置。

  • [validator_list_sites]:配置服务器获取信任列表的URL

  • [validator_list_keys]:配置服务器的公钥用于验签

  • 设置可信列表:https://xrpl.org/connect-your-rippled-to-the-xrp-test-net.html#2-set-your-trusted-validator-list

  • ripple信任列表配置方式:https://blog.csdn.net/lc315yuhuofei/article/details/104251722

四、测试网及开发网配置文件

注意:部署测试网及开发网与主网的方式一样,仅在配置文件中修改以下内容即可

rippled.cfg 文件修改

rippled.cfg 配置文件中添加以下配置:

#设置为测试网
[ips]
s.altnet.rippletest.net 51235

# 或设置为设置为开发网,根据个人节点类型进行选择
[ips]
s.devnet.rippletest.net 51235



[features]
NegativeUNL

features:要强制启用某个功能,[features]请在rippled.cfg文件中添加一节。在本节中,添加要启用的功能的简称,每行一个

NegativeUNL:此功能在rippled1.6.0版本中,可以在测试网络中使用,它提高了网络在某些类型的部分中断期间宣布结果为最终结果的能力

参考文献:

  • NegativeUNL详解:https://xrpl.org/negative-unl.html#negative-unl

validators.txt文件修改

validators.txt 文件中修改为以下配置,根据个人节点类型进行选择

测试网:
[validator_list_sites]
https://vl.altnet.rippletest.net

[validator_list_keys]
ED264807102805220DA0F312E71FC2C69E1552C9C5790F6C25E3729DEB573D5860

开发网:
[validator_list_sites]
https://vl.devnet.rippletest.net

[validator_list_keys]
EDDF2F53DFEC79358F7BE76BC884AC31048CFF6E2A00C628EAE06DB7750A247B12

主网:
[validator_list_sites]
https://vl.ripple.com

[validator_list_keys]
ED2677ABFFD1B33AC6FBC3062B71F1E8397C1505E1C42C64D11AD1B28FF73F4734

参考文献:

  • xrp主网、测试网、开发网信任节点配置:https://xrpl.org/connect-your-rippled-to-the-xrp-test-net.html
  • xrp主网、测试网、开发网浏览器:https://devnet.xrpl.org/
  • xrp测试网、开发网水龙头:https://xrpl.org/xrp-testnet-faucet.html

以上就是ripple网络部署节点时的配置文件详解,因为ripple官方网站中的配置参数解释有时会令人感到晦涩难懂,所以小帅杰这次也是花了非常多的心思来整理这篇文章,以便让我们在部署rippled节点时,不再担心因为配置文件的问题导致部署报错。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

rippled节点配置文件详解 的相关文章

  • LC-3 机器语言 指令集

    目录 碎碎念念 LC 3指令 运算类指令 ADD addition AND Bit wise logical AND NOT Bit wise complement 数据搬移类指令 LD load ST store LDI load ind
  • FPN网络结构+源码讲解

    YOLOF前传 特征金字塔 FPN 前言 这几天在读CVPR2021的中稿论文YOLOF You Only Look One level Feature 文章回顾了单阶段的特征金字塔网络 FPN 指出FPN的成功的原因在于它对目标检测中优化
  • c++ map用法 入门必看 超详细

    1 map的作用 可以实现各种类型的映射 可以用数组来类比 都是由下标和值组成 但数组用法很局限 下标不能是负数 而且开数组需要消耗太多的内存 开到10 7就内存超限了 因此 很多时候都用高级的map类或vector类来代替数组 其里面的成

随机推荐

  • “对象创建”模式——抽象工厂

    动机 在软件系统中 经常面临着 一系列相互依赖的对象 的创建工作 同时由于需求的变化 往往存在更多系列对象的创建对象 如何应对这种变化 如何绕过常规的对象创建方法 new 提供一种 封装机制 来避免客户程序和这种 多系列具体对象创建工作 的
  • 互联网编程之基于 TCP 的单线程文件收发程序(CS架构)

    目录 需求 服务端实现 客户端实现 测试 需求 可试着根据java编程课所学到的java socket编程技术 尝试编写一个基于 TCP 的单线程文件收发程序 需满足 服务端程序预先定义好需要发送的文件并等待客户端的连接 客户端连接成功后
  • 非极大值抑制(non-maximum suppression)的理解

    最近在学习RCNN时看到了非极大值抑制 一开始有点不明白 在网上学习了之后记录一下 非极大值抑制就是一个寻找局部最大值的过程 在进行目标检测时一般会采取窗口滑动的方式 在图像上生成很多的候选框 然后把这些候选框进行特征提取后送入分类器 一般
  • MySQL执行update时的[ERROR 1093]处理方法

    版权声明 声明 本文档可以转载 须署名原作者 作者 无为 qq 490073687 周祥兴 zhou xiangxing210 163 com gt update TEST NOIDX set CREATETIME now where ID
  • 使用QFileInfo查看文件相关信息----大小,创建时间,属性

    QString file E workspace Data ColorTransfer txt QFileInfo info file qint64 size info size 文件大小 单位byte QDateTime created
  • [Cocos Creator] Cocos Creator 下拉框(Dropdown)组件的实现

    模仿Unity写了一个Dropdown的组件 使用方法可以见工程 链接见底下 https github com ETRick CocosCreator Dropdown tree master Dropdown
  • opencv-python学习教程【持续更新】

    Opencv python学习系列教程 一 图片的读取 代码 实验结果 二 视频的读取 代码 实验结果 三 颜色通道的读取 代码 实验结果 四 图像边界填充 代码 实验结果 五 图像融合 代码 运行效果 六 图像阈值 代码 实验结果 存疑
  • 《Spring cloud Alibaba全解》阅读笔记

    技术 2022 05 Spring cloud Alibaba全解 创建时间 2022 5 22 15 21 更新时间 2023 2 17 8 52 作者 HelloXF 第一章 微服务的介绍 1 1系统架构的演变 1 1 1单体应用架构
  • ospf综合实验v1

    实验题目 搭建拓扑图 部分配置 r3r4r5r6r7之间的mgre r3中心站点的配置 r5的配置 r6r7的配置以此类推 于r5相似 各个区域之间的ospf 解释 为了方便对不规则区域之间的联络 我采用多进程双点双向重发布来实现其中区域1
  • Swift 之 继承、构造过程与析构过程

    Swift 继承 继承我们可以理解为一个类获取了另外一个类的方法和属性 当一个类继承其它类时 继承类叫子类 被继承类叫超类 或父类 在 Swift 中 类可以调用和访问超类的方法 属性和下标脚本 并且可以重写它们 我们也可以为类中继承来的属
  • STC15单片机实战项目 - PCB打样

    PCB打样 一 设计文件链接 1 PADS9 5格式PCB设计文件 gt Project STC15 V1 0 pcb 2 AltiumDesigner格式PCB设计文件 gt Project STC15 V1 0 PcbDoc 二 获取开
  • Vue 实现商品分类、列表、详情、购物车、搜索(vant)

    商品分类Classify
  • MySQL 1130错误原因及解决方案

    相信大家在使用MySQL数据库的过程中肯定都遇到过报错 其中MySQl 1130就是一个我们在远程登陆是经常遇到的错误 本文树懒君就给大家介绍一下MySQL 1130报错的原因以及解决的思路 并给大家三种具体的解决方案供大家参考 错误概述
  • 简单理解DLL文件是什么,如何使用?

    DLL文件是什么 DLL文件是动态链接库的缩写 可以在多种程序中使用 如何编写DLL文件 可以使用C C VB之类的语言编写 其中包含了一个或者多个函数 以供其他程序调用 例如 如何在Python中使用DLL文件 使用ctypes模块 在P
  • 虚幻引擎(UE4)场景漫游交互项目制作

    1 模型导出 3dmax模型准备 导出FBX格式 导入UE4引擎等 2 模型导入UE4 项目创建 导入注意 模型查看 3 场景搭建 创建关卡 模型材质 搭建场景 4 地形制作 创建地形 资源导入 地形制作 5 场景漫游 碰撞 第一人称控制
  • 6. 整合Spring

    6 整合Spring MyBatis Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中 它将允许 MyBatis 参与到 Spring 的事务管理之中 创建映射器 mapper 和 SqlSession 并注入到
  • Oracle RAC原理

    单点数据库VS RAC 单节点数据库 如果实例宕机了 如果一个业务链接在实例上面 那么这个业务就中断了 这个时候系统就不具有可用性了 那么这个时候单节点的可用性是很差的 对于RAC来说 和单实例一样 还是一份数据文件 都是相同的存储上面放着
  • C#连接SQLServer数据库并通过Button实现增删改查

    C 连接SQLServer数据库并通过Button实现增删改查 数据库课程实验 要求写程序实现数据库的增删改查 不限语言类型 前面实验已经使用VC实现了对数据内容的读取 今天想用C 实现 本文主要写了我过程中遇到的几个问题以及我的解决方法
  • 【限时免费】20天拿下华为OD笔试之【BFS】2023B-最长广播响应-200分【闭着眼睛学数理化】全网注释最详细分类最全的华为OD真题题解

    BFS 2023B 最长广播响应 题目描述与示例 题目描述 某通信网络中有N个网络节点 用1到N进行标识 网络中的节点互联互通 且节点之间的消息传递有时延 相连节点的时延均为一个时间单位 现给定网络节点的连接关系link i u v 其中u
  • rippled节点配置文件详解

    文章目录 一 简介 二 配置文件示例 三 配置项说明 server port rpc admin local port peer port ws admin local node size node db ledger history da