2
0
mirror of https://github.com/lightninglabs/loop synced 2024-11-16 00:12:52 +00:00
Commit Graph

186 Commits

Author SHA1 Message Date
carla
87b02b7715
multi: add force tick endpoint behind debug server
To itest our autolooper, we need to be able to trigger dispatch on
demand. This functionality is included in a separate rpc server behind
a dev flag. Since it is unlikely that we need to split loop into
multiple rpc servers, this commit simply adds an additional debug server
rather than opting for a full subserver setup.
2020-10-15 13:53:27 +02:00
carla
eb6b476469
looprpc: add autoloop parameters to rpc server 2020-10-12 13:34:56 +02:00
carla
8166d936e1
multi: add opt-in automated swap dispatch to liquidity manager 2020-10-12 13:34:55 +02:00
carla
7b56804bbe
multi: move label validation to rpc and simplify validation function
Previously labels with reserved prefixes were added to provide us
with a way to identify automatically dispatched loops. This commit moves
the validation of these labels to the rpc level so that it will only
apply to user-initiated swaps.
2020-10-12 13:34:52 +02:00
carla
f23a527927
looprpc: add fee and backoff parameters to rpc 2020-09-30 12:46:35 +02:00
carla
0212a41ed0
liquidity: make swap suggestions fee-aware 2020-09-30 12:46:35 +02:00
carla
1d8609bae3
liquidity: add sweep fee limit and confirmations to suggestions
To decide whether we event want to attempt a swap, we add a fee limit
that we check against our estimate for the current number of
confirmations we want our sweep to confirm in. If fees are higher than
this limit, we do not suggest swaps.
2020-09-30 12:46:34 +02:00
carla
7740231bac
liquidity: make swap suggestions aware of ongoing swaps 2020-09-30 12:46:32 +02:00
carla
ad8b5d0552
liquidity: add clock for mocking time in tests 2020-09-30 12:46:30 +02:00
carla
7e9034b2ff
liquidity: return OutRequest from swap suggestions and set fees
This commit updates swap suggestions to return loop out requests with
sufficient fields populated so that a loop out can directly be
dispatched from a suggestion. This requires setting of fees an min
sweep conf targets (our htlc conf target and addresss will be set by
the daemon's client rpc server if we do not provide them). We also do
some test refactoring so that we can more easily test the suggest swaps
endpoint.
2020-09-30 12:46:29 +02:00
carla
ad2b37e709
loopd: add suggestions endpoints to macaroons 2020-09-30 11:15:30 +02:00
Oliver Gugger
688659421b
mod+loopd: bump to lnd v0.11.1-beta.rc3
To make sure we can use the latest version of loop in LiT, we need to
make sure loop compiles against the actual v0.11.1 branch of lnd. There
were some conflicting changes to the macaroon service that didn't make
it to the branch that we need to roll back. Those changes don't affect
loop at all as we were always using the default root key ID anyway.
2020-09-18 08:58:16 +02:00
Oliver Gugger
8c5bcf7c50
config: expand macaroonpath flag 2020-09-17 10:45:57 +02:00
Oliver Gugger
617964e25f
loopd: allow loopd to be used as external subserver
When loopd runs in the same process as lnd (in LiT), it hooks itself
into lnd's RPC server as an external subserver. But because the user
should still be able to use the default loop macaroon, the loop daemon
must be able to validate its own macaroons as lnd's macaroon service
doesn't know the root key for it.
2020-09-11 12:25:39 +02:00
Oliver Gugger
751c70e6c7
loopd: add macaroon authentication to the daemon's server connection
To secure access to loop's RPC server, we add a macaroon authentication
service and its gRPC interceptors to the daemon's server connection.
2020-09-11 12:24:53 +02:00
Oliver Gugger
ff17553f3b
mod+loopd: update to lnd 0.11.1
We update to the newest version of lnd so we can use the updated
macaroon service.
NOTE: This is a compile time dependency update only, no RPC level update
is required.
2020-09-11 12:20:12 +02:00
Andras Banki-Horvath
133f3cac5f multi: integrate the new htlc v2 scripts to loop in/out
This commit bumps the current protocol version and integrates htlc v2
with loop in/out for new swaps, while keeping htlc v1 for any pending
swaps with previous protocol versions.
2020-09-09 19:54:01 +02:00
Oliver Gugger
a8d93bec6a
loopd: add TLS to the daemon's server connection 2020-09-03 14:19:51 +02:00
Oliver Gugger
17e0165d4c
loopd: add TLS config to listenerCfg struct
As a preparation to be able to listen on a TLS enabled listener, we add
a TLS config parameter to the listener setup functions.
2020-09-03 13:25:59 +02:00
carla
6b93c70b8a
looprpc: add swap suggestions endpoint 2020-09-03 10:36:44 +02:00
carla
340766fbb5
liquidity: add swap suggestions endpoint to manager 2020-09-03 10:36:43 +02:00
carla
6fcbf54c02
looprpc: add get and set liquidity parameters endpoints 2020-09-02 11:50:15 +02:00
carla
ce10cc7959
liquidity: add manager with updatable parameters 2020-09-02 11:48:27 +02:00
Andras Banki-Horvath
9fdd531130
swap: add HTLC script version 2020-08-27 16:21:47 +02:00
carla
ed04120a1a
loopd: set network in default config path 2020-08-18 21:42:13 +02:00
carla
d229a1a607
config: add default network value 2020-08-18 21:35:46 +02:00
Carla Kirk-Cohen
048a365e02
Merge pull request #267 from carlaKC/215-readyonstart
loopd: wait for lnd to be synced before starting
2020-08-18 10:33:26 +02:00
carla
b4e4d5c73d
loopd: block until lnd is synced to chain 2020-08-14 09:25:52 +02:00
carla
d7150d5556
loopd: add data, loop and config options 2020-08-13 14:11:04 +02:00
carla
852f459391
multi: add htlc confirmations parameter to client loop out request 2020-08-04 20:29:09 +02:00
carla
8da0ea6048
looprpc: add label to swap creation and display in list swaps 2020-08-03 11:00:56 +02:00
carla
a9849bb317
multi: add failure reason to swap client server
To provide more information about swaps, we add a failure reason field
to our swaps. We do not extend our existing state enum to remain
backwards compatible.
2020-07-30 09:15:42 +02:00
Joost Jager
43323ffbe2
loopout: extend htlc expiry based on conf target 2020-07-16 21:30:16 +02:00
Joost Jager
e72d998e78
loopout: show expiry range in terms 2020-07-16 21:30:15 +02:00
Joost Jager
8d1ec50fa7
looprpc: split quote message 2020-07-14 19:26:30 +02:00
Joost Jager
24099aa4f9
looprpc: split terms message 2020-07-14 15:26:23 +02:00
Joost Jager
1869ad670f
looprpc: expose server message to clients 2020-06-30 16:59:10 +02:00
Joost Jager
68012f051a
loopout: create LoopOutSwapInfo struct 2020-06-30 16:59:06 +02:00
Joost Jager
0c9fcd790e
lndclient: move to github.com/lightninglabs/lndclient 2020-06-18 14:27:52 +02:00
Joost Jager
83f25c98a3
loopd: return missing p2wsh loop out address 2020-06-17 08:29:09 +02:00
Joost Jager
b61b886c16
loopd: group and clarify swap server parameters 2020-06-15 16:18:34 +02:00
Oliver Gugger
c2e513ecd0
loopd: remove short flags to avoid collision 2020-05-28 12:34:42 +02:00
Oliver Gugger
74b3580e01
loopd+cmd/loopd: rename main Start function to Run 2020-05-28 12:34:41 +02:00
Oliver Gugger
774a44fac1
loopd: add StartAsSubserver method and started flag 2020-05-28 12:34:38 +02:00
Oliver Gugger
506d0c2257
loopd: refactor into Start/Stop methods 2020-05-28 12:34:04 +02:00
Oliver Gugger
215e5b99d6
loopd: extract daemon into struct 2020-05-25 13:16:34 +02:00
Oliver Gugger
e696a38ec8
loopd: export Config struct 2020-05-25 13:16:33 +02:00
Oliver Gugger
5f70a05463
loopd: export DefaultConfig 2020-05-25 13:16:33 +02:00
Joost Jager
ccec719423
looprpc: add outgoing channel set restriction
Expose the new channel set restriction on the loopd client rpc.
2020-05-21 11:22:06 +02:00
Joost Jager
8c544bf2ba
loopdb: store outgoing channel set
Upgrade the database schema to allow for multiple outgoing channels.
This is implemented as an on-the-fly migration leaving the old key in
place.
2020-05-21 11:22:04 +02:00
Joost Jager
c62acd5b85
lndclient: add outgoing channel set restriction
Expose the channel set restriction that was introduced in LND 0.10.1 on
the proxy object.
2020-05-21 11:21:58 +02:00
Andras Banki-Horvath
936bb851f2 loopin: fix htlc address in LoopIn SwapResponse 2020-05-12 18:51:42 +02:00
Joost Jager
27a2b1a775
loopd: fix setting of max parts 2020-05-12 09:34:57 +02:00
Andras Banki-Horvath
0aa978bd09 loopin: modify internally published htlc to use p2wsh 2020-05-05 15:49:06 +02:00
Andras Banki-Horvath
f0aff9b7bd looprpc+loopin: support for native segwit htlcs
This commit extends SwapResponse and SwapStatus with np2wsh and p2wsh
htlc output addresses to support both nested and native segwit htlcs
in loop-in.

Furthermore the commit adds support for native segwith loop-in htlcs.
When the htlc is paid internally, as of this commit we'll use NP2WSH,
otherwise users are free to select whether to pay the NP2WSH or the
P2WSH htlc.
2020-05-05 15:49:05 +02:00
Andras Banki-Horvath
62f654eef1 client: make ListSwaps thread safe 2020-05-04 23:18:15 +02:00
Andras Banki-Horvath
7a44eec36f loopin: refactor LoopIn to return struct instead of tuple 2020-05-04 18:19:20 +02:00
Joost Jager
12ae3d6a40
loopd: make maximum number of payment parts configurable 2020-04-27 16:32:12 +02:00
Joost Jager
5588876b48
loopd: extract client configuration 2020-04-27 16:30:44 +02:00
Oliver Gugger
ad4e1e971e
loopd: check lnd version and subservers 2020-04-24 10:04:42 +02:00
Oliver Gugger
a8e6118cfb
loopd+lndclient: extract config parameters into struct 2020-04-24 09:59:05 +02:00
carla
fc99c8b320
multi: add confirmation target to loop in 2020-04-17 09:56:21 +02:00
carla
f726fc2bc8
loopd: add missing zero case to validateConfTarget
Update validate function to return default target for zero value
confirmation targets, as indicated by the comment. This change
introduces a behaviour change for direct rpc calls to loopd (ie,
those not made by the loop cli tool). Previously, these calls
would fail and indicate that the conf target must be > 2, now
they will succeed with the default conf target. The loop cli
tool is unaffected because we already set the default value.

When clients upgrade from a previous version of loopd which did
not have this check, preexisting loops will be unaffected, because
loop ins had the default of 6 confirmations set, and loop outs with
<2 conf target would not have been created.
2020-04-17 09:40:20 +02:00
carla
1f5aeff45f
multi: unify default sweep/htlc conf targets
Create a HtlcConfTarget which is used as a default for quote
and loop in. Update loop out quote to use the existing var
rather than just 6 inline.
2020-04-17 09:40:18 +02:00
Andras Banki-Horvath
f4be20cc5e loopd: add missing mutex unlock and fix subtle reace condition 2020-04-01 19:04:50 +02:00
Wilmer Paulino
5b732d9012
loopd: add SOCKS proxy config option to dial swap server over Tor
This allows Loop users to further improve their privacy by not revealing
their source IP address. Note that the identity of the lnd node behind
Loop can still be revealed when performing a Loop In due to the swap
server extending an off-chain HTLC to the user.

Onion addresses don't yet exist for the swap servers, but they will be
added at a later time.
2020-03-06 16:40:30 -08:00
Joost Jager
535e964ec9
loopdb: migrate loop in channel to last hop
A database field was already in place to allow channel selection for
loop in. Unfortunately this field, which contains a short channel id,
isn't easily usable for controlling the loop server payment. Because of
non-strict forwarding, it is only possible to constrain a route to a
specific last hop pubkey.

This commit converts the existing field into a pubkey field.
2020-02-17 19:59:05 +01:00
Oliver Gugger
ae376a49ba
loopd: fix linter issue 2020-02-06 11:59:48 +01:00
Oliver Gugger
8c7eee2ba9
loopd: add option to configure CORS origin 2020-02-06 11:48:09 +01:00
Oliver Gugger
b694a76be0
looprpc+loopd: deprecate string ID 2020-01-31 13:57:28 +01:00
Oliver Gugger
26c0c17dbd
loopd+cli: set max gRPC message receive size 2020-01-31 13:57:26 +01:00
Oliver Gugger
e070494565
loopd: instruct REST proxy to print default values 2020-01-31 13:57:24 +01:00
Oliver Gugger
3e25bc3174
loopd+looprpc: add REST compatible status calls 2020-01-31 13:57:22 +01:00
Oliver Gugger
403b4097de
loopd: move global state into server state 2020-01-31 13:57:21 +01:00
Oliver Gugger
098e269fe6
loopd: add LSAT enabled server ports 2020-01-22 11:25:01 +01:00
Oliver Gugger
ccdbc3b21b
multi: thread new config values through client 2020-01-10 12:15:08 +01:00
Oliver Gugger
8aeeaefbaf
loopd+lsat: add LSAT cost configuration parameters 2020-01-10 12:15:02 +01:00
Johan T. Halseth
b2d1d99521
loopd call swapserver with SwapPublicationDeadline set 2020-01-07 13:52:42 +01:00
Johan T. Halseth
0a51bf4d2d
loopd: make lnd conn configurable 2020-01-03 14:01:32 +01:00
Johan T. Halseth
34c2e71f9e
loopd: move lnd services init to config
This allows us to supply custom lnd connections to the daemon.
2020-01-03 14:01:32 +01:00
Johan T. Halseth
c7e8c9f964
loopd: make RPC listener configurable
Allows to use external listener, such as in-memory.
2020-01-03 14:01:32 +01:00
Johan T. Halseth
0f0573c047
loopd/daemon: make server gRPC/REST listeners configurable 2020-01-03 14:01:31 +01:00
Johan T. Halseth
391ae9dc6b
loopd/daemon: handle proxy error
Check returned error to make linter happy.
2020-01-03 14:01:31 +01:00
Johan T. Halseth
2334816a59
lndclient: split NewLndServices to take gRPC dialer 2020-01-03 14:01:31 +01:00
Johan T. Halseth
704bfff8f6
cmd+loopd: new cmd/loopd main method replacing the one now in ./loopd
This allows loopd to be used as a library by importing it and calling
Start.
2020-01-03 14:01:31 +01:00
Johan T. Halseth
644b5b16f7
cmd+loopd: move loopd to new folder loopd 2020-01-03 14:01:31 +01:00