No description
Find a file
Olaoluwa Osuntokun a43019f246
Merge pull request #250 from lightninglabs/auto-sidecar
multi: implement automated negotiation for sidecar channels
2021-05-09 19:30:28 -07:00
.github/ISSUE_TEMPLATE GitHub: add issue templates 2021-03-09 11:12:11 +01:00
account auctioneer+account: rename SubscribeAccountUpdates 2021-04-02 14:18:11 +02:00
auctioneer rpc: add automated sidecar negotiation for the recipient 2021-05-09 19:25:06 -07:00
auctioneerrpc auctioneerrpc: add in new HashMail servivce 2021-05-09 19:24:47 -07:00
chaninfo chaninfo+rpcserver: add new anchor commit version 2021-01-11 13:19:10 +01:00
clientdb clientdb: add new method to insert a sidecar ticket along w/ a bid 2021-05-09 19:24:58 -07:00
cmd cmd/pool: for sidecar offers parse complete bid if auto flag is set 2021-05-09 19:25:13 -07:00
docs Fix typo 2021-04-07 09:52:58 +01:00
event event: add new event package 2020-10-01 13:16:45 +02:00
funding rpc: add automated sidecar negotiation for the recipient 2021-05-09 19:25:06 -07:00
internal/test multi: update lndclient and other deps 2021-01-15 22:14:36 +01:00
make build: remove darwin/386 as no longer supported by Go 1.15 2020-10-30 20:00:22 -07:00
order sidecar: update ticket w/ new offer field to indicate auto negotiation 2021-05-09 19:24:56 -07:00
poolrpc poolrpc: modify OfferSidecarRequest to embed bid expose auto flag 2021-05-09 19:24:52 -07:00
poolscript pool: rename clmscript to poolrpc 2020-09-09 19:55:04 -07:00
scripts build: add release script ane Makefile modifications 2020-10-30 19:07:21 -07:00
sidecar sidecar: update ticket w/ new offer field to indicate auto negotiation 2021-05-09 19:24:56 -07:00
terms multi: move auctioneer proto to auctioneerrpc package 2021-01-22 10:41:44 +01:00
.gitignore multi: rename project from llm to pool 2020-09-09 19:55:10 -07:00
.golangci.yml Makefile+lint: only limit concurrency on Travis 2020-06-24 09:58:17 +02:00
.travis.yml travis: disable coverage for private repo 2020-06-24 10:53:59 +02:00
auto_sidecar.go sidecar: move sidecar logic to new file, properly handle retransmission 2021-05-09 19:25:23 -07: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 channel acceptor 2021-03-19 16:50:33 +01:00
config.go rpcserver: fix Python gRPC client ALPN property error 2021-04-23 14:56:48 -05:00
Dockerfile multi: rename project from llm to pool 2020-09-09 19:55:10 -07:00
go.mod mod: bump aperture to v0.1.6-beta 2021-04-29 10:05:08 +02:00
go.sum mod: bump aperture to v0.1.6-beta 2021-04-29 10:05:08 +02:00
LICENSE pool: add MIT license 2021-02-02 10:09:45 +01:00
log.go multi: add sidecar acceptor type 2021-04-06 13:36:30 +02:00
macaroons.go poolrpc+rpcserver: implement QuoteOrder RPC 2021-05-05 15:57:34 +02:00
Makefile make: fix ldflags to include commit in version string 2021-01-27 14:40:47 +01:00
README.md doc+mod: update to lndclient v0.12 2021-03-19 16:50:32 +01:00
rpcserver.go rpc: include order nonce in SidecarTicket 2021-05-09 19:25:18 -07:00
run.go multi: extract config validation 2020-09-12 09:08:13 +02:00
server.go sidecar: use a funciton closure for PrepareOrder 2021-05-09 19:25:16 -07:00
sidecar_acceptor.go sidecar: move sidecar logic to new file, properly handle retransmission 2021-05-09 19:25:23 -07:00
sidecar_acceptor_test.go sidecar: modify RegisterSidecar to return modified ticket 2021-05-09 19:25:04 -07:00
version.go version: bump to version v0.4.3-alpha 2021-02-24 12:43:17 +01: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.12.0. 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 per user.

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.14 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.11.1-beta or higher