Installation Dojo Vanilla auf Linux X86

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.

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

Hinzufügen des GPG-Keys

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

Hinzufügen des Repositories

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
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

Check ob es geklappt hat

docker --version

Als Ausgabe müsste so etwas kommen:

Docker version 20.10.21, build baeda1f

Hinzufügen des Benutzers in die Docker-Gruppe

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.

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

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

Check ob alles geklappt hat

docker-compose version

Es müsste so etwas kommen:

Docker Compose version v2.13.0

Download Dojo Vanilla

Wir wechseln in unser Download Verzeichnis

cd ~/Downloads

Und laden die aktuelle Dojo-Version herunter, die wir auf dem Samourai Repository finden Releases · Dojo / samourai-dojo · GitLab

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

Als nächstes entpacken wir die Datei

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

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

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

cd ~/Dojo/docker/my-dojo

Hier finden wir ein Verzeichnis conf, in das wir wechseln

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

nano docker-bitcoind.conf.tpl

Anpassen des RPC_Users und Passworts

BITCOIND_RPC_USER=dojorpc

andern in:

BITCOIND_RPC_USER=nakamoto

Passwort anpassen

BITCOIND_RPC_PASSWORD=dojorpcpassword

andern in:

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.

BITCOIND_INSTALL=on

andern in:

BITCOIND_INSTALL=off

Anpassen der BitcoinD IP-Adresse

BITCOIND_IP=172.28.1.5

andern in die IP wo BitcoinD installiert ist

BITCOIND_IP=192.168.100.242

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

INDEXER_TYPE=addrindexrs

ändern in

INDEXER_TYPE=fulcrum

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

INDEXER_IP=172.28.1.6

ändern in

INDEXER_IP=192.168.100.242

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

INDEXER_PORT=50001

ändern in

INDEXER_PORT=50002

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

INDEXER_BATCH_SUPPORT=inactive

ändern in

INDEXER_BATCH_SUPPORT=active

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

INDEXER_PROTOCOL=tcp

ändern in

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.

MYSQL_ROOT_PASSWORD=rootpassword

ändern in

MYSQL_ROOT_PASSWORD=asdfjlkafgbuiower

Und auch dieses Passwort muss dringend geändert werden:

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

Wenn wir schon einen PayNym haben, können wir hier die PayNym-Adresse eintragen. Ab dann funktioniert der Login via PayNym (AUTH47).

NODE_PAYMENT_CODE=

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 Releases · Whirlpool / whirlpool-client-cli · GitLab 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

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

Einfügen:

[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.

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 müssen wir die aktuelle Dojo Version herunterladen und entpacken.

Wir wechseln in das tmp Verzeichnis

cd /tmp

Jetzt laden wir die aktuellste Dojo Version herunter

wget https://code.samourai.io/dojo/samourai-dojo/-/archive/v1.20.0/samourai-dojo-v1.20.0.tar

Entpacken der Version

tar -xfv samourai-dojo-v1.20.0.tar

Kopieren der neuen Dateien

cp -r /samourai-dojo-v1.20.0/* ~/Dojo

Jetzt wechseln wir in unser Dojo-Verzeichnis

cd ~/Dojo/docker/my-dojo

Dojo stoppen

./dojo.sh stop

Dojo Upgrade starten

./dojo.sh upgrade

Anbindung Samourai Wallet mit Dojo und Whirlpool

Dojo Maintenance Tool starten

Das Dojo maintenance Tool ist über eine Tor Onion-Adresse verfügbar. Diese bekommen wir mit:

./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

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.

sudo systemctl start whirlpool

Check ob alles läuft

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

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:

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.

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. Ein weiteres tolles Feature ist, dass man über Whirlpool GUI die Option „Mix-to-XPUB“ ein und ausschalten kann.

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

Alle Infos dazu sind auf der Samourai Webseite zu finden.