跳到主要内容

epic-server.toml

节点配置文件的完整参考。所示默认值为全新mainnet安装时写入的值。

每个键的修改均需重启才能生效。该文件在启动时读取一次,不支持重新加载信号。

文件位置

节点按以下顺序查找配置:

  1. --config_file <path>(若已指定)。显式路径处文件缺失为致命错误。
  2. 当前工作目录中的./epic-server.toml
  3. ~/.epic/<network>/epic-server.toml,若不存在则以默认值创建。

<network>mainfloouserauto

epic server config将一个全新的epic-server.toml写入当前目录,其路径指向该目录。若文件已存在则拒绝覆盖。

加固的起始配置

生成的文件包含所有键及其默认值。最小化加固配置与默认值的差异体现在以下键上:

epic-server.toml
[server]
# 仅回环地址。如需从其他主机访问,请在前端配置带身份验证的代理。
api_http_addr = "127.0.0.1:3413"
api_secret_path = "/home/you/.epic/main/.api_secret"

# 可选,需手动创建:节点不会自动写入此文件。
foreign_api_secret_path = "/home/you/.epic/main/.foreign_api_secret"

# 保留完整区块历史,不进行剪枝。
archive_mode = true

# 仅在需要自行验证所有历史工作量证明时,才将这些选项设为 false。
# skip_pow_validation = true
# disable_checkpoints = true

[server.p2p_config]
host = "0.0.0.0"
port = 3414

[logging]
log_to_file = true
file_log_level = "Info"

有关foreign secret,请参阅身份验证与TLS;有关入门指引,请参阅节点与钱包设置

[server]

Key类型Default用途
db_rootstring~/.epic/main/chain_data存放链和对等节点数据库的目录
api_http_addrhost:port127.0.0.1:3413HTTP API的监听地址
api_secret_pathstring,可选~/.epic/main/.api_secret/v1/v2/owner的基本身份验证机密。注释掉则不启用
foreign_api_secret_pathstring,可选.foreign_api_secret,相对路径/v2/foreign的Basic auth机密。需自行创建该文件。参见API身份验证
foundation_pathstring/usr/share/epic/foundation.json,Windows上为.\foundation.json预生成的基金会coinbase数据
tls_certificate_filestring,可选unsetPEM证书链。设置后API切换为HTTPS
tls_certificate_keystring,可选unsetPEM私钥。设置证书时必填
chain_typeenumMainnetMainnet, Floonet, UserTesting, AutomatedTesting
chain_validation_modeenumDisabledEveryBlock在每个区块后执行完整链验证
archive_modebool,可选falsetrue保留完整区块历史而不进行裁剪
skip_pow_validationbool,可选true同步时跳过历史区块的工作量证明验证
disable_checkpointsbool,可选true允许跳过检查点范围之外的工作量证明。仅当skip_pow_validation为true时生效
skip_sync_waitbool,可选false跳过启动时的同步等待
header_sync_timeout10等待确认更多区块头存在的超时时间。零或负值将变为10
run_tuibool,可选false运行终端界面。启用后将禁用stdout日志
only_randomxbool,可选false在测试网络上强制执行仅RandomX区块策略。参见区块策略
no_progpowbool,可选false在测试网络上从区块策略中移除ProgPow。参见区块策略
run_test_minerbool,可选false内置矿工,仅支持Cuckoo。挖矿链需要Stratum和外部矿工。参见运行本地网络
test_miner_wallet_urlstring,可选unset接收测试矿工coinbase的钱包监听器。未设置时回退到http://127.0.0.1:13415

两个同步验证密钥的默认值均为true,可加快初始同步速度。在距链顶端1,000个区块以内,无论这两个密钥如何设置,工作量证明均会被完整验证。每个密钥跳过的内容,请参阅节点与钱包设置

[server.p2p_config]

Key类型Default用途
hostIP0.0.0.0监听的网络接口。127.0.0.1限制为本地
portu163414,floonet为13414,usernet为23414P2P监听端口
seeding_typeenumDNSSeed,usernet上为NoneNoneListDNSSeedProgrammaticDNSSeed在mainnet上查询node.epiccash.com:3414,在floonet上查询floonet.epiccash.com:13414。参见网络了解何时使用List
seedsip:port数组,可选代码中未设置,生成文件中有四个地址使用seeding_type = "List"时启用。若设置了该类型但列表为空,则启动失败
capabilitiesu32标志位31节点对外公告的能力。见下方位表
peer_min_preferred_outbound_countu32,可选4节点持续尝试连接的出站对等节点,以及同步状态离开AwaitingPeers前必须达到的数量。不在生成的文件中。在私有链上设置0,否则Stratum服务器将拒绝工作
peers_allow数组,可选unset仅连接这些对等节点
peers_deny数组,可选unset从不连接这些对等节点
peers_preferred数组,可选unset优先对等节点,主动拨号连接
ban_window秒,可选10800被封禁的对等节点保持封禁状态的时长
peer_max_inbound_countu32,可选128最大入站对等节点数
peer_max_outbound_countu32,可选128最大出站对等节点数
peer_listener_buffer_countu32,可选8入站限制之上的余量,用于辅助引导启动
dandelion_peerip:port,可选unset固定的Dandelion中继
my_onion_addrstring,可选unset本节点自身的洋葱地址

