Lightning Network Daemon

Olaoluwa Osuntokun d23dab1769 Merge pull request #8664 from Roasbeef/v0-17-5-branch 1 maand geleden
.github 1fb10dcd7e GitHub+scripts: use bitcoind v27.0 1 maand geleden
.vscode d20140e393 .vscode: add editor settings for VS Code 1 jaar geleden
aezeed 50f2c277d7 aezeed: fix flake in `TestDecipherIncorrectMnemonic` 9 maanden geleden
aliasmgr f8a8326141 multi: replace `FundingLocked` and `funding_locked` strings 1 jaar geleden
amp 0735522194 multi: fix `make fmt` 1 jaar geleden
autopilot 8d6befd797 autopilot: fix loop variables, use require 1 jaar geleden
batch 14c851c8fc kvdb: move channeldb/kvdb to top level 3 jaren geleden
blockcache 033292f2c2 blockcache: fix heap escape in `GetBlock` 4 maanden geleden
brontide bad4a66279 brontide: derandomize fuzz tests 1 jaar geleden
buffer 4b12f40a48 lnwire: remove unused MaxMessagePayload const 2 jaren geleden
build f8211a2c3b build: bump version to v0.17.5-beta 1 maand geleden
cert 09d21345e1 multi: bump Go version 9 maanden geleden
chainntnfs 5ebc9423e3 multi: use TCP for ZMQ in unit tests 1 maand geleden
chainreg a6fc5a901a chainreg: satisfy `chain.Interface` in `NoChainSource` 4 maanden geleden
chanacceptor ebf98c6d51 chanacceptor: add simple taproot channels 8 maanden geleden
chanbackup 5f1e0bf772 multi: add new SCB version for the taproot chan type 9 maanden geleden
chanfitness 3dc5ddc168 fix typos [skip ci] 2 jaren geleden
channeldb 8ac3480942 multi: enhance logging around channel reestablishment 6 maanden geleden
channelnotifier ced8833895 channelnotifier: add `InactiveLinkEvent` 1 jaar geleden
clock 09d21345e1 multi: bump Go version 9 maanden geleden
cluster 100839fcea cluster: replace defer cleanup with `t.Cleanup` 1 jaar geleden
cmd 1ae89d67ad walletkit: add startheight parameter to ListSweeps 4 maanden geleden
contractcourt b04927f688 multi: add GetBlockHeader to BlockChainIO 7 maanden geleden
contrib 9ba341bd95 docs: remove PIDFile from example systemd service 2 jaren geleden
discovery 15978a8691 funding+peer: add support for new musig2 channel funding flow 9 maanden geleden
docker 09d21345e1 multi: bump Go version 9 maanden geleden
docs 2be0615ed6 docs: add release notes 1 maand geleden
feature 384b1b1c12 feature: use +100 staging bit for taproot channels 9 maanden geleden
funding 92da6b1d44 multi: fix linter warnings with updated linter 9 maanden geleden
healthcheck 09d21345e1 multi: bump Go version 9 maanden geleden
htlcswitch 8ac3480942 multi: enhance logging around channel reestablishment 6 maanden geleden
input 23e177514f input: use `lnutils.SyncMap` to store musig2 sessions 6 maanden geleden
internal 0154226233 internal/musig2: rename to musig2v040 to avoid confusion 1 jaar geleden
invoices 4645fdfb0a invoice/test: make all tests parallel 10 maanden geleden
itest b1506eca95 itests: add itest for ListSweeps's start_height 4 maanden geleden
keychain e3536dd770 mod+keychain+lntest: bump btcd to version with tweak fix 1 jaar geleden
kvdb bb67131ce5 kvdb/sqlbase: use positive+negative build tags for new sql error parsing 8 maanden geleden
labels 0735522194 multi: fix `make fmt` 1 jaar geleden
lncfg 8a825a4687 multi: Add itest for a failed funding flow. 4 maanden geleden
lnencrypt e0fc5bb234 lnencrypt: Moves the crypto functions in the chanbackup package into its own package called lnencrypt 1 jaar geleden
lnmock 2fc8e9d617 multi: update channel db HTLC OnionBlob to array 1 jaar geleden
lnpeer 15978a8691 funding+peer: add support for new musig2 channel funding flow 9 maanden geleden
lnrpc 1ae89d67ad walletkit: add startheight parameter to ListSweeps 4 maanden geleden
lntest b1506eca95 itests: add itest for ListSweeps's start_height 4 maanden geleden
lntypes 99273cc5e1 lntypes+routing: add generic Min/Max functions 1 jaar geleden
lnutils a244a30f32 input: create new ScriptDesciptor interface 9 maanden geleden
lnwallet 5ebc9423e3 multi: use TCP for ZMQ in unit tests 1 maand geleden
lnwire 92da6b1d44 multi: fix linter warnings with updated linter 9 maanden geleden
macaroons 76862ed10b macaroons: reject unknown macaroon versions 7 maanden geleden
make 09d21345e1 multi: bump Go version 9 maanden geleden
mobile bb5faf0f5a make+docs: pull in modules patch 1 jaar geleden
monitoring 9a50cc95b7 Merge pull request #6224 from Roasbeef/prometheus-latency-histograms 2 jaren geleden
multimutex a7d6826f60 multimutex: remove HashMutex, make Mutex type a type param 1 jaar geleden
nat 530a2059e5 multi: Fix typos [skip ci] 2 jaren geleden
netann 15d2ff0c4d netann+docs: remove nil value from variadic list (#7922) 9 maanden geleden
peer 192c35b2c7 peer: add unit test. 4 maanden geleden
peernotifier 3204e2d74b multi: add shutdown logs in subservers 2 jaren geleden
pool 5e6690107e pool: replace defer cleanup with `t.Cleanup` 1 jaar geleden
queue 09d21345e1 multi: bump Go version 9 maanden geleden
record 9195f29e61 routing+channeldb: send payment metadata from invoice 2 jaren geleden
routing 5ebc9423e3 multi: use TCP for ZMQ in unit tests 1 maand geleden
rpcperms 9bd0dcd121 rpcserver: add debug log for rpc calls 1 jaar geleden
scripts 1fb10dcd7e GitHub+scripts: use bitcoind v27.0 1 maand geleden
shachain 0735522194 multi: fix `make fmt` 1 jaar geleden
signal 62dc1b5323 multi: Update Licenses to 2022 [skip ci] 2 jaren geleden
sqldb 5a7d7c2e4f sqldb: add the sqldb package 10 maanden geleden
subscribe 3aa008ab04 multi: add interface for subscribe client so it can be mocked 3 jaren geleden
sweep c2148ad757 sweep: prioritize smaller inputs when adding wallet UTXOs 7 maanden geleden
ticker 09d21345e1 multi: bump Go version 9 maanden geleden
tlv 09d21345e1 multi: bump Go version 9 maanden geleden
tools 09d21345e1 multi: bump Go version 9 maanden geleden
tor 09d21345e1 multi: bump Go version 9 maanden geleden
walletunlocker 2086f09489 walletunlocker: fix unit test flake by closing DB 1 jaar geleden
watchtower 12be6a37a7 Merge branch 'master' into handleRogueUpdates 8 maanden geleden
zpay32 b368e476c5 lnwire: update Sig to support both ECDSA and schnorr sigs 9 maanden geleden
.editorconfig 2681c02afd .editorconfig: add editor settings for most editors 1 jaar geleden
.gitignore 0bc86a3b4b multi: move `itest` out of `lntest` 1 jaar geleden
.golangci.yml 09d21345e1 multi: bump Go version 9 maanden geleden
.travis.yml dde1495e1d build: bump Go version to v1.21.0, lnd version to v0.17.0 rc1 (#7914) 9 maanden geleden
Dockerfile 09d21345e1 multi: bump Go version 9 maanden geleden
LICENSE 62dc1b5323 multi: Update Licenses to 2022 [skip ci] 2 jaren geleden
Makefile c568ba9fa2 github+Makefile: add new action `make tidy-module-check` 9 maanden geleden
README.md 368fa02543 trivial: link from readme to builder's guide 2 jaren geleden
SECURITY.md 609cc8b883 lnd: add SECURITY.MD to bolster security entry in README 1 jaar geleden
channel_notifier.go 7dfe4018ce multi: use btcd's btcec/v2 and btcutil modules 2 jaren geleden
chanrestore.go 5f1e0bf772 multi: add new SCB version for the taproot chan type 9 maanden geleden
config.go 23a153abae lnd+config: add ability to obtain blocking and mutex profiles 8 maanden geleden
config_builder.go 521a67c795 lnd: define additional rebroadcaster function. 10 maanden geleden
dev.Dockerfile dde1495e1d build: bump Go version to v1.21.0, lnd version to v0.17.0 rc1 (#7914) 9 maanden geleden
doc.go b53899c43c lnd: rename package main->lnd 5 jaren geleden
go.mod 5394ad27a6 mod: bump btcd to fix sendrawtransaction max fee issue 1 maand geleden
go.sum 5394ad27a6 mod: bump btcd to fix sendrawtransaction max fee issue 1 maand geleden
intercepted_forward.go 721fb4ee88 contractcourt: add onchain interception 2 jaren geleden
lnd.go 23a153abae lnd+config: add ability to obtain blocking and mutex profiles 8 maanden geleden
log.go 2451e6ae50 lnd: fix orders when initializing subsystem loggers 11 maanden geleden
logo.png fba856068e README: add logo to top portion of page 6 jaren geleden
pilot.go 7dfe4018ce multi: use btcd's btcec/v2 and btcutil modules 2 jaren geleden
rpcserver.go bb7a257359 Merge pull request #8037 from yyforyongyu/fix-weight-calc 8 maanden geleden
rpcserver_test.go 218fa1e43e Rpcserver: Add GetAllPermissions function for retrieving permissions for external macaroon baking 2 jaren geleden
sample-lnd.conf 23a153abae lnd+config: add ability to obtain blocking and mutex profiles 8 maanden geleden
server.go 8a825a4687 multi: Add itest for a failed funding flow. 4 maanden geleden
server_test.go edba938996 multi: add new build tag `integration` 1 jaar geleden
sqlc.yaml 43a9e2f1ca multi: add sqlc support 10 maanden geleden
subrpcserver_config.go e41c65785f multi: update node announcement features in feature manager first 1 jaar geleden
sweeper_wallet.go 403c1baca6 lnd: skip canceling rebroadcast for neutrino backend 1 jaar geleden
tls_manager.go 8f1460464e tls_manager: let REST proxy skip tls cert verification 4 maanden geleden
tls_manager_test.go 10f9748193 tlsmanager: fix autocert autogeneration 10 maanden geleden
witness_beacon.go dccf9c77ca lnd+contractcourt: add more debug logs 1 jaar geleden
witness_beacon_test.go 604a355db6 lnd: replace defer cleanup with `t.Cleanup` 1 jaar geleden

README.md

Lightning Network Daemon

Build Status MIT licensed Irc Godoc

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