lnd.xprv/htlcswitch
Conner Fromknecht 76cecb1396
htlcswitch/link: batch write to preimage cache
This commit makes use of the batched AddWitness
method of the WitnessCache, in order to avoid
performing one write for each accepted preimage.

Additionally, this fixes an existing hole in the
consistency guarantees since the batched writes
are now guaranteed to take place before accepting
the next CommitSig. Previously, these writes were
processed in an unsynchronized go routine that
could be delayed arbitrarily long before being
executed.

With this change, the async_payments_benchmarks
actually shows a slight improvement in
performance, presumably because we no longer do
an individual write per preimage, even though
the execution is now explicitly in the critical
path. There is likely also a marginal performance
improvement from the reduction in goroutine
overhead.
2019-02-19 17:06:15 -08:00
..
hodl htlcswitch/hodl: switch from debug tag to dev 2018-10-05 13:04:45 +09:00
circuit_map.go multi: switch from bolt packge to bbolt package for all imports 2018-11-29 20:33:49 -08:00
circuit_test.go multi: update to go 1.11 gofmt 2018-10-07 14:37:38 +09:00
circuit.go multi: fix various typos in comments 2018-09-07 06:51:49 +02:00
control_tower_test.go htlcswitch/control_tower_test: test strict and non-strict ctrltwrs 2018-08-21 19:23:25 -07:00
control_tower.go multi: switch from bolt packge to bbolt package for all imports 2018-11-29 20:33:49 -08:00
decayedlog_test.go htlcswitch/decayedlog_test: fix bug in gc unit test 2018-06-27 14:40:28 -07:00
decayedlog.go multi: switch from bolt packge to bbolt package for all imports 2018-11-29 20:33:49 -08:00
failure.go multi: sort import paths with gofmt 2018-08-02 18:20:49 -07:00
interfaces.go invoices+htlcswitch+lnrpc: cancel invoice 2019-02-06 07:29:18 +01:00
iterator.go multi: sort import paths with gofmt 2018-08-02 18:20:49 -07:00
link_test.go cnct+lnwl+hswc: use lntypes.Preimage for witness beacon 2019-02-19 17:06:00 -08:00
link.go htlcswitch/link: batch write to preimage cache 2019-02-19 17:06:15 -08:00
linkfailure.go htlcswitch/linkfailure: define LinkFailureError 2018-05-25 06:58:18 +02:00
log.go multi: init subsystem loggers via build pkg 2018-10-05 13:04:45 +09:00
mailbox_test.go htlcswitch/mailbox_test: add orchestrator pending/live test 2018-05-09 16:07:52 -07:00
mailbox.go multi: 64bit aligment of atomic vars on arm/x86-32 2018-06-04 20:02:34 -07:00
mock.go cnct+lnwl+hswc: use lntypes.Preimage for witness beacon 2019-02-19 17:06:00 -08:00
packet.go htlcswitch: remove no longer needed destNode field in htlcPacket 2018-08-20 21:04:52 -07:00
queue_test.go htlcswitch: Remove obsolete fields from htlcPacket. 2017-12-14 17:53:58 -08:00
queue.go htlcswitch: ensure the packet queue exits on stop 2018-06-08 13:51:37 -07:00
sequencer.go multi: switch from bolt packge to bbolt package for all imports 2018-11-29 20:33:49 -08:00
switch_test.go htlcswitch/test: convert makePayment into function 2019-02-06 07:29:21 +01:00
switch.go switch: notify the ChannelNotifier on newly active/inactive channels. 2019-02-05 18:17:54 -08:00
test_utils.go cnct+lnwl+hswc: use lntypes.Preimage for witness beacon 2019-02-19 17:06:00 -08:00