README: reformat and add IRC badge
This commit is contained in:
parent
a421069dd8
commit
299217aecb
125
README.md
125
README.md
@ -1,84 +1,86 @@
|
|||||||
# `lnd` - the Lightning Network Daemon
|
## Lightning Network Daemon
|
||||||
|
|
||||||
[![Build Status](http://img.shields.io/travis/lightningnetwork/lnd.svg)]
|
[![Build Status](http://img.shields.io/travis/lightningnetwork/lnd.svg)]
|
||||||
(https://travis-ci.org/lightningnetwork/lnd)
|
(https://travis-ci.org/lightningnetwork/lnd)
|
||||||
|
|
||||||
[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)]
|
[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)]
|
||||||
(https://github.com/lightningnetwork/lnd/blob/master/LICENSE)
|
(https://github.com/lightningnetwork/lnd/blob/master/LICENSE)
|
||||||
|
|
||||||
|
[![Irc](https://img.shields.io/badge/chat-on%20freenode-brightgreen.svg)]
|
||||||
|
(https://webchat.freenode.net/?channels=lnd)
|
||||||
|
|
||||||
|
[![Godoc](https://godoc.org/github.com/lightningnetwork/lnd?status.svg)]
|
||||||
|
(https://godoc.org/github.com/lightningnetwork/lnd)
|
||||||
|
|
||||||
|
The Lightning Network Daemon (`lnd`) - is a complete implementation of a
|
||||||
`lnd` is a complete implementation of a node on the [Lightning
|
[Lightning Network](http://lightning.network) node and currently
|
||||||
Network](lightning.network). `lnd` is currently deployed on the Bitcoin Test
|
deployed on `testnet4` - the Bitcoin Test Network. It utilizes an
|
||||||
Network (testnet4) and utilizes an upcoming upgrade to Bitcoin: Segregated
|
upcoming upgrade to Bitcoin: Segregated Witness (`segwit`). The
|
||||||
Witness. The project's codebase uses the
|
project's codebase uses the [btcsuite](https://github.com/btcsuite/) set
|
||||||
[btcsuite](https://github.com/btcsuite/) set of Bitcoin libraries, and is
|
of Bitcoin libraries, and is currently dependant on [btcd](https://github.com/btcsuite/btcd).
|
||||||
currently dependant on [btcd](https://github.com/btcsuite/btcd).
|
In the current state `lnd` is capable of:
|
||||||
|
* creating channels
|
||||||
The Lightning Network Daemon (`lnd`) is capable of: creating channels, closing
|
* closing channels
|
||||||
channels, completely managing all channel states (including the exceptional
|
* completely managing all channel states (including the exceptional ones!)
|
||||||
ones!), maintaining a fully authenticated+validated channel graph, performing
|
* maintaining a fully authenticated+validated channel graph
|
||||||
path finding within the network, passively forwarding incoming payments, and
|
* performing path finding within the network, passively forwarding
|
||||||
sending outgoing [onion-encrypted
|
incoming payments
|
||||||
payments](https://github.com/lightningnetwork/lightning-onion) through the
|
* sending outgoing [onion-encrypted payments](https://github.com/lightningnetwork/lightning-onion)
|
||||||
network.
|
through the network
|
||||||
|
|
||||||
## Lightning Network Specification Compliance
|
## Lightning Network Specification Compliance
|
||||||
|
|
||||||
`lnd` doesn't yet _fully_ conform to the [Lightning Network specification
|
`lnd` doesn't yet _fully_ conform to the [Lightning Network specification
|
||||||
(BOLT's)](https://github.com/lightningnetwork/lightning-rfc). BOLT stands for:
|
(BOLT's)](https://github.com/lightningnetwork/lightning-rfc). BOLT stands
|
||||||
Basic of Lightning Technologies. The specifications are currently being drafted
|
for: Basic of Lightning Technologies. The specifications are currently being drafted
|
||||||
by several groups of implementers based around the world including the
|
by several groups of implementers based around the world including the
|
||||||
developers of `lnd`. The set of specification documents as well as our
|
developers of `lnd`. The set of specification documents as well as our
|
||||||
implementation of the specification are still a work-in-progress. With that
|
implementation of the specification are still a work-in-progress. With that
|
||||||
said, `lnd` the current status of `lnd`'s BOLT compliance is:
|
said, `lnd` the current status of `lnd`'s BOLT compliance is:
|
||||||
|
|
||||||
- [ ] BOLT 1: Base Protocol
|
- [ ] BOLT 1: Base Protocol
|
||||||
* `lnd` currently utilizes a distinct wire format which was created before
|
* `lnd` currently utilizes a distinct wire format which was created
|
||||||
the emgergence of the current draft of BOLT specifications. We don't
|
before the emgergence of the current draft of BOLT specifications.
|
||||||
have an `init` message, but we do have analogues to all the other
|
We don't have an `init` message, but we do have analogues to all
|
||||||
defined message types.
|
the other defined message types.
|
||||||
- [ ] BOLT 2: Peer Protocol for Channel Management
|
- [ ] BOLT 2: Peer Protocol for Channel Management
|
||||||
* `lnd` implements all the functionality defined within the document,
|
* `lnd` implements all the functionality defined within the
|
||||||
however we currently use a different set of wire messages. Additionally,
|
document, however we currently use a different set of wire messages.
|
||||||
`lnd` uses a distinct commitment update state-machine and doesn't yet
|
Additionally,`lnd` uses a distinct commitment update state-machine
|
||||||
support dynamically updating commitment fees.
|
and doesn't yet support dynamically updating commitment fees.
|
||||||
- [ ] BOLT 3: Bitcoin Transaction and Script Formats
|
- [ ] BOLT 3: Bitcoin Transaction and Script Formats
|
||||||
* `lnd` currently uses a commitment design from a prior iteration of the
|
* `lnd` currently uses a commitment design from a prior iteration
|
||||||
protocol. Revocation secret generation is handled by `elkrem` and our
|
of the protocol. Revocation secret generation is handled by `elkrem`
|
||||||
scripts are slightly different.
|
and our scripts are slightly different.
|
||||||
- [X] BOLT 4: Onion Routing Protocol
|
- [X] BOLT 4: Onion Routing Protocol
|
||||||
- [X] BOLT 5: Recommendations for On-chain Transaction Handling
|
- [X] BOLT 5: Recommendations for On-chain Transaction Handling
|
||||||
- [X] BOLT 7: P2P Node and Channel Discovery
|
- [X] BOLT 7: P2P Node and Channel Discovery
|
||||||
- [X] BOLT 8: Encrypted and Authenticated Transport
|
- [X] BOLT 8: Encrypted and Authenticated Transport
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
In order to build form source, the following build dependencies are
|
||||||
* In order to build form source, the following build dependencies are required:
|
required:
|
||||||
* **Go 1.5 or 1.6**
|
|
||||||
|
* **Go:** Installation instructions can be found [here](http://golang.org/doc/install).
|
||||||
Installation instructions can be found here: http://golang.org/doc/install.
|
|
||||||
It is recommended to add `$GOPATH/bin` to your `PATH` at this point.
|
It is recommended to add `$GOPATH/bin` to your `PATH` at this point.
|
||||||
**Note:** If you are building with Go 1.5, then you'll need to enable the
|
**Note:** If you are building with `Go 1.5`, then you'll need to
|
||||||
vendor experiment by setting the `GO15VENDOREXPERIMENT` environment
|
enable the vendor experiment by setting the `GO15VENDOREXPERIMENT`
|
||||||
variable to `1`. If you're using Go 1.6 or later, then it is safe to skip
|
environment variable to `1`. If you're using `Go 1.6` or later, then
|
||||||
this step.
|
it is safe to skip this step.
|
||||||
|
|
||||||
* **Glide**
|
* **Glide:** This project uses `Glide` to manage dependencies as well
|
||||||
|
as to provide *reproducible builds*. To install `Glide`, execute the
|
||||||
This project uses `Glide` to manage dependencies as well as to provide *reproducible builds*.
|
following command (assumes you already have Go properly installed):
|
||||||
To install `Glide`, execute the following command (assumes you already have Go properly installed):
|
```
|
||||||
|
$ go get -u github.com/Masterminds/glide
|
||||||
`$ go get -u github.com/Masterminds/glide`
|
```
|
||||||
* **btcd**
|
* **btcd:** This project currently requires `btcd` with segwit support,
|
||||||
|
which is not yet merged into the master branch. Instead,
|
||||||
This project currently requires `btcd` with segwit support, which is not
|
|
||||||
yet merged into the master branch. Instead,
|
|
||||||
[roasbeef](https://github.com/roasbeef/btcd) maintains a fork with his
|
[roasbeef](https://github.com/roasbeef/btcd) maintains a fork with his
|
||||||
segwit implementation applied. To install, please see [the installation
|
segwit implementation applied. To install, please see
|
||||||
instructions](docs/INSTALL.md).
|
[the installation instructions](docs/INSTALL.md).
|
||||||
|
|
||||||
With the preliminary steps completed, to install `lnd`, `lncli`, and all
|
With the preliminary steps completed, to install `lnd`, `lncli`, and all
|
||||||
related dependencies run the following commands:
|
related dependencies run the following commands:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ git clone https://github.com/lightningnetwork/lnd $GOPATH/src/github.com/lightningnetwork/lnd
|
$ git clone https://github.com/lightningnetwork/lnd $GOPATH/src/github.com/lightningnetwork/lnd
|
||||||
$ cd $GOPATH/src/github.com/lightningnetwork/lnd
|
$ cd $GOPATH/src/github.com/lightningnetwork/lnd
|
||||||
@ -86,8 +88,8 @@ $ glide install
|
|||||||
$ go install . ./cmd/...
|
$ go install . ./cmd/...
|
||||||
```
|
```
|
||||||
|
|
||||||
## Updating
|
### Updating
|
||||||
To update your version of `lnd` to the latest version run the following
|
To update your version of `lnd` to the latest version run the following
|
||||||
commands:
|
commands:
|
||||||
```
|
```
|
||||||
$ cd $GOPATH/src/github.com/lightningnetwork/lnd
|
$ cd $GOPATH/src/github.com/lightningnetwork/lnd
|
||||||
@ -95,10 +97,17 @@ $ git pull && glide install
|
|||||||
$ go install . ./cmd/...
|
$ go install . ./cmd/...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Tests
|
||||||
|
To check that `lnd` was installed properly run the following command:
|
||||||
|
```
|
||||||
|
go install; go test -v -p 1 $(go list ./... | grep -v '/vendor/')
|
||||||
|
```
|
||||||
|
|
||||||
## IRC
|
## IRC
|
||||||
* irc.freenode.net
|
* irc.freenode.net
|
||||||
* channel #lnd
|
* channel #lnd
|
||||||
* [webchat](https://webchat.freenode.net/?channels=lnd)
|
* [webchat](https://webchat.freenode.net/?channels=lnd)
|
||||||
|
|
||||||
## License
|
## Further reading
|
||||||
`lnd` is licensed under the [MIT license](https://github.com/lightningnetwork/lnd/blob/master/LICENSE).
|
* [Step-by-step send payment guide with docker](https://github.com/lightningnetwork/lnd/tree/master/docker)
|
||||||
|
* [Contribution guide](https://github.com/lightningnetwork/lnd/blob/master/docs/code_contribution_guidelines.md)
|
Loading…
Reference in New Issue
Block a user