Lightning Network Daemon

Olaoluwa Osuntokun 596fd90ef3 build: bump version to v0.13.1-beta 2 lat temu
.github 8491d0da43 multi: enable monitoring build by default 3 lat temu
aezeed 5904efe9ed aezeed: export wordlist and properties 2 lat temu
amp 2d397b12b1 amp: create amp.ShardTracker 3 lat temu
autopilot 14c851c8fc kvdb: move channeldb/kvdb to top level 3 lat temu
batch 14c851c8fc kvdb: move channeldb/kvdb to top level 3 lat temu
blockcache 275d55c9e6 blockcache: add blockcache package 3 lat temu
brontide 02267565fe multi: unify code blocks in READMEs 3 lat temu
buffer 5d9514fbe4 buffer+pool: add buffer.Read and pool.ReadBuffer 5 lat temu
build 596fd90ef3 build: bump version to v0.13.1-beta 2 lat temu
cert 786568fa46 cert: allow cert expiry to be set in config 3 lat temu
chainntnfs 14c851c8fc kvdb: move channeldb/kvdb to top level 3 lat temu
chainreg 0bd6f32867 chainreg: handle missing case for bitcoind signet rpc connectivity 3 lat temu
chanacceptor 80bc46e614 lint: fix proto message no-copy linter warnings 3 lat temu
chanbackup bb84f0ebc8 multi: store KeyLocator in OpenChannel, use ECDH 3 lat temu
chanfitness c1705a28da chanfitness/chaneventstore: stop ticker after goroutine 3 lat temu
channeldb 079ab1c2bf channeldb: fix typo in PaymentControl.Fail 2 lat temu
channelnotifier 3223df74e5 channelnotifier+discover+invoices: return error in Stop functions 3 lat temu
clock fc87e8358e clock: add go.mod 4 lat temu
cluster 14c851c8fc kvdb: move channeldb/kvdb to top level 3 lat temu
cmd 3dc375603f Merge pull request #5441 from joostjager/cli-fix-fund-psbt 2 lat temu
contractcourt 614884dcb8 contractcourt: test commitment deadline logic 2 lat temu
contrib a94c990f8e Remove unsupported newaddress type p2pkh 3 lat temu
discovery 186237ca73 discovery: demote err log to debug from processZombieUpdate 3 lat temu
docker 585a78dbc7 Merge pull request #5022 from bjarnemagnussen/fix-docker-ltc 3 lat temu
docs 2b49c4d344 build: bump btcwallet 2 lat temu
feature e97da53676 feature: populate SetInvoiceAmp with TlvOpt+PayAddrReq+AmpReq 3 lat temu
funding 6d04f11f94 lnwallet+funding: sanitize upfront_shutdown_script 3 lat temu
fuzz bbe85f3c16 fuzz/zpay32: add Decode/Encode fuzz tests. 3 lat temu
healthcheck ad586c6bf1 healthcheck: separate lnd/healthcheck into submodule 3 lat temu
htlcswitch 6d5ab035c5 Merge pull request #5280 from champo/interceptor_dont_leak_htlcs 2 lat temu
input 0a0b5f89c9 input: create IsHtlcSpendRevoke 3 lat temu
invoices 47403c0be4 Merge pull request #5226 from yyforyongyu/small-fix-invoice 3 lat temu
keychain a620ce3682 build: update btcd and btcwallet dependencies 3 lat temu
kvdb fc139d9bb8 kvdb: add ForEachBucket implementation 3 lat temu
labels 2a614cc596 multi: add labels to lnd native transactions 3 lat temu
lncfg 4460903399 multi: add signet parameters 3 lat temu
lnpeer 50186ba834 lnpeer/peer.go: modifying interface comment 3 lat temu
lnrpc 1287328678 Merge pull request #5335 from guggero/abandonchannel-no-dev 2 lat temu
lntest 39ac0ebe41 lntest/itest: add new whitelisted error 2 lat temu
lntypes afd86763ac lntypes: add ZeroHash 5 lat temu
lnwallet af43a863cb lnwallet: ensure MayAddOutgoingHtlc doesn't add zero-value HTLCs 2 lat temu
lnwire 438b03afa4 features: define temporary AMP feature bits 30/31 3 lat temu
macaroons 14c851c8fc kvdb: move channeldb/kvdb to top level 3 lat temu
make 8491d0da43 multi: enable monitoring build by default 3 lat temu
mobile 5a82340a03 Merge pull request #5198 from hsjoberg/sampleconf-tlsdisableautofill 3 lat temu
monitoring c3b20e34a7 monitoring: run go fmt 3 lat temu
multimutex 5bebda8c5d multimutex: add hash mutex 4 lat temu
nat a27ac66eed server: add periodic renewal of port forwarding 5 lat temu
netann a259317d72 netann: add test for RequestAuto 3 lat temu
peer ffd346e2e1 config: add channel commit batch size parameter 3 lat temu
peernotifier 3223df74e5 channelnotifier+discover+invoices: return error in Stop functions 3 lat temu
pool eb1affd5da pool: fix typo 3 lat temu
queue c7fa5ea863 queue: remove unsued waitgroup 4 lat temu
record 82b4f11292 record/amp: use switch from 10 -> 14 for AMP TLV type 3 lat temu
routing 525ef594c7 routing: don't return an error from failPayment within handleSendError 2 lat temu
rpcperms 9aacc35989 lnrpc: add GetState to stateservice (v1/state) 3 lat temu
scripts 591954ff61 scripts: detect whether sha256sum or shasum is available 3 lat temu
shachain 3d7de2ad39 multi: remove dead code 4 lat temu
signal ada1bc701c signal: handle shutdown properly 3 lat temu
subscribe 3aa008ab04 multi: add interface for subscribe client so it can be mocked 3 lat temu
sweep da94cbf1ec Merge pull request #5200 from champo/send_all_min_confs 3 lat temu
ticker 567c357c61 ticker+queue: run go mod tidy 4 lat temu
tlv ffddb85e9c tlv/bench_test: fix ESatPerKw, pass reference to uint64 3 lat temu
tor 02267565fe multi: unify code blocks in READMEs 3 lat temu
walletunlocker 7ab5906093 Merge pull request #5245 from bhandras/kvdb_module 3 lat temu
watchtower 14c851c8fc kvdb: move channeldb/kvdb to top level 3 lat temu
zpay32 044e1e692f zpay32: add distinct hrp to invoice 3 lat temu
.gitignore b42c5e5fad make+scripts: use pre-compiled btcd in itest 3 lat temu
.golangci.yml 7569cca19b channeldb/migration: copy current lnwire to migration dir 3 lat temu
.travis.yml 57f3a2c595 Travis: decrease Windows itest parallelism 3 lat temu
Dockerfile af0fc09f62 multi: update build systems and CI/CD to go 1.16 3 lat temu
LICENSE 62778c61cc lnd: update copyright notice 5 lat temu
Makefile a80a6f0453 Makefile: bump goacc commit 3 lat temu
README.md 9b28925da2 README: remove stray [ 3 lat temu
breacharbiter.go 7ab5906093 Merge pull request #5245 from bhandras/kvdb_module 3 lat temu
breacharbiter_test.go fb99994720 breacharbiter_test: assert publication of adjusted justice tx 3 lat temu
channel_notifier.go d8c62c37a8 channel_notifier: update backup on pending chan 4 lat temu
chanrestore.go bb84f0ebc8 multi: store KeyLocator in OpenChannel, use ECDH 3 lat temu
config.go 6ca38bc815 lnd+config+sample-lnd.conf: add wallet-unlock-allow-create flag 2 lat temu
dev.Dockerfile af0fc09f62 multi: update build systems and CI/CD to go 1.16 3 lat temu
doc.go b53899c43c lnd: rename package main->lnd 5 lat temu
go.mod 2b49c4d344 build: bump btcwallet 2 lat temu
go.sum 2b49c4d344 build: bump btcwallet 2 lat temu
lnd.go 6ca38bc815 lnd+config+sample-lnd.conf: add wallet-unlock-allow-create flag 2 lat temu
log.go e62dbca11a cluster: add cluster package skeleton and LeaderElector interface 3 lat temu
logo.png fba856068e README: add logo to top portion of page 6 lat temu
nursery_store.go 14c851c8fc kvdb: move channeldb/kvdb to top level 3 lat temu
nursery_store_test.go 2a358327f4 multi: add reset closure to kvdb.View 3 lat temu
pilot.go f91e7cde59 lnwallet: expose optional account filter for several WalletController methods 3 lat temu
rpcserver.go 6a97e6432d Merge pull request #5419 from LN-Zap/upstream/fix-no-payment-address 2 lat temu
sample-lnd.conf 6ca38bc815 lnd+config+sample-lnd.conf: add wallet-unlock-allow-create flag 2 lat temu
server.go 6aa37066b2 server: send 0 bandwidth hints for links that can't add htlc 2 lat temu
server_test.go 786568fa46 cert: allow cert expiry to be set in config 3 lat temu
subrpcserver_config.go 6a7d3c4b5e lnrpc+rpcserver: thread GenAmpInvoiceFeatures to invoicesrpc 3 lat temu
tools.go 364421dced mod+tools: pin down build flag dependent go.sum entry 3 lat temu
utxonursery.go 2a358327f4 multi: add reset closure to kvdb.View 3 lat temu
utxonursery_test.go 2a358327f4 multi: add reset closure to kvdb.View 3 lat temu
witness_beacon.go 1a80a1e540 witness_beacon: do not look up invoice preimages 5 lat temu

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 talks, articles, and example applications can be found at: dev.lightning.community.

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.freenode.net
  • channel #lnd
  • webchat

Safety

When operating a mainnet lnd node, please refer to our operational safety guildelines. 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