Lightning Network Daemon

Oliver Gugger 87d5170dec Merge pull request #8744 from orbitalturtle/custom-protocol-cfg 2 周之前
.github a585833fb5 build: update release builds and CI to Go 1.22.3 3 周之前
.vscode 0759b2657c meta: add build tags to workspace settings for lsp support 6 月之前
aezeed 5f22d97b51 chore: fix function names in comment 1 月之前
aliasmgr f8a8326141 multi: replace `FundingLocked` and `funding_locked` strings 1 年之前
amp 0735522194 multi: fix `make fmt` 1 年之前
autopilot 3d56ffd0e4 Merge pull request #8662 from fuyangpengqi/master 1 月之前
batch 60bc30dd08 remove repetitive words 2 月之前
blockcache 4ee862e3be blockcache: fix heap escape in `GetBlock` 4 月之前
brontide 648fb22f63 multi: wrap all errors 1 月之前
buffer 4b12f40a48 lnwire: remove unused MaxMessagePayload const 2 年之前
build 954ad4a329 build: bump version to v0.18.0-beta.rc2 3 周之前
cert 789c6bac8c multi: replace ioutil.WriteFile 1 月之前
chainntnfs 11f7e455d1 lnwallet+sweep: introduce `TxPublisher` to handle fee bump 1 月之前
chainreg 3837c3f12e lnwallet: add configurable cache for web fee estimator 1 月之前
chanacceptor ebf98c6d51 chanacceptor: add simple taproot channels 8 月之前
chanbackup ab83343c87 multi: repleace ioutil.ReadFile 1 月之前
chanfitness 66b8700c0b multi: add debug logs to catch slow shutdown 8 月之前
channeldb 1542424782 invoices: if there are no invoices make gc noop 1 月之前
channelnotifier 66b8700c0b multi: add debug logs to catch slow shutdown 8 月之前
clock 09d21345e1 multi: bump Go version 9 月之前
cluster 60bc30dd08 remove repetitive words 2 月之前
cmd 187b0b1f80 cli: add `--amp` to `SendPaymentRequest` in `payinvoice` 4 周之前
contractcourt 776c889267 multi: return route role from HopPayload 1 月之前
contrib 9ba341bd95 docs: remove PIDFile from example systemd service 2 年之前
discovery 648fb22f63 multi: wrap all errors 1 月之前
docker d740e95c08 docs: preserve MINING_ADDRESS across docker-compose sessions 3 月之前
docs e8196c6feb cfg: move experimental options to main protocol cfg 2 周之前
feature eaa85920ea multi: enable optional route blinding feature 1 月之前
fn 30c9b86d62 fn: Added new slice functions. 3 周之前
funding 351e9a68dd multi: Add tests to psbt and normal open channel flow. 1 月之前
healthcheck 39f94a150f lnd/healthcheck: add tests for callbacks and dynamic checks 2 月之前
htlcswitch 3837c3f12e lnwallet: add configurable cache for web fee estimator 1 月之前
input 5cf700d611 Merge pull request #8658 from hidewrong/master 1 月之前
internal 789c6bac8c multi: replace ioutil.WriteFile 1 月之前
invoices d4f63662c1 invoices: ensure synchronous access to NewTestSqliteDB 3 周之前
itest 6e3a46ee91 itest: add more comprehensive assertions before HTLC cleared check 1 月之前
keychain ed373baed0 multi: add tag option to SignMessageSchnorr 7 月之前
kvdb 7302051f44 build: update to sqldb v1.0.2 1 月之前
labels 0735522194 multi: fix `make fmt` 1 年之前
lncfg e8196c6feb cfg: move experimental options to main protocol cfg 2 周之前
lnencrypt b6abede4a3 lnencrypt: add ECDHEncryptor 4 月之前
lnmock f85661d94a lnwallet+sweep: add new method `CheckMempoolAcceptance` 1 月之前
lnpeer 15978a8691 funding+peer: add support for new musig2 channel funding flow 9 月之前
lnrpc 9f2995251e lnrpc: fix typo 1 月之前
lntest 3837c3f12e lnwallet: add configurable cache for web fee estimator 1 月之前
lntypes 99273cc5e1 lntypes+routing: add generic Min/Max functions 1 年之前
lnutils 2686ca324a lnwallet: check mempool acceptance before publishing 4 月之前
lnwallet 3837c3f12e lnwallet: add configurable cache for web fee estimator 1 月之前
lnwire eaa85920ea multi: enable optional route blinding feature 1 月之前
macaroons 9287b755d8 macaroons: reject unknown macaroon versions 7 月之前
make a585833fb5 build: update release builds and CI to Go 1.22.3 3 周之前
mobile bb5faf0f5a make+docs: pull in modules patch 1 年之前
monitoring 9a50cc95b7 Merge pull request #6224 from Roasbeef/prometheus-latency-histograms 2 年之前
multimutex a7d6826f60 multimutex: remove HashMutex, make Mutex type a type param 1 年之前
nat 530a2059e5 multi: Fix typos [skip ci] 2 年之前
netann db39a905cb multi: make NewChanIDFromOutpoint accept value instead of pointer 2 月之前
peer 3837c3f12e lnwallet: add configurable cache for web fee estimator 1 月之前
peernotifier 66b8700c0b multi: add debug logs to catch slow shutdown 8 月之前
pool cd566eb097 multi: fix fmt.Errorf error wrapping 3 月之前
queue 60bc30dd08 remove repetitive words 2 月之前
record c48841a38b record: add TLV encoding/decoding for blinded route data blobs 2 月之前
routing c9713e0ddb routing: log edge when skipping it 2 周之前
rpcperms 648fb22f63 multi: wrap all errors 1 月之前
scripts 8a5160e1de multi: add test coverage for integration tests 1 月之前
shachain 0735522194 multi: fix `make fmt` 1 年之前
signal 62dc1b5323 multi: Update Licenses to 2022 [skip ci] 2 年之前
sqldb eb605a02fd sqldb+kvdb: update to sqlite v1.29.8 1 月之前
subscribe 78d9996620 trivial: Fix spelling errors 8 月之前
sweep 3f8da16b77 sweep: make `TxPublisher.currentHeight` atomic 1 月之前
ticker 09d21345e1 multi: bump Go version 9 月之前
tlv 454f56d4a8 tlv: generate TLV types for custom ranges 2 周之前
tools 09d21345e1 multi: bump Go version 9 月之前
tor 789c6bac8c multi: replace ioutil.WriteFile 1 月之前
walletunlocker 648fb22f63 multi: wrap all errors 1 月之前
watchtower c7f81d3142 multi: replace ioutil.Discard 1 月之前
zpay32 648fb22f63 multi: wrap all errors 1 月之前
.editorconfig 2681c02afd .editorconfig: add editor settings for most editors 1 年之前
.gitignore 8a5160e1de multi: add test coverage for integration tests 1 月之前
.golangci.yml 581c16d72f lint: ensure the linter checks fmt.Errorf error wrapping 3 月之前
.protolint.yaml 1402ffd17b protolint: configure protolint and fix the protolinting issues 4 月之前
Dockerfile a585833fb5 build: update release builds and CI to Go 1.22.3 3 周之前
LICENSE 62dc1b5323 multi: Update Licenses to 2022 [skip ci] 2 年之前
Makefile c577dae372 makefile+dev.Dockerfile: add install-all command 3 周之前
README.md 071214006f docs(readme): add release build and go report status badges 7 月之前
SECURITY.md 609cc8b883 lnd: add SECURITY.MD to bolster security entry in README 1 年之前
channel_notifier.go 7dfe4018ce multi: use btcd's btcec/v2 and btcutil modules 2 年之前
chanrestore.go cd566eb097 multi: fix fmt.Errorf error wrapping 3 月之前
config.go e8196c6feb cfg: move experimental options to main protocol cfg 2 周之前
config_builder.go 3837c3f12e lnwallet: add configurable cache for web fee estimator 1 月之前
config_test.go 3e5f03eb0b config_test.go: add test cases for `supplyEnvValue` 2 月之前
dev.Dockerfile a585833fb5 build: update release builds and CI to Go 1.22.3 3 周之前
doc.go b53899c43c lnd: rename package main->lnd 5 年之前
go.mod f536c9b608 build: update to kvdb v1.4.8 1 月之前
go.sum f536c9b608 build: update to kvdb v1.4.8 1 月之前
intercepted_forward.go 721fb4ee88 contractcourt: add onchain interception 2 年之前
lnd.go ab83343c87 multi: repleace ioutil.ReadFile 1 月之前
log.go 2451e6ae50 lnd: fix orders when initializing subsystem loggers 11 月之前
logo.png fba856068e README: add logo to top portion of page 6 年之前
pilot.go 5f22d97b51 chore: fix function names in comment 1 月之前
rpcserver.go af9858c3ed feat: add inbound fees to channel notifications 3 周之前
rpcserver_test.go 218fa1e43e Rpcserver: Add GetAllPermissions function for retrieving permissions for external macaroon baking 2 年之前
sample-lnd.conf e8196c6feb cfg: move experimental options to main protocol cfg 2 周之前
server.go e8196c6feb cfg: move experimental options to main protocol cfg 2 周之前
server_test.go 3912d5a0c6 multi: remove Litecoin config options 8 月之前
sqlc.yaml 43a9e2f1ca multi: add sqlc support 10 月之前
subrpcserver_config.go f7198c4105 walletrpc+subserver_config: add coin selection strategy 3 月之前
sweeper_wallet.go 403c1baca6 lnd: skip canceling rebroadcast for neutrino backend 1 年之前
tls_manager.go 789c6bac8c multi: replace ioutil.WriteFile 1 月之前
tls_manager_test.go 789c6bac8c multi: replace ioutil.WriteFile 1 月之前
witness_beacon.go dccf9c77ca lnd+contractcourt: add more debug logs 1 年之前
witness_beacon_test.go 604a355db6 lnd: replace defer cleanup with `t.Cleanup` 1 年之前

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