diff --git a/include_metatags.md b/_includes/include_metatags.md
similarity index 100%
rename from include_metatags.md
rename to _includes/include_metatags.md
diff --git a/backstory.md b/guide/backstory.md
similarity index 95%
rename from backstory.md
rename to guide/backstory.md
index 22cbe6043..c54901e46 100644
--- a/backstory.md
+++ b/guide/backstory.md
@@ -4,7 +4,7 @@ title: Backstory
nav_order: 10
---
-{% include_relative include_metatags.md %}
+{% include include_metatags.md %}
# Backstory
{: .no_toc }
@@ -47,7 +47,7 @@ This was the original goal of the RaspiBolt guide back in 2017: simply buying a
I used the [Eclair](https://github.com/ACINQ/eclair){:target="_blank"} Lighting implementation back then, on Lightning testnet, as mainnet was not even running yet.
Oh, how time flies...
-[![Buying a Blockaccino](images/backstory_blockaccino.png)](https://vimeo.com/252693058){:target="_blank"}
+[![Buying a Blockaccino](../images/backstory_blockaccino.png)](https://vimeo.com/252693058){:target="_blank"}
Watch the [original screencast](https://vimeo.com/252693058){:target="_blank"} from back then.
@@ -64,4 +64,4 @@ Thanks to everyone who cares about Bitcoin and feels that running your own Bitco
---
-Next: [Rasperry Pi >>](raspberry-pi.md)
+Next: [Rasperry Pi >>](raspberry-pi/index.md)
diff --git a/bitcoin-core.md b/guide/bitcoin/bitcoin-client.md
similarity index 98%
rename from bitcoin-core.md
rename to guide/bitcoin/bitcoin-client.md
index 207908cdb..209e78711 100644
--- a/bitcoin-core.md
+++ b/guide/bitcoin/bitcoin-client.md
@@ -1,11 +1,11 @@
---
layout: default
-title: Bitcoin Core
+title: Bitcoin client
nav_order: 10
parent: Bitcoin
---
-# Bitcoin Core
+# Bitcoin client
{: .no_toc }
We install [Bitcoin Core](https://bitcoin.org/en/bitcoin-core/){:target="_blank"}, the reference client implementation of the Bitcoin network.
@@ -412,7 +412,7 @@ If everything is running smoothly, this is the perfect time to familiarize yours
* you definitely need to have a [real copy](https://bitcoinbook.info/){:target="_blank"} of this book!
* read it online on [Github](https://github.com/bitcoinbook/bitcoinbook){:target="_blank"}
- ![Mastering Bitcoin](images/30_mastering_bitcoin_book.jpg){:target="_blank"}
+ ![Mastering Bitcoin](../../images/30_mastering_bitcoin_book.jpg){:target="_blank"}
* [**Learning Bitcoin from the Command Line**](https://github.com/ChristopherA/Learning-Bitcoin-from-the-Command-Line/blob/master/README.md){:target="_blank"} by Christopher Allen gives a thorough deep dive into understanding the technical aspects of Bitcoin.
@@ -457,7 +457,7 @@ When upgrading, there might be breaking changes, or changes in the data structur
* There's no need to stop the application.
Simply install the new version and restart the service.
-* Download, verify, extract and install the Bitcoin Core binaries as described in the [Bitcoin section](bitcoin-core.md) of this guide.
+* Download, verify, extract and install the Bitcoin Core binaries as described in the [Bitcoin section](bitcoin-client.md#installation) of this guide.
* Restart the Bitcoin Core systemd unit
@@ -469,4 +469,4 @@ When upgrading, there might be breaking changes, or changes in the data structur
---
-Next: [Electrum >>](electrs.md)
+Next: [Electrum server >>](electrum-server.md)
diff --git a/btcrpcexplorer.md b/guide/bitcoin/blockchain-explorer.md
similarity index 96%
rename from btcrpcexplorer.md
rename to guide/bitcoin/blockchain-explorer.md
index 95992b589..b9511ba26 100644
--- a/btcrpcexplorer.md
+++ b/guide/bitcoin/blockchain-explorer.md
@@ -1,17 +1,17 @@
---
layout: default
-title: Blockchain Explorer
+title: Blockchain explorer
nav_order: 30
parent: Bitcoin
---
-# Blockchain Explorer
+# Blockchain explorer
{: .no_toc }
Run your own private blockchain explorer with [BTC RPC Explorer](https://github.com/janoside/btc-rpc-explorer){:target="_blank"}. Trust your node, not some external services.
-![BTC RPC Explorer home screen with dark theme](images/btcrpcexplorer-homepage.png)
+![BTC RPC Explorer home screen with dark theme](../../images/btcrpcexplorer-homepage.png)
---
@@ -42,7 +42,7 @@ For the BTC RPC Explorer to work, you need your full node to index all transacti
* If you followed this guide, the transaction index parameter is already enabled (`txindex=1`), and you can skip to the next section.
-* If this is not the case, you need to set the `txindex=1` parameter in your Bitcoin Core configuration file (`bitcoin.conf`): [Bitcoin node configuration](bitcoin-core.md#configuration).
+* If this is not the case, you need to set the `txindex=1` parameter in your Bitcoin Core configuration file (`bitcoin.conf`): [Bitcoin node configuration](bitcoin-client.md#configuration).
* After adding the parameter, restart Bitcoin Core, which will now index the whole blockchain
@@ -70,7 +70,7 @@ You can follow the progress using `tail -f ~/.bitcoin/debug.log`.
### Firewall & reverse proxy
-In the [Security section](security.md), we set up NGINX as a reverse proxy.
+In the [Security section](../raspberry-pi/security.md#prepare-nginx-reverse-proxy), we set up NGINX as a reverse proxy.
Now we can add the BTC RPC Explorer configuration.
* Enable NGINX reverse proxy to route external encrypted HTTPS traffic internally to the BTC RPC Explorer
@@ -344,5 +344,5 @@ Updating to a [new release](https://github.com/janoside/btc-rpc-explorer/release
---
-Next: [Lightning >>](lightning.md)
+Next: [Lightning >>](../lightning/index.md)
diff --git a/electrs.md b/guide/bitcoin/electrum-server.md
similarity index 96%
rename from electrs.md
rename to guide/bitcoin/electrum-server.md
index c8ddaeec5..f987ea41c 100644
--- a/electrs.md
+++ b/guide/bitcoin/electrum-server.md
@@ -36,7 +36,7 @@ Wallets like the [BitBoxApp](https://shiftcrypto.ch/app/){:target="_blank"}, [El
## Preparations
-Make sure that you have [reduced the database cache of Bitcoin Core](bitcoin-core.html#reduce-dbcache-after-full-sync) after full sync.
+Make sure that you have [reduced the database cache of Bitcoin Core](bitcoin-client.md#reduce-dbcache-after-full-sync)#prepare-nginx-reverse-proxy after full sync.
### Install dependencies
@@ -48,7 +48,7 @@ Make sure that you have [reduced the database cache of Bitcoin Core](bitcoin-cor
### Firewall & reverse proxy
-In the [Security section](security.md), we already set up NGINX as a reverse proxy.
+In the [Security section](../raspberry-pi/security.md), we already set up NGINX as a reverse proxy.
Now we can add the Electrs configuration.
* Enable NGINX reverse proxy to add SSL/TLS encryption to the Electrs communication.
@@ -311,7 +311,7 @@ Only proceed with the next section once Electrs is ready.
[Electrum wallet](https://electrum.org){:target="_blank"} is a well-established, feature-rich Bitcoin wallet for power-users that supports most hardware wallets.
-![Electrum Wallet local](images/electrum-wallet-tor.png){:target="_blank"}
+![Electrum Wallet local](../../images/electrum-wallet-tor.png){:target="_blank"}
### Force single server connection
@@ -346,14 +346,14 @@ If you start Electrum, the green LED in the bottom right indicates an active con
If you connect over Tor, make sure that Tor is installed on your regular computer.
There are two options:
-* Easy: download, install and run [Tor Browser](https://www.torproject.org).
+* Easy: download, install and run [Tor Browser](https://www.torproject.org){:target="_blank"}.
* The application must be started manually and run in the background whe you want to connect over Tor.
* Tor proxy available on port `9150`
* Expert: install Tor as a background service
* The background service must be installed, and is always active in the background.
* Tor proxy available on port `9050`
- * See further installation instructions for [Windows](https://bitstobytes.org/tor), [macOS](https://deepdarkweb.github.io/how-to-install-tor-on-macos-tutorial/), and Linux (`sudo apt install tor`).
+ * See further installation instructions for [Windows](https://bitstobytes.org/tor){:target="_blank"}, [macOS](https://deepdarkweb.github.io/how-to-install-tor-on-macos-tutorial/){:target="_blank"}, and Linux (`sudo apt install tor`).
Now we need to specifiy the Tor address for Electrs and the local Tor proxy port in the Electrum configuration.
@@ -403,7 +403,7 @@ If you have Tor installed on your computer, you can access your RaspiBolt remote
* Enable it and confirm the proxy address (usually the default `127.0.0.1:9050`)
* When adding your RaspiBolt full node as described above, use your Tor address (e.g. `gwdllz5g7vky2q4gr45zGuvopjzf33czreca3a3exosftx72ekppkuqd.onion:50002`)
-![BitBoxApp](images/electrum_BitBoxApp.png)
+![BitBoxApp](../../images/electrum_BitBoxApp.png)
---
@@ -459,4 +459,4 @@ Make sure to check the [release notes](https://github.com/romanz/electrs/blob/ma
---
-Next: [Blockchain Explorer >>](btcrpcexplorer.md)
+Next: [Blockchain explorer >>](blockchain-explorer.md)
diff --git a/bitcoin.md b/guide/bitcoin/index.md
similarity index 93%
rename from bitcoin.md
rename to guide/bitcoin/index.md
index 336dbf97a..4d9291264 100644
--- a/bitcoin.md
+++ b/guide/bitcoin/index.md
@@ -5,7 +5,7 @@ nav_order: 30
has_children: true
---
-{% include_relative include_metatags.md %}
+{% include include_metatags.md %}
# Bitcoin
diff --git a/bonus-section-separator.md b/guide/bonus-section-separator.md
similarity index 53%
rename from bonus-section-separator.md
rename to guide/bonus-section-separator.md
index 642facda0..84dd3acc1 100644
--- a/bonus-section-separator.md
+++ b/guide/bonus-section-separator.md
@@ -3,4 +3,4 @@ layout: default
title: __________________________
nav_order: 99
---
-
\ No newline at end of file
+
diff --git a/bonus/bitcoin/electrum-personal-server.md.md b/guide/bonus/bitcoin/electrum-personal-server.md
similarity index 84%
rename from bonus/bitcoin/electrum-personal-server.md.md
rename to guide/bonus/bitcoin/electrum-personal-server.md
index 62b39518f..f3c0af777 100644
--- a/bonus/bitcoin/electrum-personal-server.md.md
+++ b/guide/bonus/bitcoin/electrum-personal-server.md
@@ -28,15 +28,15 @@ Status: Not tested v3
### Introduction
-The best way to safekeep your bitcoin (meaning the best combination of security and usability) is to use a hardware wallet (like [Ledger](https://www.ledgerwallet.com/) or [Trezor](https://trezor.io/)) in combination with your own Bitcoin node. This gives you security, privacy and eliminates the need to trust a third party to verify transactions.
+The best way to safekeep your bitcoin (meaning the best combination of security and usability) is to use a hardware wallet (like [Ledger](https://www.ledgerwallet.com/){:target="_blank"} or [Trezor](https://trezor.io/)){:target="_blank"} in combination with your own Bitcoin node. This gives you security, privacy and eliminates the need to trust a third party to verify transactions.
With the RaspiBolt setup, the Bitcoin Core wallet on the node can only be used from the command line as no graphical user interface is installed. As Bitcoin Core does not offer support for hardware wallets, only a "hot wallet" (exposed to the internet) can be realized.
-One possibility to use Bitcoin Core with more functionality is to set up an additional [ElectrumX](https://github.com/kyuupichan/electrumx) server and then use the great [Electrum wallet](https://electrum.org/) (on your regular computer) that integrates with hardware wallets. But this setup is not easy, and the overhead is more than a Raspberry Pi can handle.
+One possibility to use Bitcoin Core with more functionality is to set up an additional [ElectrumX](https://github.com/kyuupichan/electrumx){:target="_blank"} server and then use the great [Electrum wallet](https://electrum.org/){:target="_blank"} (on your regular computer) that integrates with hardware wallets. But this setup is not easy, and the overhead is more than a Raspberry Pi can handle.
-The new [Electrum Personal Server](https://github.com/chris-belcher/electrum-personal-server) makes it possible to connect Electrum (using your hardware wallet) directly to your RaspiBolt. In contrast to ElectrumX, this is not a full server that serves multiple users, but your own dedicated backend.
+The new [Electrum Personal Server](https://github.com/chris-belcher/electrum-personal-server){:target="_blank"} makes it possible to connect Electrum (using your hardware wallet) directly to your RaspiBolt. In contrast to ElectrumX, this is not a full server that serves multiple users, but your own dedicated backend.
-Before using this setup, please familiarize yourself with all components by setting up your own Electrum wallet, visiting the linked project websites and reading [The Electrum Personal Server Will Give Users the Full Node Security They Need](https://bitcoinmagazine.com/articles/electrum-personal-server-will-give-users-full-node-security-they-need/) in Bitcoin Magazine.
+Before using this setup, please familiarize yourself with all components by setting up your own Electrum wallet, visiting the linked project websites and reading [The Electrum Personal Server Will Give Users the Full Node Security They Need](https://bitcoinmagazine.com/articles/electrum-personal-server-will-give-users-full-node-security-they-need/){:target="_blank"} in Bitcoin Magazine.
### Preparations
@@ -46,7 +46,7 @@ Before using this setup, please familiarize yourself with all components by sett
$ sudo pip3 install setuptools
```
-* Configure firewall to allow incoming requests (please check if you need to adjust the subnet mask as [described in original setup](raspibolt_20_pi.md#enabling-the-uncomplicated-firewall))
+* Configure firewall to allow incoming requests (please check if you need to adjust the subnet mask as [described in original setup](../../raspberry-pi/security.md#enabling-the-uncomplicated-firewall))
```sh
$ sudo ufw allow from 192.168.0.0/24 to any port 50002 comment 'allow EPS from local network'
$ sudo ufw enable
@@ -66,7 +66,7 @@ Electrum Personal Server uses the Bitcoin Core wallet with "watch-only" addresse
* Open a "bitcoin" user session and change into the home directory
`$ sudo su - bitcoin`
-* Download, verify and extract the latest release (check the [Releases page](https://github.com/chris-belcher/electrum-personal-server/releases) on Github for the correct links)
+* Download, verify and extract the latest release (check the [Releases page](https://github.com/chris-belcher/electrum-personal-server/releases){:target="_blank"} on Github for the correct links)
```sh
# create new directory on external hdd
@@ -118,10 +118,10 @@ Electrum Personal Server uses the Bitcoin Core wallet with "watch-only" addresse
$ pip3 install --user .
```
- ![Install Electrum Personal Server with Python Pip](./images/60_eps_pip_install.png)
+ ![Install Electrum Personal Server with Python Pip](../../../images/60_eps_pip_install.png)
### First start
-The Electrum Personal Server scripts are installed in the directory `/home/bitcoin/.local/bin/`. Unfortunately, in Raspberry Pi OS this directory is not in the system path, so the full path needs to be specified when calling these scripts. Alternatively, just [add this directory to your $PATH environment variable](https://unix.stackexchange.com/questions/26047/how-to-correctly-add-a-path-to-path), but it's not necessary in this guide.
+The Electrum Personal Server scripts are installed in the directory `/home/bitcoin/.local/bin/`. Unfortunately, in Raspberry Pi OS this directory is not in the system path, so the full path needs to be specified when calling these scripts. Alternatively, just [add this directory to your $PATH environment variable](https://unix.stackexchange.com/questions/26047/how-to-correctly-add-a-path-to-path){:target="_blank"}, but it's not necessary in this guide.
* The first time the server is run it will import all configured addresses as watch-only into the Bitcoin node. This can take up to 10 minutes, after that the program will exit.
```sh
@@ -143,7 +143,7 @@ The Electrum Personal Server scripts are installed in the directory `/home/bitco
$ /home/bitcoin/.local/bin/electrum-personal-server /home/bitcoin/electrum-personal-server/config.cfg
```
- [![Run Electrum Personal Server manually](images/60_eps_first-start.png)](images/60_eps_first-start.png)
+ [![Run Electrum Personal Server manually](../../../images/60_eps_first-start.png)
### Connect Electrum
@@ -153,11 +153,11 @@ On your regular computer, configure Electrum to use your RaspiBolt:
* Uncheck "Select server automatically"
* Enter the IP of your RaspiBolt (eg. 192.168.0.20) in the address field
- [![Connect Electrum to RaspiBolt](images/60_eps_electrum-connect.png)](images/60_eps_electrum-connect.png)
+ [![Connect Electrum to RaspiBolt](../../../images/60_eps_electrum-connect.png)
* `Close` and check connection in tab "Console"
- [![Check Electrum console](images/60_eps_electrumwallet.png)](images/60_eps_electrumwallet.png)
+ [![Check Electrum console](../../../images/60_eps_electrumwallet.png)
* This can also be achived by starting the Electrum wallet with the following command line arguments:
`--oneserver --server 192.168.0.20:50002:s`
diff --git a/bonus/bitcoin/index.md b/guide/bonus/bitcoin/index.md
similarity index 100%
rename from bonus/bitcoin/index.md
rename to guide/bonus/bitcoin/index.md
diff --git a/bonus/bitcoin/mempool.md b/guide/bonus/bitcoin/mempool.md
similarity index 97%
rename from bonus/bitcoin/mempool.md
rename to guide/bonus/bitcoin/mempool.md
index 262bb9c07..e3e9db775 100644
--- a/bonus/bitcoin/mempool.md
+++ b/guide/bonus/bitcoin/mempool.md
@@ -21,7 +21,7 @@ Difficulty: Medium
Status: Tested v3
{: .label .label-green }
-![Mempool](../../images/mempool.png)
+![Mempool](../../../images/mempool.png)
---
@@ -56,7 +56,7 @@ To run Mempool, we need to run Node.js v16 or above.
> v16.13.1
```
-* If Node.js is not installed, follow [this guide](https://raspibolt.org/btcrpcexplorer.html#install-nodejs) to install it. If the version is v14 or older, update it following [this tutorial](https://phoenixnap.com/kb/update-node-js-version){:target="_blank"}.
+* If Node.js is not installed, follow [this guide](../../bitcoin/blockchain-explorer.md#install-nodejs) to install it. If the version is v14 or older, update it following [this tutorial](https://phoenixnap.com/kb/update-node-js-version){:target="_blank"}.
### Firewall
diff --git a/bonus/bitcoin/specter-desktop.md b/guide/bonus/bitcoin/specter-desktop.md
similarity index 95%
rename from bonus/bitcoin/specter-desktop.md
rename to guide/bonus/bitcoin/specter-desktop.md
index 138b370de..c8ed4ed4d 100644
--- a/bonus/bitcoin/specter-desktop.md
+++ b/guide/bonus/bitcoin/specter-desktop.md
@@ -17,14 +17,15 @@ Difficulty: Intermediate
Status: Not tested v3
{: .label .label-yellow }
-
-
- Table of contents
-
- {: .text-delta }
+---
+
+Table of contents
+{: .text-delta }
+
1. TOC
{:toc}
-
+
+---
The Specter Desktop app is a project that's working on making a convenient and user-friendly GUI around Bitcoin Core with a focus on ***multisignature setup with hardware wallets and airgapped devices***.
@@ -193,7 +194,7 @@ These instructions will clone the repo to fetch the latest version and then "pip
```
-- Add the following udev rules based on the devices you require support for. The rules are based on [rules from the `bitcoin-core` repo](https://github.com/bitcoin-core/HWI/blob/master/hwilib/udev/README.md).
+- Add the following udev rules based on the devices you require support for. The rules are based on [rules from the `bitcoin-core` repo](https://github.com/bitcoin-core/HWI/blob/master/hwilib/udev/README.md){:target="_blank"}.
- #### Ledger
@@ -340,7 +341,7 @@ Test Specter Desktop manually first to make sure it works.
- Next we will test that Specter Desktop can detect your hardware wallet. Go to **Settings _(top right)_** -> **USB Devices _(tab)_** -> **Test connection _(bottom)_**. A blue popup should appear to the top of the page with the message `"Device detected successfully! USB connections configured correctly!"`
- ![Hardware device check](images/76_specter_desktop1.gif)
+ ![Hardware device check](../../../images/76_specter_desktop1.gif)
- Stop Specter Desktop in the terminal with Ctrl-C and exit the "specter" user session.
```sh
@@ -394,7 +395,7 @@ If you would like to connect your hardware wallets to your laptop/computer inste
With this, Specter is also downloaded and installed on the laptop/computer and then connected to the instance running on the Raspberry Pi. The two instances then communicate with the local laptop/computer instance handling the direct USB connection and the remote instance handling the connection to `bitcoind` via its RPC interface.
-**\> Instructions for configuring this setup can be found at [hwibridge.md](https://github.com/cryptoadvance/specter-desktop/blob/v1.3.0/docs/hwibridge.md).**
+** Instructions for configuring this setup can be found at [hwibridge.md](https://github.com/cryptoadvance/specter-desktop/blob/v1.3.0/docs/hwibridge.md){:target="_blank"}.**
**Advantages**
- The Bitcoin RPC ports remains locked down and local only to the Raspberry Pi
@@ -408,13 +409,13 @@ With this, Specter is also downloaded and installed on the laptop/computer and t
With this option, Specter is installed ***only*** on the user's laptop/computer and then made to talk directly to the Bitcoin RPC to get its blockchain data and access to the Bitcoin network.
-**\> Instructions for configuring this setup can be found at [connect-your-node.md](https://github.com/cryptoadvance/specter-desktop/blob/v1.3.0/docs/connect-your-node.md).**
+** Instructions for configuring this setup can be found at [connect-your-node.md](https://github.com/cryptoadvance/specter-desktop/blob/v1.3.0/docs/connect-your-node.md){:target="_blank"}.**
**Advantages**
- Specter only needs to be setup and maintained in one place
**Disadvantages**
- - The Bitcoin RPC port must be made available outside of the Raspberry Pi's internal `localhost` network. It must first be made available to the local LAN network, and then optionally to the wider web via port forwarding if the user wishes to use Specter outside the local LAN network.
+ - The Bitcoin RPC port must be made available outside of the Raspberry Pi's internal `localhost` network. It must first be made available to the local LAN network, and then optionally to the wider web via port forwarding if the user wishes to use Specter outside the local LAN network.
This comes with its own security considerations that the user should be wary of.
@@ -424,7 +425,7 @@ This is similar to **Option 1** in that two running instances of Specter Desktop
This 3rd option is more involved though since the user must also install/configure Tor, setup Tor hidden services for each instance on it's machine, and then configure both instances to communicate with each other through a Tor proxy.
-**\> Instructions for configuring this setup can be found at [tor.md](https://github.com/cryptoadvance/specter-desktop/blob/v1.3.0/docs/tor.md).**
+**\> Instructions for configuring this setup can be found at [tor.md](https://github.com/cryptoadvance/specter-desktop/blob/v1.3.0/docs/tor.md){:target="_blank"}.**
**Advantages**
- The Bitcoin RPC ports remains locked down and local only to the Raspberry Pi
@@ -440,13 +441,13 @@ This 3rd option is more involved though since the user must also install/configu
For certain hardware wallets that are air-gapped and communicate via QR code only, an SSL certificate must be configure for the Specter Desktop service running inside the browser.
-**\> Instructions for setting this up can be found at [self-signed-certificates.md](https://github.com/cryptoadvance/specter-desktop/blob/v1.3.0/docs/self-signed-certificates.md).**
+**\> Instructions for setting this up can be found at [self-signed-certificates.md](https://github.com/cryptoadvance/specter-desktop/blob/v1.3.0/docs/self-signed-certificates.md){:target="_blank"}.**
---
# Upgrade
-Updating to a [new release](https://github.com/cryptoadvance/specter-desktop/releases) should be straight-forward, but make sure to check out [the changes](https://github.com/cryptoadvance/specter-desktop/releases/latest) first.
+Updating to a [new release](https://github.com/cryptoadvance/specter-desktop/releases){:target="_blank"} should be straight-forward, but make sure to check out [the changes](https://github.com/cryptoadvance/specter-desktop/releases/latest){:target="_blank"} first.
- From user “admin”, stop the service and open a "specter" user session
```sh
diff --git a/bonus/bitcoin/white-paper.md b/guide/bonus/bitcoin/white-paper.md
similarity index 97%
rename from bonus/bitcoin/white-paper.md
rename to guide/bonus/bitcoin/white-paper.md
index fd4978e25..5da547e7b 100644
--- a/bonus/bitcoin/white-paper.md
+++ b/guide/bonus/bitcoin/white-paper.md
@@ -21,7 +21,7 @@ Difficulty: Easy
Status: Tested v3
{: .label .label-green }
-![Explorer white paper page](../../images/paper-pink.png)
+![Explorer white paper page](../../../images/paper-pink.png)
---
@@ -150,7 +150,7 @@ See [How to Use Putty pscp to Copy Files](https://tonyteaches.tech/putty-pscp-tu
The BTC-RPC-Explorer has also a functionality to extract the data from the node and display the PDF in the web browser.
-![Explorer white paper page](../../images/white-paper-transac.png)
+![Explorer white paper page](../../../images/white-paper-transac.png)
* Open your Explorer at [https://raspibolt.local:4000/](https://raspibolt.local:4000/){:target="_blank"} (replace raspibolt.local with your node IP address if needed).
diff --git a/bonus/index.md b/guide/bonus/index.md
similarity index 99%
rename from bonus/index.md
rename to guide/bonus/index.md
index fb598aa7a..4687b66d6 100644
--- a/bonus/index.md
+++ b/guide/bonus/index.md
@@ -27,7 +27,7 @@ In the following categories, you can find various additional and optional guides
All bonus guides are rated with labels to help you assess the difficulty of each guide, and if it is tested against the most recent version of the main guide.
* Difficulty: indicates how difficult the bonus guide is in term of installation procedure or usage
-
+
Difficulty: Easy
{: .label .label-green }
@@ -41,7 +41,7 @@ All bonus guides are rated with labels to help you assess the difficulty of each
Status: Tested v3
{: .label .label-green }
-
+
Status: Not tested v3
{: .label .label-yellow }
diff --git a/bonus/lightning/auto-unlock.md b/guide/bonus/lightning/auto-unlock.md
similarity index 100%
rename from bonus/lightning/auto-unlock.md
rename to guide/bonus/lightning/auto-unlock.md
diff --git a/bonus/lightning/balance-of-satoshis.md b/guide/bonus/lightning/balance-of-satoshis.md
similarity index 93%
rename from bonus/lightning/balance-of-satoshis.md
rename to guide/bonus/lightning/balance-of-satoshis.md
index 24d1fadc1..1e500ed3a 100644
--- a/bonus/lightning/balance-of-satoshis.md
+++ b/guide/bonus/lightning/balance-of-satoshis.md
@@ -20,7 +20,7 @@ Difficulty: Medium
Status: Tested v3
{: .label .label-green }
-![bos-rebalance](../../images/bos-illustration.png)
+![bos-rebalance](../../../images/bos-illustration.png)
---
@@ -50,7 +50,7 @@ Table of contents
> v16.13.2
```
-* If the version is v12 or above, you can move to the next section. If Node.js is not installed, follow [this guide](https://raspibolt.org/btcrpcexplorer.html#install-nodejs) to install it.
+* If the version is v12 or above, you can move to the next section. If Node.js is not installed, follow [this guide](../../bitcoin/blockchain-explorer.md#install-nodejs) to install it.
### Create the "bos" user and prepare the directory
@@ -67,7 +67,7 @@ Table of contents
```sh
$ ln -s /data/lnd /home/bos/.lnd
```
-
+
* Display the link and check that it's not shown in red (this would indicate an error)
```sh
@@ -75,7 +75,7 @@ Table of contents
```
* Add the bos binary file location to PATH
-
+
```sh
$ echo 'export PATH=$PATH:/home/bos/balanceofsatoshis' >> /home/bos/.bashrc
$ source /home/bos/.bashrc
@@ -93,14 +93,14 @@ Table of contents
```
* Still with user "bos", download the source code and install it
-
+
```sh
$ git clone https://github.com/alexbosworth/balanceofsatoshis.git
$ cd balanceofsatoshis
```
-
-* Find the most recent tag and verify the signature. Add the `--tags` option to select even a lightweight/non-annotated tag. Add the `--abbrev=0` option to remove any long-format tag names.
-
+
+* Find the most recent tag and verify the signature. Add the `--tags` option to select even a lightweight/non-annotated tag. Add the `--abbrev=0` option to remove any long-format tag names.
+
```sh
$ git describe --tags --abbrev=0
> v11.14.0
@@ -112,11 +112,11 @@ Table of contents
```
* Install Balance of Satoshis locally
-
+
```sh
$ npm install
> [...]
- ```
+ ```
* Check the version with the `-V` option
@@ -124,9 +124,9 @@ Table of contents
$ bos -V
> v11.14.0
```
-
+
---
-
+
## Balance of Satoshis in action
To use Balance of Satoshis, we will use the "bos" user.
@@ -134,34 +134,34 @@ To use Balance of Satoshis, we will use the "bos" user.
### Introduction
* To see a list of all available commands run the following command
-
+
```sh
$ bos help
- > bos 11.14.0
- >
+ > bos 11.14.0
+ >
> USAGE
- >
+ >
> bos [options]
- >
+ >
> COMMANDS
- >
+ >
> accounting Get an accounting rundown
> [...]
```
-
+
* To see detailed information about an individual command, add the name of the command, e.g. with the command `rebalance`
-
+
```sh
$ bos help rebalance
- > bos 11.14.0
- >
+ > bos 11.14.0
+ >
> USAGE
- >
- > bos rebalance
+ >
+ > bos rebalance
> Change the liquidity profile of two peers
> [...]
```
-
+
* Get a short report of your LN node with pubkey, alias, local capacity, mempool information and recent routing activity
```sh
@@ -178,26 +178,26 @@ To use Balance of Satoshis, we will use the "bos" user.
> [...]
```
-### Circular rebalancing
+### Circular rebalancing
-Circular rebalancing allows to send satoshis out through one channel (which has too little inbound liquidity) and back through another channel (which has too little outbound liquidity).
+Circular rebalancing allows to send satoshis out through one channel (which has too little inbound liquidity) and back through another channel (which has too little outbound liquidity).
A good illustration is provided in Chapter 5 of 'Mastering the Lighnting Network' by Antonopoulos *et al.* ([source](https://github.com/lnbook/lnbook/blob/ec806916edd6f4d1b2f9da2fef08684f80acb671/05_node_operations.asciidoc#rebalancing-channels){:target="_blank"}) (Alice (A), is your node, Bob (B) and and Chan (C) are two peers with whom you have an opened channel with):
-![circular-rebalancing](../../images/circular-rebalancing-lnbook.png)
+![circular-rebalancing](../../../images/circular-rebalancing-lnbook.png)
* To rebalance a channel (to node B) with high outbound and a channel with high inbound (to node C), use the `rebalance` command.
```sh
$ bos rebalance --amount [AMOUNT_IN_SATS] --max-fee-rate [TOTAL_MAX_FEE_RATE_OF_REBALANCING] --in [NODE_C_PUBKEY] --out [NODE_A_PUBKEY]
```
-
+
* E.g. using the example above:
- * with node B being the [Bitrefill node](https://amboss.space/node/03d607f3e69fd032524a867b288216bfab263b6eaee4e07783799a6fe69bb84fac){:target="_blank"},
- * node C being the [CoinOS node](https://amboss.space/node/02868e12f320073cad0c2959c42559fbcfd1aa326fcb943492ed7f02c9820aa399){:target="_blank"}
- * rebalancing 50,000 sats
+ * with node B being the [Bitrefill node](https://amboss.space/node/03d607f3e69fd032524a867b288216bfab263b6eaee4e07783799a6fe69bb84fac){:target="_blank"},
+ * node C being the [CoinOS node](https://amboss.space/node/02868e12f320073cad0c2959c42559fbcfd1aa326fcb943492ed7f02c9820aa399){:target="_blank"}
+ * rebalancing 50,000 sats
* with a maximum fee rate that you are ready to pay of 100 ppm max
-
+
```sh
$ bos rebalance --amount 50000 --max-fee-rate 100 --in 02868e12f320073cad0c2959c42559fbcfd1aa326fcb943492ed7f02c9820aa399 --out 03d607f3e69fd032524a867b288216bfab263b6eaee4e07783799a6fe69bb84fac
```
@@ -207,9 +207,9 @@ A good illustration is provided in Chapter 5 of 'Mastering the Lighnting Network
```sh
$ bos rebalance --minutes [NUMBER_OF_MINUTES] --amount [AMOUNT_IN_SATS] --max-fee-rate [TOTAL_MAX_FEE_RATE_OF_REBALANCING] --in [NODE_C_PUBKEY] --out [NODE_A_PUBKEY]
```
-
+
* If you notice that a node in the tried paths is repeatedly the cause of failures, you can ask BoS to ignore this node during path finding by adding the `--avoid` option
-
+
```sh
$ bos rebalance --minutes [number_of_minutes] --amount [AMOUNT_IN_SATS] --max-fee-rate [TOTAL_MAX_FEE_RATE_OF_REBALANCING] --avoid [NODE_PUBKEY] --in [NODE_C_PUBKEY] --out [NODE_A_PUBKEY]
```
@@ -224,26 +224,26 @@ BoS allows to create user-defined tags to classify nodes and then be used in the
```sh
$ bos tags avoid-nodes --add [NODE_Y_PUBKEY] --add [NODE_Z_PUBKEY]
- > tag:
+ > tag:
> alias: avoid-nodes
> id: abc123...
- > nodes:
+ > nodes:
> - [NODE_Y_PUBKEY]
> - [NODE_Z_PUBKEY]
```
-
+
* Check the content of an existing tag
```sh
$ bos tags
- > tags:
+ > tags:
> alias: avoid-nodes
> id: abc123...
- > nodes:
+ > nodes:
> - [NODE_Y_PUBKEY]
> - [NODE_Z_PUBKEY]
```
-
+
* Use the tag in commands, e.g. with `bos rebalance`
```sh
@@ -279,7 +279,7 @@ You can also join the Balance of Satoshis Telegram group to get support: [https:
```
* Update the local repository by downloading the new commits from the source repository and check if a new tag/version is available (e.g. here v99.99.9)
-
+
```sh
$ git fetch
> [...]
@@ -287,8 +287,8 @@ You can also join the Balance of Satoshis Telegram group to get support: [https:
```
* Find the most recent tag. Add the `--tags` option to select even a lightweight/non-annotated tag. Add the `--abbrev=0` option to remove any long-format tag names.
-
- ```sh
+
+ ```sh
$ git describe --tags --abbrev=0
> v11.14.0
```
@@ -302,24 +302,24 @@ You can also join the Balance of Satoshis Telegram group to get support: [https:
* Switch to new branch identified with `git fetch` (i.e. v99.99.9) and check that it is now the most recent tag
- ```sh
+ ```sh
$ git checkout v99.99.9
> Previous HEAD position was 1b2a38d add docs for coop close on open
> HEAD is now at dd58fc0 [...]
$ git describe --tags --abbrev=0
> v99.99.9
```
-
+
* Check the GPG signature of the new version
-
+
```sh
$ git verify-tag v99.99.9
> gpg: Signature made Tue 07 Dec 2021 03:57:11 GMT
> gpg: using RSA key DE23E73BFA8A0AD5587D2FCDE80D2F3F311FD87E
> gpg: Good signature from "Alex Bosworth " [unknown]
> [...]
- ```
-
+ ```
+
* Install the new version and check this it has been installed properly
```sh
@@ -340,7 +340,7 @@ If you want to uninstall Balance of Satoshis:
```sh
$ sudo su -
$ userdel -r bos
- ```
+ ```
---
@@ -348,7 +348,7 @@ If you want to uninstall Balance of Satoshis:
Balance of Satoshis allows connecting a node to a Telegram bot to receive updates about routing forwards, channel opening and closing events, successful rebalancing payments, payments received, keysend messages etc. It also saves a copy of `channel.backup` (SCB) each time there is a channel being opened or closed.
-![bos-tg-bot](../../images/bos-bot.png)
+![bos-tg-bot](../../../images/bos-bot.png)
*Requirements:* a Telegram account
@@ -362,10 +362,10 @@ Balance of Satoshis allows connecting a node to a Telegram bot to receive update
### Torify
-To avoid leaking our node IP address to Telegram, we can force bos to use Tor using the [`torify`](https://gitlab.torproject.org/legacy/trac/-/wikis/doc/TorifyHOWTO) utility. To do this, we first need to edit the `torsocks.conf` file.
+To avoid leaking our node IP address to Telegram, we can force bos to use Tor using the [`torify`](https://gitlab.torproject.org/legacy/trac/-/wikis/doc/TorifyHOWTO){:target="_blank"} utility. To do this, we first need to edit the `torsocks.conf` file.
* Using the "admin" user, edit the `torsocks.conf` file by uncommenting the `AllowOutboundLocalhost` and setting the value to 1. Save (Ctrl+O) and exit (Ctrl+X)
-
+
```sh
$ sudo nano /etc/tor/torsocks.conf
```
@@ -373,7 +373,7 @@ To avoid leaking our node IP address to Telegram, we can force bos to use Tor us
AllowOutboundLocalhost 1
```
* Restart Tor
-
+
```sh
$ sudo systemctl reload tor
```
@@ -381,17 +381,17 @@ To avoid leaking our node IP address to Telegram, we can force bos to use Tor us
### Use bos to connect your node to the bot
* Change to the "bos" user
-
+
```sh
$ sudo su - bos
```
* Now, we are going to request bos to connect our node to the TG bot
-
+
```sh
$ /usr/bin/torify bos telegram
```
-
+
* When prompted, enter the HTTP API token that the @BotFather gave you earlier
* Go to your new TG bot feed and type `/connect`. Your bot will give you a connection code
@@ -405,12 +405,12 @@ To avoid leaking our node IP address to Telegram, we can force bos to use Tor us
* Your TG bot will now receive notifications from your nodes for various events as described in the introduction.
* Leave the temporary session by pressing Ctrl+C and log out of the "bos" user
-
+
```sh
$ exit
```
-### Permannent connection and autostart on boot
+### Permannent connection and autostart on boot
Now we’ll make sure our Telegram Bot command starts as a systemd service on the Raspberry Pi so it’s always running.
@@ -419,9 +419,9 @@ Now we’ll make sure our Telegram Bot command starts as a systemd service on th
```sh
$ sudo nano /etc/systemd/system/bos-telegram.service
```
-
+
* Paste the following configuration. Replace YourConnectionCode with your own connection code provided by your bot above. Save and exit.
-
+
```ini
# /etc/systemd/system/bos-telegram.service
@@ -430,7 +430,7 @@ Now we’ll make sure our Telegram Bot command starts as a systemd service on th
Wants=lnd.service
After=lnd.service
- [Service]
+ [Service]
ExecStart=/usr/bin/torify /home/bos/balanceofsatoshis/bos telegram --connect YourConnectionCode
User=bos
Restart=always
@@ -440,11 +440,11 @@ Now we’ll make sure our Telegram Bot command starts as a systemd service on th
StandardError=journal
[Install]
- WantedBy=multi-user.target
+ WantedBy=multi-user.target
```
-
+
* Enable the service, start it and check the status of the service. You should also receive a connection message from your TG bot ('Connect to ...').
-
+
```sh
$ sudo systemctl enable bos-telegram.service
$ sudo systemctl start bos-telegram.service
@@ -457,7 +457,7 @@ Now we’ll make sure our Telegram Bot command starts as a systemd service on th
> CPU: 7.981s
> CGroup: /system.slice/bos-telegram.service
> `-4682 node /home/bos/.npm-global/bin/bos telegram --connect 1536853548
- ```
+ ```
* To monitor the live logging output use the following command. Exit with Ctrl+C.
diff --git a/bonus/lightning/charge-lnd.md b/guide/bonus/lightning/charge-lnd.md
similarity index 97%
rename from bonus/lightning/charge-lnd.md
rename to guide/bonus/lightning/charge-lnd.md
index e7d988028..76a9193cc 100644
--- a/bonus/lightning/charge-lnd.md
+++ b/guide/bonus/lightning/charge-lnd.md
@@ -20,7 +20,7 @@ Difficulty: Easy
Status: Tested v3
{: .label .label-green }
-![charge-lnd policies](../../images/charge-lnd-illustration.png)
+![charge-lnd policies](../../../images/charge-lnd-illustration.png)
---
@@ -44,7 +44,7 @@ Table of contents
`pip` is not installed by default on Raspberry Pi OS Lite (64-bit).
* With user "admin", check if pip3 is already installed with the following command. If you don't get an output with a version number it means you need to install pip3 (otherwise, move to the next section "Install charge-lnd").
-
+
```sh
$ pip3 --version
```
@@ -68,21 +68,21 @@ Table of contents
* `info:read`
* With the "lnd" user, create (or 'bake') a suitably limited LND macaroon, then exit back to "admin"
-
+
```sh
$ sudo su - lnd
$ lncli bakemacaroon offchain:read offchain:write onchain:read info:read --save_to=~/.lnd/data/chain/bitcoin/mainnet/charge-lnd.macaroon
> Macaroon saved to /home/lnd/.lnd/data/chain/bitcoin/mainnet/charge-lnd.macaroon
$ exit
```
-
+
* With user "admin", create a new user "chargelnd" and make it a member of the "lnd" group
```sh
$ sudo adduser --disabled-password --gecos "" chargelnd
$ sudo adduser chargelnd lnd
```
-
+
* With the "charge-lnd" user, clone the charge-lnd repository, enter the directory and install the program and required packages using `pip3`
```sh
@@ -123,7 +123,7 @@ Table of contents
> path to config file
```
-* Create a symlink to the LND directory. Place it in the home directory of the "chargelnd" user to match the default LND directory used by charge-lnd (*i.e.* `~/.lnd`)
+* Create a symlink to the LND directory. Place it in the home directory of the "chargelnd" user to match the default LND directory used by charge-lnd (*i.e.* `~/.lnd`)
```sh
$ ln -s /data/lnd /home/chargelnd/.lnd
@@ -135,12 +135,12 @@ Table of contents
$ cd ~/
$ ls -la
```
-
+
---
## Configuration file
-For this example, we will use a policy that:
+For this example, we will use a policy that:
1. Defines some default parameters
@@ -149,7 +149,7 @@ For this example, we will use a policy that:
1. Then ignores some channels that we want to deal with manually (*e.g.* a liquidity sink)
1. And finally apply a fixed fee rate for two groups of channels
-
+
🚨 Warning: The policy below is just an example, _do_ change the policy according to your own strategy and needs! All the options are listed and described [here](https://github.com/accumulator/charge-lnd){:target="_blank"}
* Still with user "chargelnd", create and open a configuration file
@@ -200,7 +200,7 @@ For this example, we will use a policy that:
strategy = static
fee_ppm = 50
-
+
[5_high_fees_policy]
node.id = ,
@@ -208,7 +208,7 @@ For this example, we will use a policy that:
fee_ppm = 200
```
-* Test if the syntax is correct or if it contains some errors using the --check option.
+* Test if the syntax is correct or if it contains some errors using the --check option.
Indicate where the configuration file is located using the -c option
```sh
@@ -254,7 +254,7 @@ You can make the script run automatically at regular time intervals by using a c
🚨 Warning: It is not in your interest, nor in the interest of the wider network, to set up very short intervals between each policy change. Frequent channel policy update spams the LN gossip network and results in less accurate LN graphs overall as it takes a long time for a policy update to reach most of the nodes in the network.
-* We the "admin" user, create and edit (option -e) the `crontab` file of the "charge-lnd" user (option -u).
+* We the "admin" user, create and edit (option -e) the `crontab` file of the "charge-lnd" user (option -u).
If asked, select the `/bin/nano` text editor (type 1 and enter)
```sh
@@ -269,10 +269,10 @@ If asked, select the `/bin/nano` text editor (type 1 and enter)
##########################################
# Run charge-lnd every 2 hours at the 21st minute; and log the updates in the /tmp/my_charge-lnd.log log file
- 21 */6 * * * /home/charge-lnd/.local/bin/charge-lnd -c /home/chargelnd/charge-lnd.config > /tmp/my-charge-lnd.log 2>&1; date >> /tmp/my-charge-lnd.log
+ 21 */6 * * * /home/charge-lnd/.local/bin/charge-lnd -c /home/chargelnd/charge-lnd.config > /tmp/my-charge-lnd.log 2>&1; date >> /tmp/my-charge-lnd.log
```
- * The stars and numbers at the start defines the interval at which the job will be run. You can double-check it by using this online tool: [https://crontab.guru](https://crontab.guru/#21_*/6_*_*_*){:target="_blank"}.
+ * The stars and numbers at the start defines the interval at which the job will be run. You can double-check it by using this online tool: [https://crontab.guru](https://crontab.guru/#21_*/6_*_*_*){:target="_blank"}.
* `/home/charge-lnd/.local/bin/charge-lnd -c /home/chargelnd/charge-lnd.config` is the command to be run and where to find it (its path) together with the required option(s) (here the location of the configuration file).
* `> /tmp/my-charge-lnd.log 2>&1; date >> /tmp/my-charge-lnd.log` records the updates in a `my-charge-lnd.log` log file.
@@ -309,7 +309,7 @@ If you need to check the log files:
```
* Fetch the latest version and install it (*e.g.* v9.9.9)
-
+
```sh
$ git fetch
$ git describe --tags --abbrev=0
@@ -322,7 +322,7 @@ If you need to check the log files:
$ pip3 install -r requirements.txt .
> [...]
```
-
+
---
## Uninstall
diff --git a/bonus/lightning/circuit-breaker.md b/guide/bonus/lightning/circuit-breaker.md
similarity index 99%
rename from bonus/lightning/circuit-breaker.md
rename to guide/bonus/lightning/circuit-breaker.md
index 6e5994f6f..61c15003f 100644
--- a/bonus/lightning/circuit-breaker.md
+++ b/guide/bonus/lightning/circuit-breaker.md
@@ -20,7 +20,7 @@ Difficulty: Easy
Status: Tested v3
{: .label .label-green }
-![circuit-breaker-tweet](../../images/circuit-breaker-tweet.png)
+![circuit-breaker-tweet](../../../images/circuit-breaker-tweet.png)
---
diff --git a/bonus/lightning/index.md b/guide/bonus/lightning/index.md
similarity index 94%
rename from bonus/lightning/index.md
rename to guide/bonus/lightning/index.md
index 9648b26c8..c45349ab6 100644
--- a/bonus/lightning/index.md
+++ b/guide/bonus/lightning/index.md
@@ -26,8 +26,8 @@ has_toc: false
#### *CLI-only*
* **[lntop](lntop.md)** - lntop is an interactive text-mode channels viewer for Unix systems
-* **[lnbalance](script-lnbalance.md)** - a simple node balances viewer
-* **[lnchannels](script-lnchannels.md)** - a simple channels viewer
+* **[lnbalance](lnbalance.md)** - a simple node balances viewer
+* **[lnchannels](lnchannels.md)** - a simple channels viewer
#### *GUI - Desktop*
* **[Zap](zap-desktop.md)** - a cross platform Lightning Network wallet focused on user experience and ease of use
diff --git a/bonus/lightning/script-lnbalance.md b/guide/bonus/lightning/lnbalance.md
similarity index 95%
rename from bonus/lightning/script-lnbalance.md
rename to guide/bonus/lightning/lnbalance.md
index a773f8b2e..411733442 100644
--- a/bonus/lightning/script-lnbalance.md
+++ b/guide/bonus/lightning/lnbalance.md
@@ -7,7 +7,7 @@ nav_exclude: true
has_toc: false
---
-# Bonus guide: lnbalance script
+# Bonus guide: lnbalance
{: .no_toc }
---
@@ -20,7 +20,7 @@ Difficulty: Easy
Status: Tested v3
{: .label .label-green }
-![lnbalance illustration](../../images/60_balance.png)
+![lnbalance illustration](../../../images/60_balance.png)
---
diff --git a/bonus/lightning/script-lnchannels.md b/guide/bonus/lightning/lnchannels.md
similarity index 96%
rename from bonus/lightning/script-lnchannels.md
rename to guide/bonus/lightning/lnchannels.md
index a63fd0d3d..02eb4dc35 100644
--- a/bonus/lightning/script-lnchannels.md
+++ b/guide/bonus/lightning/lnchannels.md
@@ -7,7 +7,7 @@ nav_exclude: true
has_toc: false
---
-# Bonus guide: lnchannels script
+# Bonus guide: lnchannels
{: .no_toc }
---
@@ -20,7 +20,7 @@ Difficulty: Easy
Status: Tested v3
{: .label .label-green }
-![lnchannels](../../images/script-lnchannels.png)
+![lnchannels](../../../images/script-lnchannels.png)
---
diff --git a/bonus/lightning/lntop.md b/guide/bonus/lightning/lntop.md
similarity index 95%
rename from bonus/lightning/lntop.md
rename to guide/bonus/lightning/lntop.md
index e4c83e0ef..5e9830a43 100644
--- a/bonus/lightning/lntop.md
+++ b/guide/bonus/lightning/lntop.md
@@ -20,7 +20,7 @@ Difficulty: Easy
Status: Tested v3
{: .label .label-green }
-![lntop](../../images/74_lntop.png)
+![lntop](../../../images/74_lntop.png)
---
@@ -139,7 +139,7 @@ To use all the functionalities of lntop, use the following keys:
* Check the lntop repository for [new releases](https://github.com/edouardparis/lntop/releases){:target="_blank"}.
-* Follow the [installation guidelines](https://raspibolt.org/bonus/lightning/lntop.html#install-lntop) while making sure to replace the file names to match the latest version if necessary.
+* Follow the [installation guidelines](#install-lntop) while making sure to replace the file names to match the latest version if necessary.
---
diff --git a/bonus/lightning/rebalance-lnd.md b/guide/bonus/lightning/rebalance-lnd.md
similarity index 93%
rename from bonus/lightning/rebalance-lnd.md
rename to guide/bonus/lightning/rebalance-lnd.md
index 63d94ee81..9b7065a61 100644
--- a/bonus/lightning/rebalance-lnd.md
+++ b/guide/bonus/lightning/rebalance-lnd.md
@@ -12,7 +12,7 @@ has_toc: false
---
-[rebalance-lnd](https://github.com/C-Otto/rebalance-lnd){:target="_blank"} (created by C-Otto) is a tool to manage your channel liquidity by doing circular rebalancing; i.e. sending sats out of a channel with too much outbound/local liquidity back to one of your channel with too much inbound/remote liquidity.
+[rebalance-lnd](https://github.com/C-Otto/rebalance-lnd){:target="_blank"} (created by C-Otto) is a tool to manage your channel liquidity by doing circular rebalancing; i.e. sending sats out of a channel with too much outbound/local liquidity back to one of your channel with too much inbound/remote liquidity.
You just pay the routing fees and can set up some maximum fees that you're ok to pay.
Difficulty: Easy
@@ -21,7 +21,7 @@ Difficulty: Easy
Status: Tested v3
{: .label .label-green }
-![rebalance-lnd illustration](../../images/rebalance-lnd-illustration.png)
+![rebalance-lnd illustration](../../../images/rebalance-lnd-illustration.png)
---
@@ -45,7 +45,7 @@ Table of contents
pip is not installed by default on Raspberry Pi OS Lite (64-bit), check if it is already installed and install it if needed.
* With user "admin", check if pip3 is already installed with the following command. If you don't get an output with a version number it means you need to install pip3 (otherwise, move to the next section 'Install rebalance-lnd).
-
+
```sh
$ pip3 --version
```
@@ -63,13 +63,13 @@ pip is not installed by default on Raspberry Pi OS Lite (64-bit), check if it is
### Install rebalance-lnd
-* We create a "rebalance-lnd" user and we make it part of the "bitcoin" group (to be able to interact with LND)
+* We create a "rebalance-lnd" user and we make it part of the "bitcoin" group (to be able to interact with LND)
```sh
$ sudo adduser --disabled-password --gecos "" rebalance-lnd
$ sudo adduser rebalance-lnd lnd
```
-
+
* With the "charge-lnd" user, clone the charge-lnd repository, enter the directory and install the program and required packages using `pip3` (do _not_ forget the dot at the end of the pip command!)
```sh
@@ -87,14 +87,14 @@ pip is not installed by default on Raspberry Pi OS Lite (64-bit), check if it is
`
* Test if the installation was successful by running the program
-
+
```sh
$ rebalance.py
> usage: rebalance.py [-h] [--lnddir LNDDIR] [--network NETWORK] [--grpc GRPC]
> [...]
```
-
-* We are going to create a simlink to the LND directory. We'll place the link in the home directory of the "charge-lnd" user to match the default LND directory used by rebalance-lnd (~/.lnd)
+
+* We are going to create a simlink to the LND directory. We'll place the link in the home directory of the "charge-lnd" user to match the default LND directory used by rebalance-lnd (~/.lnd)
```sh
$ ln -s /data/lnd/ /home/rebalance-lnd/.lnd
@@ -102,7 +102,7 @@ pip is not installed by default on Raspberry Pi OS Lite (64-bit), check if it is
```
---
-
+
### rebalance-lnd in action
To use rebalance-lnd, use the "rebalance-lnd" user.
@@ -114,7 +114,7 @@ To use rebalance-lnd, use the "rebalance-lnd" user.
> Sending AmountInSats satoshis from channel [...]
> [...]
```
-
+
* There are many more options available to fine-tuned your rebalancing strategy. Find more information about them in the [README](https://github.com/C-Otto/rebalance-lnd){:target="_blank"} page of C-Otto's repo.
---
@@ -127,9 +127,9 @@ To use rebalance-lnd, use the "rebalance-lnd" user.
$ sudo su - rebalance-lnd
$ cd rebalance-lnd
```
-
+
* Fetch the latest version and install it
-
+
```sh
$ git fetch
$ git describe --tags --abbrev=0
diff --git a/bonus/lightning/remote-lncli.md b/guide/bonus/lightning/remote-lncli.md
similarity index 88%
rename from bonus/lightning/remote-lncli.md
rename to guide/bonus/lightning/remote-lncli.md
index d5998f01b..033c1d85b 100644
--- a/bonus/lightning/remote-lncli.md
+++ b/guide/bonus/lightning/remote-lncli.md
@@ -16,14 +16,15 @@ Difficulty: Easy
Status: Not tested v3
{: .label .label-yellow }
-
-
- Table of contents
-
- {: .text-delta }
+---
+
+Table of contents
+{: .text-delta }
+
1. TOC
{:toc}
-
+
+---
It is possible to run *lnd* on the RaspiBolt, and *lncli* on a different computer. The instructions below explain how to install *lncli* on a Windows PC and communicate with the RaspiBolt. Instructions for different computer systems (MAC, Linux, ...) will be very similar.
@@ -41,7 +42,7 @@ root@RaspiBolt:/home/admin# ufw allow from 192.168.0.0/24 to any port 10009 co
root@RaspiBolt:/home/admin# ufw status
root@RaspiBolt:/home/admin# exit
```
-- Add one new line in the [Application Options] section of lnd.conf to allow rpc from more than just the default localhost
+- Add one new line in the [Application Options] section of lnd.conf to allow rpc from more than just the default localhost
`admin ~ ฿ sudo nano /home/bitcoin/.lnd/lnd.conf`
```ini
@@ -49,7 +50,7 @@ root@RaspiBolt:/home/admin# exit
rpclisten=0.0.0.0:10009
```
-- Temporarily allow admin.macaroon to be copied
+- Temporarily allow admin.macaroon to be copied
`admin ~ ฿ sudo chmod 777 /home/bitcoin/.lnd/admin.macaroon`
## Windows PC
@@ -59,10 +60,10 @@ rpclisten=0.0.0.0:10009
- Download the file for your OS. For Windows10 it will generally be lnd-windows-amd64-vx.x.x.zip
- Open the compressed file and extract the lncli application (e.g. lncli.exe) to your desktop.
- ![Zip File](images/60_remote_zip.png)
+ ![Zip File](../../../images/60_remote_zip.png)
-- Open a CMD window
- `Press Win+R, enter cmd, then press Enter`
+- Open a CMD window
+ `Press Win+R, enter cmd, then press Enter`
- Change to the directory where you saved lncli.exe, and view the help information
@@ -84,17 +85,17 @@ GLOBAL OPTIONS:
```
- Take note of the default (base) directory
-- Make the necessary default directory
+- Make the necessary default directory
`> mkdir %LOCALAPPDATA%\Lnd`
-* Follow the instructions in [ [Mainnet](raspibolt_50_mainnet.md) ] to use WinSCP to copy the files shown
+* Use WinSCP to copy the files shown
* Local: `\Users\xxxx\AppData\Local\Lnd`
* Remote: `/home/bitcoin/.lnd/`
* Files: `See below`
- ![Files to Copy](images/60_winLND.png)
+ ![Files to Copy](../../../images/60_winLND.png)
- - Back on the RaspiBolt: Reset admin.macaroon permissions
+ - Back on the RaspiBolt: Reset admin.macaroon permissions
`admin ~ ฿ sudo chmod 600 /home/bitcoin/.lnd/admin.macaroon`
diff --git a/bonus/lightning/zap-desktop.md b/guide/bonus/lightning/zap-desktop.md
similarity index 99%
rename from bonus/lightning/zap-desktop.md
rename to guide/bonus/lightning/zap-desktop.md
index 109590033..e7160186a 100644
--- a/bonus/lightning/zap-desktop.md
+++ b/guide/bonus/lightning/zap-desktop.md
@@ -18,7 +18,7 @@ Difficulty: Easy
Status: Tested v3
{: .label .label-green }
-![lntop](../../images/zap-desktop.png)
+![lntop](../../../images/zap-desktop.png)
---
diff --git a/bonus/lightning/zap-ios.md b/guide/bonus/lightning/zap-ios.md
similarity index 90%
rename from bonus/lightning/zap-ios.md
rename to guide/bonus/lightning/zap-ios.md
index 8e39f041a..95a5c4853 100644
--- a/bonus/lightning/zap-ios.md
+++ b/guide/bonus/lightning/zap-ios.md
@@ -16,20 +16,21 @@ Difficulty: Intermediate
Status: Not tested v3
{: .label .label-yellow }
-
-
- Table of contents
-
- {: .text-delta }
+---
+
+Table of contents
+{: .text-delta }
+
1. TOC
{:toc}
-
+
+---
This guide describes how to use Zap iOS from within your own network, the same that also connects your RaspiBolt.
-![Zap iOS](images/72_zapios.png)
+![Zap iOS](../../../images/72_zapios.png)
-Zap is a free Lightning Network wallet focused on good user experience and ease of use. It is in alpha testing, so **use it at your own risk**. You can find more details in the [Zap iOS GitHub repository](https://github.com/LN-Zap/zap-iOS). If you find bugs, you can contribute to this project by [reporting issues](https://github.com/LN-Zap/zap-iOS/issues).
+Zap is a free Lightning Network wallet focused on good user experience and ease of use. It is in alpha testing, so **use it at your own risk**. You can find more details in the [Zap iOS GitHub repository](https://github.com/LN-Zap/zap-iOS){:target="_blank"}. If you find bugs, you can contribute to this project by [reporting issues](https://github.com/LN-Zap/zap-iOS/issues){:target="_blank"}.
### Preparation on the RaspiBolt
@@ -100,10 +101,10 @@ The nifty helper tool LND Connect helps to pair the RaspiBolt with the iPhone, e
* Open the Zap iOS on your phone.
* Scan the QR code and check/modify the ip address you want to use to connect. It should be something like `192.168.x.x`.
- ![Zap IOS scan example](images/72_zapios_scan.png)
+ ![Zap IOS scan example](../../../images/72_zapios_scan.png)
* A successful connection will take you into the Zap iOS application:
- ![Zap iOS succesful example](images/72_zapios_succesful.png)
+ ![Zap iOS succesful example](../../../images/72_zapios_succesful.png)
🚨 REMEMBER: If you change `lnd.conf` you need to delete & recreate the `tls.cert`, and also re-create and re-scan the QR code from the Zap iOS app. Do not forget to copy the new `tls.cert` and `admin.macaroon` files to the admin user.
@@ -111,8 +112,6 @@ The nifty helper tool LND Connect helps to pair the RaspiBolt with the iPhone, e
### Connect Zap iOS to RaspiBolt over Tor
-* [Install Tor](raspibolt_69_tor.md#installing-tor)
-
* Edit LND config file to enable REST interface on port 8080
```
$ sudo nano /home/bitcoin/.lnd/lnd.conf
@@ -151,6 +150,6 @@ The nifty helper tool LND Connect helps to pair the RaspiBolt with the iPhone, e
* Create new wallet in Zap iOS and scan QR code
-------
+---
<< Back: [+ Lightning](index.md)
diff --git a/guide/bonus/lightning/zeus-over-tor.md b/guide/bonus/lightning/zeus-over-tor.md
new file mode 100644
index 000000000..910bafef9
--- /dev/null
+++ b/guide/bonus/lightning/zeus-over-tor.md
@@ -0,0 +1,85 @@
+---
+layout: default
+title: Zeus App Via Tor
+parent: + Lightning
+grand_parent: Bonus Section
+nav_exclude: true
+has_toc: false
+---
+
+## Bonus guide: Connect Zeus App Over Tor
+{: .no_toc }
+
+Difficulty: Intermediate
+{: .label .label-yellow }
+
+Status: Not tested v3
+{: .label .label-yellow }
+
+Download the Zeus app, APKs available here: [https://github.com/ZeusLN/zeus/releases](https://github.com/ZeusLN/zeus/releases){:target="_blank"},
+on F-Droid and Google Play.
+
+Log in to your RaspiBolt through ssh.
+
+Edit `torrc` with `sudo nano /etc/tor/torrc` and add the following lines:
+```
+HiddenServiceDir /var/lib/tor/lnd_api/
+HiddenServiceVersion 3
+HiddenServicePort 8080 127.0.0.1:8080
+HiddenServicePort 10009 127.0.0.1:10009
+```
+Save (Ctrl+O, ENTER) and exit (Ctrl+X)
+
+Restart Tor:
+```
+$ sudo systemctl restart tor
+```
+
+View the private credentials of your new hidden service. The first part is the onion address, the second part is the secret.
+```
+$ sudo cat /var/lib/tor/lnd_api/hostname
+z1234567890abc.onion
+```
+
+Make sure Go is installed (should be v1.11 or higher):
+```
+$ go version
+```
+If need to install Go, run these:
+
+```
+$ wget https://storage.googleapis.com/golang/go1.11.linux-armv6l.tar.gz
+$ sudo tar -C /usr/local -xzf go1.11.linux-armv6l.tar.gz
+$ sudo rm *.gz
+$ sudo mkdir /usr/local/gocode
+$ sudo chmod 777 /usr/local/gocode
+$ export GOROOT=/usr/local/go
+$ export PATH=$PATH:$GOROOT/bin
+$ export GOPATH=/usr/local/gocode
+$ export PATH=$PATH:$GOPATH/bin
+```
+
+Install [lndconnect](https://github.com/LN-Zap/lndconnect){:target="_blank"}:
+```
+$ cd ~/download
+$ wget https://github.com/LN-Zap/lndconnect/releases/download/v0.1.0/lndconnect-linux-armv7-v0.1.0.tar.gz
+$ sudo tar -xvf lndconnect-linux-armv7-v0.1.0.tar.gz --strip=1 -C /usr/local/bin
+```
+Switch to user `bitcoin` and generate the LND connect URI QR code (or String):
+It will be a big QR code so maximize your terminal window and use CTRL - to shrink the code further to fit the screen.
+Replace the `host` variable with the onion address previously generated.
+To generate QR Code:
+```
+$ sudo su bitcoin
+$ lndconnect --lnddir=/home/bitcoin/.lnd --host=z1234567890abc.onion --port=8080
+```
+To generate a String:
+```
+$ sudo su bitcoin
+$ lndconnect --lnddir=/home/bitcoin/.lnd --host=z1234567890abc.onion --port=8080 -j
+```
+Scan or copy paste it with Zeus and you are done.
+
+------
+
+<< Back: [+ Lightning](index.md)
diff --git a/bonus/raspberry-pi/aliases.md b/guide/bonus/raspberry-pi/aliases.md
similarity index 94%
rename from bonus/raspberry-pi/aliases.md
rename to guide/bonus/raspberry-pi/aliases.md
index fde751310..d9061f024 100644
--- a/bonus/raspberry-pi/aliases.md
+++ b/guide/bonus/raspberry-pi/aliases.md
@@ -20,7 +20,7 @@ Difficulty: Easy
Status: Tested v3
{: .label .label-green }
-![alias](../../images/alias-example.png)
+![alias](../../../images/alias-example.png)
---
@@ -34,7 +34,7 @@ Table of contents
## Acknowledgments
-The following list of aliases was derived from contributions by [RobClark56](https://github.com/robclark56){:target="_blank"} and [marcosdub](https://github.com/marcosdub){:target="_blank"}.
+The following list of aliases was derived from contributions by [RobClark56](https://github.com/robclark56){:target="_blank"} and `marcosdub`.
---
@@ -51,10 +51,10 @@ The following list of aliases was derived from contributions by [RobClark56](htt
```ini
##################
# GENERAL STATUS #
- ##################
-
+ ##################
+
alias livehealth='sudo watch -n 1 "vcgencmd measure_clock arm; vcgencmd measure_temp"'
-
+
alias showversion='echo The installed versions of the services are as follows: ; \
bitcoind --version ; \
lnd --version ; \
@@ -66,54 +66,54 @@ The following list of aliases was derived from contributions by [RobClark56](htt
echo NodeJS: node -v ; \
lntop --version ; \
htop --version ; nginx -v'
-
+
alias statuservices='echo The status of the services is as follows, press the space key to advance: ; \
sudo systemctl status bitcoind lnd rtl electrs btcrpcexplorer tor ssh fail2ban ufw vncserver-x11-serviced'
-
+
##################
# START SERVICES #
##################
-
+
alias startbitcoind='sudo systemctl start bitcoind'
alias startelectrs='sudo systemctl start electrs'
alias startexplorer='sudo systemctl start btcrpcexplorer'
alias startlnd='sudo systemctl start lnd'
alias startrtl='sudo systemctl start rtl'
-
+
##################
# SERVICE STATUS #
##################
-
+
alias statusbitcoind='sudo systemctl status bitcoind'
alias statuselectrs='sudo systemctl status electrs'
alias statusexplorer='sudo systemctl status btcrpcexplorer'
alias statuslnd='sudo systemctl status lnd'
alias statusrtl='sudo systemctl status rtl'
-
+
##################
# STOP SERVICES #
##################
-
+
alias stopbitcoind='sudo systemctl stop bitcoind'
alias stopelectrs='sudo systemctl stop electrs'
alias stopcexplorer='sudo systemctl stop btcrpcexplorer'
alias stoplnd='sudo systemctl stop lnd'
alias stoprtl='sudo systemctl stop rtl'
-
+
##################
# SERVICE LOGS #
##################
-
+
alias bitcoindlogs='sudo tail -f /mnt/ext/bitcoin/debug.log'
alias electrslogs='sudo journalctl -f -u electrs'
alias btcrpcexplorerlogs='sudo journalctl -f -u btcrpcexplorer'
alias lndlogs='sudo journalctl -f -u lnd'
alias rtllogs='sudo journalctl -f -u rtl'
-
+
##################
# LND #
##################
-
+
alias unlock='lncli unlock'
alias newaddress='lncli newaddress p2wkh'
alias txns='lncli listchaintxns'
@@ -127,20 +127,20 @@ The following list of aliases was derived from contributions by [RobClark56](htt
alias connect='lncli connect'
alias payinvoice='lncli payinvoice'
alias addinvoice='lncli addinvoice'
-
+
##################
# LND Watchtower #
##################
-
+
alias wtclientinfo='lncli wtclient towers'
alias wtserverinfo='lncli tower info'
-
+
```
-
+
* Execute a `source` command to register changes to the `.bash_aliases` file
- ```sh
- $ source ~/.bash_aliases
+ ```sh
+ $ source ~/.bash_aliases
```
---
@@ -155,7 +155,7 @@ The following list of aliases was derived from contributions by [RobClark56](htt
> frequency(48)= 124121523
> temp=37.0'C
```
-
+
```sh
$ showversion
> The installed versions of the services are as follows:
@@ -168,7 +168,7 @@ The following list of aliases was derived from contributions by [RobClark56](htt
> NPM: v8.1.2
> NodeJS: node -v
> lntop version v0.2.0
- > htop 3.0.5
+ > htop 3.0.5
> nginx version: nginx/1.18.0
```
@@ -186,4 +186,4 @@ The following list of aliases was derived from contributions by [RobClark56](htt
---
-<< Back: [+ Lightning](index.md)
+<< Back: [+ Raspberry Pi](index.md)
diff --git a/bonus/raspberry-pi/boot-from-microsd-card.md b/guide/bonus/raspberry-pi/boot-from-microsd-card.md
similarity index 94%
rename from bonus/raspberry-pi/boot-from-microsd-card.md
rename to guide/bonus/raspberry-pi/boot-from-microsd-card.md
index 2671c5acf..9bb2c453e 100644
--- a/bonus/raspberry-pi/boot-from-microsd-card.md
+++ b/guide/bonus/raspberry-pi/boot-from-microsd-card.md
@@ -35,9 +35,9 @@ Table of contents
To boot from a microSD card and store the data on an external drive, there are a few additional steps compared to the default RaspiBolt guide.
Below is a summary of the main differences, with detailed guidance in the following sections.
-1. [Operating system](../../operating-system.md):
+1. [Operating system](../../raspberry-pi/operating-system.md):
* write the operating system to the microSD card instead of the external drive
-1. [System configuration](../../system-configuration.md):
+1. [System configuration](../../raspberry-pi/system-configuration.md):
* attach the external drive
* test the USB3 performance
* format the drive
@@ -55,7 +55,7 @@ When writing RasPiOS to the boot medium, use a high-quality microSD card of 8+ G
Connect your external drive to the Raspberry Pi using one of the blue USB3 ports.
-Follow the [System configuration](../../system-configuration.md) section until you reach [Data directory](../../system-configuration.md#data-directory), continuing with the instructions below.
+Follow the [System configuration](../../raspberry-pi/system-configuration.md) section until you reach [Data directory](../../raspberry-pi/system-configuration.md#data-directory), continuing with the instructions below.
In case your external drive shows poor performance, follow the [Fix bad USB3 performance](../../troubleshooting.md#fix-bad-usb3-performance) instructions, as mentioned in the guide.
diff --git a/bonus/raspberry-pi/command-line.md b/guide/bonus/raspberry-pi/command-line.md
similarity index 77%
rename from bonus/raspberry-pi/command-line.md
rename to guide/bonus/raspberry-pi/command-line.md
index f982ac67a..4156d9424 100644
--- a/bonus/raspberry-pi/command-line.md
+++ b/guide/bonus/raspberry-pi/command-line.md
@@ -7,7 +7,7 @@ nav_exclude: true
has_toc: false
---
-## Bonus guide: Pimp the command line
+## Bonus guide: Pimp the command line
{: .no_toc }
Difficulty: Easy
@@ -16,17 +16,18 @@ Difficulty: Easy
Status: Not tested v3
{: .label .label-yellow }
-
-
- Table of contents
-
- {: .text-delta }
+---
+
+Table of contents
+{: .text-delta }
+
1. TOC
{:toc}
-
+
+---
### Command prompt
-You can prettify your command prompt for each user by enabling color output and setting a custom prompt.
+You can prettify your command prompt for each user by enabling color output and setting a custom prompt.
* Open and edit `.bashrc` as shown below, save and exit
`$ nano /home/admin/.bashrc`
@@ -42,19 +43,19 @@ PS1="${debian_chroot:+($debian_chroot)}\[\e[33m\]\u \[\033[01;34m\]\w\[\e[33;40m
alias ls='ls -la --color=always'
```
-![Pimp prompt](images/60_pimp_prompt.png)
+![Pimp prompt](../../../images/60_pimp_prompt.png)
-* Reload configuration
+* Reload configuration
`source /home/admin/.bashrc`
-![Pimped prompt](images/60_pimp_prompt_result.png)
+![Pimped prompt](../../../images/60_pimp_prompt_result.png)
### Bash completion
As user “admin”, install bash completion scripts for Bitcoin Core and all Lightning projects. You then can complete commands by pressing the Tab key (e.g. bitcoin-cli getblockch [Tab] → bitcoin-cli getblockchaininfo )
```sh
$ cd /home/admin/download
-$ wget https://raw.githubusercontent.com/bitcoin/bitcoin/master/contrib/bitcoin-cli.bash-completion
+$ wget https://raw.githubusercontent.com/bitcoin/bitcoin/master/contrib/bitcoin-cli.bash-completion
$ wget https://raw.githubusercontent.com/lightningnetwork/lnd/master/contrib/lncli.bash-completion
$ sudo cp *.bash-completion /etc/bash_completion.d/
```
@@ -63,4 +64,4 @@ Bash completion will be enabled after your next login.
------
-<< Back: [+ Raspberry Pi](index.md)
+<< Back: [+ Raspberry Pi](index.md)
diff --git a/bonus/raspberry-pi/index.md b/guide/bonus/raspberry-pi/index.md
similarity index 100%
rename from bonus/raspberry-pi/index.md
rename to guide/bonus/raspberry-pi/index.md
diff --git a/bonus/raspberry-pi/odroid-setup.md b/guide/bonus/raspberry-pi/odroid-setup.md
similarity index 94%
rename from bonus/raspberry-pi/odroid-setup.md
rename to guide/bonus/raspberry-pi/odroid-setup.md
index 380795957..7a5064a2a 100644
--- a/bonus/raspberry-pi/odroid-setup.md
+++ b/guide/bonus/raspberry-pi/odroid-setup.md
@@ -25,11 +25,11 @@ Status: Not tested v3
{:toc}
-This guide describes how to setup RaspiBolt using an Odroid XU4 or compatible hardware (like Odroid HC1, [HC2] (https://www.hardkernel.com/shop/odroid-hc2-home-cloud-two/) and many others).
+This guide describes how to setup RaspiBolt using an Odroid XU4 or compatible hardware (like Odroid HC1, [HC2](https://www.hardkernel.com/shop/odroid-hc2-home-cloud-two/){:target="_blank"} and many others).
-![Odroid XU4](images/76_odroidxu4.png)
+![Odroid XU4](../../../images/76_odroidxu4.png)
-The Odroid series is an alternative low-cost, light-weight computer based on ARM processors. There are a series of computers available at the manufacturer [Hardkernel](https://www.hardkernel.com/). The Odroid XU4 is roughly in the same league as the Raspberry Pi4 when it comes to computing power and price.
+The Odroid series is an alternative low-cost, light-weight computer based on ARM processors. There are a series of computers available at the manufacturer [Hardkernel](https://www.hardkernel.com/){:target="_blank"}. The Odroid XU4 is roughly in the same league as the Raspberry Pi4 when it comes to computing power and price.
This guide aims to provide an end-to-end solution to install on Odroid. Nevertheless, it is recommended to review the original RaspiBolt guide for the Raspberry Pi, to help you understand the origins of this guide and its deviations.
@@ -47,13 +47,13 @@ You need:
#### Operating System / Linux
-You will install a Linux distribution that is compatible with the Odroid XU4 platform. See [Odroid XU4 Downloads](https://wiki.odroid.com/odroid-xu4/getting_started/os_installation_guide?redirect=1#tab__odroid-xu4)
+You will install a Linux distribution that is compatible with the Odroid XU4 platform. See [Odroid XU4 Downloads](https://wiki.odroid.com/odroid-xu4/getting_started/os_installation_guide?redirect=1#tab__odroid-xu4){:target="_blank"}
The node runs headless, that means without keyboard or display, so the operating system Ubuntu Minimal is used.
1. Write down the user and password for Ubuntu Minimal from the link above.
2. Download the Ubuntu Minimal disk image file
-3. Write the disk image file to your SD Card using a [Etcher](https://www.balena.io/etcher/) or similar OS flashing software
+3. Write the disk image file to your SD Card using a [Etcher](https://www.balena.io/etcher/){:target="_blank"} or similar OS flashing software
#### Initial boot
Now it's time to boot your Odroid for the first time.
@@ -113,7 +113,7 @@ You will likely let your Odroid run at all times. These are some helpful command
* `shutdown`
### Bitcoin Node
-Now that our Odroid OS is running, we want to install a full Bitcoin node with the Bitcoin Blockchain on the Odroid. The blockchain is continuously growing with every block, see [chain size](https://bitcoinvisuals.com/chain-size), hence we will use the hard disk for the blockchain data.
+Now that our Odroid OS is running, we want to install a full Bitcoin node with the Bitcoin Blockchain on the Odroid. The blockchain is continuously growing with every block, see [chain size](https://bitcoinvisuals.com/chain-size){:target="_blank"}, hence we will use the hard disk for the blockchain data.
#### Prepare Hard Disk
If you haven't connected your hard disk yet, please connect it now after you shutdown your Odroid and disconnected it from the power supply.
@@ -310,12 +310,12 @@ This can take up to a week or two when using an Odroid XU4, depending mostly on
## Bitcoin Core upgrade
If you want to upgrade to a new release of Bitcoin Core in the future, check out the FAQ section:
-[How to upgrade Bitcoin Core](raspibolt_faq.md#how-to-upgrade-bitcoin-core)
+[How to upgrade Bitcoin Core](../../faq.md#how-to-upgrade-bitcoin-core)
#### Run Bitcoind and Sync Blockchain
#### Using Bitcoin Node
-
-------
-<< Back: [+ Raspberry Pi](index.md)
+---
+
+<< Back: [+ Raspberry Pi](../index.md)
diff --git a/bonus/raspberry-pi/system-overview.md b/guide/bonus/raspberry-pi/system-overview.md
similarity index 97%
rename from bonus/raspberry-pi/system-overview.md
rename to guide/bonus/raspberry-pi/system-overview.md
index 9838a6a3f..e7fb50751 100644
--- a/bonus/raspberry-pi/system-overview.md
+++ b/guide/bonus/raspberry-pi/system-overview.md
@@ -19,7 +19,7 @@ Difficulty: Easy
Status: Tested v3
{: .label .label-green }
-![MotD system overview](../../images/system-overview.png)
+![MotD system overview](../../../images/system-overview.png)
---
diff --git a/bonus/raspberry-pi/trezor-agent.md b/guide/bonus/raspberry-pi/trezor-agent.md
similarity index 92%
rename from bonus/raspberry-pi/trezor-agent.md
rename to guide/bonus/raspberry-pi/trezor-agent.md
index 74144ec42..dfadcfcc5 100644
--- a/bonus/raspberry-pi/trezor-agent.md
+++ b/guide/bonus/raspberry-pi/trezor-agent.md
@@ -16,18 +16,19 @@ Difficulty: Easy
Status: Not tested v3
{: .label .label-yellow }
-
-
- Table of contents
-
- {: .text-delta }
+---
+
+Table of contents
+{: .text-delta }
+
1. TOC
{:toc}
-
+
+---
It is possible to SSH to your device using your Trezor (It should be possible with Ledger and Keepkey but I haven't tried)
-* Using romanz's trezor-agent https://github.com/romanz/trezor-agent and Trezor's documentation https://wiki.trezor.io/Apps:SSH_agent
+* Using romanz's trezor-agent [https://github.com/romanz/trezor-agent](https://github.com/romanz/trezor-agent){:target="_blank"} and Trezor's documentation [https://wiki.trezor.io/Apps:SSH_agent](https://wiki.trezor.io/Apps:SSH_agent){:target="_blank"}
* This Process is currently only available on Linux
On your main machine -
diff --git a/bonus/raspberry-pi/upgrade-external-drive.md b/guide/bonus/raspberry-pi/upgrade-external-drive.md
similarity index 95%
rename from bonus/raspberry-pi/upgrade-external-drive.md
rename to guide/bonus/raspberry-pi/upgrade-external-drive.md
index 18bf6718f..7c56928c4 100644
--- a/bonus/raspberry-pi/upgrade-external-drive.md
+++ b/guide/bonus/raspberry-pi/upgrade-external-drive.md
@@ -16,14 +16,15 @@ Difficulty: Intermediate
Status: Not tested v3
{: .label .label-yellow }
-
-
- Table of contents
-
- {: .text-delta }
+---
+
+Table of contents
+{: .text-delta }
+
1. TOC
{:toc}
-
+
+---
This is a guide for upgrading the external drive. Periodically, as the size of the blockchain grows, you will need to upgrade to a larger drive.
@@ -34,8 +35,7 @@ This is a guide for upgrading the external drive. Periodically, as the size of t
You should make a backup of any important files before proceeding with this operation.
At a minimum, it's recommended to make a backup of the LND static channel backups.
-
-You can do this with Dropbox via the [Static Channel Backups](raspibolt_73_static_backup_dropbox.md) guide
+Please check the [Channel Backup](../../lightning/channel-backup.md) section for more details.
---
@@ -103,7 +103,7 @@ The Raspberry Pi 4 supports USB3 drives, but is very picky.
A lot of USB3 adapters for external drives are not compatible and need a manual workaround to be usable.
We will now check if your drive works well as-is, or if additional configuration is needed.
-🔍 *more: [Raspberry Pi forum: bad performance with USB3 SSDs](https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=245931){:target="_blank"}*
+🔍 *more: [Raspberry Pi forum: bad performance with USB3 SSDs](../../raspberry-pi/system-configuration.md#check-usb3-drive-performance){:target="_blank"}*
* First, lets get some information about your drive from the kernel messages.
Clear the kernel buffer, and follow the new messages (let the last command run):
@@ -148,19 +148,19 @@ We will now check if your drive works well as-is, or if additional configuration
$ lsblk -o NAME,MOUNTPOINT,UUID,FSTYPE,SIZE,LABEL,MODEL
> NAME MOUNTPOINT UUID FSTYPE SIZE LABEL MODEL
> sda 931.5G BUP_Slim_RD
- > └─sda1 /mnt/ext 3aab0952-3ed4-4652-b203-d994c4fdff20 ext4 931.5G
+ > └─sda1 /mnt/ext 3aab0952-3ed4-4652-b203-d994c4fdff20 ext4 931.5G
> sdb 953.9G SABRENT
- > mmcblk0 58G
- > ├─mmcblk0p1 /boot 4BBD-D3E7 vfat 256M boot
- > └─mmcblk0p2 / 45e99191-771b-4e12-a526-0779148892cb ext4 57.8G rootfs
+ > mmcblk0 58G
+ > ├─mmcblk0p1 /boot 4BBD-D3E7 vfat 256M boot
+ > └─mmcblk0p2 / 45e99191-771b-4e12-a526-0779148892cb ext4 57.8G rootfs
```
-* In the above, the original external drive is `sda` and has partition `sda1`.
+* In the above, the original external drive is `sda` and has partition `sda1`.
The newly attached external drive is `sdb` and has no partition yet.
It's very important to keep track of which block device and partition applies to the original vs new drive
* If your external drive (e.g. `sdb`) does not contain any partitions (e.g. no `sdb1`), create a partition first using as described here:
-
+ [https://superuser.com/questions/643765/creating-ext4-partition-from-console](https://superuser.com/questions/643765/creating-ext4-partition-from-console){:target="_blank"}
* Now, let's test the read performance of your drive.
Make sure to use the right partition name (used with the `/dev/` prefix).
@@ -227,12 +227,12 @@ We will now check if your drive works well as-is, or if additional configuration
$ lsblk -o NAME,MOUNTPOINT,UUID,FSTYPE,SIZE,LABEL,MODEL
> NAME MOUNTPOINT UUID FSTYPE SIZE LABEL MODEL
> sda 931.5G BUP_Slim_RD
- > └─sda1 /mnt/ext 3aab0952-3ed4-4652-b203-d994c4fdff20 ext4 931.5G
+ > └─sda1 /mnt/ext 3aab0952-3ed4-4652-b203-d994c4fdff20 ext4 931.5G
> sdb 953.9G SABRENT
- > └─sdb1 1d9e9dee-87c3-4296-94e2-e833b948a19d ext4 953.9G
- > mmcblk0 58G
- > ├─mmcblk0p1 /boot 4BBD-D3E7 vfat 256M boot
- > └─mmcblk0p2 / 45e99191-771b-4e12-a526-0779148892cb ext4 57.8G rootfs
+ > └─sdb1 1d9e9dee-87c3-4296-94e2-e833b948a19d ext4 953.9G
+ > mmcblk0 58G
+ > ├─mmcblk0p1 /boot 4BBD-D3E7 vfat 256M boot
+ > └─mmcblk0p2 / 45e99191-771b-4e12-a526-0779148892cb ext4 57.8G rootfs
```
* Edit the `fstab` file and add the following as a new line at the end, replacing `123456` with your own `UUID`.
@@ -257,7 +257,7 @@ We will now check if your drive works well as-is, or if additional configuration
# use dphys-swapfile swap[on|off] for that
```
- 🔍 *more: [complete fstab guide](http://www.linuxstall.com/fstab){:target="_blank"}*
+ 🔍 *more: [How fstab works – introduction to the /etc/fstab file on Linux](https://linuxconfig.org/how-fstab-works-introduction-to-the-etc-fstab-file-on-linux){:target="_blank"}*
* Create the directory to add the hard disk and set the correct owner
@@ -309,7 +309,7 @@ We'll use rsync to copy the files, preserving permissions and extended attribute
```sh
$ cd /
- $ sudo rsync -avxHAX --exclude=swapfile --numeric-ids --info=progress2 mnt/ext/ mnt/extnew/
+ $ sudo rsync -avxHAX --exclude=swapfile --numeric-ids --info=progress2 mnt/ext/ mnt/extnew/
```
The output will show file progression
@@ -337,7 +337,7 @@ We'll use rsync to copy the files, preserving permissions and extended attribute
2. overall percentage complete
3. transfer speed
4. time remaining (e.g. 1:04:17) and then changed to time taken (0:00:25)
- 5. xfr is the file number transferred
+ 5. xfr is the file number transferred
6. ir-chk=4324/4334 is the incremental recursion check. files remaining / files total
Over the course of the synchronization, the incremental recursion check can increase until it transitions
@@ -365,7 +365,7 @@ We'll use rsync to copy the files, preserving permissions and extended attribute
```sh
> lost+found/
> 426,795,633,281 100% 54.07MB/s 2:05:28 (xfr#20717, to-chk=0/20739)
- >
+ >
> sent 426,901,227,575 bytes received 393,910 bytes 56,674,626.15 bytes/sec
> total size is 426,795,633,281 speedup is 1.00
```
@@ -549,8 +549,8 @@ Now that the new drive contains all the old files, we will remount it in place o
```sh
$ lncli unlock
- > Input wallet password:
- >
+ > Input wallet password:
+ >
> lnd successfully unlocked!
```
diff --git a/faq.md b/guide/faq.md
similarity index 94%
rename from faq.md
rename to guide/faq.md
index 6f935e148..e21454b3e 100644
--- a/faq.md
+++ b/guide/faq.md
@@ -26,7 +26,7 @@ Enjoy the ride!
## Can I attach the Ext4 formatted hard disk to my Windows computer?
-The Ext4 file system is not compatible with standard Windows, but with additional software like [Linux File Systems](https://www.paragon-software.com/home/linuxfs-windows/#faq) by Paragon Software (they offer a 10 days free trial) it is possible.
+The Ext4 file system is not compatible with standard Windows, but with additional software like [Linux File Systems](https://www.paragon-software.com/home/linuxfs-windows/#faq){:target="_blank"} by Paragon Software (they offer a 10 days free trial) it is possible.
---
@@ -144,9 +144,9 @@ For a specific command, you can enter `man [command]` to display the manual page
## Where can I get more information?
If you want to learn more about Bitcoin and are curious about the inner workings of the Lightning Network, the following articles in Bitcoin Magazine offer a very good introduction:
-* [What is Bitcoin?](https://bitcoinmagazine.com/guides/what-bitcoin)
-* [Understanding the Lightning Network](https://bitcoinmagazine.com/articles/understanding-the-lightning-network-part-building-a-bidirectional-payment-channel-1464710791/)
-* [Bitcoin resources](https://www.lopp.net/bitcoin-information.html) and [Lightning Network resources](https://www.lopp.net/lightning-information.html) by Jameson Lopp
+* [What is Bitcoin?](https://bitcoinmagazine.com/guides/what-bitcoin){:target="_blank"}
+* [Understanding the Lightning Network](https://bitcoinmagazine.com/articles/understanding-the-lightning-network-part-building-a-bidirectional-payment-channel-1464710791/){:target="_blank"}
+* [Bitcoin resources](https://www.lopp.net/bitcoin-information.html){:target="_blank"} and [Lightning Network resources](https://www.lopp.net/lightning-information.html){:target="_blank"} by Jameson Lopp
---
diff --git a/static-channel-backup.md b/guide/lightning/channel-backup.md
similarity index 97%
rename from static-channel-backup.md
rename to guide/lightning/channel-backup.md
index 7ecacc664..784b5667d 100644
--- a/static-channel-backup.md
+++ b/guide/lightning/channel-backup.md
@@ -1,16 +1,16 @@
---
layout: default
-title: Static Channel Backup
-nav_order: 15
+title: Channel backup
+nav_order: 20
parent: Lightning
---
-# Lightning: Static Channel Backup
+# Channel backup
{: .no_toc }
We set up a local or remote "Static Channel Backup" for Lightning. A monitoring script keeps it up-to-date to enable the recovery of your Lightning funds in case of hardware failure.
-![GitHub remote backup](images/remote-scb-backup.png)
+![GitHub remote backup](../../images/remote-scb-backup.png)
---
@@ -228,7 +228,7 @@ We set up the backup script as a systemd service to run in the background and st
## Option 1: Local backup
-Follow this section if you want a local backup. If you only want a remote backup, skip to the [next section](https://raspibolt.org/static-channel-backup.html#option-2-remote-backup-preparations).
+Follow this section if you want a local backup. If you only want a remote backup, skip to the [next section](#option-2-remote-backup-preparations).
### Storage device size
@@ -310,7 +310,7 @@ The `channel.backup` file is very small in size (<<1 MB) so even the smallest US
## Option 2: Remote backup preparations
-Follow this section if you want a remote backup. If you already set up a local backup, and don't want a remote backup, skip to the [next section](https://raspibolt.org/static-channel-backup.html#test-1).
+Follow this section if you want a remote backup. If you already set up a local backup, and don't want a remote backup, skip to the [next section](#test-1).
### Create a GitHub repository
@@ -451,5 +451,5 @@ You're set! Each time you open a new channel or close an existing one, the monit
---
-Next: [Ride The Lightning >>](rtl.md)
+Next: [Web app >>](web-app.md)
diff --git a/lightning.md b/guide/lightning/index.md
similarity index 90%
rename from lightning.md
rename to guide/lightning/index.md
index 6c06c21a8..8789941f4 100644
--- a/lightning.md
+++ b/guide/lightning/index.md
@@ -5,7 +5,7 @@ nav_order: 40
has_children: true
---
-{% include_relative include_metatags.md %}
+{% include include_metatags.md %}
# Lightning
{: .no_toc }
@@ -22,8 +22,8 @@ Check out [Understanding the Lightning Network](https://bitcoinmagazine.com/tech
---
-To enable the Lightning Network on your RaspiBolt, we install LND, the "Lightning Network Daemon".
-We then set up an automatic Static Channel Backup to protect ourselves in case of failure of the SSD drive.
-We'll then add "Ride The Lightning", a web-based node management tool.
+To enable the Lightning Network on your RaspiBolt, we install LND, the "Lightning Network Daemon".
+We then set up an automatic Static Channel Backup to protect ourselves in case of failure of the SSD drive.
+We'll then add "Ride The Lightning", a web-based node management tool.
Finally, we'll install the Zeus mobile app to make on-chain and LN payments and manage our node while we're on the go.
Together, they make operating your node a breeze.
diff --git a/lnd.md b/guide/lightning/lightning-client.md
similarity index 98%
rename from lnd.md
rename to guide/lightning/lightning-client.md
index ea90bd95c..70f458315 100644
--- a/lnd.md
+++ b/guide/lightning/lightning-client.md
@@ -1,11 +1,11 @@
---
layout: default
-title: LND
+title: Lightning client
nav_order: 10
parent: Lightning
---
-# Lightning: LND
+# Lightning client
{: .no_toc }
We set up [LND](https://github.com/lightningnetwork/lnd/blob/master/README.md){:target="_blank"}, the Lightning Network Daemon by [Lightning Labs](https://lightning.engineering/){:target="_blank"}.
@@ -117,7 +117,7 @@ Now that LND is installed, we need to configure it to work with Bitcoin Core and
```sh
$ ls -la
```
- ![symlinks](images/lnd-symlink-colour.png)
+ ![symlinks](../../images/lnd-symlink-colour.png)
### Wallet password
@@ -278,7 +278,7 @@ The current state of your channels, however, cannot be recreated from this seed.
For this, the Static Channel Backup stored at `/data/lnd-backup/channel.backup` is updated continuously.
🚨 This information must be kept secret at all times.
-* **Write these 24 words down manually on a piece of paper and store it in a safe place.**
+* **Write these 24 words down manually on a piece of paper and store it in a safe place.**
You can use a simple piece of paper, write them on a proper [backup card](https://shiftcrypto.ch/backupcard/backupcard_print.pdf){:target="_blank"}), or even stamp the seed words into metal (see this [DIY guide](https://www.econoalchemist.com/post/backup){:target="_blank"}).
This piece of paper is all an attacker needs to completely empty your on-chain wallet!
Do not store it on a computer.
@@ -675,7 +675,7 @@ A quick reference with common commands to play around with:
## For the future: upgrade LND
Upgrading LND can lead to a number of issues.
-**Always** read the [LND release notes](https://github.com/lightningnetwork/lnd/releases) completely to understand the changes. These also cover a lot of additional topics and many new features not mentioned here.
+**Always** read the [LND release notes](https://github.com/lightningnetwork/lnd/releases){:target="_blank"} completely to understand the changes. These also cover a lot of additional topics and many new features not mentioned here.
* Check your lnd version
@@ -686,7 +686,7 @@ Upgrading LND can lead to a number of issues.
* As "admin" user, stop the LND service
`$ sudo systemctl stop lnd`
-* Download, verify and install the latest LND binaries as described in the [LND section](lnd.md) of this guide.
+* Download, verify and install the latest LND binaries as described in the [LND section](lightning-client.md#installation) of this guide.
* Restart the services with the new configuration
@@ -698,4 +698,4 @@ Upgrading LND can lead to a number of issues.
---
-Next: [Static Channel Backup >>](static-channel-backup.md)
+Next: [Channel backup >>](channel-backup.md)
diff --git a/mobile-app.md b/guide/lightning/mobile-app.md
similarity index 94%
rename from mobile-app.md
rename to guide/lightning/mobile-app.md
index 47a63d855..a77000f38 100644
--- a/mobile-app.md
+++ b/guide/lightning/mobile-app.md
@@ -8,10 +8,10 @@ parent: Lightning
# Mobile app
{: .no_toc }
-We install [Zeus](https://zeusln.app/){:target="_blank"}, a cross-platform mobile app that connect to your LN node over Tor.
+We install [Zeus](https://zeusln.app/){:target="_blank"}, a cross-platform mobile app that connect to your LN node over Tor.
Make payments with lightning or on-chain and manage your channels while you're on the go.
-![Zeus](images/zeus.png)
+![Zeus](../../images/zeus.png)
---
@@ -72,10 +72,10 @@ lnconnect generates a URI and displays it as a QR code that Zeus can read.
* Still with the "admin" user, use the following command. Make sure to replace the .onion address with the one you generated above.
- ```sh
+ ```sh
$ lndconnect --host=abcdefg..............xyz.onion --port=8080
```
-
+
* It will be a big QR code, so maximize your terminal window and use `CTRL`+`-` to shrink the code further to fit the screen
* Keep the SSH session with the QR code opened, it will be needed later
@@ -86,8 +86,8 @@ lnconnect generates a URI and displays it as a QR code that Zeus can read.
### Install the Zeus app
-Download the Zeus app for your mobile phone.
-Check the [Zeus website](https://zeusln.app/){:target="_blank"} for the direct download links to the Apple App Store or Google Play.
+Download the Zeus app for your mobile phone.
+Check the [Zeus website](https://zeusln.app/){:target="_blank"} for the direct download links to the Apple App Store or Google Play.
Or get it from the [F-Droid store](https://f-droid.org/en/packages/app.zeusln.zeus/){:target="_blank"}, the catalogue of FOSS Android apps.
---
@@ -122,7 +122,7 @@ Anyone using Zeus on your phone has control over your node and all its funds. It
Below is a list of Zeus existing and planned features:
-![Zeus](images/zeus-features.png)
+![Zeus](../../images/zeus-features.png)
---
@@ -149,7 +149,7 @@ To uninstall, you need to uninstall the app on your phone and deactivate the LND
#HiddenServiceVersion 3
#HiddenServicePort 8080 127.0.0.1:8080
```
-
+
```sh
$ sudo systemctl reload tor
```
@@ -158,4 +158,4 @@ To uninstall, you need to uninstall the app on your phone and deactivate the LND
---
-Next: [Bonus section >>](bonus/index.md)
+Next: [Bonus section >>](../bonus/index.md)
diff --git a/rtl.md b/guide/lightning/web-app.md
similarity index 97%
rename from rtl.md
rename to guide/lightning/web-app.md
index 64d349d35..ce60bc0cc 100644
--- a/rtl.md
+++ b/guide/lightning/web-app.md
@@ -1,16 +1,16 @@
---
layout: default
-title: Ride The Lightning
-nav_order: 50
+title: Web app
+nav_order: 30
parent: Lightning
---
-# Ride The Lightning
+# Web app
{: .no_toc }
We install [Ride The Lightning](https://github.com/Ride-The-Lightning/RTL#readme){:target="_blank"}, a powerful web interface to manage your Lightning node.
-![Ride The Lightning dashboard](images/rtl-homepage.png)
+![Ride The Lightning dashboard](../../images/rtl-homepage.png)
---
@@ -43,7 +43,7 @@ If you installed BTC RPC Explorer, then you've already accomplished this step.
### Firewall & reverse proxy
-In the [Security section](security.md), we already set up NGINX as a reverse proxy.
+In the [Security section](../raspberry-pi/security.md#prepare-nginx-reverse-proxy), we already set up NGINX as a reverse proxy.
Now we can add the RTL configuration.
* Enable NGINX reverse proxy to route external encrypted HTTPS traffic internally to RTL
diff --git a/raspberry-pi.md b/guide/raspberry-pi/index.md
similarity index 82%
rename from raspberry-pi.md
rename to guide/raspberry-pi/index.md
index 29dbfdbd1..d0935997a 100644
--- a/raspberry-pi.md
+++ b/guide/raspberry-pi/index.md
@@ -5,7 +5,7 @@ nav_order: 20
has_children: true
---
-{% include_relative include_metatags.md %}
+{% include include_metatags.md %}
# Raspberry Pi
{: .no_toc }
@@ -13,6 +13,6 @@ has_children: true
This guide builds on the easily available and very flexible Raspberry Pi 4.
This amazing piece of hardware is a tiny computer-on-a-chip, costs about $60 and consumes very little energy.
-![Raspberry Pi](images/raspberry-pi_hardware.png)
+![Raspberry Pi](../../images/raspberry-pi_hardware.png)
In the following sections, we will start it up and prepare the operating system for your RaspiBolt.
diff --git a/operating-system.md b/guide/raspberry-pi/operating-system.md
similarity index 94%
rename from operating-system.md
rename to guide/raspberry-pi/operating-system.md
index 72f0d5645..8fa52abc2 100644
--- a/operating-system.md
+++ b/guide/raspberry-pi/operating-system.md
@@ -5,7 +5,7 @@ nav_order: 20
parent: Raspberry Pi
---
-{% include_relative include_metatags.md %}
+{% include include_metatags.md %}
# Operating system
{: .no_toc }
@@ -42,7 +42,7 @@ In order to write the operating system to the external drive, we will use the [R
Open the "Advanced options" by pressing the cogwheel that has appeared in the bottom right corner of the application window:
-![image](images/operating-system_imager-start.png)
+![image](../../images/operating-system_imager-start.png)
You can now pre-configure the operating system even before it's started for the first time.
@@ -64,7 +64,7 @@ Configure the advanced options as follows:
* **That's it.**
You can ignore the other options.
-![Raspberry Pi Imager: advanced settings](images/operating-system_imager-settings.png)
+![Raspberry Pi Imager: advanced settings](../../images/operating-system_imager-settings.png)
* Click "SAVE".
@@ -110,7 +110,7 @@ Your Raspberry Pi should now boot from the SSD attached via USB.
## Fallback: if you can't boot from your external drive
We assume that you can boot directly from the external drive.
-This method works for most modern drives, but if it doesn't work in your case, please follow the fallback instructions [Boot from microSD card instead of external drive](bonus/raspberry-pi/boot-from-microsd-card.md).
+This method works for most modern drives, but if it doesn't work in your case, please follow the fallback instructions [Boot from microSD card instead of external drive](../bonus/raspberry-pi/boot-from-microsd-card.md).
diff --git a/preparations.md b/guide/raspberry-pi/preparations.md
similarity index 96%
rename from preparations.md
rename to guide/raspberry-pi/preparations.md
index f54d476e6..fdd17d63a 100644
--- a/preparations.md
+++ b/guide/raspberry-pi/preparations.md
@@ -5,7 +5,7 @@ nav_order: 10
parent: Raspberry Pi
---
-{% include_relative include_metatags.md %}
+{% include include_metatags.md %}
# Preparations
{: .no_toc }
@@ -64,7 +64,7 @@ They should be unique and very secure, at least 12 characters in length. Do **no
[ E ] Ride The Lightning password
```
-![xkcd: Password Strength](images/preparations_xkcd.png)
+![xkcd: Password Strength](../../images/preparations_xkcd.png)
If you need inspiration for creating your passwords: the [xkcd: Password Strength](https://xkcd.com/936/){:target="_blank"} comic is funny and contains a lot of truth.
Store a copy of your passwords somewhere safe (preferably in an open-source password manager like [KeePassXC](https://keepassxc.org/){:target="_blank"}), or whaterver password manager you're already using, and keep your original notes out of sight once your system is up and running.
diff --git a/privacy.md b/guide/raspberry-pi/privacy.md
similarity index 98%
rename from privacy.md
rename to guide/raspberry-pi/privacy.md
index 710743222..21c8533d0 100644
--- a/privacy.md
+++ b/guide/raspberry-pi/privacy.md
@@ -5,7 +5,7 @@ nav_order: 50
parent: Raspberry Pi
---
-{% include_relative include_metatags.md %}
+{% include include_metatags.md %}
# Privacy
{: .no_toc }
@@ -140,4 +140,4 @@ A few examples:
---
-Next: [Bitcoin >>](bitcoin.md)
+Next: [Bitcoin >>](../bitcoin/index.md)
diff --git a/remote-access.md b/guide/raspberry-pi/remote-access.md
similarity index 98%
rename from remote-access.md
rename to guide/raspberry-pi/remote-access.md
index d5c23d5c4..1ecee5000 100644
--- a/remote-access.md
+++ b/guide/raspberry-pi/remote-access.md
@@ -5,7 +5,7 @@ nav_order: 20
parent: Raspberry Pi
---
-{% include_relative include_metatags.md %}
+{% include include_metatags.md %}
# Remote access
{: .no_toc }
@@ -94,7 +94,7 @@ $ ls -la
by pressing ⬆️ (arrow up) and ⬇️ (arrow down) on your keyboard, you can recall previously entered commands.
* **Common Linux commands**:
- For a very selective reference list of Linux commands, please refer to the [FAQ](faq.md) page.
+ For a very selective reference list of Linux commands, please refer to the [FAQ](../faq.md) page.
* **Use admin privileges**:
Our regular user has no direct admin privileges.
diff --git a/security.md b/guide/raspberry-pi/security.md
similarity index 99%
rename from security.md
rename to guide/raspberry-pi/security.md
index 28c814b87..2d1c79dbc 100644
--- a/security.md
+++ b/guide/raspberry-pi/security.md
@@ -5,7 +5,7 @@ nav_order: 40
parent: Raspberry Pi
---
-{% include_relative include_metatags.md %}
+{% include include_metatags.md %}
# Security
{: .no_toc }
@@ -162,7 +162,7 @@ The SSH login to the Pi must be specially protected.
An additional measure is to install "fail2ban", which prevents an attacker from gaining access via brute force.
It simply cuts off any remote system with five failed login attempts for ten minutes.
-![fail2ban](images/security_fail2ban.png)
+![fail2ban](../../images/security_fail2ban.png)
*Me locking myself out by entering wrong passwords*
* Install "fail2ban", which activates automatically
diff --git a/system-configuration.md b/guide/raspberry-pi/system-configuration.md
similarity index 93%
rename from system-configuration.md
rename to guide/raspberry-pi/system-configuration.md
index ce6b62474..cb8bf0c75 100644
--- a/system-configuration.md
+++ b/guide/raspberry-pi/system-configuration.md
@@ -5,7 +5,7 @@ nav_order: 30
parent: Raspberry Pi
---
-{% include_relative include_metatags.md %}
+{% include include_metatags.md %}
# System configuration
{: .no_toc }
@@ -39,7 +39,7 @@ We will use the primary user "admin" instead of "pi" to make this guide more uni
```sh
$ sudo adduser admin sudo
```
-
+
* Exit your current "pi" user session and exit SSH
@@ -49,7 +49,7 @@ We will use the primary user "admin" instead of "pi" to make this guide more uni
* Create a new connection with the `admin` user
-* Log in again using SSH (see [Access with Secure Shell](remote-access.html#access-with-secure-shell) section), but now with the user "admin" and your `password [A]`
+* Log in again using SSH (see [Access with Secure Shell](remote-access.md#access-with-secure-shell) section), but now with the user "admin" and your `password [A]`
```sh
$ ssh admin@raspibolt.local
@@ -122,7 +122,7 @@ If the measured speed is more than 50 MB/s, you're good, no further action neede
If the speed of your USB3 drive is not acceptable, we need to configure the USB driver to ignore the UAS interface.
-Check the [Fix bad USB3 performance](troubleshooting.md#fix-bad-usb3-performance) entry in the Troubleshooting guide to learn how.
+Check the [Fix bad USB3 performance](../troubleshooting.md#fix-bad-usb3-performance) entry in the Troubleshooting guide to learn how.
---
diff --git a/troubleshooting-separator.md b/guide/troubleshooting-separator.md
similarity index 98%
rename from troubleshooting-separator.md
rename to guide/troubleshooting-separator.md
index 9bb7ef04c..707c20d60 100644
--- a/troubleshooting-separator.md
+++ b/guide/troubleshooting-separator.md
@@ -3,4 +3,4 @@ layout: default
title: __________________________
nav_order: 199
---
-
\ No newline at end of file
+
diff --git a/troubleshooting.md b/guide/troubleshooting.md
similarity index 97%
rename from troubleshooting.md
rename to guide/troubleshooting.md
index e97dc4ca7..9d58cf56b 100644
--- a/troubleshooting.md
+++ b/guide/troubleshooting.md
@@ -20,9 +20,9 @@ Where possible, I'll link to the relevant part of the guide. If you see any disc
---
-## [General FAQ](raspibolt_faq.md)
+## [General FAQ](faq.md)
-I collected frequent questions not directly related with issues in a separate [General FAQ](raspibolt_faq.md) section:
+I collected frequent questions not directly related with issues in a separate [General FAQ](faq.md) section:
* Can I get rich by routing Lightning payments?
* Can I attach the Ext4 formatted hard disk to my Windows computer?
@@ -54,7 +54,7 @@ If you somehow locked yourself out of your Pi, you can connect it to a display a
### Fix bad USB3 performance
-If the speed of your USB3 drive tested with `hdparm` in the [System configuration](system-configuration.md) section is not acceptable, we need to configure the USB driver to ignore the UAS interface.
+If the speed of your USB3 drive tested with `hdparm` in the [System configuration](raspberry-pi/system-configuration.md) section is not acceptable, we need to configure the USB driver to ignore the UAS interface.
* Get the Vendor and Product ID for your USB3 drive.
Run the following command and look for the name of your drive or adapter.
@@ -103,9 +103,9 @@ The additional configuration parameters (called "quirks") for the USB driver mus
You should see a significant increase in performance.
If the test still shows a very slow read speed, your drive or USB3 adapter might not be compatible with the Raspberry Pi.
-In that case we recommend visiting the [Raspberry Pi Troubleshooting forum](https://forums.raspberrypi.com/viewforum.php?f=28) or simply trying out hardware alternatives.
+In that case we recommend visiting the [Raspberry Pi Troubleshooting forum](https://forums.raspberrypi.com/viewforum.php?f=28){:target="_blank"} or simply trying out hardware alternatives.
-🔍 *more: [Raspberry Pi forum: bad performance with USB3 SSDs](https://forums.raspberrypi.com/viewtopic.php?f=28&t=245931)*
+🔍 *more: [Raspberry Pi forum: bad performance with USB3 SSDs](https://forums.raspberrypi.com/viewtopic.php?f=28&t=245931){:target="_blank"}*
---
@@ -113,7 +113,7 @@ In that case we recommend visiting the [Raspberry Pi Troubleshooting forum](http
The most important ports are 22, 8333, 9735 and 1900/udp. Others can be necessary for bonus guides, and there may be additional ports open on your Pi (eg. the `(v6)` variants).
-It is essential to have the right subnet mask, like `192.168.0.0/24` (see [guide](raspibolt_20_pi.md#enabling-the-uncomplicated-firewall)).
+It is essential to have the right subnet mask, like `192.168.0.0/24` (see [guide](raspberry-pi/security.md#enabling-the-uncomplicated-firewall)).
```
$ sudo ufw status
@@ -477,3 +477,7 @@ $ tail -f /home/bitcoin/.lnd/logs/bitcoin/mainnet/lnd.log
We will extend this troubleshooting guide constantly with findings that have been or will be reported in the issues section.
+
+---
+
+Next: [FAQ >>](faq.md)
diff --git a/images/60_eps_first-start.png b/images/60_eps_first-start.png
new file mode 100644
index 000000000..cc240b779
Binary files /dev/null and b/images/60_eps_first-start.png differ
diff --git a/images/60_eps_pip_install.png b/images/60_eps_pip_install.png
new file mode 100644
index 000000000..bc304c5fa
Binary files /dev/null and b/images/60_eps_pip_install.png differ
diff --git a/index.md b/index.md
index a75ad9b88..8114a9385 100644
--- a/index.md
+++ b/index.md
@@ -4,7 +4,7 @@ title: Home
nav_order: 1
---
-{% include_relative include_metatags.md %}
+{% include include_metatags.md %}
![RaspiBolt Logo](images/raspibolt3-logo.png)
@@ -64,20 +64,20 @@ If you like to learn about Linux, Bitcoin, and Lightning, then this guide is for
We aim to keep the core of this guide well maintained and up-to-date:
-1. [Raspberry Pi](raspberry-pi.md): prepare the hardware and set up the operating system
-1. [Bitcoin](bitcoin.md): sync your own Bitcoin full node, Electrum server, and Blockchain Explorer
-1. [Lightning](lightning.md): run your own Lightning client with web-based and mobile-based node management
+1. [Raspberry Pi](guide/raspberry-pi/index.md): prepare the hardware and set up the operating system
+1. [Bitcoin](guide/bitcoin/index.md): sync your own Bitcoin full node, Electrum server, and Blockchain Explorer
+1. [Lightning](guide/lightning/index.md): run your own Lightning client with web-based node management
The bonus section contains more specific guides that build on top of the main section.
More fun, lots of knowledge, but with lesser maintenance guarantees.
Everything is optional.
-* [Bonus guides](./bonus/index.md)
+* [Bonus guides](guide/bonus/index.md)
Running into issues?
-* [Troubleshooting](troubleshooting.md): first aid to debug your system
-* [FAQ](faq.md): frequently asked questions and further reading
+* [Troubleshooting](guide/troubleshooting.md): first aid to debug your system
+* [FAQ](guide/faq.md): frequently asked questions and further reading
---
@@ -100,7 +100,7 @@ Unfortunately, a seamless update is not possible because RaspiBolt 3 uses an ent
The general structure of the setup stays the same, however.
We recommend setting up the RaspiBolt from scratch, but you can then copy over essential data.
-[Read how to do that in the FAQ section](faq.md#can-i-update-my-raspibolt-2-to-the-new-version).
+[Read how to do that in the FAQ section](guide/faq.md#can-i-update-my-raspibolt-2-to-the-new-version).
## Looking for an older version of this guide?
@@ -110,4 +110,4 @@ If you're looking for an older version of this guide, you can still check out th
---
-Get started: [Backstory >>](backstory.md)
+Get started: [Backstory >>](guide/backstory.md)
diff --git a/raspibolt/README.md b/raspibolt/README.md
deleted file mode 100644
index c8549d346..000000000
--- a/raspibolt/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-nav_exclude: true
----
-### The RaspiBolt Guide is now available on GitHub Pages:
-
-https://raspibolt.github.io/raspibolt/
-
-This repository contains all sources and is used for Issue tracking.