core-lightning/lightningd
Rusty Russell 6a16a6fe25 closingd: fix case where we we can pass under min-relay-fee for mutual close.
In spec commit 498f104fd399488c77f449d05cb21c0b604636a2 (August 2021),
Bastien Teinturier removed the requirement that the mutual close fee be
less than or equal the final commitment tx.

We adopted that change in v0.10.2, but we made sure to never offer a fee
under the final commitment tx's fee, so we didn't break older nodes.

However, the closing tx can actually be larger than the final commitment tx!
The final commit tx has a 22-byte P2WKH output and a 34-byte P2WSH output;
the closing can have two 34-byte outputs, making it 4*8 = 32 Sipa heavier.
Previously this would only happen if both sides asked for P2WSH outputs,
but now it happens with P2TR, which we now do.

The result is that we create a tx which is below the finally commitment
tx fee, and may be below minrelayfee (as it was in regtest).

So it's time to remove that backwards-compatibility hack.

Changelog-Fixed: Protocol: We may propose mutual close transaction which has a slightly higher fee than the final commitment tx (depending on the outputs, e.g. two taproot outputs).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Fixes: #6545
2023-08-12 13:17:46 +09:30
..
test renepay: make pay_plugin a tal object. 2023-08-12 09:41:24 +09:30
.gitignore Ignore all the deamon inside the git history 2021-10-28 15:51:38 +02:00
anchorspend.c Support p2tr deposit addresses 2023-07-11 11:41:15 +09:30
anchorspend.h lightningd: code to spend anchor outputs if we want to boost commitment tx. 2023-06-29 11:28:47 -04:00
bitcoind.c trace: Instrument topology functions 2023-07-28 09:21:42 +09:30
bitcoind.h lightningd/log: clean up nomenclature. 2023-07-19 19:13:57 +09:30
chaintopology.c trace: Instrument topology functions 2023-07-28 09:21:42 +09:30
chaintopology.h lightningd/log: clean up nomenclature. 2023-07-19 19:13:57 +09:30
channel.c channeld: Code to implement splicing 2023-07-31 21:00:22 +09:30
channel.h channeld: Code to implement splicing 2023-07-31 21:00:22 +09:30
channel_control.c splice: Move splice to experimental feature bit 2023-08-10 15:52:53 +09:30
channel_control.h lightningd: setchannel can set ignorefeelimits. 2023-07-22 13:11:08 +09:30
channel_state.h splicing: Add channel state AWAITING_SPLICE 2023-07-31 21:00:22 +09:30
closed_channel.c lightningd: add listclosedchannels command. 2023-03-25 15:28:02 +10:30
closed_channel.h lightningd: add listclosedchannels command. 2023-03-25 15:28:02 +10:30
closing_control.c closingd: fix case where we we can pass under min-relay-fee for mutual close. 2023-08-12 13:17:46 +09:30
closing_control.h lightningd: pass signed tx through to close callback. 2023-08-02 07:09:28 +09:30
coin_mvts.c lightningd: use hash map for peers instead of linked list. 2023-01-21 08:05:31 -06:00
coin_mvts.h coin_mvt: tiny, dont import lightningd header 2022-02-07 13:02:09 +10:30
configs.c lightningd: use fsync not fdatasync. 2023-08-08 09:45:10 +09:30
connect_control.c hsmd: rename "capabilities" flags for hsm fds to "permissions" 2023-08-08 14:31:47 +09:30
connect_control.h lightningd: tell connectd we're shutting down. 2023-02-05 20:40:47 +01:00
datastore.c lightningd: simplify datastore internal db API. 2023-07-25 14:47:12 +09:30
dual_open_control.c hsmd: rename "capabilities" flags for hsm fds to "permissions" 2023-08-08 14:31:47 +09:30
dual_open_control.h dual-fund: keep track of aborted requests, seamlessly restart daemon 2023-07-30 15:20:04 +09:30
feerate.c lightningd: remove deprecated_apis global, put into lightningd. 2023-07-09 16:49:48 +09:30
feerate.h lightningd: clean up feerate handling, deprecate old terms. 2023-04-10 07:31:12 +09:30
gossip_control.c hsmd: rename "capabilities" flags for hsm fds to "permissions" 2023-08-08 14:31:47 +09:30
gossip_control.h gossipd: batch outpoints spent, add block height. 2022-09-24 15:22:27 +09:30
hsm_control.c hsmd: rename "capabilities" flags for hsm fds to "permissions" 2023-08-08 14:31:47 +09:30
hsm_control.h hsmd: rename "capabilities" flags for hsm fds to "permissions" 2023-08-08 14:31:47 +09:30
htlc_end.c lightningd: don't crash if peer manages to spend onchain HTLC after we've abandoned upstream. 2023-07-28 10:18:32 +09:30
htlc_end.h channeld: don't calculate blinding shared secret, let lightningd do it. 2022-10-26 11:29:06 +10:30
htlc_set.c invoice: return error string from invoice_check_payment. 2023-07-26 06:55:48 +09:30
htlc_set.h Makefile: use completely separate spec-derived files for EXPERIMENTAL_FEATURES 2020-09-08 09:42:00 +09:30
invoice.c lightningd: fix bolt11 parsing in preapproveinvocie, sendonion, listsendpays and renepay 2023-08-07 18:46:48 +09:30
invoice.h invoice: return error string from invoice_check_payment. 2023-07-26 06:55:48 +09:30
io_loop_with_timers.c database: pull out database code into a new module 2022-03-05 15:03:34 +10:30
io_loop_with_timers.h lightningd/io_loop_with_timers.c: Move mainloop to its own source file, have chaintopology use it. 2019-05-31 17:57:10 +02:00
jsonrpc.c trace: First draft of API 2023-07-28 09:21:42 +09:30
jsonrpc.h lightningd/log: clean up nomenclature. 2023-07-19 19:13:57 +09:30
lightningd.c channeld: Code to implement splicing 2023-07-31 21:00:22 +09:30
lightningd.h channeld: Code to implement splicing 2023-07-31 21:00:22 +09:30
log.c lightningd: don't return to a default filter level if there are no per-file filters. 2023-08-06 14:37:49 +09:30
log.h lightningd: have opt_log_level take the log_book. 2023-07-19 19:13:57 +09:30
log_status.c lightningd/log: clean up nomenclature. 2023-07-19 19:13:57 +09:30
log_status.h lightningd/log: clean up nomenclature. 2023-07-19 19:13:57 +09:30
Makefile lightningd/common: Added --recover flag to populate HSM_secret with appropriate secret through a valid codex32 secret. 2023-07-31 11:29:59 +09:30
memdump.c lightningd: fix parent reporting for memleaks. 2023-04-10 17:26:47 +09:30
memdump.h lightningd: simplify memleak code. 2022-03-10 09:40:09 +10:30
notification.c plugins: fix shutdown notification to contain object. 2023-07-13 18:59:37 +09:30
notification.h jsonrpc: make error codes an enum. 2022-09-19 10:18:55 +09:30
offer.c lightningd: create small hsm_sync_req() helper for hsm queries. 2023-04-10 17:26:47 +09:30
onchain_control.c hsmd: rename "capabilities" flags for hsm fds to "permissions" 2023-08-08 14:31:47 +09:30
onchain_control.h onchaind: remove 'is_replay' logic 2021-12-28 04:42:42 +10:30
onion_message.c common: update to latest onion-message spec. 2023-01-30 13:24:29 +10:30
onion_message.h common: remove support for pre v0.10.2 onionmessages. 2021-12-01 05:44:28 +10:30
opening_common.c dual-fund: keep track of aborted requests, seamlessly restart daemon 2023-07-30 15:20:04 +09:30
opening_common.h dual-fund: keep track of aborted requests, seamlessly restart daemon 2023-07-30 15:20:04 +09:30
opening_control.c hsmd: rename "capabilities" flags for hsm fds to "permissions" 2023-08-08 14:31:47 +09:30
opening_control.h lightningd: prepare internal json routines for listpeerchannels. 2023-01-13 10:42:42 +10:30
options.c splice: Move splice to experimental feature bit 2023-08-10 15:52:53 +09:30
options.h lightningd: move listconfigs into configs.c 2023-06-20 20:08:25 +09:30
pay.c lightningd: fix bolt11 parsing in preapproveinvocie, sendonion, listsendpays and renepay 2023-08-07 18:46:48 +09:30
pay.h pay: generalize payment_succeeded(). 2023-07-26 06:55:48 +09:30
peer_control.c lightningd: pass signed tx through to close callback. 2023-08-02 07:09:28 +09:30
peer_control.h channeld: Code to implement splicing 2023-07-31 21:00:22 +09:30
peer_fd.c subdaemons: remove gossipd fd from per-peer daemons. 2022-02-08 11:15:52 +10:30
peer_fd.h subdaemons: remove gossipd fd from per-peer daemons. 2022-02-08 11:15:52 +10:30
peer_htlcs.c lightningd: close connection when HTLC addition times out. 2023-08-07 18:45:29 +09:30
peer_htlcs.h lightningd: fix valgrind reported leak when we exit early. 2023-01-17 14:13:45 +10:30
ping.c common: clean up json routine locations. 2022-07-15 12:24:00 -05:00
plugin.c renepay: allow it to die gracefully without crashing lightningd. 2023-08-07 17:13:29 +09:30
plugin.h lightningd/log: clean up nomenclature. 2023-07-19 19:13:57 +09:30
plugin_control.c lightningd: wire plugin command JSON id through to plugin commands. 2022-09-16 12:31:45 +09:30
plugin_control.h plugins: add command field to subcommand output. 2021-06-25 09:49:33 +09:30
plugin_hook.c common/utils: add tal_strdup_or_null helper. 2023-07-26 06:55:48 +09:30
plugin_hook.h plugin: wire JSON id for commands which caused hooks to fire. 2022-09-16 12:31:45 +09:30
routehint.c channeld: Code to implement splicing 2023-07-31 21:00:22 +09:30
routehint.h invoice: overhaul routehints to use topology.listincoming, cleanup. 2021-06-16 10:29:17 +09:30
runes.c lightningd: initialize runes way earlier, and add rune_is_ours helper. 2023-07-25 14:47:12 +09:30
runes.h lightningd: initialize runes way earlier, and add rune_is_ours helper. 2023-07-25 14:47:12 +09:30
signmessage.c lightningd: create small hsm_sync_req() helper for hsm queries. 2023-04-10 17:26:47 +09:30
subd.c dual-fund: keep track of aborted requests, seamlessly restart daemon 2023-07-30 15:20:04 +09:30
subd.h dual-fund: keep track of aborted requests, seamlessly restart daemon 2023-07-30 15:20:04 +09:30
wait.c wait: new command to wait on indexes. 2023-07-23 13:48:37 +09:30
wait.h wait: new command to wait on indexes. 2023-07-23 13:48:37 +09:30
watch.c lightningd/log: clean up nomenclature. 2023-07-19 19:13:57 +09:30
watch.h Remove names of parameters of callbacks which confuse gcc. 2022-08-31 12:18:28 +03:00