Lightning Network Daemon

Oliver Gugger 57adb134e2 funding: inform aux controller about channel ready/finalize 2 tygodni temu
.github 817ddb807b GitHub+scripts: use bitcoind v27.0 1 miesiąc temu
.vscode 0759b2657c meta: add build tags to workspace settings for lsp support 6 miesięcy temu
aezeed 50f2c277d7 aezeed: fix flake in `TestDecipherIncorrectMnemonic` 9 miesięcy temu
aliasmgr f8a8326141 multi: replace `FundingLocked` and `funding_locked` strings 1 rok temu
amp 0735522194 multi: fix `make fmt` 1 rok temu
autopilot 648fb22f63 multi: wrap all errors 1 miesiąc temu
batch 60bc30dd08 remove repetitive words 2 miesięcy temu
blockcache 4ee862e3be blockcache: fix heap escape in `GetBlock` 4 miesięcy temu
brontide 648fb22f63 multi: wrap all errors 1 miesiąc temu
buffer 4b12f40a48 lnwire: remove unused MaxMessagePayload const 2 lat temu
build 10a6861bc9 build: bump version to v0.17.99 3 miesięcy temu
cert 648fb22f63 multi: wrap all errors 1 miesiąc temu
chainntnfs 11f7e455d1 lnwallet+sweep: introduce `TxPublisher` to handle fee bump 1 miesiąc temu
chainreg 33f2db1c25 multi: thread thru the AuxLeafStore everywhere 1 miesiąc temu
chanacceptor ebf98c6d51 chanacceptor: add simple taproot channels 8 miesięcy temu
chanbackup cd566eb097 multi: fix fmt.Errorf error wrapping 3 miesięcy temu
chanfitness 66b8700c0b multi: add debug logs to catch slow shutdown 8 miesięcy temu
channeldb c8546ee9b6 multi: add tapscript root to gossip message 2 tygodni temu
channelnotifier 66b8700c0b multi: add debug logs to catch slow shutdown 8 miesięcy temu
clock 09d21345e1 multi: bump Go version 9 miesięcy temu
cluster 60bc30dd08 remove repetitive words 2 miesięcy temu
cmd 7af195768a Merge pull request #8667 from lightningnetwork/elle-new-sweeper 1 miesiąc temu
contractcourt 72f7b80c28 lnwallet: thread thru input.AuxTapleaf to all relevant areas 1 miesiąc temu
contrib 9ba341bd95 docs: remove PIDFile from example systemd service 2 lat temu
discovery c8546ee9b6 multi: add tapscript root to gossip message 2 tygodni temu
docker d740e95c08 docs: preserve MINING_ADDRESS across docker-compose sessions 3 miesięcy temu
docs e855421095 docs: update release notes 1 miesiąc temu
feature 648fb22f63 multi: wrap all errors 1 miesiąc temu
fn 4f06f58791 Merge pull request #8483 from ProofOfKeags/feature/for-loop-destroyer 2 miesięcy temu
funding 57adb134e2 funding: inform aux controller about channel ready/finalize 2 tygodni temu
healthcheck 39f94a150f lnd/healthcheck: add tests for callbacks and dynamic checks 2 miesięcy temu
htlcswitch 6ff6c86155 multi: merge `DetermineFeePerKw` and `Estimate` 1 miesiąc temu
input 72f7b80c28 lnwallet: thread thru input.AuxTapleaf to all relevant areas 1 miesiąc temu
internal cd566eb097 multi: fix fmt.Errorf error wrapping 3 miesięcy temu
invoices 043e4aff01 sqldb+invoices: fix ordering bug in FilterInvoices 1 miesiąc temu
itest 5f1b4880ee lnwallet: for PsbtIntent return the internal key in the POutput 2 tygodni temu
keychain ed373baed0 multi: add tag option to SignMessageSchnorr 7 miesięcy temu
kvdb 06e4ffb3f3 kvdb: bump to sqldb/v1.0.1 1 miesiąc temu
labels 0735522194 multi: fix `make fmt` 1 rok temu
lncfg 0a611aae00 multi: add new config option `BudgetConfig` and `NoDeadlineConfTarget` 1 miesiąc temu
lnencrypt b6abede4a3 lnencrypt: add ECDHEncryptor 4 miesięcy temu
lnmock f85661d94a lnwallet+sweep: add new method `CheckMempoolAcceptance` 1 miesiąc temu
lnpeer 15978a8691 funding+peer: add support for new musig2 channel funding flow 9 miesięcy temu
lnrpc 11a276e222 walletrpc+sweep: update `PendingSweeps` to return the new params 1 miesiąc temu
lntest d854c80aa7 itest+lntest: fix itest re the new sweeping behavior 1 miesiąc temu
lntypes 99273cc5e1 lntypes+routing: add generic Min/Max functions 1 rok temu
lnutils 2686ca324a lnwallet: check mempool acceptance before publishing 4 miesięcy temu
lnwallet 886e6d23f8 funding+lnwallet: finish hook up new aux funding flow 2 tygodni temu
lnwire 7fd9c2a7f8 multi: use some record for payment descriptor blinding point 2 miesięcy temu
macaroons 9287b755d8 macaroons: reject unknown macaroon versions 7 miesięcy temu
make b1b32d9026 make: add nocache and verbose arguments 2 miesięcy temu
mobile bb5faf0f5a make+docs: pull in modules patch 1 rok temu
monitoring 9a50cc95b7 Merge pull request #6224 from Roasbeef/prometheus-latency-histograms 2 lat temu
multimutex a7d6826f60 multimutex: remove HashMutex, make Mutex type a type param 1 rok temu
nat 530a2059e5 multi: Fix typos [skip ci] 2 lat temu
netann db39a905cb multi: make NewChanIDFromOutpoint accept value instead of pointer 2 miesięcy temu
peer 8120f73245 multi: make MsgRouter available in the ImplementationCfg 2 tygodni temu
peernotifier 66b8700c0b multi: add debug logs to catch slow shutdown 8 miesięcy temu
pool cd566eb097 multi: fix fmt.Errorf error wrapping 3 miesięcy temu
protofsm 3de7961346 log+protofsm: add new abstract message router 2 tygodni temu
queue 60bc30dd08 remove repetitive words 2 miesięcy temu
record c48841a38b record: add TLV encoding/decoding for blinded route data blobs 2 miesięcy temu
routing a4a7d11e88 multi: update GenTaprootFundingScript to pass tapscript root 1 miesiąc temu
rpcperms 648fb22f63 multi: wrap all errors 1 miesiąc temu
scripts ffaf4da1da release: add hieblmi to verify install script 1 miesiąc temu
shachain 0735522194 multi: fix `make fmt` 1 rok temu
signal 62dc1b5323 multi: Update Licenses to 2022 [skip ci] 2 lat temu
sqldb 043e4aff01 sqldb+invoices: fix ordering bug in FilterInvoices 1 miesiąc temu
subscribe 78d9996620 trivial: Fix spelling errors 8 miesięcy temu
sweep 83024585bb sweep: add README 1 miesiąc temu
ticker 09d21345e1 multi: bump Go version 9 miesięcy temu
tlv 6257df31e0 tlv: add axiomatic RecordProducer implementation for Record 1 miesiąc temu
tools 09d21345e1 multi: bump Go version 9 miesięcy temu
tor cd566eb097 multi: fix fmt.Errorf error wrapping 3 miesięcy temu
walletunlocker 648fb22f63 multi: wrap all errors 1 miesiąc temu
watchtower 6cf449168c input+lnwallet: update taproot scripts to accept optional aux leaf 1 miesiąc temu
zpay32 648fb22f63 multi: wrap all errors 1 miesiąc temu
.editorconfig 2681c02afd .editorconfig: add editor settings for most editors 1 rok temu
.gitignore 0bc86a3b4b multi: move `itest` out of `lntest` 1 rok temu
.golangci.yml 581c16d72f lint: ensure the linter checks fmt.Errorf error wrapping 3 miesięcy temu
.protolint.yaml 1402ffd17b protolint: configure protolint and fix the protolinting issues 4 miesięcy temu
Dockerfile 09d21345e1 multi: bump Go version 9 miesięcy temu
LICENSE 62dc1b5323 multi: Update Licenses to 2022 [skip ci] 2 lat temu
Makefile 158b802f49 lncli+makefile: generate man pages automatically for lncli and lnd 2 miesięcy temu
README.md 071214006f docs(readme): add release build and go report status badges 7 miesięcy temu
SECURITY.md 609cc8b883 lnd: add SECURITY.MD to bolster security entry in README 1 rok temu
channel_notifier.go 7dfe4018ce multi: use btcd's btcec/v2 and btcutil modules 2 lat temu
chanrestore.go cd566eb097 multi: fix fmt.Errorf error wrapping 3 miesięcy temu
config.go 7af195768a Merge pull request #8667 from lightningnetwork/elle-new-sweeper 1 miesiąc temu
config_builder.go 0db8a1ec6a config+serer: add AuxFundingController as top level cfg option 2 tygodni temu
config_test.go 3e5f03eb0b config_test.go: add test cases for `supplyEnvValue` 2 miesięcy temu
dev.Dockerfile 1812b0e56e scripts+dev.Dockerfile: address dockerfile build issue 2 miesięcy temu
doc.go b53899c43c lnd: rename package main->lnd 5 lat temu
go.mod 51c2a1a9eb mod: bump tlv to v1.2.5 1 miesiąc temu
go.sum 51c2a1a9eb mod: bump tlv to v1.2.5 1 miesiąc temu
intercepted_forward.go 721fb4ee88 contractcourt: add onchain interception 2 lat temu
lnd.go 33f2db1c25 multi: thread thru the AuxLeafStore everywhere 1 miesiąc temu
log.go 3de7961346 log+protofsm: add new abstract message router 2 tygodni temu
logo.png fba856068e README: add logo to top portion of page 6 lat temu
pilot.go 7dfe4018ce multi: use btcd's btcec/v2 and btcutil modules 2 lat temu
rpcserver.go 7af195768a Merge pull request #8667 from lightningnetwork/elle-new-sweeper 1 miesiąc temu
rpcserver_test.go 218fa1e43e Rpcserver: Add GetAllPermissions function for retrieving permissions for external macaroon baking 2 lat temu
sample-lnd.conf 7af195768a Merge pull request #8667 from lightningnetwork/elle-new-sweeper 1 miesiąc temu
server.go 0db8a1ec6a config+serer: add AuxFundingController as top level cfg option 2 tygodni temu
server_test.go 3912d5a0c6 multi: remove Litecoin config options 8 miesięcy temu
sqlc.yaml 43a9e2f1ca multi: add sqlc support 10 miesięcy temu
subrpcserver_config.go f7198c4105 walletrpc+subserver_config: add coin selection strategy 3 miesięcy temu
sweeper_wallet.go 403c1baca6 lnd: skip canceling rebroadcast for neutrino backend 1 rok temu
tls_manager.go 404a50ae25 tls_manager: let REST proxy skip tls cert verification 4 miesięcy temu
tls_manager_test.go 10f9748193 tlsmanager: fix autocert autogeneration 10 miesięcy temu
witness_beacon.go dccf9c77ca lnd+contractcourt: add more debug logs 1 rok temu
witness_beacon_test.go 604a355db6 lnd: replace defer cleanup with `t.Cleanup` 1 rok temu

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