跳到主要内容

配置节点

Conflux节点提供了丰富的配置选项,允许通过修改这些设置来调整节点行为。 本文档提供了节点配置选项及其含义的概述。

如何配置节点

配置文件

Conflux节点的配置文件为hydra.toml,默认位于节点程序下载的run目录中。 通过修改此文件中的配置选项,您可以调整节点的行为。

命令行参数

节点也可以使用命令行参数进行配置,命令行参数的优先级高于配置文件。 例如,可以使用--jsonrpc-http-port参数指定节点的JSON-RPC端口。

./conflux --jsonrpc-http-port 12537

可以通过运行./conflux -h查看参数的详细列表。

配置文件选项简介

节点类型

节点类型,有三个可能的值:full(完整)archive(归档)light(轻)。 默认值为full

node_type="full"

链ID

链ID,用于识别Conflux网络。 核心空间(Core Space)主网的链ID为1029,eSpace主网的链ID为1030。 测试网的链ID分别为1和71。

chain_id=1029
evm_chain_id=1030

通常,除非您想要设置本地测试网络,否则无需修改此配置选项。

Core Space RPC

Core Space RPC相关选项。

jsonrpc_http_port=12537 # JSON-RPC HTTP端口
jsonrpc_ws_port=12535 # JSON-RPC WebSocket端口
public_rpc_apis='safe' # JSON-RPC API命名空间列表,多个命名空间用逗号分隔,使用"all"表示启用所有API。

eSpace RPC

eSpace RPC相关选项。

jsonrpc_http_eth_port=8545
jsonrpc_ws_eth_port=8546
public_evm_rpc_apis = "evm"

数据索引

与交易(tx)和区块相关的RPC接口默认不支持查询历史数据。 如果需要查询历史数据,必须启用数据索引。

persist_block_number_index=true
persist_tx_index=true

交易跟踪

交易跟踪相关选项。

executive_trace=true

如果想要启用此配置,需要重新同步数据。

全状态(fullstate)

全状态模式支持查询区块链的历史状态。

要为单个空间启用全状态模式,可以使用single_mpt_space配置选项指定空间名称。

single_mpt_space = "evm" # 核心空间使用"native"

启用双空间的全状态模式。

enable_single_mpt_storage=true

cfx_getLogs/eth_getLogs相关选项

getLogs RPC方法对节点造成了显著的性能负担。 过度查询此方法的数据可能导致节点负载高。 为了缓解这一点,调整以下配置选项以限制每个getLogs请求请求的数据量。

get_logs_filter_max_limit=1000
get_logs_epoch_batch_size=1000
get_logs_filter_max_epoch_range=1000
get_logs_filter_max_block_number_range=2000

日志

与节点日志相关的配置选项。

log_conf="log.yaml" # 日志配置文件
log_file="conflux.log"
log_level="info" # 值应为 "error"、"warn"、"info"、"debug"、"trace"、"off" 其中之一

PoW挖矿

与工作量证明(PoW)挖矿相关的配置选项。

mining_author="cfx:aarc9abycue0hhzgyrr53m6cxedgccrmmyybjgh4xg"
stratum_listen_address="127.0.0.1"
stratum_port=32525
stratum_secret="aaaa"
pow_problem_window_size=1

交易池

与交易池相关的配置选项。

tx_pool_size=50000 # 交易池大小
tx_pool_min_native_tx_gas_price=1_000_000_000 # 核心空间交易最低燃气价格
tx_pool_min_eth_tx_gas_price=20_000_000_000 # eSpace交易最低燃气价格

存储目录

区块链数据存储目录配置:

conflux_data_dir="./blockchain_data"
block_db_dir="./blockchain_data/blockchain_db"
netconf_dir="./blockchain_data/net_config"

pos_key password

Password for encrypting the POS private key, used to secure the POS private key. By default, this password is set interactively through the command line during the first node startup. You can set this password through the configuration file to avoid command line interaction.

dev_pos_private_key_encryption_password="aaaa"

pos config file

Below are the default paths for the POS configuration file, initial nodes file, and private key file. You can modify these paths to customize the POS configuration.

# PoS config file path
pos_config_path=./pos_config/pos_config.yaml
# PoS initial nodes file path
pos_initial_nodes_path=./pos_config/initial_nodes.json
# PoS account private key file path
pos_private_key_path=./pos_config/pos_key

The release package contains a default PoS configuration file, which can be found in the pos_config directory. The pos_key file will be generated automatically after the first node startup.

storage optimization

Storage optimization related options.

# Use isolated database for MPT table
# Setting it to true will reduce the disk usage
# Was introduced in v2.3.4 https://github.com/Conflux-Chain/conflux-rust/releases/tag/v2.3.4
use_isolated_db_for_mpt_table=true

配置文件示例

要获得更全面的配置文件示例,您可以参考hydra.toml

常见问题解答

我想运行一个Core Space RPC节点,我需要配置哪些参数?

node_type="archive"
jsonrpc_http_port=12537
jsonrpc_ws_port=12535
public_rpc_apis='safe'
persist_block_number_index=true
persist_tx_index=true

我想运行一个eSpace RPC节点,我需要配置哪些参数?

node_type="archive"
jsonrpc_http_eth_port=8545
jsonrpc_ws_eth_port=8546
public_evm_rpc_apis = "evm"
persist_block_number_index=true
persist_tx_index=true

我的节点运行了一段时间后,我想启用executive_trace配置。 我需要重新同步数据吗?

是的,您需要重新同步数据。

官方提供的归档节点快照数据是否包含trace数据?

是的,包含。

修改配置后,我需要清除数据然后重启节点吗?

根据情况而定,有时需要,有时不需要。 如果配置涉及数据存储或数据索引,配置更改时需要重启节点,例如:

  • persist_tx_index
  • executive_trace
  • persist_block_number_index

其他一般不需要重启。