No description
Find a file
András Bánki-Horváth c57ccf7e61
Merge pull request #487 from bhandras/poolrpc-module
poolrpc: convert poolrpc into a go module
2024-10-14 14:11:31 +02:00
.github GitHub+Dockerfile: bump Go version to v1.22.3 2024-05-31 10:39:24 +02:00
account multi: switch gomock to go.uber.org 2024-05-31 10:39:24 +02:00
auctioneer multi: add simple taproot channel type to order 2023-10-25 10:04:23 +02:00
auctioneerrpc multi: bump lnd to v0.18.0-beta 2024-05-31 10:39:23 +02:00
chaninfo multi: add simple taproot channel type to order 2023-10-25 10:04:23 +02:00
clientdb clientdb: move WriteElement[s] to own package 2023-05-16 17:30:59 -05:00
cmd cmd/pool+tools: update Go version of linter, fix issues 2024-05-31 10:39:24 +02:00
codec codec: simplify switch cases 2023-05-16 17:30:59 -05:00
docs docs: sketch the two supported auction types 2022-10-25 05:42:25 -07:00
event multi: prepare for upcoming lnd v0.14.0-beta release 2021-10-20 19:25:54 -07:00
funding multi: add simple taproot channel type to order 2023-10-25 10:04:23 +02:00
gen multi: switch gomock to go.uber.org 2024-05-31 10:39:24 +02:00
internal/test multi: switch gomock to go.uber.org 2024-05-31 10:39:24 +02:00
make build: remove Pool release targets no longer built for lnd 2023-03-07 21:18:14 +00:00
order multi: switch gomock to go.uber.org 2024-05-31 10:39:24 +02:00
perms account: expose historical account modification fees via RPC 2022-11-15 12:54:28 +00:00
poolrpc poolrpc: convert poolrpc into a go module 2024-10-14 14:05:38 +02:00
poolscript multi: add simple taproot channel type to order 2023-10-25 10:04:23 +02:00
scripts scripts: use git describe --tags 2022-11-08 13:36:50 -08:00
sidecar multi: switch gomock to go.uber.org 2024-05-31 10:39:24 +02:00
terms multi: bump btcec/v2 and btcutil to new versions 2022-03-28 15:22:41 +02:00
tools cmd/pool+tools: update Go version of linter, fix issues 2024-05-31 10:39:24 +02:00
.editorconfig add .editorconfig as copied from lnd 2022-11-02 14:25:37 +00:00
.gitignore multi: rename project from llm to pool 2020-09-09 19:55:10 -07:00
.golangci.yml multi: fix linter issues 2023-02-23 11:26:42 +01:00
auto_sidecar.go multi: update to lnd v0.17.0-beta 2023-10-03 19:38:20 +02:00
backoff.go multi: fix linter issues 2023-02-23 11:26:42 +01:00
book.json docs: re-organize docs into new Gitbook compatible structure 2020-10-13 17:02:46 -07:00
channel_acceptor.go multi: add simple taproot channel type to order 2023-10-25 10:04:23 +02:00
config.go multi: bump aperture and rename L402 to LSAT where possible 2024-05-23 14:07:48 +02:00
Dockerfile GitHub+Dockerfile: bump Go version to v1.22.3 2024-05-31 10:39:24 +02:00
gen.go rpcserver: add Marshaler interface 2021-12-14 20:40:02 -08:00
go.mod poolrpc: convert poolrpc into a go module 2024-10-14 14:05:38 +02:00
go.sum poolrpc: convert poolrpc into a go module 2024-10-14 14:05:38 +02:00
interfaces.go rpcserver: add Marshaler interface 2021-12-14 20:40:02 -08:00
LICENSE pool: add MIT license 2021-02-02 10:09:45 +01:00
log.go multi: bump aperture and rename L402 to LSAT where possible 2024-05-23 14:07:48 +02:00
macaroons.go multi: move RequiredPermissions to dedicated dir 2022-06-14 15:07:39 +02:00
Makefile make+tools: don't compile with build tag to avoid collision 2023-02-23 11:25:50 +01:00
marshaler.go multi: calculate locked value based on account version 2022-09-12 17:20:12 +02:00
mock_interfaces.go multi: switch gomock to go.uber.org 2024-05-31 10:39:24 +02:00
README.md server+README: bump minimum required lnd version to v0.15.4-beta 2023-03-08 17:42:05 +01:00
rpcserver.go multi: bump aperture and rename L402 to LSAT where possible 2024-05-23 14:07:48 +02:00
rpcserver_test.go multi: switch gomock to go.uber.org 2024-05-31 10:39:24 +02:00
run.go run: also log start and stop errors to log file 2023-06-20 13:24:19 +02:00
server.go multi: bump aperture and rename L402 to LSAT where possible 2024-05-23 14:07:48 +02:00
sidecar_acceptor.go fmt: run go fmt 2023-01-06 01:53:15 -08:00
sidecar_acceptor_test.go multi: switch gomock to go.uber.org 2024-05-31 10:39:24 +02:00
version.go version: bump to v0.6.5-beta 2024-05-23 14:08:33 +02:00

