Lightning Network Daemon

Oliver Gugger e8a1d4876e Merge pull request #8705 from yyforyongyu/fix-typo 2 hours ago
.github 817ddb807b GitHub+scripts: use bitcoind v27.0 1 week ago
.vscode 0759b2657c meta: add build tags to workspace settings for lsp support 5 months ago
aezeed 5f22d97b51 chore: fix function names in comment 3 days ago
aliasmgr f8a8326141 multi: replace `FundingLocked` and `funding_locked` strings 1 year ago
amp 0735522194 multi: fix `make fmt` 1 year ago
autopilot 3d56ffd0e4 Merge pull request #8662 from fuyangpengqi/master 23 hours ago
batch 60bc30dd08 remove repetitive words 1 month ago
blockcache 4ee862e3be blockcache: fix heap escape in `GetBlock` 3 months ago
brontide 648fb22f63 multi: wrap all errors 2 weeks ago
buffer 4b12f40a48 lnwire: remove unused MaxMessagePayload const 2 years ago
build 3b6103d29f build: bump version to v0.18.0-beta.rc1 3 days ago
cert 789c6bac8c multi: replace ioutil.WriteFile 5 days ago
chainntnfs 11f7e455d1 lnwallet+sweep: introduce `TxPublisher` to handle fee bump 1 week ago
chainreg 619c8f4eb8 multi: repleace ioutil.ReadAll 5 days ago
chanacceptor ebf98c6d51 chanacceptor: add simple taproot channels 7 months ago
chanbackup ab83343c87 multi: repleace ioutil.ReadFile 5 days ago
chanfitness 66b8700c0b multi: add debug logs to catch slow shutdown 6 months ago
channeldb fe8784aa0c channeldb: fix race in TestPackager by removing global test var 3 days ago
channelnotifier 66b8700c0b multi: add debug logs to catch slow shutdown 6 months ago
clock 09d21345e1 multi: bump Go version 7 months ago
cluster 60bc30dd08 remove repetitive words 1 month ago
cmd 2089a88f4b Merge pull request #7765 from ErikEk/retire-io-ioutil-dep 5 days ago
contractcourt 776c889267 multi: return route role from HopPayload 4 days ago
contrib 9ba341bd95 docs: remove PIDFile from example systemd service 2 years ago
discovery 648fb22f63 multi: wrap all errors 2 weeks ago
docker d740e95c08 docs: preserve MINING_ADDRESS across docker-compose sessions 2 months ago
docs 6159d41970 docs: remove entry for fix within release 19 hours ago
feature eaa85920ea multi: enable optional route blinding feature 3 days ago
fn 4f06f58791 Merge pull request #8483 from ProofOfKeags/feature/for-loop-destroyer 1 month ago
funding 351e9a68dd multi: Add tests to psbt and normal open channel flow. 5 days ago
healthcheck 39f94a150f lnd/healthcheck: add tests for callbacks and dynamic checks 1 month ago
htlcswitch 43687181f7 htlcswitch: convert blinded failures for blinded payments 4 days ago
input 5cf700d611 Merge pull request #8658 from hidewrong/master 5 days ago
internal 789c6bac8c multi: replace ioutil.WriteFile 5 days ago
invoices 043e4aff01 sqldb+invoices: fix ordering bug in FilterInvoices 2 weeks ago
itest 675ae6e213 Merge pull request #8693 from yyforyongyu/add-default-conf 3 days ago
keychain ed373baed0 multi: add tag option to SignMessageSchnorr 6 months ago
kvdb 7302051f44 build: update to sqldb v1.0.2 3 days ago
labels 0735522194 multi: fix `make fmt` 1 year ago
lncfg 7867cb3a70 multi: turn on route blinding by default 3 days ago
lnencrypt b6abede4a3 lnencrypt: add ECDHEncryptor 3 months ago
lnmock f85661d94a lnwallet+sweep: add new method `CheckMempoolAcceptance` 1 week ago
lnpeer 15978a8691 funding+peer: add support for new musig2 channel funding flow 8 months ago
lnrpc 9f2995251e lnrpc: fix typo 1 day ago
lntest e8031fdccf lnrpc: ensure parsing of the Amp flag for payments is consistent 4 days ago
lntypes 99273cc5e1 lntypes+routing: add generic Min/Max functions 1 year ago
lnutils 2686ca324a lnwallet: check mempool acceptance before publishing 3 months ago
lnwallet ab83343c87 multi: repleace ioutil.ReadFile 5 days ago
lnwire eaa85920ea multi: enable optional route blinding feature 3 days ago
macaroons 9287b755d8 macaroons: reject unknown macaroon versions 6 months ago
make b1b32d9026 make: add nocache and verbose arguments 1 month 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 11 months ago
nat 530a2059e5 multi: Fix typos [skip ci] 2 years ago
netann db39a905cb multi: make NewChanIDFromOutpoint accept value instead of pointer 1 month ago
peer 648fb22f63 multi: wrap all errors 2 weeks ago
peernotifier 66b8700c0b multi: add debug logs to catch slow shutdown 6 months ago
pool cd566eb097 multi: fix fmt.Errorf error wrapping 2 months ago
queue 60bc30dd08 remove repetitive words 1 month ago
record c48841a38b record: add TLV encoding/decoding for blinded route data blobs 1 month ago
routing ab83343c87 multi: repleace ioutil.ReadFile 5 days ago
rpcperms 648fb22f63 multi: wrap all errors 2 weeks ago
scripts ffaf4da1da release: add hieblmi to verify install script 1 week ago
shachain 0735522194 multi: fix `make fmt` 1 year ago
signal 62dc1b5323 multi: Update Licenses to 2022 [skip ci] 2 years ago
sqldb eb605a02fd sqldb+kvdb: update to sqlite v1.29.8 3 days ago
subscribe 78d9996620 trivial: Fix spelling errors 7 months ago
sweep d0441a2a29 multi: add default conf targt in SendCoins/SendMany/OpenChannel/CloseChannel 4 days ago
ticker 09d21345e1 multi: bump Go version 7 months ago
tlv c6dae6c3c0 tlv: rename receivers, add ValOpt 4 days ago
tools 09d21345e1 multi: bump Go version 7 months ago
tor 789c6bac8c multi: replace ioutil.WriteFile 5 days ago
walletunlocker 648fb22f63 multi: wrap all errors 2 weeks ago
watchtower c7f81d3142 multi: replace ioutil.Discard 5 days ago
zpay32 648fb22f63 multi: wrap all errors 2 weeks 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 581c16d72f lint: ensure the linter checks fmt.Errorf error wrapping 2 months ago
.protolint.yaml 1402ffd17b protolint: configure protolint and fix the protolinting issues 3 months ago
Dockerfile 09d21345e1 multi: bump Go version 7 months ago
LICENSE 62dc1b5323 multi: Update Licenses to 2022 [skip ci] 2 years ago
Makefile ba34f220b9 make: add cache directory for linter 4 days ago
README.md 071214006f docs(readme): add release build and go report status badges 6 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 cd566eb097 multi: fix fmt.Errorf error wrapping 2 months ago
config.go 7867cb3a70 multi: turn on route blinding by default 3 days ago
config_builder.go ab83343c87 multi: repleace ioutil.ReadFile 5 days ago
config_test.go 3e5f03eb0b config_test.go: add test cases for `supplyEnvValue` 1 month ago
dev.Dockerfile 1812b0e56e scripts+dev.Dockerfile: address dockerfile build issue 1 month ago
doc.go b53899c43c lnd: rename package main->lnd 5 years ago
go.mod f536c9b608 build: update to kvdb v1.4.8 3 days ago
go.sum f536c9b608 build: update to kvdb v1.4.8 3 days ago
intercepted_forward.go 721fb4ee88 contractcourt: add onchain interception 2 years ago
lnd.go ab83343c87 multi: repleace ioutil.ReadFile 5 days ago
log.go 2451e6ae50 lnd: fix orders when initializing subsystem loggers 10 months ago
logo.png fba856068e README: add logo to top portion of page 6 years ago
pilot.go 5f22d97b51 chore: fix function names in comment 3 days ago
rpcserver.go 3d56ffd0e4 Merge pull request #8662 from fuyangpengqi/master 23 hours ago
rpcserver_test.go 218fa1e43e Rpcserver: Add GetAllPermissions function for retrieving permissions for external macaroon baking 2 years ago
sample-lnd.conf 7af195768a Merge pull request #8667 from lightningnetwork/elle-new-sweeper 1 week ago
server.go 3d56ffd0e4 Merge pull request #8662 from fuyangpengqi/master 23 hours ago
server_test.go 3912d5a0c6 multi: remove Litecoin config options 6 months ago
sqlc.yaml 43a9e2f1ca multi: add sqlc support 9 months ago
subrpcserver_config.go f7198c4105 walletrpc+subserver_config: add coin selection strategy 2 months ago
sweeper_wallet.go 403c1baca6 lnd: skip canceling rebroadcast for neutrino backend 1 year ago
tls_manager.go 789c6bac8c multi: replace ioutil.WriteFile 5 days ago
tls_manager_test.go 789c6bac8c multi: replace ioutil.WriteFile 5 days 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