Lightning Network Daemon

Olaoluwa Osuntokun 6bd30047c1 build: bump version to v0.16.4 11 meses atrás
.github 39cc227d0d build: update build system to Go 1.20.3 1 ano atrás
.vscode d20140e393 .vscode: add editor settings for VS Code 1 ano atrás
aezeed edba938996 multi: add new build tag `integration` 1 ano atrás
aliasmgr f8a8326141 multi: replace `FundingLocked` and `funding_locked` strings 1 ano atrás
amp 0735522194 multi: fix `make fmt` 1 ano atrás
autopilot 8d6befd797 autopilot: fix loop variables, use require 1 ano atrás
batch 14c851c8fc kvdb: move channeldb/kvdb to top level 3 anos atrás
blockcache a15c45231e multi: bump neutrino+btcwallet versions, use new generic lru cache 1 ano atrás
brontide e15d3e898e brontide,lnwire,wtwire,zpay32: appease linter 1 ano atrás
buffer 4b12f40a48 lnwire: remove unused MaxMessagePayload const 2 anos atrás
build 6bd30047c1 build: bump version to v0.16.4 11 meses atrás
cert c3445e79d9 cert: removed unused args from cert.GenCertPair 1 ano atrás
chainntnfs f9b1250ecf chainntnfs: remove subscriptions when the relevant tx is confirmed 1 ano atrás
chainreg c96fe0ec58 chainreg: increase default CLTV value to 80 blocks (~13 hrs) 1 ano atrás
chanacceptor 2204cbfd30 rpc: validate closing channel address in open channel requests 1 ano atrás
chanbackup 5c5997935d chanbackup: replace defer cleanup with `t.Cleanup` 1 ano atrás
chanfitness 3dc5ddc168 fix typos [skip ci] 2 anos atrás
channeldb 2509000878 channeldb: use input.GenMultiSigScript 1 ano atrás
channelnotifier ced8833895 channelnotifier: add `InactiveLinkEvent` 1 ano atrás
clock 077ebe3868 clock: add missing package `require` and replace `assert` [skip ci] 1 ano atrás
cluster 100839fcea cluster: replace defer cleanup with `t.Cleanup` 1 ano atrás
cmd 508b0a4426 Merge tag 'v0.16.0-beta' into v0-16-1-branch-rc3 1 ano atrás
contractcourt 1ba6467c6b contractcourt: force the sweeper to always resolve outgoing HTLCs 1 ano atrás
contrib 9ba341bd95 docs: remove PIDFile from example systemd service 2 anos atrás
discovery 2b8e9a0d36 multi: add more trace logs regarding link activate flow 1 ano atrás
docker c31698b59b docker+docs: bump btcd version 1 ano atrás
docs dea815dac2 mod: update `btcwallet` version 11 meses atrás
feature 89529fbb4f feature+lncfg: add config option to turn of anysegwit 1 ano atrás
funding 11f1735e85 funding: use default fwding policy if persisted values not found 1 ano atrás
healthcheck fccfefdb58 build(deps): bump golang.org/x/sys in /healthcheck 1 ano atrás
htlcswitch ddf551f16d htlcswitch: add new LinkFailureDisconnect action 1 ano atrás
input 43660c2c31 input: note to update witness type protobuf 1 ano atrás
internal 0154226233 internal/musig2: rename to musig2v040 to avoid confusion 1 ano atrás
invoices 4a7d3bc9c2 invoices: fix flake in `TestInvoiceExpiryWithRegistry` 1 ano atrás
itest caabfb7eb4 itest: cleanup channels for `testSwitchOfflineDeliveryOutgoingOffline` 1 ano atrás
keychain e3536dd770 mod+keychain+lntest: bump btcd to version with tweak fix 1 ano atrás
kvdb ded9fb87d2 build(deps): bump golang.org/x/net from 0.4.0 to 0.7.0 in /kvdb 1 ano atrás
labels 0735522194 multi: fix `make fmt` 1 ano atrás
lncfg b90b66ea80 chainreg: update bitcoind polling config 1 ano atrás
lnencrypt e0fc5bb234 lnencrypt: Moves the crypto functions in the chanbackup package into its own package called lnencrypt 1 ano atrás
lnmock 5e6f10c9b8 lnmock: add new package `lnmock` to host mocks 1 ano atrás
lnpeer 7dfe4018ce multi: use btcd's btcec/v2 and btcutil modules 2 anos atrás
lnrpc 508b0a4426 Merge tag 'v0.16.0-beta' into v0-16-1-branch-rc3 1 ano atrás
lntest 1ce7559110 lntest+itest: clean mempool in `testHtlcTimeoutResolverExtractPreimageRemote` 1 ano atrás
lntypes 99273cc5e1 lntypes+routing: add generic Min/Max functions 1 ano atrás
lnutils 0b8ac4870d lnutils: add unit test for `SyncMap` 1 ano atrás
lnwallet ac7a391732 chanfunding: allow to set a reserved amount not used for funding 1 ano atrás
lnwire dc3f83c670 funding+lnwire: rename and fix make lint 1 ano atrás
macaroons 9b98352caf macaroons: let ChangePassword re-encrypt all root keys 1 ano atrás
make 39cc227d0d build: update build system to Go 1.20.3 1 ano atrás
mobile bb5faf0f5a make+docs: pull in modules patch 1 ano atrás
monitoring 9a50cc95b7 Merge pull request #6224 from Roasbeef/prometheus-latency-histograms 2 anos atrás
multimutex 5bebda8c5d multimutex: add hash mutex 4 anos atrás
nat 530a2059e5 multi: Fix typos [skip ci] 2 anos atrás
netann 7ab6eb1140 netann: fix logging output 1 ano atrás
peer ddf551f16d htlcswitch: add new LinkFailureDisconnect action 1 ano atrás
peernotifier 3204e2d74b multi: add shutdown logs in subservers 2 anos atrás
pool 5e6690107e pool: replace defer cleanup with `t.Cleanup` 1 ano atrás
queue 7070be52b7 queue: replace defer cleanup with `t.Cleanup` 1 ano atrás
record 9195f29e61 routing+channeldb: send payment metadata from invoice 2 anos atrás
routing 508b0a4426 Merge tag 'v0.16.0-beta' into v0-16-1-branch-rc3 1 ano atrás
rpcperms 9bd0dcd121 rpcserver: add debug log for rpc calls 1 ano atrás
scripts d730797880 itest: remove unused flag `goroutineDump` 1 ano atrás
shachain 0735522194 multi: fix `make fmt` 1 ano atrás
signal 62dc1b5323 multi: Update Licenses to 2022 [skip ci] 2 anos atrás
subscribe 3aa008ab04 multi: add interface for subscribe client so it can be mocked 3 anos atrás
sweep fc3b8bff69 sweep: remove conflicted sweep txns from the rebroadcaster 1 ano atrás
ticker 55b53555e9 multi: improve readability of goroutine defers 1 ano atrás
tlv d61e668f56 multi: update to latest version of btcd in submodules 1 ano atrás
tools 22c1605687 ci: fix lint VSC permissions error 1 ano atrás
tor 534535f8db build(deps): bump golang.org/x/net in /tor 1 ano atrás
walletunlocker 2086f09489 walletunlocker: fix unit test flake by closing DB 1 ano atrás
watchtower ba33f6a697 wtclient: spin session key indices if required 1 ano atrás
zpay32 84fd911b47 multi: fix make lint 1 ano atrás
.editorconfig 2681c02afd .editorconfig: add editor settings for most editors 1 ano atrás
.gitignore 0bc86a3b4b multi: move `itest` out of `lntest` 1 ano atrás
.golangci.yml 5bea444b6d golangci: remove linter exceptions for itest 1 ano atrás
.travis.yml 39cc227d0d build: update build system to Go 1.20.3 1 ano atrás
Dockerfile 39cc227d0d build: update build system to Go 1.20.3 1 ano atrás
LICENSE 62dc1b5323 multi: Update Licenses to 2022 [skip ci] 2 anos atrás
Makefile bb5faf0f5a make+docs: pull in modules patch 1 ano atrás
README.md 368fa02543 trivial: link from readme to builder's guide 2 anos atrás
SECURITY.md 609cc8b883 lnd: add SECURITY.MD to bolster security entry in README 1 ano atrás
channel_notifier.go 7dfe4018ce multi: use btcd's btcec/v2 and btcutil modules 2 anos atrás
chanrestore.go c9f5912601 channeldb: BigSize migration, store zero-conf, scid-alias bits 1 ano atrás
config.go d5be710b95 config: fix bug in walletrpc interaction due to mismatched coin type 1 ano atrás
config_builder.go fc3b8bff69 sweep: remove conflicted sweep txns from the rebroadcaster 1 ano atrás
dev.Dockerfile 39cc227d0d build: update build system to Go 1.20.3 1 ano atrás
doc.go b53899c43c lnd: rename package main->lnd 5 anos atrás
go.mod dea815dac2 mod: update `btcwallet` version 11 meses atrás
go.sum dea815dac2 mod: update `btcwallet` version 11 meses atrás
intercepted_forward.go 721fb4ee88 contractcourt: add onchain interception 2 anos atrás
lnd.go c0f44a17b7 lnd: Add ability to encrypt TLS key on disk 1 ano atrás
log.go 635cffa871 multi: add sub-server dep 2 anos atrás
logo.png fba856068e README: add logo to top portion of page 6 anos atrás
pilot.go 7dfe4018ce multi: use btcd's btcec/v2 and btcutil modules 2 anos atrás
rpcserver.go 26b23e2af0 lnd: handles the `FundMax` field inside `parseOpenChannelReq` 1 ano atrás
rpcserver_test.go 218fa1e43e Rpcserver: Add GetAllPermissions function for retrieving permissions for external macaroon baking 2 anos atrás
sample-lnd.conf 508b0a4426 Merge tag 'v0.16.0-beta' into v0-16-1-branch-rc3 1 ano atrás
server.go fc3b8bff69 sweep: remove conflicted sweep txns from the rebroadcaster 1 ano atrás
server_test.go edba938996 multi: add new build tag `integration` 1 ano atrás
subrpcserver_config.go 561bf82985 chainrpc: add chainkit RPC service 1 ano atrás
sweeper_wallet.go 0d1c5f85fc lnd: skip canceling rebroadcast for neutrino backend 1 ano atrás
tls_manager.go 91af62a031 lnd: bump lnd/cert version 1 ano atrás
tls_manager_test.go c0f44a17b7 lnd: Add ability to encrypt TLS key on disk 1 ano atrás
witness_beacon.go c15a38407f lnd+contractcourt: add more debug logs 1 ano atrás
witness_beacon_test.go 604a355db6 lnd: replace defer cleanup with `t.Cleanup` 1 ano atrás

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