Info

In diesem Howto gehe ich alle Schritte für die Installation von Samourai Dojo Vanilla durch. Diese Installation setzt voraus, dass Bitcoin Core und ein Indexer bereits installiert ist. Ich gehe allerdings auch auf die Punkte ein, wo man diese beiden Komponenten über Dojo Vanilla mitinstallieren kann.

Vorbereitung

Bevor wir mit der Dojo Vanilla Installation loslegen können, müssen wir Docker und Docker-Compose auf unserem System installieren, falls noch nicht vorhanden.

1
sudo apt-get update 
1
sudo apt-get install ca-certificates unzip curl gnupg lsb-release

Hinzufügen des GPG-Keys

1
sudo mkdir -p /etc/apt/keyrings
1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Hinzufügen des Repositories

1
2
3
sudo echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
1
sudo apt-get update
1
sudo apt-get install docker-ce docker-ce-cli containerd.io

Check ob es geklappt hat

1
docker --version

Als Ausgabe müsste so etwas kommen:

1
Docker version 20.10.21, build baeda1f

Hinzufügen des Benutzers in die Docker-Gruppe

1
sudo usermod -aG docker $USER

Wir melden uns ab und neu an, damit die Rechte wirksam sind.

Installation Docker-Compose

Als weitere Komponente müssen wir Docker-Compose installieren.

1
curl -SL https://github.com/docker/compose/releases/download/v2.13.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

Rechte setzen für docker-compose

1
sudo chmod +x /usr/local/bin/docker-compose

Check ob alles geklappt hat

1
docker-compose version

Es müsste so etwas kommen:

1
Docker Compose version v2.13.0

Download Dojo Vanilla

Wir wechseln in unser Download Verzeichnis

1
cd ~/Downloads

Und laden die aktuelle Dojo-Version herunter, die wir auf dem Samourai Repository finden https://code.samourai.io/dojo/samourai-dojo/-/releases

wget https://code.samourai.io/dojo/samourai-dojo/-/archive/v1.18.1/samourai-dojo-v1.18.1.zip

```bash
Als nächstes entpacken wir die Datei

```bash
unzip samourai-dojo-v1.18.1.zip -d .

Jetzt benennen wir den entpackten Order auf Dojo um und verschieben ihn gleichzeitig in unser Benutzerverzeichnis

1
mv samourai-dojo-v1.18.1 ~/Dojo

Anpassen der Konfigurationen

Jetzt geht es an das anpassen der Konfigurationen, dazu wechseln wir uns unser Dojo-Verzeichnis und dann gleich in das Docker-Verzeichnis

1
cd ~/Dojo/docker/my-dojo

Hier finden wir ein Verzeichnis conf, in das wir wechseln

1
cd conf

In diesem Verzeichnis befinden sich alle Konfigurationen, die wir für Dojo Vanilla brauchen.

Wir starten mit der ersten Datei

docker-bitcoind.conf.tpl

1
nano docker-bitcoind.conf.tpl

Anpassen des RPC_Users und Passworts

1
BITCOIND_RPC_USER=dojorpc

andern in:

1
BITCOIND_RPC_USER=nakamoto

Passwort anpassen

1
BITCOIND_RPC_PASSWORD=dojorpcpassword

andern in:

1
BITCOIND_RPC_PASSWORD=satoshi

Wir scrollen weiter nach unten bis zum Punkt BITCOIND_INSTALL. Hier stellen wir auf off, falls wir schon einen BitcoinD installiert haben.

1
BITCOIND_INSTALL=on

andern in:

1
BITCOIND_INSTALL=off

Anpassen der BitcoinD IP-Adresse

1
BITCOIND_IP=172.28.1.5

andern in die IP wo BitcoinD installiert ist

1
BITCOIND_IP=192.168.100.242

Port anpassen

1
BITCOIND_PORT=28256

andern in die IP wo BitcoinD installiert ist

1
BITCOIND_PORT=8332

Anpassen der ZMQ Parameter, die wir in unserer bitcoin.conf finden.

1
BITCOIND_ZMQ_RAWTXS=9501

ändern in

1
BITCOIND_ZMQ_RAWTXS=28333

ZMQ BLK HASH

1
BITCOIND_ZMQ_BLK_HASH=9502

ändern in

1
BITCOIND_ZMQ_BLK_HASH=28334