生成文件写入的四个地址(config/src/comments.rs:272):

epic-server.toml, p2p seeds
seeds = ["95.217.197.180:3414","5.161.127.56:3414","5.75.242.4:3414","5.78.71.29:3414"]

能力位:

含义
HEADER_HIST1提供区块头历史
TXHASHSET_HIST2提供txhashset历史
PEER_LIST4提供对等节点列表
TX_KERNEL_HASH8提供内核(kernel)哈希
HEADER_FASTSYNC16支持快速区块头同步
ONIONSTEM32支持通过洋葱路由传输stem交易

默认值31为除ONIONSTEM之外的所有位。

[server.pool_config]

Key类型Default用途
accept_fee_baseu64100000内存池接受交易的每单位交易权重最低手续费
max_pool_sizeusize50000主池中的最大交易数
max_stempool_sizeusize50000stempool中的最大交易数
mineable_max_weightusize40000,usernet及自动化测试网络上为150矿工打包进区块的最大总权重

[server.dandelion_config]

Key类型Default用途
epoch_secsu16600一个Dandelion epoch的长度
embargo_secsu16180若在此时间到期前未见到某笔茎传播交易,则将其蒲公英广播
aggregation_secsu1630中继前的聚合窗口
stem_probabilityu8 percent90一个epoch中茎模式的概率
always_stem_our_txsbooltrue始终对通过自身API提交的交易进行茎传播

[server.stratum_mining_config]

Key类型Default用途
enable_stratum_serverbool,可选所有网络上均为false运行Stratum服务器。生成的配置文件无论针对哪个网络,均携带false
stratum_server_addrstring,可选127.0.0.1:3416Stratum监听地址
attempt_time_per_block15重新构建区块头前挖矿的持续时间
cuckatoo_minimum_share_difficultyu643Cuckatoo工作节点的最低份额难度
randomx_minimum_share_difficultyu644000,usertesting上为1RandomX工作节点的最低份额难度
progpow_minimum_share_difficultyu64200000ProgPow工作节点的最低份额难度
wallet_listener_urlstringhttp://127.0.0.1:3415接收coinbase奖励的钱包监听器
burn_rewardboolfalse丢弃区块奖励而非支付给钱包。仅用于测试

保留[server.stratum_mining_config]部分并设置enable_stratum_server = false以禁用挖矿。有关协议详情,请参阅Stratum

[server.webhook_config]

Key类型Default用途
tx_received_urlstring,可选unset从对等节点收到交易时的POST目标
header_received_urlstring,可选unset收到区块头时的POST目标
block_received_urlstring,可选unset收到区块时的POST目标
block_accepted_urlstring,可选unset本节点接受区块(包括重组)时的POST目标
nthreadsu164Webhook 投递的工作线程数
timeout10HTTP请求超时

[server.tor]

Key类型Default用途
socks_proxy_addrstring127.0.0.1:9050SOCKS代理地址,写入生成的torrc
send_config_dirstring.torrcdata/及洋葱服务地址的目录

洋葱茎路由还需要capabilities包含ONIONSTEM位(值为32),而默认值31不包含该位。

[logging]

Key类型Default用途
log_to_stdoutbooltrue输出到标准输出
stdout_log_levelenumInfoError, Warning, Info, Debug, Trace
log_to_fileboolfalse输出到文件
file_log_levelenumDebug文件日志级别
log_file_pathstring~/.epic/main/epic-server.log日志文件路径
log_file_appendbooltrue每次运行时追加而非截断
log_max_sizebytes,可选16777216超过此大小时轮转。注释掉以禁用轮转
log_max_filesu32,可选32保留的轮转文件数量
tui_runningbool,可选unset启动时从run_tui设置

全新节点不写入日志文件,因为log_to_filefalse,而log_file_path已填充。设置log_to_file = true可将日志写入磁盘。

源码

这些值来自配置结构体及其默认值:

下一步