Lightning Network Daemon
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
Olaoluwa Osuntokun ec585431a9
Merge pull request #8004 from Roasbeef/0-17-rc4
build: bump version to v0.17.0 rc4
5 days ago
.github github+Makefile: add new action `make tidy-module-check` 3 weeks ago
.vscode .vscode: add editor settings for VS Code 1 year ago
aezeed aezeed: fix flake in `TestDecipherIncorrectMnemonic` 3 weeks ago
aliasmgr multi: replace `FundingLocked` and `funding_locked` strings 6 months ago
amp multi: fix `make fmt` 1 year ago
autopilot autopilot: fix loop variables, use require 12 months ago
batch kvdb: move channeldb/kvdb to top level 2 years ago
blockcache multimutex: remove HashMutex, make Mutex type a type param 4 months ago
brontide brontide: derandomize fuzz tests 4 months ago
buffer lnwire: remove unused MaxMessagePayload const 2 years ago
build build: bump version to v0.17.0 rc4 6 days ago
cert multi: bump Go version 3 weeks ago
chainntnfs chainntnfs: fix `testHistoricalConfDetailsTxIndex` 3 weeks ago
chainreg multi: use fwding policy from models pkg 1 month ago
chanacceptor rpc: validate closing channel address in open channel requests 9 months ago
chanbackup multi: add new SCB version for the taproot chan type 1 month ago
chanfitness fix typos [skip ci] 1 year ago
channeldb docs: fix simple-taproot-channels typo [skip ci] (#7926) 4 weeks ago
channelnotifier channelnotifier: add `InactiveLinkEvent` 8 months ago
clock multi: bump Go version 3 weeks ago
cluster cluster: replace defer cleanup with `t.Cleanup` 12 months ago
cmd cmd/lncli: add new taproot channel type for openchannel 1 month ago
contractcourt lnwallet+contractcourt: gracefully handle auto force close post data loss 1 week ago
contrib docs: remove PIDFile from example systemd service 2 years ago
discovery funding+peer: add support for new musig2 channel funding flow 1 month ago
docker multi: bump Go version 3 weeks ago
docs Merge branch 'master' into handleRogueUpdates 6 days ago
feature feature: use +100 staging bit for taproot channels 1 month ago
funding multi: fix linter warnings with updated linter 1 month ago
healthcheck multi: bump Go version 3 weeks ago
htlcswitch multi: ensure link is always torn down due to db failures, add exponential back off for sql-kvdb failures (#7927) 3 weeks ago
input input+lnwallet: modify musig2 interfaces use explicit optional local nonces 6 days ago
internal/musig2v040 internal/musig2: rename to musig2v040 to avoid confusion 8 months ago
invoices invoice/test: make all tests parallel 2 months ago
itest itest: add remote signer test case for taproot chans 6 days ago
keychain mod+keychain+lntest: bump btcd to version with tweak fix 11 months ago
kvdb kvdb/sqlbase: use positive+negative build tags for new sql error parsing 2 weeks ago
labels multi: fix `make fmt` 1 year ago
lncfg feature+lncfg: restore simple- prefix for taproot chans arg 1 month ago
lnencrypt lnencrypt: Moves the crypto functions in the chanbackup package into its own package called lnencrypt 12 months ago
lnmock multi: update channel db HTLC OnionBlob to array 4 months ago
lnpeer funding+peer: add support for new musig2 channel funding flow 1 month ago
lnrpc Merge branch 'master' into handleRogueUpdates 6 days ago
lntest input+lnwallet: modify musig2 interfaces use explicit optional local nonces 6 days ago
lntypes lntypes+routing: add generic Min/Max functions 10 months ago
lnutils input: create new ScriptDesciptor interface 1 month ago
lnwallet lnrpc/signrpc+lnwallet/rpcwallet: expose local nonces over RPC 6 days ago
lnwire multi: fix linter warnings with updated linter 1 month ago
macaroons macaroons: let ChangePassword re-encrypt all root keys 4 months ago
make multi: bump Go version 3 weeks ago
mobile make+docs: pull in modules patch 6 months ago
monitoring Merge pull request #6224 from Roasbeef/prometheus-latency-histograms 2 years ago
multimutex multimutex: remove HashMutex, make Mutex type a type param 4 months ago
nat multi: Fix typos [skip ci] 2 years ago
netann netann+docs: remove nil value from variadic list (#7922) 1 month ago
peer multi: ensure link is always torn down due to db failures, add exponential back off for sql-kvdb failures (#7927) 3 weeks ago
peernotifier multi: add shutdown logs in subservers 2 years ago
pool pool: replace defer cleanup with `t.Cleanup` 12 months ago
queue multi: bump Go version 3 weeks ago
record routing+channeldb: send payment metadata from invoice 1 year ago
routing multi: update lightning-onion version 1 month ago
rpcperms rpcserver: add debug log for rpc calls 6 months ago
scripts github+Makefile: add new action `make tidy-module-check` 3 weeks ago
shachain multi: fix `make fmt` 1 year ago
signal multi: Update Licenses to 2022 [skip ci] 2 years ago
sqldb sqldb: add the sqldb package 2 months ago
subscribe multi: add interface for subscribe client so it can be mocked 3 years ago
sweep Merge pull request #7880 from yyforyongyu/fix-channel-arb 1 month ago
ticker multi: bump Go version 3 weeks ago
tlv multi: bump Go version 3 weeks ago
tools multi: bump Go version 3 weeks ago
tor multi: bump Go version 3 weeks ago
walletunlocker walletunlocker: fix unit test flake by closing DB 8 months ago
watchtower Merge branch 'master' into handleRogueUpdates 6 days ago
zpay32 lnwire: update Sig to support both ECDSA and schnorr sigs 1 month ago
.editorconfig .editorconfig: add editor settings for most editors 1 year ago
.gitignore multi: move `itest` out of `lntest` 7 months ago
.golangci.yml multi: bump Go version 3 weeks ago
.travis.yml build: bump Go version to v1.21.0, lnd version to v0.17.0 rc1 (#7914) 1 month ago
Dockerfile multi: bump Go version 3 weeks ago
LICENSE multi: Update Licenses to 2022 [skip ci] 2 years ago
Makefile github+Makefile: add new action `make tidy-module-check` 3 weeks ago
README.md trivial: link from readme to builder's guide 2 years ago
SECURITY.md lnd: add SECURITY.MD to bolster security entry in README 11 months ago
channel_notifier.go multi: use btcd's btcec/v2 and btcutil modules 2 years ago
chanrestore.go multi: add new SCB version for the taproot chan type 1 month ago
config.go lnd+config: add ability to obtain blocking and mutex profiles 6 days ago
config_builder.go lnd: define additional rebroadcaster function. 2 months ago
dev.Dockerfile build: bump Go version to v1.21.0, lnd version to v0.17.0 rc1 (#7914) 1 month ago
doc.go lnd: rename package main->lnd 4 years ago
go.mod build: bump version to v0.17.0 rc3 2 weeks ago
go.sum build: bump version to v0.17.0 rc3 2 weeks ago
intercepted_forward.go contractcourt: add onchain interception 1 year ago
lnd.go lnd+config: add ability to obtain blocking and mutex profiles 6 days ago
log.go lnd: fix orders when initializing subsystem loggers 3 months ago
logo.png README: add logo to top portion of page 6 years ago
pilot.go multi: use btcd's btcec/v2 and btcutil modules 2 years ago
rpcserver.go feature: use +100 staging bit for taproot channels 1 month ago
rpcserver_test.go Rpcserver: Add GetAllPermissions function for retrieving permissions for external macaroon baking 2 years ago
sample-lnd.conf lnd+config: add ability to obtain blocking and mutex profiles 6 days ago
server.go feature+lncfg: add new CLI flag to opt into taproot chans 1 month ago
server_test.go multi: add new build tag `integration` 7 months ago
sqlc.yaml multi: add sqlc support 3 months ago
subrpcserver_config.go multi: update node announcement features in feature manager first 5 months ago
sweeper_wallet.go lnd: skip canceling rebroadcast for neutrino backend 5 months ago
tls_manager.go tlsmanager: fix autocert autogeneration 2 months ago
tls_manager_test.go tlsmanager: fix autocert autogeneration 2 months ago
witness_beacon.go lnd+contractcourt: add more debug logs 5 months ago
witness_beacon_test.go lnd: replace defer cleanup with `t.Cleanup` 12 months ago

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:

  • BOLT 1: Base Protocol
  • BOLT 2: Peer Protocol for Channel Management
  • BOLT 3: Bitcoin Transaction and Script Formats
  • BOLT 4: Onion Routing Protocol
  • BOLT 5: Recommendations for On-chain Transaction Handling
  • BOLT 7: P2P Node and Channel Discovery
  • BOLT 8: Encrypted and Authenticated Transport
  • BOLT 9: Assigned Feature Flags
  • BOLT 10: DNS Bootstrap and Assisted Node Location
  • 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