Skip to content
Lightning Network Daemon ⚡️
Go Other
  1. Go 99.6%
  2. Other 0.4%
Branch: master
Clone or download

Latest commit

cfromknecht Merge pull request #4275 from cfromknecht/invoices-ntfn-order
invoices: ensure ntfns are sent in the same order
Latest commit 03b20ca Jun 22, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github build: update Github Actions to use Go 1.14.4 Jun 16, 2020
aezeed aezeed: use fast scrypt options in itest Mar 24, 2020
autopilot multi: rename ReadTx to RTx May 27, 2020
brontide server+brontide: use ECDH interface for brontide handshake May 20, 2020
buffer buffer+pool: add buffer.Read and pool.ReadBuffer Feb 16, 2019
build build: bump version to lnd v0.10.99-beta May 27, 2020
cert cert: define ExtendedKeyUsage as required by macOS 10.15 Apr 17, 2020
chainntnfs chainntnfs: remove queued confirmation notification in CancelConf Jun 10, 2020
chanacceptor chanacceptor: adding tests for the RPCAcceptor Sep 25, 2019
chanbackup chanbackup: refuse to start the SubSwapper if we can't read the SCB file Jun 18, 2020
chanfitness chanfitness: save initial online event for channels with online peers Jan 7, 2020
channeldb channeldb: remove graph insertion of restored channels Jun 18, 2020
channelnotifier channelnotifier: remove dead logging code Apr 24, 2020
clock clock: add go.mod May 28, 2020
cmd Merge pull request #4228 from carlaKC/txdetails-labeltxrpc May 27, 2020
contractcourt contractcourt/incoming_resolver: Improve comments Jun 5, 2020
contrib contrib: add basic bash completion for lncli Jan 30, 2017
discovery discovery: prevent endBlock overflow in replyChanRangeQuery Jun 18, 2020
docker build+routerrpc+lncli: remove routerrpc conditional compilation Mar 31, 2020
docs docs: describe log levels Jun 12, 2020
feature multi: optionally enable and signal anchor support Mar 9, 2020
fuzz Merge pull request #3969 from Crypt-iQ/wt_fuzz_0108 Mar 24, 2020
htlcswitch htlcswitch: introducing interceptable switch. Jun 18, 2020
input misc: fix error formatting in multiple files Apr 24, 2020
invoices invoices: ensure ntfns are sent in the same order Jun 18, 2020
keychain lnd+server+keychain: remove unused code May 20, 2020
labels multi: add label to WalletController SendOutputs and dependent rpcs May 19, 2020
lncfg lnd+kvdb: pass LND abort context to etcd Jun 3, 2020
lnpeer multi: remove returned error from WipeChannel Apr 3, 2020
lnrpc rpc: implement RPC htlc interceptor. Jun 18, 2020
lntest Merge pull request #4018 from breez/intercept-forward-htlc Jun 22, 2020
lntypes lntypes: add ZeroHash Jun 5, 2019
lnwallet Merge pull request #4365 from Crypt-iQ/chancloser_pkg_0609 Jun 18, 2020
lnwire lnwire: fix decoding for initial zero sid Jun 18, 2020
macaroons multi: rename ReadTx to RTx May 27, 2020
make build+make: move release script Apr 24, 2020
mobile build+routerrpc+lncli: remove routerrpc conditional compilation Mar 31, 2020
monitoring monitoring: removing unused logClosure Apr 24, 2020
multimutex multimutex: add hash mutex Apr 8, 2020
nat server: add periodic renewal of port forwarding Apr 13, 2019
netann netann: decode features when creating chan ann from stored chan info Jun 2, 2020
peernotifier peernotifier: Add peer notifier package for peer online/offline events Aug 2, 2019
pool multi: fix spelling mistakes May 4, 2019
queue queue: remove unsued waitgroup Apr 24, 2020
record record: add AMP record and encode/decode methods Jan 28, 2020
routing Merge pull request #4327 from joostjager/stuck-payment-loop May 28, 2020
scripts scripts: bump bitcoind version to 0.20 Jun 12, 2020
shachain multi: remove dead code Sep 10, 2019
signal signal: initialize interceptor explictly Nov 12, 2019
subscribe multi: fix canceled spelling Oct 3, 2019
sweep multi: rename ReadTx to RTx May 27, 2020
ticker ticker+queue: run go mod tidy Jul 26, 2019
tlv tlv: fix comments for numLeadingZeroBytes{32,64} funcs May 1, 2020
tor Merge pull request #4056 from wpaulino/tor-onion-store Mar 13, 2020
walletunlocker walletunlocker: use fast scrypt options for unit tests Jan 24, 2020
watchtower multi: rename: ReadBucket to RBucket May 27, 2020
zpay32 zpay32: invoice.MilliSat is uint64 which cannot be negative Apr 24, 2020
.gitignore gitignore: add coverage.txt Mar 27, 2020
.golangci.yml Merge pull request #4124 from halseth/travis-lint-concurrency Mar 31, 2020
.travis.yml build: update travis to build against go 1.14 Jun 16, 2020
Dockerfile add jq tool to Docker image so we can parse lncli output May 7, 2020
LICENSE lnd: update copyright notice Nov 2, 2018
Makefile Makefile: add -w to -ldflags to strip DWARF symbols Jun 9, 2020
README.md Merge pull request #3963 from guggero/safety-doc Mar 10, 2020
breacharbiter.go multi: rename ReadTx to RTx May 27, 2020
breacharbiter_test.go breacharbiter: fix flaky race condition in test Jun 9, 2020
chainparams.go add litecoin regtest configuration to lnd Apr 27, 2019
chainregistry.go lnd: remove global cfg variable May 14, 2020
channel_notifier.go channel_notifier: update backup on pending chan Mar 4, 2020
chanrestore.go chanbackup: add SCB support for new anchor commitments Mar 17, 2020
config.go config+lnd+rpcserver: add CORS origin config for REST Jun 17, 2020
doc.go lnd: rename package main->lnd Apr 23, 2019
fundingmanager.go fundingmanager: log raw transaction on braodcast Jun 3, 2020
fundingmanager_test.go multi: update WalletController PublishTransaction to include label May 19, 2020
go.mod lnrpc: add WebSocket proxy Jun 17, 2020
go.sum lnrpc: add WebSocket proxy Jun 17, 2020
lnd.go lnd+kvdb: pass LND abort context to etcd Jun 3, 2020
log.go chancloser: new package for cooperative channel closure Jun 17, 2020
logo.png README: add logo to top portion of page Sep 29, 2017
mock.go lnwallet: expose output leases on WalletController interface Jun 4, 2020
nursery_store.go multi: rename: ReadBucket to RBucket May 27, 2020
nursery_store_test.go lnd: rename package main->lnd Apr 23, 2019
peer.go Merge pull request #4018 from breez/intercept-forward-htlc Jun 22, 2020
peer_test.go chancloser: new package for cooperative channel closure Jun 17, 2020
pilot.go multi: rename server's identityPriv to identityECDH May 20, 2020
rpcserver.go rpc: implement RPC htlc interceptor. Jun 18, 2020
sample-lnd.conf Merge pull request #4089 from fguisso/acceptor May 1, 2020
server.go htlcswitch: introducing interceptable switch. Jun 18, 2020
server_test.go lnd: remove global cfg variable May 14, 2020
subrpcserver_config.go rpc: acquire global coin select lock in related RPCs Jun 12, 2020
test_utils.go chancloser: new package for cooperative channel closure Jun 17, 2020
utxonursery.go multi: update WalletController PublishTransaction to include label May 19, 2020
utxonursery_test.go multi: update WalletController PublishTransaction to include label May 19, 2020
witness_beacon.go witness_beacon: do not look up invoice preimages May 15, 2019

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

You can’t perform that action at this time.