mirror of https://github.com/lightninglabs/loop
README: update README with install notes and diagram
parent
724dcb49a5
commit
e423622c79
@ -1 +1,106 @@
|
||||
# Lightning Loop
|
||||
|
||||
## Loop Out Swap (off -> on-chain)
|
||||
|
||||
```
|
||||
loop out 500
|
||||
|
|
||||
|
|
||||
v
|
||||
.-----------------------------.
|
||||
| Loop CLI |
|
||||
| ./cmd/loop |
|
||||
| |
|
||||
| |
|
||||
| .-------------------. | .--------------. .---------------.
|
||||
| | Loop Client (lib) | | | LND node | | Bitcoin node |
|
||||
| | ./ |<-------------| |-------------------| |
|
||||
| | | | | | on-chain | |
|
||||
| | |------------->| | htlc | |
|
||||
| | | | off-chain | | | |
|
||||
| '-------------------' | htlc '--------------' '---------------'
|
||||
'-----------------|-----------' | ^
|
||||
| | |
|
||||
| v |
|
||||
| .--. .--.
|
||||
| _ -( )- _ _ -( )- _
|
||||
| .--,( ),--. .--,( ),--.
|
||||
initiate| _.-( )-._ _.-( )-._
|
||||
swap | ( LIGHTNING NETWORK ) ( BITCOIN NETWORK )
|
||||
| '-._( )_.-' '-._( )_.-'
|
||||
| '__,( ),__' '__,( ),__'
|
||||
| - ._(__)_. - - ._(__)_. -
|
||||
| | ^
|
||||
| | |
|
||||
v v |
|
||||
.--------------------. off-chain .--------------. .---------------.
|
||||
| Loop Server | htlc | LND node | | Bitcoin node |
|
||||
| |<-------------| | | |
|
||||
| | | | on-chain | |
|
||||
| | | | htlc | |
|
||||
| |--------------| |----------------->| |
|
||||
| | | | | |
|
||||
'--------------------' '--------------' '---------------'
|
||||
|
||||
```
|
||||
|
||||
## Setup
|
||||
|
||||
LND and the swaplet are using go modules. Make sure that the `GO111MODULE` env
|
||||
variable is set to `on`.
|
||||
|
||||
In order to execute a swap, LND needs to be rebuilt with sub servers enabled.
|
||||
|
||||
### LND
|
||||
|
||||
* Checkout branch `master`
|
||||
|
||||
- `make install tags="signrpc walletrpc chainrpc"` to build and install lnd
|
||||
with required sub-servers enabled.
|
||||
|
||||
- Make sure there are no macaroons in the lnd dir
|
||||
`~/.lnd/data/chain/bitcoin/mainnet`. If there are, lnd has been started
|
||||
before and in that case, it could be that `admin.macaroon` doesn't contain
|
||||
signer permission. Delete `macaroons.db` and `*.macaroon`.
|
||||
|
||||
DO NOT DELETE `wallet.db` !
|
||||
|
||||
- Start lnd
|
||||
|
||||
### Loopd
|
||||
- `git clone https://github.com/lightninglabs/loop.git
|
||||
- `cd loopd/cmd`
|
||||
- `go install ./...`
|
||||
|
||||
## Execute a swap
|
||||
|
||||
* Swaps are executed by a client daemon process. Run:
|
||||
|
||||
`loopd`
|
||||
|
||||
By default `loopd` attempts to connect to an lnd instance running on
|
||||
`localhost:10009` and reads the macaroon and tls certificate from `~/.lnd`.
|
||||
This can be altered using command line flags. See `loopd --help`.
|
||||
|
||||
`loopd` only listens on localhost and uses an unencrypted and unauthenticated
|
||||
connection.
|
||||
|
||||
* To initiate a swap, run:
|
||||
|
||||
`loop uncharge <amt_msat>`
|
||||
|
||||
When the swap is initiated successfully, `loopd` will see the process through.
|
||||
|
||||
* To query and track the swap status, run `loop` without arguments.
|
||||
|
||||
## Resume
|
||||
When `loopd` is terminated (or killed) for whatever reason, it will pickup
|
||||
pending swaps after a restart.
|
||||
|
||||
Information about pending swaps is stored persistently in the swap database.
|
||||
Its location is `~/.swaplet/<network>/loopent.db`.
|
||||
|
||||
## Multiple simultaneous swaps
|
||||
|
||||
It is possible to execute multiple swaps simultaneously.
|
||||
|
||||
|
Loading…
Reference in New Issue