lnd/htlcswitch
Keagan McClelland 4fbab45a5f
htlcswitch: defer processRemoteAdds when quiescent
In this commit we defer processRemoteAdds using a new mechanism on
the quiescer where we capture a closure that needs to be run. We
do this because we need to avoid the scenario where we send back
immediate resolutions to the newly added HTLCs when quiescent as
it is a protocol violation. It is not enough for us to simply defer
sending the messages since the purpose of quiescence itself is to
have well-defined and agreed upon channel state. If, for whatever
reason, the node (or connection) is restarted between when these
hooks are captured and when they are ultimately run, they will
be resolved by the resolveFwdPkgs logic when the link comes back
up.

In a future commit we will explicitly call the quiescer's resume
method when it is OK for htlc traffic to commence.
2024-11-26 13:52:53 -07:00
..
hodl
hop multi: start updating various loggers to use the new v2 type 2024-10-22 17:03:55 +02:00
testdata multi: update linter, fix new issues 2023-06-13 11:58:33 +02:00
circuit_map_test.go multi: fix fmt.Errorf error wrapping 2024-02-27 11:13:40 +00:00
circuit_map.go multi: add SpewLogClosure to avoid code repetition 2024-07-25 22:18:49 +08:00
circuit_test.go go.mod: update lightning-onion dep 2024-07-26 09:53:48 +02:00
circuit.go htlcswitch: introduce wrapper type error encrypter to identify blinded 2024-04-25 09:47:10 -04:00
decayedlog_test.go htlcswitch: use T.TempDir to create temporary test directory 2022-08-24 09:03:01 +08:00
decayedlog.go multi: make sure missionControlStore catches done signal 2024-07-23 21:30:08 +08:00
failure_detail.go
failure_test.go multi: update linter, fix new issues 2023-06-13 11:58:33 +02:00
failure.go
held_htlc_set_test.go multi: create channeldb/models package 2023-01-16 07:14:55 -08:00
held_htlc_set.go multi: create channeldb/models package 2023-01-16 07:14:55 -08:00
htlcnotifier.go multi: add debug logs to catch slow shutdown 2023-10-06 16:34:47 -07:00
interceptable_switch.go htlcswitch: merge copy htlc custom records 2024-11-07 13:46:54 -05:00
interfaces.go htlcswitch: add link operation for initiating quiescence 2024-11-26 13:51:57 -07:00
link_isolated_test.go multi: link quit can interrupt commitment signing 2024-10-17 17:35:29 +02:00
link_test.go htlcswitch: relay experimental endorsement signal with update_add_htlc 2024-11-22 09:16:56 -05:00
link.go htlcswitch: defer processRemoteAdds when quiescent 2024-11-26 13:52:53 -07:00
linkfailure.go htlcswitch: implement stfu response 2024-11-26 13:51:56 -07:00
log.go multi: start updating various loggers to use the new v2 type 2024-10-22 17:03:55 +02:00
mailbox_test.go htlcswitch: pass quit chans as unidirectional 2024-10-17 17:33:15 +02:00
mailbox.go htlcswitch: pass quit chans as unidirectional 2024-10-17 17:33:15 +02:00
mock.go htlcswitch: add link operation for initiating quiescence 2024-11-26 13:51:57 -07:00
packet.go multi: use wire records on payment and intercept flows 2024-09-05 11:18:16 +02:00
payment_result_test.go lnwire: add custom records field to type UpdateFulfillHtlc 2024-09-05 11:18:15 +02:00
payment_result.go htlcswitch: rename paymentID to attemptID for clarity 2024-08-07 22:17:58 +08:00
quiescer_test.go htlcswitch: defer processRemoteAdds when quiescent 2024-11-26 13:52:53 -07:00
quiescer.go htlcswitch: defer processRemoteAdds when quiescent 2024-11-26 13:52:53 -07:00
resolution_store_test.go htlcswitch: use T.TempDir to create temporary test directory 2022-08-24 09:03:01 +08:00
resolution_store.go htlcswitch: introduce resolutionStore to persist cnct messages 2022-04-29 16:40:16 -04:00
sequencer.go
switch_test.go multi: deprecate dust-treshold config value 2024-11-06 18:16:06 +01:00
switch.go multi: fix typo and add comment. 2024-11-07 18:32:45 +01:00
test_utils.go htlcswitch: relay experimental endorsement signal with update_add_htlc 2024-11-22 09:16:56 -05:00