Lightning Network Daemon

Olaoluwa Osuntokun b5ce7b29b1 protofsm+peer: wrap the wire message along w/ the peer's pubkey 2 viikkoa sitten
.github 817ddb807b GitHub+scripts: use bitcoind v27.0 1 kuukausi sitten
.vscode 0759b2657c meta: add build tags to workspace settings for lsp support 6 kuukautta sitten
aezeed 50f2c277d7 aezeed: fix flake in `TestDecipherIncorrectMnemonic` 9 kuukautta sitten
aliasmgr 166be912c1 multi: refresh htlcswitch aliases on aliasmgr update 3 viikkoa sitten
amp 0735522194 multi: fix `make fmt` 1 vuosi sitten
autopilot 648fb22f63 multi: wrap all errors 1 kuukausi sitten
batch 60bc30dd08 remove repetitive words 2 kuukautta sitten
blockcache 4ee862e3be blockcache: fix heap escape in `GetBlock` 4 kuukautta sitten
brontide 648fb22f63 multi: wrap all errors 1 kuukausi sitten
buffer 4b12f40a48 lnwire: remove unused MaxMessagePayload const 2 vuotta sitten
build 10a6861bc9 build: bump version to v0.17.99 3 kuukautta sitten
cert 648fb22f63 multi: wrap all errors 1 kuukausi sitten
chainntnfs 11f7e455d1 lnwallet+sweep: introduce `TxPublisher` to handle fee bump 1 kuukausi sitten
chainreg c0c511c686 lnwallet: obtain+verify aux sigs for all second level HTLCs 1 kuukausi sitten
chanacceptor ebf98c6d51 chanacceptor: add simple taproot channels 8 kuukautta sitten
chanbackup cd566eb097 multi: fix fmt.Errorf error wrapping 3 kuukautta sitten
chanfitness 66b8700c0b multi: add debug logs to catch slow shutdown 8 kuukautta sitten
channeldb 8a4531fc96 multi: fix up custom records 3 viikkoa sitten
channelnotifier 66b8700c0b multi: add debug logs to catch slow shutdown 8 kuukautta sitten
clock 09d21345e1 multi: bump Go version 9 kuukautta sitten
cluster 60bc30dd08 remove repetitive words 2 kuukautta sitten
cmd a7fa041a0b cmd: export AddInvoiceCommand 3 viikkoa sitten
contractcourt c0c511c686 lnwallet: obtain+verify aux sigs for all second level HTLCs 1 kuukausi sitten
contrib 9ba341bd95 docs: remove PIDFile from example systemd service 2 vuotta sitten
discovery e9f2f169e2 gissiper: only set tapscript root if optional fields available 1 kuukausi sitten
docker d740e95c08 docs: preserve MINING_ADDRESS across docker-compose sessions 3 kuukautta sitten
docs e855421095 docs: update release notes 1 kuukausi sitten
feature 648fb22f63 multi: wrap all errors 1 kuukausi sitten
fn 4f06f58791 Merge pull request #8483 from ProofOfKeags/feature/for-loop-destroyer 2 kuukautta sitten
funding b369d74884 funding: add new ChannelFinalized hook 2 viikkoa sitten
healthcheck 39f94a150f lnd/healthcheck: add tests for callbacks and dynamic checks 2 kuukautta sitten
htlcswitch cd0e15fd73 htlcswitch: allow custom HTLCs to bypass the amt to fwrd check 3 viikkoa sitten
input cf965f04ad lnwallet: add Tree() method, fix formatting 1 kuukausi sitten
internal cd566eb097 multi: fix fmt.Errorf error wrapping 3 kuukautta sitten
invoices 692395591a invoices: integrate settlement interceptor with invoice registry 3 viikkoa sitten
itest 4b020caac7 itest: add interceptor wire records access test 1 kuukausi sitten
keychain ed373baed0 multi: add tag option to SignMessageSchnorr 7 kuukautta sitten
kvdb 06e4ffb3f3 kvdb: bump to sqldb/v1.0.1 1 kuukausi sitten
labels 0735522194 multi: fix `make fmt` 1 vuosi sitten
lncfg 0a611aae00 multi: add new config option `BudgetConfig` and `NoDeadlineConfTarget` 1 kuukausi sitten
lnencrypt b6abede4a3 lnencrypt: add ECDHEncryptor 4 kuukautta sitten
lnmock f85661d94a lnwallet+sweep: add new method `CheckMempoolAcceptance` 1 kuukausi sitten
lnpeer 15978a8691 funding+peer: add support for new musig2 channel funding flow 9 kuukautta sitten
lnrpc 7953d67dbc lnrpc: fix incorrectly removed field 2 viikkoa sitten
lntest d854c80aa7 itest+lntest: fix itest re the new sweeping behavior 1 kuukausi sitten
lntypes 99273cc5e1 lntypes+routing: add generic Min/Max functions 1 vuosi sitten
lnutils 2686ca324a lnwallet: check mempool acceptance before publishing 4 kuukautta sitten
lnwallet b811f3e6c9 multi: remove custom data from openchannel RPC 2 viikkoa sitten
lnwire 8a4531fc96 multi: fix up custom records 3 viikkoa sitten
macaroons 9287b755d8 macaroons: reject unknown macaroon versions 7 kuukautta sitten
make b1b32d9026 make: add nocache and verbose arguments 2 kuukautta sitten
mobile bb5faf0f5a make+docs: pull in modules patch 1 vuosi sitten
monitoring 9a50cc95b7 Merge pull request #6224 from Roasbeef/prometheus-latency-histograms 2 vuotta sitten
multimutex a7d6826f60 multimutex: remove HashMutex, make Mutex type a type param 1 vuosi sitten
nat 530a2059e5 multi: Fix typos [skip ci] 2 vuotta sitten
netann db39a905cb multi: make NewChanIDFromOutpoint accept value instead of pointer 2 kuukautta sitten
peer b5ce7b29b1 protofsm+peer: wrap the wire message along w/ the peer's pubkey 2 viikkoa sitten
peernotifier 66b8700c0b multi: add debug logs to catch slow shutdown 8 kuukautta sitten
pool cd566eb097 multi: fix fmt.Errorf error wrapping 3 kuukautta sitten
protofsm b5ce7b29b1 protofsm+peer: wrap the wire message along w/ the peer's pubkey 2 viikkoa sitten
queue 60bc30dd08 remove repetitive words 2 kuukautta sitten
record 2ba7a531ae record: temp disable record validation 1 kuukausi sitten
routing 8a4531fc96 multi: fix up custom records 3 viikkoa sitten
rpcperms 648fb22f63 multi: wrap all errors 1 kuukausi sitten
scripts ffaf4da1da release: add hieblmi to verify install script 1 kuukausi sitten
shachain 0735522194 multi: fix `make fmt` 1 vuosi sitten
signal 62dc1b5323 multi: Update Licenses to 2022 [skip ci] 2 vuotta sitten
sqldb 043e4aff01 sqldb+invoices: fix ordering bug in FilterInvoices 1 kuukausi sitten
subscribe 78d9996620 trivial: Fix spelling errors 8 kuukautta sitten
sweep 83024585bb sweep: add README 1 kuukausi sitten
ticker 09d21345e1 multi: bump Go version 9 kuukautta sitten
tlv bdfd79425b tlv: generate types for the custom message range 1 kuukausi sitten
tools 09d21345e1 multi: bump Go version 9 kuukautta sitten
tor cd566eb097 multi: fix fmt.Errorf error wrapping 3 kuukautta sitten
walletunlocker 648fb22f63 multi: wrap all errors 1 kuukausi sitten
watchtower 002787f229 input+lnwallet: update taproot scripts to accept optional aux leaf 1 kuukausi sitten
zpay32 648fb22f63 multi: wrap all errors 1 kuukausi sitten
.editorconfig 2681c02afd .editorconfig: add editor settings for most editors 1 vuosi sitten
.gitignore 0bc86a3b4b multi: move `itest` out of `lntest` 1 vuosi sitten
.golangci.yml 581c16d72f lint: ensure the linter checks fmt.Errorf error wrapping 3 kuukautta sitten
.protolint.yaml 1402ffd17b protolint: configure protolint and fix the protolinting issues 4 kuukautta sitten
Dockerfile 09d21345e1 multi: bump Go version 9 kuukautta sitten
LICENSE 62dc1b5323 multi: Update Licenses to 2022 [skip ci] 2 vuotta sitten
Makefile 158b802f49 lncli+makefile: generate man pages automatically for lncli and lnd 2 kuukautta sitten
README.md 071214006f docs(readme): add release build and go report status badges 7 kuukautta sitten
SECURITY.md 609cc8b883 lnd: add SECURITY.MD to bolster security entry in README 1 vuosi sitten
channel_notifier.go 7dfe4018ce multi: use btcd's btcec/v2 and btcutil modules 2 vuotta sitten
chanrestore.go cd566eb097 multi: fix fmt.Errorf error wrapping 3 kuukautta sitten
config.go 7af195768a Merge pull request #8667 from lightningnetwork/elle-new-sweeper 1 kuukausi sitten
config_builder.go b4be8c24f6 lnd+config_builder: add DependenciesReceiver 3 viikkoa sitten
config_test.go 3e5f03eb0b config_test.go: add test cases for `supplyEnvValue` 2 kuukautta sitten
dev.Dockerfile 1812b0e56e scripts+dev.Dockerfile: address dockerfile build issue 2 kuukautta sitten
doc.go b53899c43c lnd: rename package main->lnd 5 vuotta sitten
go.mod d4c1937572 Merge pull request #8573 from guggero/bitcoind-27 1 kuukausi sitten
go.sum d4c1937572 Merge pull request #8573 from guggero/bitcoind-27 1 kuukausi sitten
go.work 8a790ffd39 mod+tlv: add new Blob type alias, add go.work 1 kuukausi sitten
go.work.sum 8a790ffd39 mod+tlv: add new Blob type alias, add go.work 1 kuukausi sitten
intercepted_forward.go d5b1f57116 multi: add incoming htlc amount to interceptor 1 kuukausi sitten
lnd.go 260b7a7af4 invoicesrpc: add settlement interceptor to invoices RPC server 3 viikkoa sitten
log.go 82a969bba5 multi: hook up protofsm to logging 1 kuukausi sitten
logo.png fba856068e README: add logo to top portion of page 6 vuotta sitten
pilot.go 7dfe4018ce multi: use btcd's btcec/v2 and btcutil modules 2 vuotta sitten
rpcserver.go b811f3e6c9 multi: remove custom data from openchannel RPC 2 viikkoa sitten
rpcserver_test.go 218fa1e43e Rpcserver: Add GetAllPermissions function for retrieving permissions for external macaroon baking 2 vuotta sitten
sample-lnd.conf 7af195768a Merge pull request #8667 from lightningnetwork/elle-new-sweeper 1 kuukausi sitten
server.go dba195a890 lnd: initialize invoice settlement interceptor at server startup 3 viikkoa sitten
server_test.go 3912d5a0c6 multi: remove Litecoin config options 8 kuukautta sitten
sqlc.yaml 43a9e2f1ca multi: add sqlc support 10 kuukautta sitten
subrpcserver_config.go 260b7a7af4 invoicesrpc: add settlement interceptor to invoices RPC server 3 viikkoa sitten
sweeper_wallet.go 403c1baca6 lnd: skip canceling rebroadcast for neutrino backend 1 vuosi sitten
tls_manager.go 404a50ae25 tls_manager: let REST proxy skip tls cert verification 4 kuukautta sitten
tls_manager_test.go 10f9748193 tlsmanager: fix autocert autogeneration 10 kuukautta sitten
witness_beacon.go 8a4531fc96 multi: fix up custom records 3 viikkoa sitten
witness_beacon_test.go 604a355db6 lnd: replace defer cleanup with `t.Cleanup` 1 vuosi sitten

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