Jetzt speichern wir die Konfiguration ab. STRG +x, y und Enter.

docker-common.conf.tpl

Hier checken wir, welches Netz wir nutzen möchten. Für Mainnet passt alles, falls wir Testnet wollen, dann setzen wir von mainnet auf testnet.

docker-explorer.conf.tpl

Hier können wir alle Parameter lassen, außer wir möchten nur Mempool Space nutzen, dann können wir Explorer auf off stellen.

docker-indexer.conf.tpl

Hier checken wir, ob INDEXER_INSTALL auf off gestellt ist, falls wir schon einen Indexer wie Electrum oder Fulcrum installiert haben. Falls nicht, können wir diesen hier auf on stellen.

Falls wir Electrum oder Fulcrum nutzen möchten, müssen wir folgenden Parameter ändern

1
INDEXER_TYPE=addrindexrs

ändern in

1
INDEXER_TYPE=fulcrum

Ändern der IP-Adresse des Indexers auf die IP, wo der Indexer installiert ist.

1
INDEXER_IP=172.28.1.6

ändern in

1
INDEXER_IP=192.168.100.242

Indexer Port auf SSL umstellen, falls wir den Indexer auf SSL gestellt haben

1
INDEXER_PORT=50001

ändern in

1
INDEXER_PORT=50002

Falls wir einen Fulcrum Indexer nutzen, dann müssen wir diesen Parameter ändern

1
INDEXER_BATCH_SUPPORT=inactive

ändern in

1
INDEXER_BATCH_SUPPORT=active

Falls wir TLS nutzen möchten, dann passen wir diesen Parameter an:

INDEXER_PROTOCOL=tcp

ändern in

1
INDEXER_PROTOCOL=tls

Jetzt speichern wir die Konfiguration ab. STRG +x, y und Enter.

docker-mysql.conf.tpl

In dieser Konfiguration sollten wir dringend die Passwörter ändern.

1
MYSQL_ROOT_PASSWORD=rootpassword

ändern in

1
MYSQL_ROOT_PASSWORD=asdfjlkafgbuiower

Und auch dieses Passwort muss dringend geändert werden:

1
MYSQL_PASSWORD=rootpassword

ändern in

MYSQL_PASSWORD=8986798hjdfserterst

Jetzt speichern wir die Konfiguration ab. STRG +x, y und Enter.

docker-node.conf.tpl

In dieser Datei setzen wir unter anderem das Passwort für unser Dojo Maintenance Tool

NODE_API_KEY=myApiKey

ändern in

NODE_API_KEY=8986798hjdfserterst

Hier setzen wir das Passwort für das Dojo Maintenace Tool

NODE_ADMIN_KEY=myAdminKey

ändern in

NODE_ADMIN_KEY=8986798hjdfserterst

Zum Schluss müssen wir noch unseren lokalen Indexer setzen

NODE_ACTIVE_INDEXER=local_bitcoind

ändern in

NODE_ACTIVE_INDEXER=local_indexer

Jetzt speichern wir die Konfiguration ab. STRG +x, y und Enter.

docker-tor.conf.tpl

Hier können wir alles so lassen wir es ist.

docker-whirlpool.conf.tpl

Wenn wir Whirlpool innerhalb von Docker laufen lassen möchten, dann setzen wir folgenden Parameter

WHIRLPOOL_INSTALL=off

ändern in

WHIRLPOOL_INSTALL=on

Abspeichern mit STRG +x, y und Enter.

Alternativ können wir Whirlpool händisch installieren, so steht uns die Option zur Verfügung, direkt auf einen externen XPUB nach X Runden zu mixen. Weiter unten sind die Schritte zu finden.

Dojo Vanilla installieren

Um Dojo mit unserer Konfiguration zu installieren, geben wir ein:

./dojo.sh install

Wir bestätigen mit y.

Sobald am Bildschirm “INFO Tracker : Processing active Mempool” auftaucht, ist die Installation abgeschlossen. Wir müssen allerdings warten, bis alles fertig gesynct hat, was eine Zeit lang dauert. Sobald fertig, geht es weiter.

Whirlpool - alternative Installation

Wenn wir Whirlpool händisch installieren möchten, suchen wir die Seite https://code.samourai.io/whirlpool/whirlpool-client-cli/-/releases auf, wo wir die aktuellste Whirlpool-CLI-Version finden.

