core-lightning/lightningd
Rusty Russell 86c28b2272 channeld: channel drain mitigation.
Add new check if we're funder trying to add HTLC, keeping us
with enough extra funds to pay for another HTLC the peer might add.

We also need to adjust the spendable_msat calculation, and update
various tests which try to unbalance channels.  We eliminate
the now-redundant test_channel_drainage entirely.

Changelog-Fixed: Corner case where channel could become unusable (https://github.com/lightningnetwork/lightning-rfc/issues/728)
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2020-02-11 15:34:05 +01:00
..
test plugin: Include featurebits registered by plugins in invoices 2020-02-11 13:53:31 +10:30
.gitignore handshaked: remove. 2017-10-20 18:31:32 +02:00
bitcoind.c Add the missing space between "if" and "(" 2020-01-06 12:57:59 +01:00
bitcoind.h lightningd/bitcoind: remove unused 'get_output' function 2020-01-02 17:20:43 +01:00
chaintopology.c lightningd: fix reorg bug where we don't fire watches. 2020-01-30 09:32:38 +10:30
chaintopology.h lightningd: fix reorg bug where we don't fire watches. 2020-01-30 09:32:38 +10:30
channel.c lightningd: save the fee_states into the database. 2019-12-12 22:15:48 +01:00
channel.h TAGS: reformat to fix when PRINTF_FMT() used. 2019-11-01 17:27:20 -05:00
channel_control.c channel control: check that peer is connected before canceling 2020-02-10 15:59:26 +10:30
channel_control.h channel control: break out separate method for canceling 2020-02-10 15:59:26 +10:30
channel_state.h wallet: Add a final CLOSED state to channels 2019-06-30 16:41:30 +09:30
closing_control.c lightningd: save the fee_states into the database. 2019-12-12 22:15:48 +01:00
closing_control.h common/per_per_state: generalize lightningd/peer_comm Part 1 2019-06-04 01:29:39 +00:00
connect_control.c connectd: Pass the init_featurebits down to connectd and use in init 2020-02-11 13:53:31 +10:30
connect_control.h Use node_id everywhere for nodes. 2019-04-09 12:37:16 -07:00
gossip_control.c plugin: Add featurebits registered by plugins to node_announcements 2020-02-11 13:53:31 +10: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 gossipd: add hop-style to nodes to mark whether they speak TLV onion. 2019-11-14 10:15:33 +01:00
gossip_msg.h common/features: only support a single feature bitset. 2019-10-11 02:52:04 +00:00
hsm_control.c bitcoind: remove the chainparams member 2019-11-15 13:14:08 +01:00
hsm_control.h Use node_id everywhere for nodes. 2019-04-09 12:37:16 -07:00
htlc_end.c htlcs: remove origin_htlc_id from htlc_out. 2019-12-12 15:03:53 +01:00
htlc_end.h common: use struct onionreply. 2020-01-23 16:17:42 +10:30
htlc_set.c Makefile: update bolt markers which have been since merged. 2020-01-31 06:07:56 +00:00
htlc_set.h lightningd: remove htlc_set destruction timer once we head to invoice. 2019-12-12 22:16:03 +01:00
invoice.c plugin: Introduce plugin type to allow singleton and chaining 2020-02-11 15:57:22 +10:30
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 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
json.c common: move json_stream helpers to common/json 2020-02-04 13:24:32 +10:30
json.h common: move json_stream helpers to common/json 2020-02-04 13:24:32 +10:30
jsonrpc.c plugin: Introduce plugin type to allow singleton and chaining 2020-02-11 15:57:22 +10:30
jsonrpc.h common: move json_stream from lightningd/ to common/ 2020-02-04 13:24:32 +10:30
lightningd.c lightningd: Added --subdaemon command to allow alternate subdaemons. 2020-02-04 10:44:13 +10:30
lightningd.h lightningd: Added --subdaemon command to allow alternate subdaemons. 2020-02-04 10:44:13 +10:30
log.c log: print UNUSUAL messages before log initialization too. 2019-11-23 22:42:34 +00:00
log.h lightningd: use a simple array for less memory usage. 2019-11-18 04:50:22 +00: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
Makefile common: move json_stream from lightningd/ to common/ 2020-02-04 13:24:32 +10: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 lightningd: add code to search strmaps for memleak detection. 2019-02-07 20:33:50 +00:00
notification.c Use dedicated type for error codes 2020-01-31 06:02:47 +00:00
notification.h Use dedicated type for error codes 2020-01-31 06:02:47 +00:00
onchain_control.c lightningd: have optional node_id associated with subdaemons. 2019-11-18 04:50:22 +00:00
onchain_control.h onchaind: Replay stored channeltxs to restore onchaind state 2018-04-25 14:33:38 +02:00
opening_control.c plugin: Introduce plugin type to allow singleton and chaining 2020-02-11 15:57:22 +10: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: Added --subdaemon command to allow alternate subdaemons. 2020-02-04 10:44:13 +10:30
options.h common: parse --allow-deprecated-apis extremely early. 2019-11-23 22:42:34 +00:00
pay.c lightningd: fix wrong command in response message 2020-02-03 15:38:11 +00:00
pay.h Use dedicated type for error codes 2020-01-31 06:02:47 +00:00
peer_control.c channeld: channel drain mitigation. 2020-02-11 15:34:05 +01:00
peer_control.h peer: Add custommsg hook and wire it into channeld and openingd 2020-01-28 23:50:52 +01:00
peer_htlcs.c plugin: Allow multiple plugins to register the htlc_accepted hook 2020-02-11 15:57:22 +10:30
peer_htlcs.h lightningd: save the fee_states into the database. 2019-12-12 22:15:48 +01:00
ping.c bolt: update to BOLT spec changes (extract format + type specifications) 2019-07-16 06:10:58 +00:00
ping.h ping: complete JSON RPC ping commands even if one ping gets no response. 2018-09-14 22:11:23 +02:00
plugin.c plugin: Allow custom features only if the plugin is not dynamic 2020-02-11 13:53:31 +10:30
plugin.h plugin: Add function to collect featurebits that plugins registered 2020-02-11 13:53:31 +10:30
plugin_control.c lightningd/plugin: unregister a plugin's options when stopping it 2020-02-10 09:49:15 +10:30
plugin_control.h plugins: cleanup shared headers between dynamic and static plugins 2019-09-30 00:20:16 +00:00
plugin_hook.c plugin: Remove special case for plugin stopping while handling hooks 2020-02-11 15:57:22 +10:30
plugin_hook.h plugin: Multiple plugins can register a singl hook 2020-02-11 15:57:22 +10:30
signmessage.c lightningd: checkmessage can intuit pubkey in some cases. 2019-10-14 18:58:44 -05:00
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 lightningd: fix occasional missing txid detection. 2019-06-28 03:31:43 +00:00