Lightning Pool

Lightning Pool is a non-custodial, peer-to-peer marketplace that allows node operators that need inbound liquidity to pay node operators with available capital to open channels in their direction while retaining full custody of their funds. Pools first product is a Lightning Channel Lease - an inbound channel with a pre-agreed duration.

Efficient capital allocation is one of the most widely felt pain points when using the Lightning Network. Existing node operators do not have access to pricing signals to help determine where in the network their outbound liquidity should be allocated, and new node operators have no way to signal that they need new inbound liquidity. Lightning Pool brings these two sides together into a single market while allowing them to maintain custody of their funds.

Checkout our documentation to learn more. For more technical details, check out the technical white paper.

How it works

Lightning Pool is a non-custodial auction for liquidity where bids are kept private and trades clear periodically. Key aspects of Pool include:

  • Periodic clearing - Market does not clear continuously, instead, it clears every block (or after multiple blocks, if there are no bids that match with existing asks).

  • Non-custodial - Clients maintain an on-chain account that is a timelocked, 2-of-2 multisig with the auctioneer. These funds are fully in the users control at all times.

  • Sealed-bid - All orders are submitted off-chain to the auctioneer, so bidders dont have visibility into the bids of other participants

  • Uniform clearing price - All participants in a batch clear at the same price. If your ask is for 2% annualized interest, you will receive >=2%. If you bid 5%, you will pay <=5%.

  • Batched execution - Due to the account structure, the auctioneer is able to batch all completed orders into a single transaction, greatly reducing individual chain fees.

Installation

Download the latest binaries from the releases page.

LND

Note that Pool requires lnd to be built with all of its subservers and requires running at least v0.15.4. Download the latest official release binary or build lnd from source by following the installation instructions. If you choose to build lnd from source, use the following command to enable all the relevant subservers:

make install tags="signrpc walletrpc chainrpc invoicesrpc"

Usage

Read our quickstart guide to learn more about how to use Pool.

Marketplace Fee

Fees are calculated based on the amount of liquidity purchased. During the mainnet alpha, fees will range from 5-25 basis points of the matched amount.

Development

The Pool client is currently in early alpha and offers a simple command line application.

The Pool daemon exposes a gRPC API and REST API.

Troubleshooting

Join us on Slack and we'd be happy to help in any way we can. In the meantime please see our FAQs.

Build from source

If youd prefer to compile from source code, youll need at least go 1.18 and make.

Run the following commands to download the code, compile and install Pool:

$ git clone https://github.com/lightninglabs/pool
$ cd pool
$ make install

This will install the binaries into your $GOPATH/bin directory.

Compatibility

Lightning Pool requires lnd version 0.15.4-beta or higher (v0.16.0-beta or later is recommended).