本文档介绍了 Eclair 闪电网络节点的配置方法,包括配置文件的位置和修改、常用配置项的说明、如何自定义 features、如何自定义 feerate tolerance 以及一些配置示例,例如基本配置、regtest 模式、公有节点等。
eclair 的配置文件名为 eclair.conf
。它位于数据目录中,默认情况下为 ~/.eclair
(在 Windows 上为 C:\Users\YOUR_NAME\.eclair
)。请注意,eclair 本身不会创建配置文件:如果你想更改 eclair 的配置,你需要先实际创建配置文件。编码必须是 UTF-8。
## 这是默认的数据目录,它将在 eclair 首次启动时创建
mkdir ~/.eclair
vi ~/.eclair/eclair.conf
选项设置为键值对,并遵循 HOCON 语法。 值不需要用引号括起来,除非它们包含特殊字符。
你可以使用 eclair.datadir
参数更改数据目录:
eclair-node.sh -Declair.datadir="/path/to/custom/eclair/data/folder"
请注意,HOCON 允许文件包含其他文件。这允许你将配置文件拆分为几个逻辑文件,以便于管理。例如,你可以定义一个包含与路由配置相关的参数的 routing.conf
文件,并从 eclair.conf
中包含它。
以下是一些最常见的选项:
名称 | 描述 | 默认值 |
---|---|---|
eclair.chain | 要使用哪个区块链:regtest、testnet、signet 或 mainnet | mainnet |
eclair.server.port | Lightning TCP 端口 | 9735 |
eclair.api.port | API HTTP 端口 | 8080 |
eclair.api.enabled | 启用 JSON API | false |
eclair.api.password | 保护 API 的密码(BASIC 认证) | 没有默认值 |
eclair.bitcoind.auth | Bitcoin Core RPC 认证方法:password 或 safecookie | password |
eclair.bitcoind.rpcuser | Bitcoin Core RPC 用户 | foo |
eclair.bitcoind.rpcpassword | Bitcoin Core RPC 密码 | bar |
eclair.bitcoind.cookie | Bitcoin Core RPC cookie 路径 | ${user.home}"/.bitcoin/.cookie" |
eclair.bitcoind.zmqblock | Bitcoin Core ZMQ 区块地址 | "tcp://127.0.0.1:29000" |
eclair.bitcoind.zmqtx | Bitcoin Core ZMQ 交易地址 | "tcp://127.0.0.1:29000" |
eclair.bitcoind.wallet | Bitcoin Core 钱包名称 | "" |
eclair.server.public-ips | 节点公共 IP 列表 | 没有默认值 |
→ 有关完整参考,请参见 reference.conf
。还有更多选项!
Eclair 附带一组默认激活的功能,以及一些用户可以激活的实验性或可选功能。 支持的功能列表可以在参考配置中找到。
要启用非默认功能,你只需将以下内容添加到你的 eclair.conf
中:
eclair.features {
official_feature_name = optional|mandatory
}
例如,要激活 option_static_remotekey
:
eclair.features {
option_static_remotekey = optional
}
请注意,你还可以禁用一些默认功能:
eclair.features {
option_support_large_channel = disabled
}
激活非默认功能或禁用默认功能通常是有风险的:在执行此操作之前,请确保你完全理解某个功能(以及发布说明中详细说明的当前实施状态)。
Eclair 支持按对等方配置功能。假设你已连接到 Alice 和 Bob,你可以使用与 Alice 不同的功能集。 在试验非默认功能时,我们建议使用此功能来限定要试验的对等方。
这可以通过 eclair.conf
中的 override-init-features
配置参数来完成:
eclair.features {
var_onion_optin = mandatory
payment_secret = mandatory
option_support_large_channel = optional
option_static_remotekey = optional
option_channel_type = optional
}
eclair.override-init-features = [
{
nodeId = "<alice_node_id>"
features {
option_support_large_channel = disabled
option_static_remotekey = mandatory
option_anchors_zero_fee_htlc_tx = optional
}
},
{
nodeId = "<bob_node_id>"
features {
option_support_large_channel = mandatory
option_static_remotekey = disabled
option_channel_type = mandatory
}
},
]
在此示例中,将与 Alice 激活的功能是:
var_onion_optin = mandatory
payment_secret = mandatory
option_static_remotekey = mandatory
option_anchors_zero_fee_htlc_tx = optional
option_channel_type = optional
将与 Bob 激活的功能是:
var_onion_optin = mandatory
payment_secret = mandatory
option_support_large_channel = mandatory
option_channel_type = mandatory
为了保护你的通道资金免受攻击,你的 eclair 节点会保持对链上费率的最新估计(基于你的 Bitcoin 节点的估计)。 当该估计值与你的对等方估计值不同时,eclair 可能会自动关闭有风险的通道,以保证你的资金安全。
由于预测未来是困难且不完美的,因此 eclair 对偏差有一定的容差,该容差由以下参数控制:
on-chain-fees {
feerate-tolerance {
ratio-low = 0.5 // 将允许低至我们本地费率一半的远程费率
ratio-high = 10.0 // 将允许高达我们本地费率 10 倍的远程费率
}
}
除非你真的知道自己在做什么,否则我们不建议更改这些值。 但是,如果你与某些特定的对等方存在信任关系,并且你知道他们永远不会试图欺骗你,则可以专门为这些对等方增加容差。 另一方面,如果你与你怀疑可能试图攻击你的对等方存在通道,则可以专门为这些对等方降低容差。
on-chain-fees {
override-feerate-tolerance = [
{
nodeid = "<nodeId of a trusted peer>"
feerate-tolerance {
ratio-low = 0.1 // 将允许低至我们本地费率 10% 的远程费率
ratio-high = 15.0 // 将允许高达我们本地费率 15 倍的远程费率
}
},
{
nodeid = "<nodeId of a peer we don't trust at all>"
feerate-tolerance {
// 将只允许我们本地费率的 75% 到 200% 之间的远程费率
ratio-low = 0.75
ratio-high = 2.0
}
}
]
}
这是一个常见的配置文件,它覆盖了默认服务器端口、节点标签和节点颜色,并启用了 API(需要使用 eclair-cli
与你的节点交互):
## 服务器端口
eclair.server.port=9737
## 节点标签
eclair.node-alias="我的节点"
## rgb 节点颜色
eclair.node-color=49daaa
eclair.api.enabled=true
## 你应该在这里设置一个真实的密码。
eclair.api.password=foobar
## 确保无法从互联网访问此端口!
eclair.api.port=8080
要使用 Bitcoin 的 regtest
模式运行,你需要设置 chain
引用:
eclair.chain = "regtest"
你通常还需要禁用费率不匹配
要使你的节点公开,请添加一个公共 IP:
eclair.server.public-ips=[x.x.x.x]
你还需要确保可以从外部访问该节点(端口转发、防火墙等)。
如果你在同一台计算机上运行 Eclair 和 Bitcoin,则可以使用另一种方法来处理 Bitcoin Core RPC 身份验证。
是使用 safecookie。要使用 safecookie 身份验证,你需要从你的 bitcoin.conf
中删除 rpcpassword=***
和 rpcuser=***
,并将以下内容添加到 eclair.conf
中:
eclair.bitcoind.auth = "safecookie"
eclair.bitcoind.cookie = "COOKIE 文件的路径"
如果 Bitcoin 在主网上运行并使用默认数据目录,则可能不需要设置 eclair.bitcoind.cookie
。
Eclair 将需要对 Bitcoin Core 的 cookie 文件具有读取权限。 你可以使用同一用户运行 Eclair 和 Bitcoin Core,也可以授予 Eclair 用户读取权限。
以下配置通过定义一组 experiments
并为每个实验分配一定百分比的流量来启用 AB 测试。control
实验不覆盖任何参数,它使用默认值。
请注意,所有实验的百分比总和为 100%。
eclair {
router {
path-finding {
experiments {
control = ${eclair.router.path-finding.default} {
percentage = 50
}
// 替代路由启发式(替换比率)
test-failure-cost = ${eclair.router.path-finding.default} {
use-ratios = false
locked-funds-risk = 1e-8 // 每个区块锁定的每个 msat 的 msat。它应该是你预期的每区块利率乘以资金保持锁定状态的可能性。
// 1e-8 对应于每年约 5% 的利率(每区块 1e-6)以及通道将失败并且我们的资金将被锁定的 1% 的概率。
// 失败支付的虚拟费用
// 对应于你愿意支付多少费用以减少一次失败的支付尝试
failure-cost {
fee-base-msat = 2000
fee-proportional-millionths = 500
}
percentage = 10
}
// 仅优化费用:
test-fees-only = ${eclair.router.path-finding.default} {
ratios {
base = 1
cltv = 0
channel-age = 0
channel-capacity = 0
}
hop-cost {
fee-base-msat = 0
fee-proportional-millionths = 0
}
percentage = 10
}
// 优化更短路径:
test-short-paths = ${eclair.router.path-finding.default} {
ratios {
base = 1
cltv = 0
channel-age = 0
channel-capacity = 0
}
hop-cost {
// 高跳成本会强烈惩罚更长的路径
fee-base-msat = 10000
fee-proportional-millionths = 10000
}
percentage = 10
}
// 优化成功支付:
test-pay-safe = ${eclair.router.path-finding.default} {
ratios {
base = 0
cltv = 0
channel-age = 0.5 // 旧通道的失败风险应该更小
channel-capacity = 0.5 // 高容量通道更有可能具有足够的流动性来中继我们的支付
}
hop-cost {
// 更少的跳数意味着更少的失败机会
fee-base-msat = 1000
fee-proportional-millionths = 1000
}
percentage = 10
}
// 优化快速支付:
test-pay-fast = ${eclair.router.path-finding.default} {
ratios {
base = 0.2
cltv = 0.5 // 如果失败,我们希望我们的资金尽快返回
channel-age = 0.3 // 较旧的通道更可能顺利运行
channel-capacity = 0
}
hop-cost {
// 更短的路径应该更快
fee-base-msat = 10000
fee-proportional-millionths = 10000
}
percentage = 10
}
}
}
}
}
- 原文链接: github.com/ACINQ/eclair/...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!