Lightning Network Daemon

Olaoluwa Osuntokun 8aead58288 build: update to version v0.9.1-beta 4 роки тому
.github a3d5a708bb CODEOWNERS: remove top level catch all 4 роки тому
aezeed 1e0ed1e52f multi: fix dropped errors 4 роки тому
autopilot 6e0cfe579b Merge pull request #3841 from joostjager/check-max-onion-size 4 роки тому
brontide 4d4da3c07c brontide: fix goroutine in test 4 роки тому
buffer 5d9514fbe4 buffer+pool: add buffer.Read and pool.ReadBuffer 5 роки тому
build 8aead58288 build: update to version v0.9.1-beta 4 роки тому
cert 2c8a18fe6f cert+test: IsOutdated check for TLS files if IPs or DNS changed 4 роки тому
chainntnfs 3aa8972cc7 bitcoindnotify: add missing space in log message in bitcoind.go 4 роки тому
chanacceptor 423887d3d8 chanacceptor: adding tests for the RPCAcceptor 4 роки тому
chanbackup d4f836ecb3 chanbackup: encode broadcast height in chan ID for unconfirmed channels 4 роки тому
chanfitness 384c6aa1f1 chanfitness: save initial online event for channels with online peers 4 роки тому
channeldb 666da0d10c lnwallet: restore unsigned acked remote updates 4 роки тому
channelnotifier 1e86589bee chanfitness: Add channel event store 4 роки тому
clock 7024f36a76 general: adding the Clock interface to aid testing 4 роки тому
cmd 51dbdd3b38 multi: rename key_send, key-send and key send to keysend 4 роки тому
contractcourt 6152625c53 contractcourt+switch: keep channels with timed-out initiated htlcs. 4 роки тому
contrib 1bc011ae5a contrib: add basic bash completion for lncli 7 роки тому
discovery 1d8da3123e discovery: check ChainHash in QueryChannelRange messages 4 роки тому
docker 1f457ac1a8 docker: enable docker-compose up command for btc and ltc compose files 4 роки тому
docs 31736804f1 docker: specify a tag, branch or commit using docker build-arg 4 роки тому
feature f9a1acfbe4 feature/required: add ValidateRequired method 4 роки тому
htlcswitch e3da653f33 lnwallet/channel: account for HTLC fee when reporting available balance 4 роки тому
input 3711597fef input: remove duplicate commit weight constant 4 роки тому
invoices b0c6c1c39c invoices: fix htlc timer deadlock 4 роки тому
keychain 194a9dea81 multi: support sync freelist option within btcwallet 4 роки тому
lncfg b3b355659b lncfg+lncli: replace WithDialer->WitchContextDialer 4 роки тому
lnpeer 16318c5a41 multi: merge local+global features from remote peer 4 роки тому
lnrpc 51dbdd3b38 multi: rename key_send, key-send and key send to keysend 4 роки тому
lntest 51dbdd3b38 multi: rename key_send, key-send and key send to keysend 4 роки тому
lntypes afd86763ac lntypes: add ZeroHash 5 роки тому
lnwallet 15099045fc lnwallet/channel: add TODO 4 роки тому
lnwire 17200afc57 lnwire: explicitly handle empty list when encoding short chan IDs 4 роки тому
macaroons 1018df991f macaroons: add encKeyMtx to prevent race condition 4 роки тому
make dd13a3c0d8 Makefile: make unit tess non-verbose 4 роки тому
mobile 2b6575463b mobile: bump falafel dep to 0.7 4 роки тому
monitoring 3d7de2ad39 multi: remove dead code 4 роки тому
multimutex 0df3ff4994 multimutex: add new multimutex package 6 роки тому
nat a27ac66eed server: add periodic renewal of port forwarding 5 роки тому
netann 3d7de2ad39 multi: remove dead code 4 роки тому
peernotifier 4ceceda757 peernotifier: Add peer notifier package for peer online/offline events 4 роки тому
pool 17b2140cb5 multi: fix spelling mistakes 5 роки тому
queue ff3063daea queue: fixing doc after cherry pick 4 роки тому
record 51dbdd3b38 multi: rename key_send, key-send and key send to keysend 4 роки тому
routing e9b7e80848 routing: remove path finding shortcut 4 роки тому
scripts 44fa28b27b build: bump travis bitcoind version to 0.19.0.1 4 роки тому
shachain 3d7de2ad39 multi: remove dead code 4 роки тому
signal 6c6bbdd365 signal: initialize interceptor explictly 4 роки тому
subscribe b58dbb2d70 multi: fix canceled spelling 4 роки тому
sweep e01600fdb8 sweep: add wallet inputs to reach dust limit 4 роки тому
ticker 567c357c61 ticker+queue: run go mod tidy 4 роки тому
tlv e8fd05e8e3 tlv+record+routing: add payload size calculation 4 роки тому
tor b1fc008433 Tor option to override target ip address 4 роки тому
walletunlocker 194a9dea81 multi: support sync freelist option within btcwallet 4 роки тому
watchtower 2510ec00f5 watchtower/wtwire/init: use feature.ValidateRequired 4 роки тому
zpay32 b9b66419ff zpay32/invoice: remove unknown required fbit check from decode 4 роки тому
.gitignore 187bd29d2d gitignore: add mobile/build 4 роки тому
.golangci.yml 2fb7172725 lnwire: Add upfront shutdown messages and feature bit 4 роки тому
.travis.yml d7af7934b8 travis: staged travis builds 4 роки тому
Dockerfile 31736804f1 docker: specify a tag, branch or commit using docker build-arg 4 роки тому
LICENSE 62778c61cc lnd: update copyright notice 5 роки тому
Makefile d7af7934b8 travis: staged travis builds 4 роки тому
README.md c660e16229 README: update dev slack link 4 роки тому
breacharbiter.go 777ed104a3 chainfee: create new chainfee package extracting fees from lnwallet 4 роки тому
breacharbiter_test.go 5e3718a1b5 lnwallet: use channel type to derive keys 4 роки тому
chainparams.go 6fd5ef88b6 add litecoin regtest configuration to lnd 5 роки тому
chainregistry.go 7ecbe22531 Merge pull request #3814 from joostjager/sweeper-add-utxo 4 роки тому
chancloser.go 94d3eb60a4 multi: Use user provided close address for cooperative closes 4 роки тому
chancloser_test.go f86d63144c multi: Set and check upfront shutdown address on close 4 роки тому
channel_notifier.go b53899c43c lnd: rename package main->lnd 5 роки тому
chanrestore.go fb683f74a4 chanbackup: set funding broadcast height on restore 4 роки тому
config.go d7f6a39704 lnd+cert: recreate TLS files if IPs or DNS changed 4 роки тому
doc.go b53899c43c lnd: rename package main->lnd 5 роки тому
fundingmanager.go 91bd56dbd1 funding+rpc: expand specified chan point shim into a canned assembler 4 роки тому
fundingmanager_test.go ddb98fcc41 multi: distinguish between htlc in and out constraints 4 роки тому
go.mod d0d542c477 build: update to latest btcwallet version with rescan addr fix 4 роки тому
go.sum d0d542c477 build: update to latest btcwallet version with rescan addr fix 4 роки тому
lnd.go 1fa21e6bcd lnd: reload cert data after renewal 4 роки тому
log.go 9f1720dea8 build: prevent loggers from overwriting each other. 4 роки тому
logo.png fba856068e README: add logo to top portion of page 6 роки тому
mock.go 7a64a7d3a4 lnwallet: delegate all channel funding logic to the new chanfunding package 4 роки тому
nursery_store.go b53899c43c lnd: rename package main->lnd 5 роки тому
nursery_store_test.go b53899c43c lnd: rename package main->lnd 5 роки тому
peer.go 0f9023256e peer: use feature.ValidateRequired, cleanup error msgs 4 роки тому
peer_test.go 94d3eb60a4 multi: Use user provided close address for cooperative closes 4 роки тому
pilot.go 61e114f201 autopilot: take channel min htlc from config 4 роки тому
rpcserver.go 8fb33dc5bf rpcserver: instruct REST marshaler to emit default values 4 роки тому
sample-lnd.conf b6ea7d5f6c config: Make bools in sample-lnd.conf consistent 4 роки тому
server.go 6152625c53 contractcourt+switch: keep channels with timed-out initiated htlcs. 4 роки тому
server_test.go 2bef62b467 lnd: remove global var access from genCertPair 4 роки тому
subrpcserver_config.go 338175534e Merge pull request #3812 from guggero/sign-custom 4 роки тому
test_utils.go 6152625c53 contractcourt+switch: keep channels with timed-out initiated htlcs. 4 роки тому
utxonursery.go 38adfd7ecc sweep: create sweep parameters struct 4 роки тому
utxonursery_test.go 38adfd7ecc sweep: create sweep parameters struct 4 роки тому
witness_beacon.go 1a80a1e540 witness_beacon: do not look up invoice preimages 5 роки тому

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

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