Lightning Network Daemon

Elle Mouton e6ea852b38 docs: update release notes 4 months ago
.github ba3c0c497a .github: codeowners additions 3 months ago
.vscode 0759b2657c meta: add build tags to workspace settings for lsp support 6 months ago
aezeed 50f2c277d7 aezeed: fix flake in `TestDecipherIncorrectMnemonic` 9 months ago
aliasmgr f8a8326141 multi: replace `FundingLocked` and `funding_locked` strings 1 year ago
amp 0735522194 multi: fix `make fmt` 1 year ago
autopilot b769321961 multi: use models.ChannelEdgeInfo throughout 3 months ago
batch 14c851c8fc kvdb: move channeldb/kvdb to top level 3 years ago
blockcache 4ee862e3be blockcache: fix heap escape in `GetBlock` 4 months ago
brontide bad4a66279 brontide: derandomize fuzz tests 1 year ago
buffer 4b12f40a48 lnwire: remove unused MaxMessagePayload const 2 years ago
build 2fb150c8fe build: bump version to v0.17.0 8 months ago
cert 78d9996620 trivial: Fix spelling errors 8 months ago
chainntnfs 99908ed2dc routing: deep copy any transaciton we obtain from `GetBlock` call. 4 months ago
chainreg e6f5d17548 chainreg: satisfy `chain.Interface` in `NoChainSource` 4 months ago
chanacceptor ebf98c6d51 chanacceptor: add simple taproot channels 8 months ago
chanbackup 66b8700c0b multi: add debug logs to catch slow shutdown 8 months ago
chanfitness 66b8700c0b multi: add debug logs to catch slow shutdown 8 months ago
channeldb b06b0b440f multi: updates to HasChannelPolicy 3 months ago
channelnotifier 66b8700c0b multi: add debug logs to catch slow shutdown 8 months ago
clock 09d21345e1 multi: bump Go version 9 months ago
cluster 100839fcea cluster: replace defer cleanup with `t.Cleanup` 1 year ago
cmd 7725a57055 walletkit: add startheight parameter to ListSweeps 4 months ago
contractcourt 0f245bf237 contractcourt: rename breacharbiter*.go to breach_arbitrator 3 months ago
contrib 9ba341bd95 docs: remove PIDFile from example systemd service 2 years ago
discovery 894abb0d64 channeldb: write to new update index for ChannelEdgePolicy2 3 months ago
docker d740e95c08 docs: preserve MINING_ADDRESS across docker-compose sessions 3 months ago
docs e6ea852b38 docs: update release notes 3 months ago
feature 109265c77a multi: make static remote key compulsory 4 months ago
fn 1d1c1382d0 fn: add utility funcs/method for option type 4 months ago
funding 56dea96fa9 multi: rename ChannelEdgePolicy 3 months ago
healthcheck cbb6e681a5 build(deps): bump github.com/btcsuite/btcd in /healthcheck (#8051) 7 months ago
htlcswitch 8b90a621b5 multi: rename ChannelUpdate to ChannelUpdate1 3 months ago
input fde982ad78 input: extract to_local script builders 4 months ago
internal afa21953b5 internal/musig2: fix typos [skip ci] 4 months ago
invoices 18333e8c7d multi: fix timestamp filters for invoice query 3 months ago
itest 8b90a621b5 multi: rename ChannelUpdate to ChannelUpdate1 3 months ago
keychain ed373baed0 multi: add tag option to SignMessageSchnorr 7 months ago
kvdb 25af657ad5 kvdb: set postgres max_connections on the started instance 4 months ago
labels 0735522194 multi: fix `make fmt` 1 year ago
lncfg 1057eb729d multi: add `unsafedisconnect` as a dev config 4 months ago
lnencrypt b6abede4a3 lnencrypt: add ECDHEncryptor 4 months ago
lnmock 2fc8e9d617 multi: update channel db HTLC OnionBlob to array 1 year ago
lnpeer 15978a8691 funding+peer: add support for new musig2 channel funding flow 9 months ago
lnrpc b769321961 multi: use models.ChannelEdgeInfo throughout 3 months ago
lntest ca5f23a647 Merge pull request #7372 from bhandras/listsweeps-range 4 months ago
lntypes 99273cc5e1 lntypes+routing: add generic Min/Max functions 1 year ago
lnutils 2686ca324a lnwallet: check mempool acceptance before publishing 4 months ago
lnwallet 3a02f2ba65 lnwallet: use ResetState instead of tweaking private rows 4 months ago
lnwire f4c7a5c952 channeldb: add encoding for ChannelEdgePolicy2 3 months ago
macaroons 9287b755d8 macaroons: reject unknown macaroon versions 7 months ago
make 339c5fe1f0 makefile: add rpc tags to the unit tests. 4 months ago
mobile bb5faf0f5a make+docs: pull in modules patch 1 year ago
monitoring 9a50cc95b7 Merge pull request #6224 from Roasbeef/prometheus-latency-histograms 2 years ago
multimutex a7d6826f60 multimutex: remove HashMutex, make Mutex type a type param 1 year ago
nat 530a2059e5 multi: Fix typos [skip ci] 2 years ago
netann 894abb0d64 channeldb: write to new update index for ChannelEdgePolicy2 3 months ago
peer b769321961 multi: use models.ChannelEdgeInfo throughout 3 months ago
peernotifier 66b8700c0b multi: add debug logs to catch slow shutdown 8 months ago
pool 78d9996620 trivial: Fix spelling errors 8 months ago
queue 09d21345e1 multi: bump Go version 9 months ago
record 4732c09a26 multi: Fix final hop payload size for AMP payments. 4 months ago
routing b06b0b440f multi: updates to HasChannelPolicy 3 months ago
rpcperms 9bd0dcd121 rpcserver: add debug log for rpc calls 1 year ago
scripts 6abfa0b1ee scripts: add gpg key for yyforyongyu [skip ci] 4 months ago
shachain 0735522194 multi: fix `make fmt` 1 year ago
signal 62dc1b5323 multi: Update Licenses to 2022 [skip ci] 2 years ago
sqldb fff785c909 fix: correct the typo 5 months ago
subscribe 78d9996620 trivial: Fix spelling errors 8 months ago
sweep dda5c4515e Merge pull request #8279 from Crypt-iQ/p2tr_weight 4 months ago
ticker 09d21345e1 multi: bump Go version 9 months ago
tlv 78e0e5ac5d tlv: add new Zero method on RecordT 4 months ago
tools 09d21345e1 multi: bump Go version 9 months ago
tor aa95469b1f build(deps): bump golang.org/x/net from 0.10.0 to 0.17.0 in /tor 7 months ago
walletunlocker 2086f09489 walletunlocker: fix unit test flake by closing DB 1 year ago
watchtower d7796b464e Merge pull request #8377 from ellemouton/towerTestFlakeFix 4 months ago
zpay32 ec02ffa383 zpay32: Change min_final_cltv_expiry_delta. 5 months ago
.editorconfig 2681c02afd .editorconfig: add editor settings for most editors 1 year ago
.gitignore 0bc86a3b4b multi: move `itest` out of `lntest` 1 year ago
.golangci.yml 22600b47f1 multi: disable linter `paralleltest` 7 months ago
.protolint.yaml 1402ffd17b protolint: configure protolint and fix the protolinting issues 4 months ago
.travis.yml dde1495e1d build: bump Go version to v1.21.0, lnd version to v0.17.0 rc1 (#7914) 9 months ago
Dockerfile 09d21345e1 multi: bump Go version 9 months ago
LICENSE 62dc1b5323 multi: Update Licenses to 2022 [skip ci] 2 years ago
Makefile 1402ffd17b protolint: configure protolint and fix the protolinting issues 4 months ago
README.md 071214006f docs(readme): add release build and go report status badges 7 months ago
SECURITY.md 609cc8b883 lnd: add SECURITY.MD to bolster security entry in README 1 year ago
channel_notifier.go 7dfe4018ce multi: use btcd's btcec/v2 and btcutil modules 2 years ago
chanrestore.go be90bcbe46 multi: remove litecoin references and comments 8 months ago
config.go 043834c698 config.go: mention that `--lnddir` option overwrites all other directory options [skip ci] 3 months ago
config_builder.go 031dbd7760 multi: remove ChainRegistry 8 months ago
config_test.go 157c84cc4d multi: log warnings if deprecated config options are used 4 months ago
dev.Dockerfile dde1495e1d build: bump Go version to v1.21.0, lnd version to v0.17.0 rc1 (#7914) 9 months ago
doc.go b53899c43c lnd: rename package main->lnd 5 years ago
go.mod d2c82c49ca mod: update btcwallet version. 4 months ago
go.sum d2c82c49ca mod: update btcwallet version. 4 months ago
intercepted_forward.go 721fb4ee88 contractcourt: add onchain interception 2 years ago
lnd.go 039e9effe7 lnd: add http header timeout to config 7 months ago
log.go 2451e6ae50 lnd: fix orders when initializing subsystem loggers 11 months ago
logo.png fba856068e README: add logo to top portion of page 6 years ago
pilot.go 7dfe4018ce multi: use btcd's btcec/v2 and btcutil modules 2 years ago
rpcserver.go b769321961 multi: use models.ChannelEdgeInfo throughout 3 months ago
rpcserver_test.go 218fa1e43e Rpcserver: Add GetAllPermissions function for retrieving permissions for external macaroon baking 2 years ago
sample-lnd.conf a439cc970f multi: start asking for update timestamps in QueryChannelRange 5 months ago
server.go b769321961 multi: use models.ChannelEdgeInfo throughout 3 months ago
server_test.go 3912d5a0c6 multi: remove Litecoin config options 8 months ago
sqlc.yaml 43a9e2f1ca multi: add sqlc support 10 months ago
subrpcserver_config.go eada2132d1 multi: rename NodeAnnouncement 3 months ago
sweeper_wallet.go 403c1baca6 lnd: skip canceling rebroadcast for neutrino backend 1 year ago
tls_manager.go 404a50ae25 tls_manager: let REST proxy skip tls cert verification 4 months ago
tls_manager_test.go 10f9748193 tlsmanager: fix autocert autogeneration 10 months ago
witness_beacon.go dccf9c77ca lnd+contractcourt: add more debug logs 1 year ago
witness_beacon_test.go 604a355db6 lnd: replace defer cleanup with `t.Cleanup` 1 year ago

README.md

Lightning Network Daemon

Release build MIT licensed Irc Godoc Go Report Card

The Lightning Network Daemon (lnd) - is a complete implementation of a Lightning Network node. lnd has several pluggable back-end chain services including btcd (a full-node), bitcoind, and neutrino (a new experimental light client). The project's codebase uses the btcsuite set of Bitcoin libraries, and also exports a large set of isolated re-usable Lightning Network related libraries within it. In the current state lnd is capable of:

  • Creating channels.
  • Closing channels.
  • Completely managing all channel states (including the exceptional ones!).
  • Maintaining a fully authenticated+validated channel graph.
  • Performing path finding within the network, passively forwarding incoming payments.
  • Sending outgoing onion-encrypted payments through the network.
  • Updating advertised fee schedules.
  • Automatic channel management (autopilot).

Lightning Network Specification Compliance

lnd fully conforms to the Lightning Network specification (BOLTs). BOLT stands for: Basis of Lightning Technology. The specifications are currently being drafted by several groups of implementers based around the world including the developers of lnd. The set of specification documents as well as our implementation of the specification are still a work-in-progress. With that said, the current status of lnd's BOLT compliance is:

  • [X] BOLT 1: Base Protocol
  • [X] BOLT 2: Peer Protocol for Channel Management
  • [X] BOLT 3: Bitcoin Transaction and Script Formats
  • [X] BOLT 4: Onion Routing Protocol
  • [X] BOLT 5: Recommendations for On-chain Transaction Handling
  • [X] BOLT 7: P2P Node and Channel Discovery
  • [X] BOLT 8: Encrypted and Authenticated Transport
  • [X] BOLT 9: Assigned Feature Flags
  • [X] BOLT 10: DNS Bootstrap and Assisted Node Location
  • [X] BOLT 11: Invoice Protocol for Lightning Payments

Developer Resources

The daemon has been designed to be as developer friendly as possible in order to facilitate application development on top of lnd. Two primary RPC interfaces are exported: an HTTP REST API, and a gRPC service. The exported API's are not yet stable, so be warned: they may change drastically in the near future.

An automatically generated set of documentation for the RPC APIs can be found at api.lightning.community. A set of developer resources including guides, articles, example applications and community resources can be found at: docs.lightning.engineering.

Finally, we also have an active Slack where protocol developers, application developers, testers and users gather to discuss various aspects of lnd and also Lightning in general.

Installation

In order to build from source, please see the installation instructions.

Docker

To run lnd from Docker, please see the main Docker instructions

IRC

  • irc.libera.chat
  • channel #lnd
  • webchat

Safety

When operating a mainnet lnd node, please refer to our operational safety guidelines. It is important to note that lnd is still beta software and that ignoring these operational guidelines can lead to loss of funds.

Security

The developers of lnd take security very seriously. The disclosure of security vulnerabilities helps us secure the health of lnd, privacy of our users, and also the health of the Lightning Network as a whole. If you find any issues regarding security or privacy, please disclose the information responsibly by sending an email to security at lightning dot engineering, preferably encrypted using our designated PGP key (91FE464CD75101DA6B6BAB60555C6465E5BCB3AF) which can be found here.

Further reading