Lightning Network Daemon

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

  • [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