config: don't ignore the --commit-fee option.

We did not take the value of --commit-fee into account : this removes
the unused option from lightningd and instead registers it in bcli,
where we set the actual feerate of commitment transactions. This also
corrects the documentation.

Changelog-Fixed: config: we now take the --commit-fee parameter into account.
Signed-off-by: Antoine Poinsot <darosior@protonmail.com>
This commit is contained in:
Antoine Poinsot 2020-05-17 16:53:37 +02:00 committed by Rusty Russell
parent 47c701cbe6
commit f598caa60d
6 changed files with 14 additions and 18 deletions

View File

@ -332,8 +332,8 @@ opens a channel before the channel is usable\.
\fBcommit-fee\fR=\fIPERCENT\fR
The percentage of \fIestimatesmartfee 2\fR to use for the bitcoin
transaction which funds a channel: can be greater than 100\.
The percentage of \fIestimatesmartfee 2/CONSERVATIVE\fR to use for the commitment
transactions: default is 100\.
\fBcommit-fee-min\fR=\fIPERCENT\fR

View File

@ -270,8 +270,8 @@ Confirmations required for the funding transaction when the other side
opens a channel before the channel is usable.
**commit-fee**=*PERCENT*
The percentage of *estimatesmartfee 2* to use for the bitcoin
transaction which funds a channel: can be greater than 100.
The percentage of *estimatesmartfee 2/CONSERVATIVE* to use for the commitment
transactions: default is 100.
**commit-fee-min**=*PERCENT*
**commit-fee-max**=*PERCENT*

View File

@ -32,9 +32,6 @@ struct config {
/* Minimum percent of fee rate we'll accept. */
u32 commitment_fee_min_percent;
/* Percent of fee rate we'll use. */
u32 commitment_fee_percent;
/* Minimum CLTV to subtract from incoming HTLCs to outgoing */
u32 cltv_expiry_delta;

View File

@ -571,9 +571,6 @@ static const struct config testnet_config = {
.commitment_fee_min_percent = 0,
.commitment_fee_max_percent = 0,
/* We offer to pay 5 times 2-block fee */
.commitment_fee_percent = 500,
/* Testnet blockspace is free. */
.max_concurrent_htlcs = 483,
@ -619,9 +616,6 @@ static const struct config mainnet_config = {
.commitment_fee_min_percent = 200,
.commitment_fee_max_percent = 2000,
/* We offer to pay 5 times 2-block fee */
.commitment_fee_percent = 500,
/* While up to 483 htlcs are possible we do 30 by default (as eclair does) to save blockspace */
.max_concurrent_htlcs = 30,
@ -820,9 +814,6 @@ static void register_opts(struct lightningd *ld)
opt_register_arg("--commit-fee-max=<percent>", opt_set_u32, opt_show_u32,
&ld->config.commitment_fee_max_percent,
"Maximum percentage of fee to accept for commitment (0 for unlimited)");
opt_register_arg("--commit-fee=<percent>", opt_set_u32, opt_show_u32,
&ld->config.commitment_fee_percent,
"Percentage of fee to request for their commitment");
opt_register_arg("--cltv-delta", opt_set_u32, opt_show_u32,
&ld->config.cltv_expiry_delta,
"Number of blocks for cltv_expiry_delta");

View File

@ -63,6 +63,9 @@ struct bitcoind {
/* The factor to time the urgent feerate by to get the maximum
* acceptable feerate. */
u32 max_fee_multiplier;
/* Percent of CONSERVATIVE/2 feerate we'll use for commitment txs. */
u64 commit_fee_percent;
};
static struct bitcoind *bitcoind;
@ -531,7 +534,8 @@ static struct command_result *estimatefees_final_step(struct bitcoin_cli *bcli)
response = jsonrpc_stream_success(bcli->cmd);
json_add_u64(response, "opening", stash->normal);
json_add_u64(response, "mutual_close", stash->normal);
json_add_u64(response, "unilateral_close", stash->very_urgent);
json_add_u64(response, "unilateral_close",
stash->very_urgent * bitcoind->commit_fee_percent / 100);
json_add_u64(response, "delayed_to_us", stash->normal);
json_add_u64(response, "htlc_resolution", stash->urgent);
json_add_u64(response, "penalty", stash->urgent);
@ -947,6 +951,7 @@ int main(int argc, char *argv[])
bitcoind->rpcconnect = NULL;
bitcoind->rpcport = NULL;
bitcoind->max_fee_multiplier = 10;
bitcoind->commit_fee_percent = 100;
plugin_main(argv, init, PLUGIN_STATIC, NULL, commands, ARRAY_SIZE(commands),
NULL, 0, NULL, 0,
@ -979,6 +984,10 @@ int main(int argc, char *argv[])
"how long to keep retrying to contact bitcoind"
" before fatally exiting",
u64_option, &bitcoind->retry_timeout),
plugin_option("commit-fee",
"string",
"Percentage of fee to request for their commitment",
u64_option, &bitcoind->commit_fee_percent),
#if DEVELOPER
plugin_option("dev-max-fee-multiplier",
"string",

View File

@ -10,7 +10,6 @@ const struct config test_config = {
.anchor_confirms = 1,
.commitment_fee_min_percent = 0,
.commitment_fee_max_percent = 0,
.commitment_fee_percent = 500,
.cltv_expiry_delta = 6,
.cltv_final = 10,
.commit_time_ms = 10,