core-lightning/lightningd
Christian Decker 3dafddd717 channel: Base the channel forget timeout on the headercount
We were basing the 2016 block timeout on the blockchain height that we had
processed at the time completed the funding, which could lag considerably
behind the network-wide blockheight. For example this could happen if we
started with `--rescan` from a low height, taking some time to catch up.

This means that we could end up forgetting channels even before reaching the
network blockheight. This patch instead uses the headercount reported by the
backend plugin if we aren't caught up yet. While the chances of this happening
are still there, the window it might happen are much reduced, since headers
can be synced in a couple of minutes.

Reported-by: Riccardo Masutti
Changelog-Changed: Funding timeout is now based on the header count reported by the bitcoin backend instead of our current blockheight which might be lower.
2020-08-04 09:14:17 +09:30
..
test hsmd/wallet: pass the bip32_key down into migrations 2020-07-29 13:13:46 +02:00
.gitignore
bitcoind.c lightningd: fix race where we do rescan before all plugins finish init. 2020-05-05 13:45:17 +09:30
bitcoind.h lightning/bitcoind: adapt and batch fees estimations 2020-03-30 20:17:18 +10:30
chaintopology.c channel: Base the channel forget timeout on the headercount 2020-08-04 09:14:17 +09:30
chaintopology.h channel: Base the channel forget timeout on the headercount 2020-08-04 09:14:17 +09:30
channel_control.c lightningd/opening_control.c: fundchannel_cancel no longer requires a channel_id argument. 2020-07-02 01:10:59 +00:00
channel_control.h lightningd/opening_control.c: fundchannel_cancel no longer requires a channel_id argument. 2020-07-02 01:10:59 +00:00
channel_state.h wallet: Add a final CLOSED state to channels 2019-06-30 16:41:30 +09:30
channel.c wallet-df: save our_funds amount to channel record 2020-05-07 08:43:00 +09:30
channel.h wallet-df: save our_funds amount to channel record 2020-05-07 08:43:00 +09:30
closing_control.c bitcoin: add weight calculation helpers. 2020-07-06 19:25:05 +02:00
closing_control.h
coin_mvts.c coins: use the chain's BIP173 name instead of a 'unit of account' 2020-05-12 15:46:58 +09:30
coin_mvts.h coins: re-write API interface for htlc notices 2020-05-12 15:46:58 +09:30
connect_control.c cleanup: make 'u8 *features' and 'struct feature_set *fset' more explicit. 2020-04-03 13:13:21 +10:30
connect_control.h lightningd: return features in connect response. 2020-04-03 13:13:21 +10:30
gossip_control.c gossipd: return channel_announcement features for listchannels. 2020-05-07 08:44:58 +09:30
gossip_control.h gossipd: get fed the blockheight from lightningd when we know it. 2019-09-25 04:01:56 +00:00
gossip_msg.c wire: make fromwire_fail return non-const, use it more 2020-05-20 11:36:13 +02:00
gossip_msg.h gossipd: return channel_announcement features for listchannels. 2020-05-07 08:44:58 +09:30
hsm_control.c hsm: decouple hsm from wallet; init before wallet 2020-06-11 13:13:13 +02:00
hsm_control.h hsm: decouple hsm from wallet; init before wallet 2020-06-11 13:13:13 +02:00
htlc_end.c coins: have we_fulfilled be fully 'ternary' 2020-05-12 15:46:58 +09:30
htlc_end.h coins: have we_fulfilled be fully 'ternary' 2020-05-12 15:46:58 +09:30
htlc_set.c mpp: Add the presplit-modifier that splits a root payment first 2020-07-15 11:32:58 +02:00
htlc_set.h lightningd: make local htlc failures pass a wiremsg for errors, not a failcode. 2020-02-25 11:12:12 +10:30
invoice.c lightningd/invoice.c: Improve programmatic error reporting for delinvoice. 2020-07-31 23:57:32 +00:00
invoice.h lightningd: sew in htlc set. 2019-12-12 15:03:53 +01:00
io_loop_with_timers.c plugins: don't crash if getmanifest times out. 2019-07-24 16:16:53 +02:00
io_loop_with_timers.h
json.c common/json_tok: expose param_txid. 2020-07-08 21:07:20 +02:00
json.h common/json_tok: expose param_txid. 2020-07-08 21:07:20 +02:00
jsonrpc.c lightningd/jsonrpc: don't assume the jcon to be alive at command execution 2020-06-18 14:07:00 +02:00
jsonrpc.h common: move json_stream from lightningd/ to common/ 2020-02-04 13:24:32 +10:30
lightningd.c hsmd/wallet: pass the bip32_key down into migrations 2020-07-29 13:13:46 +02:00
lightningd.h lightningd: add --dev-no-version-checks, use if SLOW_MACHINE and VALGRIND 2020-07-22 16:13:44 +02:00
log_status.c lightningd: kill per-peer daemons if they claim a different peer id. 2019-11-18 04:50:22 +00:00
log_status.h lightningd: have logging include an optional node_id for each entry. 2019-11-18 04:50:22 +00:00
log.c common/json: move rest of bitcoin/lightning-specific json functions to json_helpers. 2020-05-18 14:51:12 +02:00
log.h lightningd: use a simple array for less memory usage. 2019-11-18 04:50:22 +00:00
Makefile setup: create a common setup which will handle the wally-context 2020-05-19 13:35:42 +09:30
memdump.c htlcs: Make sure htlc_sets is not erroneously flagged as a memleak 2019-12-12 22:16:03 +01:00
memdump.h
notification.c common/json: move rest of bitcoin/lightning-specific json functions to json_helpers. 2020-05-18 14:51:12 +02:00
notification.h notifications: add new notification for coin movements and two helpers 2020-05-12 15:46:58 +09:30
onchain_control.c wallet: add explicit API for onchaind to register UTXOs. 2020-07-06 19:25:05 +02:00
onchain_control.h coin moves: don't log coin moves in onchaind if we're replaying 2020-05-12 15:46:58 +09:30
onion_message.c tools/generate-wire: no more lonely messages! 2020-05-06 14:56:09 -05:00
onion_message.h lightningd: forward onion messages. 2020-04-02 14:32:38 +10:30
opening_control.c channel: Base the channel forget timeout on the headercount 2020-08-04 09:14:17 +09:30
opening_control.h subd: Add a helper to get the current owning subd for a given peer 2020-01-28 23:50:52 +01:00
options.c lightningd: add --dev-no-version-checks, use if SLOW_MACHINE and VALGRIND 2020-07-22 16:13:44 +02:00
options.h common: parse --allow-deprecated-apis extremely early. 2019-11-23 22:42:34 +00:00
pay.c jsonrpc: Add msatoshi argument to sendonion to annotate 2020-07-28 16:17:39 +09:30
pay.h lightningd: don't report spurious temporary_node_failure on local failures. 2020-05-04 18:56:33 +09:30
peer_control.c psbt: remove input_amounts from bitcoin tx 2020-06-11 13:13:13 +02:00
peer_control.h cleanup: make 'u8 *features' and 'struct feature_set *fset' more explicit. 2020-04-03 13:13:21 +10:30
peer_htlcs.c test_penalty_htlc_tx_timeout: debugging 2020-07-23 10:14:21 +09:30
peer_htlcs.h test_penalty_htlc_tx_timeout: debugging 2020-07-23 10:14:21 +09:30
ping.c bolt: update to BOLT spec changes (extract format + type specifications) 2019-07-16 06:10:58 +00:00
ping.h
plugin_control.c lightningd: fix obsolete comment. 2020-05-05 13:45:17 +09:30
plugin_control.h lightningd: attach plugins natively to the command which started it. 2020-05-05 13:45:17 +09:30
plugin_hook.c plugin_hook_call: return indication whether we called the callback or not. 2020-05-05 13:45:17 +09:30
plugin_hook.h plugin_hook_call: return indication whether we called the callback or not. 2020-05-05 13:45:17 +09:30
plugin.c plugin: Fix a memory leak and a missing dereference in listconfigs 2020-07-15 11:32:58 +02:00
plugin.h lightningd: list disabled plugins in listconfig. 2020-05-05 13:45:17 +09:30
signmessage.c common/wireaddr: don't include lightningd/lightningd. 2020-02-27 14:16:16 +10:30
subd.c lightningd: Added --subdaemon command to allow alternate subdaemons. 2020-02-04 10:44:13 +10:30
subd.h lightningd: have optional node_id associated with subdaemons. 2019-11-18 04:50:22 +00:00
watch.c wallet: remove edgecase around transaction checks 2020-01-02 16:56:42 +01:00
watch.h