Conner Fromknecht
5dc2a4a4b8
htlcswitch/control_tower: use one db txn for transitions
...
Composes the new payment status helper methods such that
we only require one db txn per state transition. This
also allows us to remove the exclusive lock from the
control tower, and enable more concurrent requests.
2018-08-21 19:23:25 -07:00
Conner Fromknecht
86b347c996
channeldb/payments: make payment status helper methods
...
This commit splits FetchPaymentStatus and
UpdatePaymentStatus, such that they each invoke
helper methods that can be composed into different
db txns. This enables us to improve performance on
send/receive, as we can remove the exclusive lock
from the control tower, and allow concurrent calls
to utilize Batch more effectively.
2018-08-21 19:23:25 -07:00
Conner Fromknecht
0865ac7cf6
channeldb/migrations_test: assert locally-sourced circuits...
...
in the circuit map are marked StatusInFlight. We also
check that hashes contained in forwarded circuits are
not updated.
2018-08-21 19:23:25 -07:00
Conner Fromknecht
11bb5685f9
channeldb/migrations: mark locally-sourced payments as InFlight...
...
by reading the payment hash from the circuit map.
2018-08-21 19:23:25 -07:00
Conner Fromknecht
2dd8f07014
htlcswitch/switch: use non-strict PaymentControl
2018-08-21 19:23:25 -07:00
Conner Fromknecht
2027444a56
htlcswitch/control_tower_test: test strict and non-strict ctrltwrs
2018-08-21 19:23:25 -07:00
Conner Fromknecht
98d2ffbfd0
htlcswitch/control_tower: add strict mode toggling
2018-08-21 19:23:24 -07:00
Conner Fromknecht
971ae3c744
htlcswitch/control_tower_test: move from switch_control_test
2018-08-21 19:23:24 -07:00
Conner Fromknecht
8b2237fc1d
htlcswitch/control_tower: move from switch_control
2018-08-21 19:23:24 -07:00
Conner Fromknecht
3f0dfd4e4b
htlcswitch/switch_control_test: extend tests + godocs
2018-08-21 19:23:24 -07:00
Conner Fromknecht
875128539c
htlcswitch/switch_control: expand godocs and add ErrUnknownPaymentStatus
2018-08-21 19:23:24 -07:00
Conner Fromknecht
9b52c510e9
htlcswitch/mock: remove new line to satisfy linter
2018-08-21 19:23:24 -07:00
Conner Fromknecht
d6083e0d66
htlcswitch/switch: reorder persistent calls and app ntfn...
...
for Settle/Fail responses.
2018-08-21 19:23:24 -07:00
Conner Fromknecht
e7c0f4c5dc
channeldb/payments: touch up docs
2018-08-21 19:23:23 -07:00
Conner Fromknecht
3a579f3305
channeldb/migrations_test: touch up docs
2018-08-21 19:23:23 -07:00
Conner Fromknecht
93e5f9a545
channeldb/migrations: touch up documentation
2018-08-21 19:23:23 -07:00
Conner Fromknecht
9f46727507
channeldb/meta_test: restore migration helper + godocs
2018-08-21 19:23:23 -07:00
Conner Fromknecht
090e97cd3b
channeldb/db_test: move migration helper back to meta_test
2018-08-21 19:23:23 -07:00
Conner Fromknecht
79a4203346
channeldb/db: add comment describing migration
2018-08-21 19:23:23 -07:00
Vadym Popov
76dbe670cb
lnd: add integration test checks unavailability to pay same preimage
2018-08-21 19:23:22 -07:00
Vadym Popov
033fd3c83d
htlcswitch: add test for integrated control tower
2018-08-21 19:23:22 -07:00
Vadym Popov
21fc7aa829
htlcswitch: integration of control tower to htlc switch
2018-08-21 19:23:22 -07:00
Vadym Popov
350287779b
htlcswitch: control tower test of payment statuses transitions
2018-08-21 19:23:22 -07:00
Vadym Popov
a3d32be808
htlcswitch: control tower implementation
2018-08-21 19:23:22 -07:00
Vadym Popov
41e31e0909
channeldb: applying payment statuses migration to current database
2018-08-21 19:23:22 -07:00
Vadym Popov
24e3310f13
channeldb: payment statuses migration test
2018-08-21 19:23:21 -07:00
Vadym Popov
f405376b8b
channeldb: add migration for payment statuses for completed payments
2018-08-21 19:23:21 -07:00
Vadym Popov
7f6fbd4533
channeldb: test of payment statuses transitions
2018-08-21 19:23:21 -07:00
Vadym Popov
7296cfb425
channeldb: add payment statuses: ground, in flight, completed
2018-08-21 19:23:18 -07:00
Olaoluwa Osuntokun
f028eaa152
Merge pull request #1698 from cfromknecht/switch-fwdpkg-cleanup
...
[htlcswitch] fwdpkg cleanup
2018-08-21 18:56:15 -07:00
Olaoluwa Osuntokun
e5a61183b5
Merge pull request #1757 from cfromknecht/parallel-link-shutdown
...
htlcswitch/switch: shutdown links concurrently
2018-08-21 17:17:24 -07:00
Conner Fromknecht
5d131e5164
htlcswitch/link_test: assert delete spurious response
2018-08-21 17:13:58 -07:00
Conner Fromknecht
6a8507cfb5
htlcswitch/switch: ignore pending/local responses on reforward
2018-08-21 17:13:58 -07:00
Conner Fromknecht
81b4af2ec8
htlcswitch/link: cleanup spurious fail/settle responses
2018-08-21 17:13:58 -07:00
Conner Fromknecht
05308ec22c
lnwallet/channel: concrete HTLC errors and ack AddRefs
2018-08-21 00:31:41 -07:00
Conner Fromknecht
0dca373bcd
lnwallet/errors: create concrete errors for settle/fail
2018-08-21 00:30:27 -07:00
Conner Fromknecht
af6c4e5174
channeldb/channel: adds readLogKey for chanids
...
Adds helper method to parse short chanids used as keys in the forwarding package.
2018-08-21 00:30:26 -07:00
Conner Fromknecht
81778664a7
channeldb/channel: expose AckAddHtlc and AckSettleFail
2018-08-21 00:30:26 -07:00
Conner Fromknecht
215a47e6bf
channeldb/forwarding_package: loosen Add/SettleFailRef acking
...
This commit loosens the fwdpkg reference acking to be more tolerant
of prior deletions. Specifically, we won't fail if certain channels
are not found or fwdpkgs do not exist. This will make us more
tolerant to future changes where we:
- remove fwdpkgs on channel close
- defensively cleanup stray responses
2018-08-21 00:30:23 -07:00
Conner Fromknecht
4e093a6cd2
htlcswitch/switch: shutdown links concurrently
2018-08-20 22:05:05 -07:00
Wilmer Paulino
6c903393e5
router+server: use first hop channel id rather than node key
2018-08-20 21:04:52 -07:00
Wilmer Paulino
44e97ee72f
htlcswitch: remove no longer needed destNode field in htlcPacket
2018-08-20 21:04:52 -07:00
Wilmer Paulino
7535371238
htlcswitch: implement strict forwarding for locally dispatched payments
...
In this commit, we address an issue that could arise when using the
SendToRoute RPC. In this RPC, we specify the exact hops that a payment
should take. However, within the switch, we would set a constraint for
the first hop to be any hop as long as the first peer was at the end of
it. This would cause discrepancies when attempting to use the RPC as the
payment would actually go through another hop with the same peer. We fix
this by explicitly specifying the channel ID of the first hop.
Fixes #1500 .
Fixes #1515 .
2018-08-20 21:04:47 -07:00
Xinxi Wang
8baf172614
build: update the version of ltcd
...
Fixes #1397 .
2018-08-20 20:33:56 -07:00
Olaoluwa Osuntokun
cad8b8edfd
Merge pull request #1747 from cfromknecht/fwdpkg-add-cleanup
...
[htlcswitch]: Set AddRef on failed packets
2018-08-20 20:04:03 -07:00
Conner Fromknecht
53b58a1eb3
htlcswitch/mock: drop messages if link is not online
...
In this commit, we modify the readHandler w/in
the mock peer to drop messages if it is unable
to find the target link. This has led to observed
race conditions related to removing a link and still
attempting to deliver messages. By removing this,
the readHandler shouldn't fail the test as a result.
2018-08-20 19:23:15 -07:00
Conner Fromknecht
f636ff8b4a
htlcswitch/test_utils: bump fwdpkg gc timeout to 15s
...
This commit increases the fwdpkg garbage collection
interval to 15s, to mitigate the likelihood of it
interfering with our unit tests related to fwdpkgs.
2018-08-20 18:48:49 -07:00
Conner Fromknecht
4f2137eafc
htlcswitch/switch: set SourceRef of failed packets
2018-08-20 18:47:03 -07:00
Conner Fromknecht
cd7e4f98c0
htlcswitch/link_test: check fwdpkg cleanup for failed adds
2018-08-20 18:46:59 -07:00
Olaoluwa Osuntokun
dddda7e0f1
Merge pull request #1748 from cfromknecht/relax-circuit-deletion
...
[htlcswitch]: Relax Circuit Deletion
2018-08-20 18:42:58 -07:00