diff --git a/aezeed/README.md b/aezeed/README.md index 82a6bc74..93ffaa91 100644 --- a/aezeed/README.md +++ b/aezeed/README.md @@ -13,8 +13,8 @@ user addresses. Additionally, BIP39 use a very weak [KDF](https://en.wikipedia.o scrypt with modern parameters (n=32768, r=8, p=1). A set of benchmarks has been added, on my laptop I get about 100ms per attempt): -```bash -⛰ go test -run=XXX -bench=. +```shell +⛰ go test -run=XXX -bench=. goos: linux goarch: amd64 diff --git a/brontide/README.md b/brontide/README.md index 0f0c6fbd..fd88c1e1 100644 --- a/brontide/README.md +++ b/brontide/README.md @@ -23,6 +23,6 @@ between network enabled programs. ## Installation and Updating -```bash -$ go get -u github.com/lightningnetwork/lnd/brontide +```shell +⛰ go get -u github.com/lightningnetwork/lnd/brontide ``` diff --git a/chainntnfs/README.md b/chainntnfs/README.md index 353dca0c..b438daa9 100644 --- a/chainntnfs/README.md +++ b/chainntnfs/README.md @@ -25,6 +25,6 @@ implementation of the `ChainNotifier` interface depends on `btcd`. ## Installation and Updating -```bash -$ go get -u github.com/lightningnetwork/lnd/chainntnfs +```shell +⛰ go get -u github.com/lightningnetwork/lnd/chainntnfs ``` diff --git a/channeldb/README.md b/channeldb/README.md index 7e3a81ef..4ca186d5 100644 --- a/channeldb/README.md +++ b/channeldb/README.md @@ -19,6 +19,6 @@ node and channel announcements, outgoing payments, and invoices ## Installation and Updating -```bash -$ go get -u github.com/lightningnetwork/lnd/channeldb +```shell +⛰ go get -u github.com/lightningnetwork/lnd/channeldb ``` diff --git a/docker/README.md b/docker/README.md index a6343622..fc98859a 100644 --- a/docker/README.md +++ b/docker/README.md @@ -31,7 +31,7 @@ next versions will use the started `btcd` bitcoin node in `testnet` and In the workflow below, we describe the steps required to recreate the following topology, and send a payment from `Alice` to `Bob`. -``` +```text + ----- + + --- + | Alice | <--- channel ---> | Bob | <--- Bob and Alice are the lightning network daemons which + ----- + + --- + create channels and interact with each other using the @@ -59,47 +59,46 @@ topology, and send a payment from `Alice` to `Bob`. Start `btcd`, and then create an address for `Alice` that we'll directly mine bitcoin into. -```bash +```shell # Init bitcoin network env variable: -$ export NETWORK="simnet" +⛰ export NETWORK="simnet" # Create persistent volumes for alice and bob. -$ docker volume create simnet_lnd_alice -$ docker volume create simnet_lnd_bob +⛰ docker volume create simnet_lnd_alice +⛰ docker volume create simnet_lnd_bob # Run the "Alice" container and log into it: -$ docker-compose run -d --name alice --volume simnet_lnd_alice:/root/.lnd lnd -$ docker exec -i -t alice bash +⛰ docker-compose run -d --name alice --volume simnet_lnd_alice:/root/.lnd lnd +⛰ docker exec -i -t alice bash # Generate a new backward compatible nested p2sh address for Alice: -alice$ lncli --network=simnet newaddress np2wkh +alice ⛰ lncli --network=simnet newaddress np2wkh # Recreate "btcd" node and set Alice's address as mining address: -$ MINING_ADDRESS= docker-compose up -d btcd +⛰ MINING_ADDRESS= docker-compose up -d btcd # Generate 400 blocks (we need at least "100 >=" blocks because of coinbase # block maturity and "300 ~=" in order to activate segwit): -$ docker exec -it btcd /start-btcctl.sh generate 400 +⛰ docker exec -it btcd /start-btcctl.sh generate 400 # Check that segwit is active: -$ docker exec -it btcd /start-btcctl.sh getblockchaininfo | grep -A 1 segwit +⛰ docker exec -it btcd /start-btcctl.sh getblockchaininfo | grep -A 1 segwit ``` Check `Alice` balance: -``` -alice$ lncli --network=simnet walletbalance +```shell +alice ⛰ lncli --network=simnet walletbalance ``` Connect `Bob` node to `Alice` node. -```bash +```shell # Run "Bob" node and log into it: -$ docker-compose run -d --name bob --volume simnet_lnd_bob:/root/.lnd lnd -$ docker exec -i -t bob bash +⛰ docker-compose run -d --name bob --volume simnet_lnd_bob:/root/.lnd lnd +⛰ docker exec -i -t bob bash # Get the identity pubkey of "Bob" node: -bob$ lncli --network=simnet getinfo - +bob ⛰ lncli --network=simnet getinfo { ----->"identity_pubkey": "0343bc80b914aebf8e50eb0b8e445fc79b9e6e8e5e018fa8c5f85c7d429c117b38", "alias": "", @@ -117,13 +116,13 @@ bob$ lncli --network=simnet getinfo } # Get the IP address of "Bob" node: -$ docker inspect bob | grep IPAddress +⛰ docker inspect bob | grep IPAddress # Connect "Alice" to the "Bob" node: -alice$ lncli --network=simnet connect @ +alice ⛰ lncli --network=simnet connect @ # Check list of peers on "Alice" side: -alice$ lncli --network=simnet listpeers +alice ⛰ lncli --network=simnet listpeers { "peers": [ { @@ -140,7 +139,7 @@ alice$ lncli --network=simnet listpeers } # Check list of peers on "Bob" side: -bob$ lncli --network=simnet listpeers +bob ⛰ lncli --network=simnet listpeers { "peers": [ { @@ -158,15 +157,15 @@ bob$ lncli --network=simnet listpeers ``` Create the `Alice<->Bob` channel. -```bash +```shell # Open the channel with "Bob": -alice$ lncli --network=simnet openchannel --node_key= --local_amt=1000000 +alice ⛰ lncli --network=simnet openchannel --node_key= --local_amt=1000000 # Include funding transaction in block thereby opening the channel: -$ docker exec -it btcd /start-btcctl.sh generate 3 +⛰ docker exec -it btcd /start-btcctl.sh generate 3 # Check that channel with "Bob" was opened: -alice$ lncli --network=simnet listchannels +alice ⛰ lncli --network=simnet listchannels { "channels": [ { @@ -193,31 +192,31 @@ alice$ lncli --network=simnet listchannels ``` Send the payment from `Alice` to `Bob`. -```bash +```shell # Add invoice on "Bob" side: -bob$ lncli --network=simnet addinvoice --amt=10000 +bob ⛰ lncli --network=simnet addinvoice --amt=10000 { "r_hash": "", "pay_req": "", } # Send payment from "Alice" to "Bob": -alice$ lncli --network=simnet sendpayment --pay_req= +alice ⛰ lncli --network=simnet sendpayment --pay_req= # Check "Alice"'s channel balance -alice$ lncli --network=simnet channelbalance +alice ⛰ lncli --network=simnet channelbalance # Check "Bob"'s channel balance -bob$ lncli --network=simnet channelbalance +bob ⛰ lncli --network=simnet channelbalance ``` Now we have open channel in which we sent only one payment, let's imagine that we sent lots of them and we'd now like to close the channel. Let's do it! -```bash +```shell # List the "Alice" channel and retrieve "channel_point" which represents # the opened channel: -alice$ lncli --network=simnet listchannels +alice ⛰ lncli --network=simnet listchannels { "channels": [ { @@ -244,17 +243,17 @@ alice$ lncli --network=simnet listchannels # Channel point consists of two numbers separated by a colon. The first one # is "funding_txid" and the second one is "output_index": -alice$ lncli --network=simnet closechannel --funding_txid= --output_index= +alice ⛰ lncli --network=simnet closechannel --funding_txid= --output_index= # Include close transaction in a block thereby closing the channel: -$ docker exec -it btcd /start-btcctl.sh generate 3 +⛰ docker exec -it btcd /start-btcctl.sh generate 3 # Check "Alice" on-chain balance was credited by her settled amount in the channel: -alice$ lncli --network=simnet walletbalance +alice ⛰ lncli --network=simnet walletbalance # Check "Bob" on-chain balance was credited with the funds he received in the # channel: -bob$ lncli --network=simnet walletbalance +bob ⛰ lncli --network=simnet walletbalance { "total_balance": "10000", "confirmed_balance": "10000", @@ -270,7 +269,7 @@ In this section we will try to connect our node to the faucet/hub node which we will create a channel with and send some amount of bitcoins. The schema will be following: -``` +```text + ----- + + ------ + (1) + --- + | Alice | <--- channel ---> | Faucet | <--- channel ---> | Bob | + ----- + + ------ + + --- + @@ -297,21 +296,21 @@ bitcoins. The schema will be following: First of all you need to run `btcd` node in `testnet` and wait for it to be synced with test network (`May the Force and Patience be with you`). -```bash +```shell # Init bitcoin network env variable: -$ NETWORK="testnet" docker-compose up +⛰ NETWORK="testnet" docker-compose up ``` After `btcd` synced, connect `Alice` to the `Faucet` node. The `Faucet` node address can be found at the [Faucet Lightning Community webpage](https://faucet.lightning.community). -```bash +```shell # Run "Alice" container and log into it: -$ docker-compose run -d --name alice lnd_btc; docker exec -i -t "alice" bash +⛰ docker-compose run -d --name alice lnd_btc; docker exec -i -t "alice" bash # Connect "Alice" to the "Faucet" node: -alice$ lncli --network=testnet connect @ +alice ⛰ lncli --network=testnet connect @ ``` After a connection is achieved, the `Faucet` node should create the channel @@ -332,6 +331,6 @@ production), outside of `docker-compose`, see the [![Irc](https://img.shields.io/badge/chat-on%20freenode-brightgreen.svg)](https://webchat.freenode.net/?channels=lnd) * How to see `alice` | `bob` | `btcd` logs? -```bash -docker-compose logs +```shell +⛰ docker-compose logs ``` diff --git a/lnrpc/README.md b/lnrpc/README.md index a6cf1514..dfe5aaf4 100644 --- a/lnrpc/README.md +++ b/lnrpc/README.md @@ -147,8 +147,8 @@ description): ## Installation and Updating -```bash -$ go get -u github.com/lightningnetwork/lnd/lnrpc +```shell +⛰ go get -u github.com/lightningnetwork/lnd/lnrpc ``` ## Generate protobuf definitions @@ -160,40 +160,42 @@ build. Just run the following command (requires `sudo` permissions and the tools `make`, `go`, `wget` and `unzip` to be installed) from the repository's root folder: -`./scripts/install_travis_proto.sh` +```shell +⛰ ./scripts/install_travis_proto.sh +``` ### MacOS / Unix like systems 1. Download [v.3.4.0](https://github.com/google/protobuf/releases/tag/v3.4.0) of `protoc` for your operating system and add it to your `PATH`. For example, if using macOS: -```bash -$ curl -LO https://github.com/google/protobuf/releases/download/v3.4.0/protoc-3.4.0-osx-x86_64.zip -$ unzip protoc-3.4.0-osx-x86_64.zip -d protoc -$ export PATH=$PWD/protoc/bin:$PATH +```shell +⛰ curl -LO https://github.com/google/protobuf/releases/download/v3.4.0/protoc-3.4.0-osx-x86_64.zip +⛰ unzip protoc-3.4.0-osx-x86_64.zip -d protoc +⛰ export PATH=$PWD/protoc/bin:$PATH ``` 2. Install `golang/protobuf` at version `v1.3.2`. -```bash -$ git clone https://github.com/golang/protobuf $GOPATH/src/github.com/golang/protobuf -$ cd $GOPATH/src/github.com/golang/protobuf -$ git reset --hard v1.3.2 -$ make +```shell +⛰ git clone https://github.com/golang/protobuf $GOPATH/src/github.com/golang/protobuf +⛰ cd $GOPATH/src/github.com/golang/protobuf +⛰ git reset --hard v1.3.2 +⛰ make ``` 3. Install 'genproto' at commit `20e1ac93f88cf06d2b1defb90b9e9e126c7dfff6`. -```bash -$ go get google.golang.org/genproto -$ cd $GOPATH/src/google.golang.org/genproto -$ git reset --hard 20e1ac93f88cf06d2b1defb90b9e9e126c7dfff6 +```shell +⛰ go get google.golang.org/genproto +⛰ cd $GOPATH/src/google.golang.org/genproto +⛰ git reset --hard 20e1ac93f88cf06d2b1defb90b9e9e126c7dfff6 ``` 4. Install `grpc-ecosystem/grpc-gateway` at version `v1.14.3`. -```bash -$ git clone https://github.com/grpc-ecosystem/grpc-gateway $GOPATH/src/github.com/grpc-ecosystem/grpc-gateway -$ cd $GOPATH/src/github.com/grpc-ecosystem/grpc-gateway -$ git reset --hard v1.14.3 -$ go install ./protoc-gen-grpc-gateway ./protoc-gen-swagger +```shell +⛰ git clone https://github.com/grpc-ecosystem/grpc-gateway $GOPATH/src/github.com/grpc-ecosystem/grpc-gateway +⛰ cd $GOPATH/src/github.com/grpc-ecosystem/grpc-gateway +⛰ git reset --hard v1.14.3 +⛰ go install ./protoc-gen-grpc-gateway ./protoc-gen-swagger ``` 5. Run [`gen_protos.sh`](https://github.com/lightningnetwork/lnd/blob/master/lnrpc/gen_protos.sh) diff --git a/lnwallet/README.md b/lnwallet/README.md index be1d82ae..15f3ad2e 100644 --- a/lnwallet/README.md +++ b/lnwallet/README.md @@ -21,6 +21,6 @@ with the interface. ## Installation and Updating -```bash -$ go get -u github.com/lightningnetwork/lnd/lnwallet +```shell +⛰ go get -u github.com/lightningnetwork/lnd/lnwallet ``` diff --git a/lnwire/README.md b/lnwire/README.md index a3fe638a..835509ac 100644 --- a/lnwire/README.md +++ b/lnwire/README.md @@ -13,6 +13,6 @@ protocol level. ## Installation and Updating -```bash -$ go get -u github.com/lightningnetwork/lnd/lnwire +```shell +⛰ go get -u github.com/lightningnetwork/lnd/lnwire ``` diff --git a/macaroons/README.md b/macaroons/README.md index 863f435b..07cf5a08 100644 --- a/macaroons/README.md +++ b/macaroons/README.md @@ -98,13 +98,17 @@ default macaroons (`admin`, `invoice` and `readonly`) are not sufficient. For example, a macaroon that is only allowed to manage peers with a default root key `0` would be created with the following command: -`lncli bakemacaroon peers:read peers:write` +```shell +⛰ lncli bakemacaroon peers:read peers:write +``` For even more fine-grained permission control, it is also possible to specify single RPC method URIs that are allowed to be accessed by a macaroon. This can be achieved by passing `uri:` pairs to `bakemacaroon`, for example: -`lncli bakemacaroon uri:/lnrpc.Lightning/GetInfo uri:/verrpc.Versioner/GetVersion` +```shell +⛰ lncli bakemacaroon uri:/lnrpc.Lightning/GetInfo uri:/verrpc.Versioner/GetVersion +``` The macaroon created by this call would only be allowed to call the `GetInfo` and `GetVersion` methods instead of all methods that have similar permissions (like @@ -132,11 +136,15 @@ To manage the root keys used by macaroons, there are `listmacaroonids` and `deletemacaroonid` available through gPRC and command line. Users can view a list of all macaroon root key IDs that are in use using: -`lncli listmacaroonids` +```shell +⛰ lncli listmacaroonids +``` And remove a specific macaroon root key ID using command: -`lncli deletemacaroonid root_key_id` +```shell +⛰ lncli deletemacaroonid root_key_id +``` Be careful with the `deletemacaroonid` command as when a root key is deleted, -**all the macaroons created from it are invalidated**. \ No newline at end of file +**all the macaroons created from it are invalidated**. diff --git a/mobile/README.md b/mobile/README.md index 3a266232..2dd0dc10 100644 --- a/mobile/README.md +++ b/mobile/README.md @@ -16,18 +16,18 @@ point. #### falafel Install [`falafel`](https://github.com/lightninglabs/falafel): -``` -go get -u -v github.com/lightninglabs/falafel +```shell +⛰ go get -u -v github.com/lightninglabs/falafel ``` ### Building `lnd` for iOS -``` -make ios +```shell +⛰ make ios ``` ### Building `lnd` for Android -``` -make android +```shell +⛰ make android ``` `make mobile` will build both iOS and Android libs. @@ -52,15 +52,15 @@ Swift, add `--swift_out=.` and run `make rpc`. Similar to lnd, subservers can be conditionally compiled with the build by setting the tags argument: -``` -make ios +```shell +⛰ make ios ``` To support subservers that have APIs with name conflicts, pass the "prefix" flag. This will add the subserver name as a prefix to each method name: -``` -make ios prefix=1 +```shell +⛰ make ios prefix=1 ``` ### API docs diff --git a/routing/README.md b/routing/README.md index 9cffb745..d8f19712 100644 --- a/routing/README.md +++ b/routing/README.md @@ -12,6 +12,6 @@ channel graph state. ## Installation and Updating -```bash -$ go get -u github.com/lightningnetwork/lnd/routing +```shell +⛰ go get -u github.com/lightningnetwork/lnd/routing ``` diff --git a/tor/README.md b/tor/README.md index 49590c9a..0a36a52f 100644 --- a/tor/README.md +++ b/tor/README.md @@ -16,6 +16,6 @@ onion services, asynchronous messages, etc. ## Installation and Updating -```bash -$ go get -u github.com/lightningnetwork/lnd/tor +```shell +⛰ go get -u github.com/lightningnetwork/lnd/tor ``` diff --git a/zpay32/README.md b/zpay32/README.md index f91b985b..7afbd94b 100644 --- a/zpay32/README.md +++ b/zpay32/README.md @@ -17,6 +17,6 @@ to send. ## Installation and Updating -```bash -$ go get -u github.com/lightningnetwork/lnd/zpay32 +```shell +⛰ go get -u github.com/lightningnetwork/lnd/zpay32 ```