rippled.cfg配置示例:
#端口配置列表
[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
端口配置列表
[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地址可以请求
[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 = 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]
medium
node_size 用于设置和检索历史数据的客户端使用,应该根据服务器目前的可用内存进行设置,以下是建议设置的参数说明
可用内存 | node_size | 备注 |
---|---|---|
< 8GB | tiny | 不建议用于测试或生产服务器。如果在rippled.cfg配置文件中未指定值,则此参数为默认值 |
8 GB | small | 建议用于测试服务器 |
16 GB | medium | rippled-example.cfg文件使用此值(官方配置文件) |
32 GB | huge | 推荐用于生产服务器 |
注:
Terminating thread rippled: main: unhandled N5beast14BadLexicalCastE 'std::bad_cast'
参考文献:https://xrpl.org/capacity-planning.html#node-size
[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,就意味着可手动删除
注:节点数据库类型
[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_delete和advisory_delete设置。
参考文献:
[ledger_history]
full
指定本节点是否为保存全部历史,如果是,则修改为full,默认为256,意为保存最近256个区块。
注意:如果使用了online_delete,此值必须小于或等于online_delete !!!
注:xrp并不需要完整的历史记录节点也可参与网络,验证交易或了解网络的当前状态。完整历史记录仅对了解过去发生的交易的结果或过去给定时间的分类帐状态有用。
参考文献:
[database_path]
/opt/docker/ripple/data
此配置为要存储其他数据库数据的位置。(这包括带有配置数据的SQLite数据库,通常在[node_db]path字段上方一层。
参考文献:
[debug_logfile]
/opt/docker/ripple/logs/debug.log
ripple日志文件保存路径
[sntp_servers]
time.windows.com
time.apple.com
time.nist.gov
pool.ntp.org
时间服务器,用于不同节点单时间同步,以上默认配置即可
[validators_file]
validators.txt
包含受信任的验证者密钥或验证者列表发布者的文件,此文件应与rippled.cfg配置文件在同一级目录中
[rpc_startup]
{ "command": "log_level", "severity": "warning" }
记录本地程序运行产生的日志级别,默认为:debug,此配置可减少磁盘空间以及磁盘IO使用率,若需要查看ripple故障原因,可设置更加详细的日志级别
日志级别分别为: trace(跟踪), debug(调试), info(信息), warning(警告), error(错误), fatal (严重)
[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 配置文件中添加以下配置:
#设置为测试网
[ips]
s.altnet.rippletest.net 51235
# 或设置为设置为开发网,根据个人节点类型进行选择
[ips]
s.devnet.rippletest.net 51235
[features]
NegativeUNL
features:要强制启用某个功能,[features]请在rippled.cfg文件中添加一节。在本节中,添加要启用的功能的简称,每行一个
NegativeUNL:此功能在rippled1.6.0版本中,可以在测试网络中使用,它提高了网络在某些类型的部分中断期间宣布结果为最终结果的能力
参考文献:
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
参考文献:
以上就是ripple网络部署节点时的配置文件详解,因为ripple官方网站中的配置参数解释有时会令人感到晦涩难懂,所以小帅杰这次也是花了非常多的心思来整理这篇文章,以便让我们在部署rippled节点时,不再担心因为配置文件的问题导致部署报错。