Der Vorteil von einer eigenen Installation wäre unter anderem die Möglichkeit, direkt auf einen XPUB/ZPUB zu mixen.

Bevor wir mit der Einrichtung starten können, müssen wir Java installieren. Auf Ubuntu geben wir dazu einfach java im Terminal ein, damit wir die möglichen Optionen sehen.

Check ob Java installiert ist

java

Falls nicht, dann installieren wir Java

sudo apt install openjdk-18-jre-headless

Nach der Installation erstellen wir ein Verzeichnis Whirlpool in unserem Benutzerverzeichnis

mkdir ~/Whirlpool

Wir wechseln in das Verzeichnis

cd ~/Whirlpool

Jetzt laden wir die aktuelle jar-Datei vom Samourai Whirlpool CLI Repo herunter, die wir unter Download: finden. Repo

wget https://code.samourai.io/whirlpool/whirlpool-client-cli/uploads/63621e145967f536a562851853bd0990/whirlpool-client-cli-0.10.16-run.jar

Einrichtung des Service-Files

1
sudo nano /etc/systemd/system/whirlpool.service

Einfügen:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
[Unit]
Description=Whirlpool
After=tor.service

[Service]
WorkingDirectory=/home/nakamoto/Whirlpool
ExecStart=/usr/bin/java -jar whirlpool-client-cli-0.10.16-run.jar --server=mainnet --tor --auto-mix --mixs-target=0 --listen
User=nakamoto
Group=nakamoto
Type=simple
KillMode=process
TimeoutSec=60
Restart=always
RestartSec=60

[Install]
WantedBy=multi-user.target

Abspeichern mit STRG +x, y und Enter.

1
sudo systemctl enable whirlpool

Wir starten das Service noch nicht!

Falls es Whirlpool CLI-Updates gibt, müssen wir im Service-File die Zeile mit ExecStart anpassen!

Installation von Whirlpool GUI

Auf der Samourai Webseite können wir unter Download immer die aktuelle Version von Whirlpool GUI herunterladen. Diese installieren wir.

Fertig

Alle Installationsschritte von Dojo Vanilla sind damit vollständig abgeschlossen. Wer alle Befehle von dojo.sh wissen möchte, findet diese auf dem Repo von Samourai.

Upgrade

Zuerst wechseln wir in unser Dojo-Verzeichnis

1
cd ~/Dojo/docker/my-dojo

Dojo stoppen

1
./dojo.sh stop

Jetzt wechseln wir in unser Downloadverzeichnis

1
cd ~/Downloads

Und laden dort die aktuelle Dojo Version herunter

1
wget https://code.samourai.io/dojo/samourai-dojo/-/archive/v1.19.0/samourai-dojo-v1.19.0.zip

Danach entpacken wir die Zip-Datei.

1
unzip samourai-dojo-v1.19.0.zip

Zur Sicherheit erstellen wir ein Backup von unserem aktuellen Dojo - nicht unbedingt notwendig.

1
cd ~/
1
tar cfz dojo-backup-$(date +%Y-%m-%d).tar.gz Dojo

Und jetzt kopieren wir den Inhalt dieser Zip-Datei in unser aktuelles Dojo-Verzeichnis:

