Merge #710: Try.md update with Liana 2.0 managed node

5858f2c30b7bd71a1027fa7484bf989b9891bd3a Update doc/TRY.md (Kevin Loaec)
e069be87c42f620f210f85e0762f4fdd41c00255 Update doc/TRY.md (Kevin Loaec)
e5652d9eb8d885d3f8598c90dcc406f7f1106b7e Update TRY.md (Kevin Loaec)
02a18392622b5b21b73c699ebbbc6b3dffc2db48 Update TRY.md (Kevin Loaec)
e1451fc2af4e432e7bf3365816a51ccd08eb86ff Update TRY.md (Kevin Loaec)

Pull request description:

ACKs for top commit:
  darosior:
    ACK 5858f2c30b7bd71a1027fa7484bf989b9891bd3a

Tree-SHA512: 2dcbb7d0c83c9ebe5fe3c8d4242ae33879dc889da283c2752c904d6b282be3c6388496a75c06b1ea5b83604e6076214be16bfaec365e7891222c53a31718ab31
This commit is contained in:
Antoine Poinsot 2023-10-08 12:37:54 +02:00
commit 7f314844b1
No known key found for this signature in database
GPG Key ID: E13FC145CD3F4304

View File

@ -1,123 +1,75 @@
# Quickly try out Liana
# Quickly try out Liana in a test environment
> *Just give me the TL;DR!*
*(Updated on February the 28th of 2023)*
*(Updated on of 2023)*
This document is a short set of instructions for trying out Liana on Bitcoin signet. It does not attempt to
This document is a short set of instructions for trying out Liana on Bitcoin signet, a test network using value-less bitcoins. It does not attempt to
give any nuance, details or describe alternative configurations.
This guide will make use Liana as a "hot wallet". If you'd like to try out Liana using dummy
This guide will make use Liana as a "hot wallet", and use the "Liana managed" `bitcoind` option.
You can also connect your Ledger or SpecterDIY hardware signer if you have some at hand (and maybe by the time you read this guide, Bitbox, Coldcard and Jade - integration is coming soon).
If you'd like to try out Liana using emulators of
hardware signing device you can use the [Specter
simulator](https://github.com/cryptoadvance/specter-diy/blob/master/docs/simulator.md) or the
[Ledger "Speculos" emulator](https://github.com/LedgerHQ/speculos).
(emulators of the other hardware signers will work too when we finish their integration)
## Step 0: preparation
### System dependencies
Here is a list of the system dependencies: the tools and libraries you need to have installed on
your system to follow the guide if you are running Linux.
*If you are using Windows or MacOS, you can skip this step.*
*If you are using a somewhat recent Debian/Ubuntu, Arch/Manjaro/Endeavor, NixOS distribution or similar, you can skip this step.*
TL;DR:
- Debian/Ubuntu: `apt install curl gpg udev libfontconfig1-dev libudev-dev`
- Arch Linux: check if you have all the required packages: `pacman -Q coreutils tar curl gnupg fontconfig systemd-libs`.
If any is listed as "was not found", get it with `pacman -S [missing package name]`
- Other distribution: see the link to projects below to search for the name of your distribution's packages.
Here is a list of the system dependencies: the tools and libraries you need to have installed on
your system to follow the guide if you are running a Linux that isn't Debian- or Arch- based.
- GUI requirements, see the link to projects below to search for the name of your distribution's packages.
- [`fontconfig`](https://www.freedesktop.org/wiki/Software/fontconfig/)
- [Libudev](https://www.freedesktop.org/software/systemd/man/libudev.html)
- Running binaries requires GLIBC >= 2.33 (Ubuntu >= 22.04 or Debian >= 12)
We'll use basic tools which should already be present on your system, such as:
- `shasum`
- `tar`
To download and verify binaries you will also need:
- `curl` (On Debian/Ubuntu `apt install curl`)
To verify binaries you will also need:
- `gpg` (On Debian/Ubuntu `apt install gpg`)
To run the GUI you will need some additional libraries:
- [`fontconfig`](https://www.freedesktop.org/wiki/Software/fontconfig/) (On Debian/Ubuntu `apt install libfontconfig1-dev`)
- [Libudev](https://www.freedesktop.org/software/systemd/man/libudev.html) (On Debian/Ubuntu `apt install udev libudev-dev`)
### Throwaway folder
You can follow the guide from any folder of your choice. We recommend using a dedicated folder you
can wipe easily. On Linux:
You can follow the guide from any folder of your choice. We recommend creating a new dedicated folder you
can wipe easily after testing.
If you are using a Linux terminal:
```
mkdir liana_quicktry
cd liana_quicktry
```
## Step 1: setup `bitcoind`
## Step 1: Liana installer
Liana needs `bitcoind` to communicate with the Bitcoin network. Minimum supported version is 24.0.1.
### Download
The following instructions are specific to Linux (they may work on MacOS but i'm not sure). For
other platforms refer to
[https://bitcoincore.org/en/download/#verify-your-download](https://bitcoincore.org/en/download).
1. Download the `bitcoind` binary from [the official website of the Bitcoin Core
project](https://bitcoincore.org/bin/bitcoin-core-25.0/) according to your platform (in the context
of this guide, it is most likely `bitcoin-25.0-x86_64-linux-gnu.tar.gz`), and associated SHA256SUMS and SHA256SUMS.asc verification files.
```
curl -O https://bitcoincore.org/bin/bitcoin-core-25.0/bitcoin-25.0-x86_64-linux-gnu.tar.gz -O https://bitcoincore.org/bin/bitcoin-core-25.0/SHA256SUMS -O https://bitcoincore.org/bin/bitcoin-core-25.0/SHA256SUMS.asc
```
2. Verify the hash of the downloaded archive.
```
sha256sum --ignore-missing --check SHA256SUMS
```
3. Verify the signature against a key you trust. The Bitcoin Core Guix Attestations Github repo contains [a
folder](https://github.com/bitcoin-core/guix.sigs) of signers for each release and a folder of their keys.
Mine is `590B7292695AFFA5B672CBB2E13FC145CD3F4304`.
```
gpg --keyserver hkps://keys.openpgp.org --receive 590B7292695AFFA5B672CBB2E13FC145CD3F4304
gpg --verify SHA256SUMS.asc
```
4. Finally, uncompress the archive to get access to the `bitcoind` binary.
```
tar -xzf bitcoin-25.0-x86_64-linux-gnu.tar.gz
```
### Start `bitcoind` on signet
Run `bitcoind` in the background on the public signet network. On Linux:
```
./bitcoin-25.0/bin/bitcoind -signet -daemon
```
If it is the first time you start a signet Bitcoin on this machine it will take a few minutes to
synchronize (depends on your connection and hardware of course, but it shouldn't take longer than a
handful of minutes). You can track the progress using the `getblockchaininfo` command. On Linux:
```
./bitcoin-25.0/bin/bitcoin-cli -signet getblockchaininfo
```
**You do not need to wait for full synchronisation before moving on to the next step.**
## Step 2: start Liana
Head to the [release page](https://github.com/wizardsardine/liana/releases) and download the right
executable for your platform. If you are not sure what is the "right" executable for your platform,
choose `Liana.zip` if you are on MacOS, `liana-1.0.exe` if you are on Windows, and
`liana-1.0-x86_64-linux-gnu.tar.gz` if you are on Linux.
Get the Liana software for your system on the [Wizardsardine website](https://wizardsardine.com/liana).
A note for **Linux users only**: released binaries may not be working on your system if it is
running a too old glibc. In this case you may have to build from source. See the [short section
about this in the README](../README.md#a-note-on-linux-binaries-and-glibc-version).
For every file available on the release page, there is an accompanying `.asc` file with the same
name. This is a GPG signature made with Antoine Poinsot's key:
For every file available on the website, there is an accompanying `.asc` file with the same
name on our [Github release page](https://github.com/wizardsardine/liana/releases). This is a GPG signature made with Antoine Poinsot's key:
`590B7292695AFFA5B672CBB2E13FC145CD3F4304`. This key is available elsewhere for cross-checking, such
as on [his Twitter profile](https://twitter.com/darosior) or his [personal
website](http://download.darosior.ninja/antoine_poinsot_0xE13FC145CD3F4304.txt). It is recommended
you verify your download against this key.
Example for Linux (replace the signature name with the one corresponding to your download):
```
gpg --keyserver hkps://keys.openpgp.org --receive 590B7292695AFFA5B672CBB2E13FC145CD3F4304
gpg --verify liana_2.0-1_amd64.deb.asc
```
GPG should tell you the signature is valid for Antoine's key.
If all is good, you can run Liana!
At startup, you will have the choice between starting Liana using an existing configuration or to
set up a new one. Choose to install Liana on a new Bitcoin network.
@ -126,7 +78,7 @@ The next screen allows you to either configure a new wallet, participate in the
new wallet (if you are taking part in a multisig for instance), or to recover a wallet from backup.
Choose to create a new wallet.
Choose Bitcoin Signet as network. Now you will need to configure the primary key(s), the recovery
Choose **Bitcoin Signet** as network. Now you will need to configure the primary key(s), the recovery
key(s), and the time delay before the recovery keys become available (in # of blocks). We'll use
only one key for both the primary and recovery paths. We'll derive both keys from a "hot signer", a
HD wallet whose seed is stored on the laptop.
@ -144,24 +96,20 @@ or the simulator of any of them (see the links at the top of this document).
Click on next. If you want to try restoring from wallet backup later on, make sure to backup the
mnemonic as well as the descriptor in the next two screens. Otherwise just make them happy by
ticking the boxes. If you are using a signing device simulator you'll have a step for registering
ticking the boxes. If you are using a signing device or its simulator you'll have a step for registering
the descriptor on it.
You can then decide whether you would like to manage `bitcoind` yourself or let Liana configure
and start/stop it while the GUI is being used:
- If you choose to manage `bitcoind` yourself, the next step will be to configure the connection.
The default should work for what we did in this guide.
- If you choose to let Liana manage `bitcoind`, the next step will search for a `bitcoind`
executable on your computer and start it, using `<Liana data directory>/bitcoind_datadir` as the
data directory and creating a `bitcoin.conf` file therein.
For the purpose of this guide, we will use the simpler option: to let Liana download and managed Bitcoin Core for us. It will get the software on [bitcoincore.org](https://bitcoincore.org/) and configure it in pruned mode with about 20GB of disk usage.
A full Initial Blocks Download (Bitcoin network syncronization, from the beginning of the chain) will take place, as we are using Signet it will be pretty quick.
Click on continue and finalize the installation.
Click on continue until we finalize the installation.
In the case of a Liana-managed `bitcoind`, it will be automatically started the next time you
start Liana for the given network.
## Step 3: have fun
## Step 2: have fun
Once synchronized, Liana will open the wallet.
You can generate a receive address in the "Receive" menu. You can get signet coins from the signet
faucet at https://signet.bc-2.jp/.
@ -171,22 +119,30 @@ my own configuration, but it depends on what you configured previously). Then yo
Keep in mind that signet coins have no value!
Signet is a network, so you can send coins to other people on signet, receive from them, etc. Feel free to explore Liana!
## Cleanup
You need to remove:
- The Bitcoin Core archive, binary and data directory
- The Liana binary and data directory
- The Liana binary
- its data directory
For a user Alice the default Liana data directory is:
- /Users/Alice/Library/Application Support/Liana on MacOS
- C:\Users\Alice\AppData\Roaming\Liana on Windows
- /home/Alice/.liana on Linux
Assuming you used the throwaway folder as advised in step 0 and did not use custom `bitcoind` or
Liana data directories you can wipe everything using these commands:
Liana data directories you can wipe everything using these commands on Linux:
```
cd ..
rm -rf liana_quicktry
rm -rf ~/.bitcoin/signet
rm -rf ~/.liana/signet
```
## Tips & Tricks
### Simulating multiple wallets
@ -198,4 +154,4 @@ You can simulate multiple wallets by using different data directories. For insta
./liana-gui --datadir test_bob
./liana-gui --datadir test_charlie
```
The directory will be created if it doesn't exist.
The directory will be created if it doesn't exist.