跳到主要内容

epic-server.toml

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

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

文件位置​

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

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

<network>为main、floo、user或auto。

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

# skip_pow_validation 仅在最新检查点之前生效。将其设为 false 可自行验证所有
# 历史工作量证明。
# skip_pow_validation = true
# disable_checkpoints = false

[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的Basic auth机密。注释掉此项不会开放这两个接口:若无机密,两者对所有调用均返回401,GET /v1/version和一个普通get_status除外。参见节点凭据
foreign_api_secret_pathstring,可选.foreign_api_secret,相对路径/v2/foreign的Basic auth机密。需自行创建该文件。节点设置此项后无法为epic-wallet 4.1.0提供服务。参见API身份验证
foundation_pathstring,可选/usr/share/epic/foundation.json,Windows上为.\foundation.json预生成的foundation 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,可选false在测试网络上,对链顶端以下超过1,000个区块的部分,将跳过范围延伸至最新检查点之后。仅当skip_pow_validation为true时生效。在mainnet上忽略
skip_sync_waitbool,可选false跳过启动时的同步等待
header_sync_timeout秒10等待确认更多区块头存在的超时时间。零或负值将变为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

在mainnet上,只有skip_pow_validation有效。保持true时,工作量证明对最后一个检查点(区块高度3,710,000)之前的区块跳过验证,对其上方的每个区块进行完整验证。disable_checkpoints仅在测试网络上扩大该范围。各选项跳过的内容详见节点与钱包设置。

[server.p2p_config]​

Key类型Default用途
hostIP0.0.0.0监听的网络接口。127.0.0.1限制为本地访问
portu163414,floonet为13414,usernet为23414P2P监听端口
seeding_typeenumDNSSeed,usernet上为NoneNone、List、DNSSeed、Programmatic。DNSSeed在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入站限制之上的余量,用于辅助引导。同时限制待处理的入站握手数量,每个IP地址一个
dandelion_peerip:port,可选unset固定的Dandelion中继
my_onion_addrstring,可选unset本节点自身的洋葱地址

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

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_block秒15重新构建区块头前挖矿的持续时间
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 投递的工作线程数
timeout秒10HTTP请求超时

[server.tor]​

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

洋葱茎路由还需要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_file为false而log_file_path已填充。设置log_to_file = true可将日志写入磁盘。

源码​

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

下一步​