1
cp -r ~/Downloads/samourai-dojo-v1.19.0.zip/* ~/Dojo

Dojo Upgrade starten

1
./dojo.sh upgrade

Dojo sollte jetzt wieder gestartet sein. Um zu checken, ob die aktuelle Version läuft, können wir diesen Befehl absetzen:

1
./dojo version

Anbindung Samourai Wallet mit Dojo und Whirlpool

Dojo Maintenance Tool (DMT) starten

Das Dojo Maintenance Tool ist über eine Tor Onion-Adresse verfügbar. Mit diesem Tool können wir unsere Samourai Wallet verwalten, sollte es Probleme geben, wie zum Beispiel, dass die Anzeige der Bitcoin in der Wallet nicht stimmt. Die Tor-Adresse erhalten wir mit dem Befehl:

1
./dojo.sh onion

Wir starten den Tor-Browser und geben die Onion-Adresse ein. Bei der Passwortabfrage müssen wir das Passwort eingeben, dass die im docker-node-tpl.conf gesetzt haben.

Installation Samourai Wallet und Anbindung an Dojo

Von der Webseite https://samouraiwallet.com laden wir die Samourai Wallet herunter. Zu finden ist dieser unter “Download”. Dort finden sich mehrere Möglichkeiten. Entweder ein direkter Download der APK-Datei, über F-Droid oder auch Google Play.

Wir starten die Wallet und wählen MAINNET oder TESTNET aus, je nach unserer Dojo-Installation. Dann klicken wir auf “Get Started”. Jetzt wählen wir das Verzeichnis aus, wo die Wallet-Backups gespeichert werden sollen. Danach wählen wir aus, ob wir Tor aktivieren möchten. Tor brauchen wir für die Verbindung für Dojo. Dann klicken wir auf Dojo und scannen den QR-Code ein, den wir im Dojo Maintenance Tool unter Tools - Pairing finden. Wenn alles passt, sollte dann unter Dojo status “Connected” stehen.

Jetzt müssen wir eine Passphrase einstellen, diese muss SICHER sein! Wir notieren uns die 12 Wörter, die wir bei einer Wiederherstellung zusammen mit der Passphrase brauchen. Wer ein Recovery-Sheet möchte findet dieses hier.

Die Wallet ist jetzt fertig installiert und eingerichtet.

Anbindung Samourai Wallet mit Whirlpool CLI

1
java -jar whirlpool-client-cli-0.10.16-run.jar --init

INPUT REQUIRED für Pairing Payload - hier müssen wir unseren Pairing Payload eingeben, den wir in unserer Samourai Wallet unter Settings -> Transactions -> Experimental finden. Diesen kopieren wir und fügen wir in der Abfrage ein.

INPUT REQUIRED für Passphrase - hier geben wir unsere Passphrase der Wallet ein.

Damit ist alles abgeschlossen und wir können ab jetzt Whirlpool über unser Whirlpool Service starten.

1
sudo systemctl start whirlpool

Check ob alles läuft

1
sudo systemctl status whirlpool

Option - Mit to XPUB

Falls wir auf einen externen XPUB mixen wollen, müssen wir dies einmal bei Whirlpool bekannt geben. Dies machen wir mit dem Parameter –set-external-xpub bash

java -jar whirlpool-client-cli-0.10.16-run.jar --set-external-xpub

In der Abfrage “External BIP84 XPub/ZPub” geben wir den XPUB ein.

In der nächsten Abfrage “Chain?(0)” (Standard für m/84'/0') geben wir 0 ein.

In der nächsten Abfrage “Mixs?(>0)>” geben wir die Anzahl der Mixrunden ein, bevor die gemixten UTXOs zum Cold Storage geschickt werden.

INPUT REQUIRED Continue y/n - hier checken wir 3 Adressen die aus dem ZPUB berechnet wurden und dir wir mit der Wallet von unserem Cold Storage überprüfen sollten. Wenn diese passen bestätigen wir mit y.

Mit diesen Schritten ist jetzt alles in die whirlpool.cli.properties eingetragen und wir können Whirlpool normal über unser Whirlpool Service starten und stoppen.

Anbindung Whirlpool GUI an Whirlpool CLI

Für die Verbindung von Whirlpool GUI mit Whirlpool CLI brauchen wir die IP-Adresse von Whirlpool CLI und einen apiKey.

Wir starten Whirlpool GUI und klicken auf Advanced: remote CLI. Im Feld geben wir die IP-Adresse von dem Server an, wo wir Dojo installiert haben, das Port 8899 bleibt.

Beispiel:

1
https://192.168.100.242:8899

In unserem Whirlpool-Verzeichnis finden wir eine Datei namens whirlpool-cli-config.properties. In dieser Datei finden wir cli-apiKey, den wir in das Feld “API Key” eingeben.

1
cat ~/Whirlpool/whirlpool-cli-config.properties

Dann klicken wir auf Connect.

Zuletzt werden wir nach der Passphrase gefragt, nach der Eingabe ist alles verbunden.

Über das Whirlpool GUI sind auch Empfangsadressen generierbar unter Deposit, womit man nicht die Samourai Wallet öffnen muss. Während dem Mix muss Whirlpool GUI nicht laufen. Unter Configuration kann ein SCODE eingeben werden, der und zu erhältlich ist und mit dem man einen Rabatt auf die Fees erhält.

Muss alles resetet werden, kann dies unter System - Reset GUI durchgeführt werden.

Alle Infos dazu sind auf der Samourai Webseite zu finden.