github.com/decred/dcrlnd@v0.7.6/README.md (about) 1 dcrlnd 2 ====== 3 4 [](https://github.com/decred/dcrlnd/actions) 5 [](http://copyfree.org) 6 [](https://godoc.org/github.com/decred/dcrlnd) 7 8 ## Lightning Network Daemon 9 10 <img src="logo.png"> 11 12 The Decred Lightning Network Daemon (`dcrlnd`) - is a complete implementation of 13 a [Lightning Network](https://lightning.network) node and currently deployed on 14 `testnet3` - the Decred Test Network. 15 16 `dcrlnd` currently requires a [dcrd](https://github.com/decred/dcrd) backing 17 full node to perform the required chain services. The project's codebase uses 18 the existing set of [decred](https://github.com/decred/) libraries, and also 19 exports a large set of isolated re-usable Lightning Network related libraries 20 within it. In the current state `dcrlnd` is capable of: 21 * Creating channels. 22 * Closing channels. 23 * Completely managing all channel states (including the exceptional ones!). 24 * Maintaining a fully authenticated+validated channel graph. 25 * Performing path finding within the network, passively forwarding incoming payments. 26 * Sending outgoing [onion-encrypted payments](https://github.com/decred/lightning-onion) 27 through the network. 28 * Updating advertised fee schedules. 29 * Automatic channel management ([`autopilot`](https://github.com/decred/dcrlnd/tree/master/autopilot)). 30 31 ## LND Porting Status 32 33 `dcrlnd` is currently developed as a port of the original 34 [lnd](https://github.com/lightningnetwork/lnd) lightning network daemon with the 35 changes required to make it work on the Decred network and with Decred software. 36 37 Some of the most important (though by no means exhaustive) diffrences between 38 `lnd` and `dcrlnd` include: 39 40 - Import Paths 41 - Full node integration API 42 - Transaction serialization layout 43 - Transaction witness format and signature process 44 - Wallet integration API 45 46 ## Lightning Network Specification Compliance 47 48 `dcrlnd` aims to conform to the [Lightning Network specification 49 (BOLTs)](https://github.com/lightningnetwork/lightning-rfc). BOLT stands for: 50 Basis of Lightning Technology. The specifications are currently being drafted 51 by several groups of implementers based around the world including the 52 developers of `dcrlnd`. The set of specification documents as well as our 53 implementation of the specification are still a work-in-progress. With that 54 said, the current status of `dcrlnd`'s BOLT compliance is: 55 56 - [x] BOLT 1: Base Protocol 57 - [x] BOLT 2: Peer Protocol for Channel Management 58 - [x] BOLT 3: Bitcoin Transaction and Script Formats 59 - [x] BOLT 4: Onion Routing Protocol 60 - [x] BOLT 5: Recommendations for On-chain Transaction Handling 61 - [x] BOLT 7: P2P Node and Channel Discovery 62 - [x] BOLT 8: Encrypted and Authenticated Transport 63 - [x] BOLT 9: Assigned Feature Flags 64 - [x] BOLT 10: DNS Bootstrap and Assisted Node Location 65 - [x] BOLT 11: Invoice Protocol for Lightning Payments 66 67 ## Developer Resources 68 69 The daemon has been designed to be as developer friendly as possible in order 70 to facilitate application development on top of `dcrlnd`. Two primary RPC 71 interfaces are exported: an HTTP REST API, and a [gRPC](https://grpc.io/) 72 service. The exported API's are not yet stable, so be warned: they may change 73 drastically in the near future. 74 75 Most of the automatically generated documentation for the LND RPC APIs is 76 applicable to `dcrlnd` and can be found at 77 [api.lightning.community](https://api.lightning.community). The developer 78 resources including talks, articles, and example applications are also relevant 79 to `dcrlnd` and can be found at: 80 [dev.lightning.community](https://dev.lightning.community). 81 82 For questions and discussions, all Decred communities can be found at: 83 84 https://decred.org/community 85 86 ## Installation 87 88 Knowledgeable users may use the [quickstart guide](/docs/QUICKSTART.md). 89 90 For more detailed instructions, please see [the installation 91 instructions](docs/INSTALL.md). 92 93 The [operation modes](docs/operation_modes.md) document lists how `dcrlnd` may 94 connect to the Decred network to run its operations. 95 96 And a sample config file with annotated options is [also available 97 here](sample-dcrlnd.conf). 98 99 ## Quick Simnet Network 100 101 A shell script that uses tmux to setup a 3-node simnet network (along with 102 appropriate dcrd and dcrwallet nodes) is available in 103 [contrib/dcrlnd-tmux-3node.sh](contrib/dcrlnd-tmux-3node.sh). 104 105 Note that this requires having `dcrlnd` and `dcrlncli` in your `$PATH` variable, 106 as well as compatible versions of `dcrd` and `dcrwallet`. 107 108 109 ## Docker 110 To run lnd from Docker, please see the main [Docker instructions](docs/DOCKER.md) 111 112 ## Safety 113 114 When operating a mainnet `dcrlnd` node, please refer to our [operational safety 115 guidelines](docs/safety.md). It is important to note that `dcrlnd` is still 116 **beta** software and that ignoring these operational guidelines can lead to 117 loss of funds. 118 119 ## Security 120 121 Please see the [security policy](https://github.com/decred/dcrlnd/security/policy). 122 123 ## Further reading 124 * [Step-by-step send payment guide with docker](https://github.com/decred/dcrlnd/tree/master/docker) 125 * [Contribution guide](https://github.com/dcrlnd/lnd/blob/master/docs/code_contribution_guidelines.md)