All Bitcoin transactions are public, anyone can look at them. Whirlpool breaks deterministic links to past transactions and provides forward-looking anonymity. This part of the series demonstrates how to Whirlpool your bitcoin so that you can take steps to preserve the censorship-resistant and permissionless attributes of Bitcoin using your own Bitcoin full node as the private backend for your Samourai Wallet and Whirlpool GUI.
If you missed Parts One and Two of this series, be sure to check them out to better understand the real-world implications of using Bitcoin without any anonymity-preserving tools, and how to use Whirlpool on mobile.
Part 1: A real-world example
Part 2: Whirlpool on mobile
Part 3: Whirlpool on desktop with RoninDojo Tanto (You are here)
Part 4: Whirlpool on desktop with Sparrow Wallet (upcoming)
Method 2: Whirlpool On Desktop With RoninDojo
This section will demonstrate how to use Whirlpool on desktop with the Whirlpool GUI configured to run with your own Bitcoin full node, i.e., the Tanto by RoninDojo. This will build on the information from the last section about using Whirlpool on mobile only.
If you are not running your own Bitcoin node then you are trusting someone else's. RoninDojo is a free and open-source software (FOSS) developer team focused exclusively on building the most stable and tailored full node for Samourai Wallet support. With Samourai Wallet and RoninDojo combined, users are empowered with a mobile-first Bitcoin wallet that features privacy-enhancing tools like a Whirlpool CoinJoin implementation and post-mix collaborative spending tools, all powered by the user's own self-hosted Bitcoin full node communicating with the mobile client over Tor. This guide demonstrates setting up a new plug-and-play full Bitcoin node from RoninDojo called the Tanto.
The Tanto comes preassembled and preloaded with the RoninDojo software, there is no need to build a material list and order several pieces of hardware from multiple vendors. The Tanto features a milled aluminum case and bottom plate, painted black with a sleek RoninDojo logo in red. Inside the case, the Tanto is powered by a RockPro64 board, an interface card, and an M.2 NVMe 1TB SSD. The Tanto also includes a 32GB microSD card preloaded with the RoninDojo software image and power supply. Everything you need to get started is included.
Additionally, the Tanto includes the RoninSteel stainless steel seed phrase backup plate. Check out this guide to see a demonstration of the RoninSteel.
All together the Tanto includes:
- Aluminum case and bottom plate
- Ronin X4-90 adaptor
- LED stripe with GPIO connectors
- Thermo pad, rubber feet, screws, and hex wrench
- RockPro board
- RockPro64 PCIe X4 to M.2/NGFF NVMe SSD interface card
- Power supply
- M.2 SSD M-key, 1TB
- 32GB microSD card
- RoninSteel backup kit
- Spring-loaded punch
- Ethernet cable
- Sticker pack
- "Thank you" card
Step 1: Connecting
Connecting the Tanto is very simple:
- Plug one end of an Ethernet cable into the back of the Tanto.
- Plug the other end of the Ethernet cable into your router or switch.
- Plug in the power adaptor.
Next, just plug one end of the power cable for the included power supply into your outlet and the other end into the transformer.
The Tanto will automatically power on and start the initial configuration process. Ensure that the power is not interrupted during the automatic initial configuration process. This process takes roughly 10 minutes and you will notice the red light illuminate underneath the Tanto once this process is finished. Then, you will be ready to login to the Tanto through the web interface.
Step 2: Configuring
Configuring the Tanto is also very easy, it only takes a few minutes and the basic steps are to set your password, then log in.
Visit the official RoninDojo Wiki for detailed instructions and more.
Using a PC connected to the same local network as your Tanto, open your favorite web browser and type “https://ronindojo.local” into the URL bar. This should bring up the RoninDojo welcome page.
If that did not work, then you can achieve this same process by using the local IP address of your Tanto instead. This IP address can be found by logging into your router and checking the list of devices under the DHCP leases section. Your router should have the local IP address needed to log in, along with the password on a label somewhere on the device. If not, the directions are usually pretty easy to find with an online search for your manufacturer's router. Typically, you can just type “192.168.0.1” or “192.168.1.1” or “10.0.0.1” into your web browser and that will bring you to your router login page. From there the username/password can vary depending on manufacturer but they are usually something like “admin/admin” or “admin/1234” or “admin/password.” Alternatively, programs like Angry IP Scanner may be used.
In this example, the local IP address “192.168.69.17” is the one used to type into the URL bar.
Once you are at the RoninDojo welcome page, select “Let's start.”
You will be presented with your Root credentials; these are like the master username and password for the Tanto's backend. Save these details in a secure place like a password manager and do not share these with anyone for any reason. You cannot change these, they are pre-selected for you. Ensure that you select the box that says “I have backed up Root user credentials,” then click on “Continue.”
Next, you will set your user credentials, which you will use to access the Tanto through the web interface. The username is preselected for you, “ronindojo.” You can create any password you would like to use, just ensure it is at least eight characters. Repeat this password and make sure you secure these credentials in a safe place, like a password manager, and do not share them with anyone for any reason. Then click on “Finish.”
Next, you will see several services such as Bitcoin Core, Node.js, Indexer, BTC-RPC Explorer, Database, Nginx, Tor, and Samourai Whirlpool start. This takes a few minutes.
Once there is a green check mark next to each service, you can click on the “Take me to the Dashboard” button.
Step 3: Initial Blockchain Download (IBD)
Once you are at your dashboard, you can see the progress of the Bitcoin IBD and the vitals of your Tanto. The IBD will take about two days to complete, as the Tanto is connecting to other Bitcoin nodes and downloading the entire Bitcoin blockchain all the way back to the first block from January 2009. Once the IBD completes, you will have your own full copy of the blockchain and you will use your own copy to verify your transactions against and display your balances in your mobile wallet.
Some other vitals you can monitor are uptime, version, temperature, CPU load, and memory usage. Let this process run for a couple of days. Tanto will log you out automatically after some idle time but the processes continue to run in the background.
The IBD took a total of 2 days, 21 hours, 49 minutes in this demonstration.
Step 4: Indexing
Now that the entire Bitcoin blockchain has been downloaded, it needs to be indexed so that it is searchable. The indexing process begins automatically once the IBD is finished, and this process can take an additional day. You may notice that the “Indexer” status in the lower right-hand corner remains on 0%; don't panic! Simply navigate to the “Logs” option on the left-hand side menu and then the “Indexer” tab. You should see something like this screenshot below where the blocks are getting indexed in chunks of 2,000. Just let this process run to completion, which again can take another 24 hours.
Once the Indexer has caught up to the latest block height, you should see both Indexer and Dojo reporting 100% synchronized.
Step 5: Connecting To Mobile
You can click on “Manage” in the lower left-hand corner of the “Dojo” window and this will bring up the QR code that you can use to connect your Samourai Wallet. Make sure to toggle “Display values” to make the QR codes legible. The other QR code is for connecting your own BTC-RPC explorer. The explorer provides a way to use your own Dojo to feed data to a full-fledged Bitcoin blockchain explorer over Tor. Copy the .onion URL and password for the explorer, paste into Tor Browser, use “ronindojo” for the username, and bookmark page.
In your Samourai Wallet, from the home screen, press the icon at the top that looks like the WiFi symbol. Toggle on the option to connect to your own Dojo. Then click on “Scan QR” and the application will ask you to grant camera permission. Then scan the “Samourai Dojo” QR code in your Tanto dashboard from your mobile device. Make sure you toggle on the option to display values in your Tanto dashboard so the QR code is legible.
Now your mobile Samourai Wallet will communicate with your own full node. There are a couple of other important options to go over before covering the desktop Whirlpool GUI.
For example, you can log into your RoninDojo user interface (UI) from your mobile phone with the Tor Browser. From the dashboard, click on “Manage” in the lower left-hand corner of the “RoninDojo” window. This will bring up a QR code that you can scan to follow the .onion link to your RoninDojo UI. Then enter your RoninDojo UI password and bookmark this page.
Once you are logged into your RoninDojo UI on mobile, then you can just copy/paste the .onion URL and password for the explorer into your Tor browser as well. Leave the username blank, you can bookmark this page as well and now you have a mobile block explorer that uses your own Dojo as a backend and communicates with it via Tor.
Step 6: Install The Whirlpool GUI
This section will demonstrate how to connect the Whirlpool desktop client to your Tanto full node and your Samourai Wallet. With this configuration, you will be able to have your UTXOs mixing nonstop in the background from your desktop client and powered by your own full node.
First, you will need to download the Whirlpool client appropriate for your operating system. The different options along with accompanying developer signatures can be found here and detailed installation instructions can be found here. Be aware you will likely need to install OpenJDK as well, which is covered in the installation instructions.
*In a future release of the RoninDojo UI, the Whirlpool URL will be available from the web interface dashboard and you will no longer need to retrieve this information from the terminal as demonstrated here.*
Step 7: Connecting Tanto With The Whirlpool GUI
Once you have your Whirlpool client installed and your Samourai Wallet connected to your RoninDojo Tanto, you can make an SSH connection to the RoninDojo and start the Whirlpool service. The Whirlpool .onion URL you need is not available through the RoninDojo user interface dashboard. The Secure Shell (SSH) connection can be made with the same username password you used for the RoninDojo UI.
Once connected, navigate to “Samourai Toolkit” > “Whirlpool”:
Then select “start;” a script will run briefly and then you can hit any key to return to the main menu when prompted.
With the Whirlpool service started, and back at the main menu, now navigate to “Credentials” > “Whirlpool.”
This is where you can retrieve the .onion URL you need to use in the Whirlpool client graphical user interface (GUI) to get it configured. Highlight this URL and use “ctrl+shift+c” to copy it to your clipboard.
Now open the Whirlpool client application you installed earlier. Select the “Advanced: remote CLI” option and where it says “https://my-cli-host:8899” paste the .onion URL from your RoninDojo terminal. Depending on whether or not you are running a Tor daemon or just the Tor browser, you may need to select either “9050” or “9150” for appending the Tor proxy. Leave the API key blank; this will automatically be handled once initialized. Then click on “Connect.” Give the GUI some time, Tor connections can take a little while. You may need to try this a couple of times before the connection is made.
Step 8: Connecting Samourai Wallet To The Whirlpool GUI
Once the connection is made, you will be presented with a screen asking you to input the Whirlpool pairing payload from your Samourai Wallet. In Samourai Wallet, click on the 3-dot menu in the upper right-hand corner and select “Settings” > “Transactions” > “Pair to Whirlpool GUI” at the bottom. This will display a QR code that contains your Whirlpool payload. Simply click on the QR code option in the desktop GUI and this should launch your webcam, then hold up the QR code on your mobile so the camera can scan it.
Once received, then click on “Initialize GUI.”
Next, enter the passphrase for your Samourai Wallet and click on “Sign in.”
Once signed in, you should be able to see your balances, mixing activity, and then you can set targets for how many mixes you wish to achieve. You can even generate deposit addresses from the Whirlpool GUI.
Now when you initiate mixes from your mobile Samourai Wallet app, you can close the app afterwards and your UTXOs will continue to be registered as available inputs to mixes as free riders so long as your desktop client stays running. Plus this is all being done using your own node as a backend and communicating with it via Tor. Just follow the exact same steps as covered in the last section to initiate Whirlpool mixes on mobile like normal.
The next part of this series will demonstrate how to use Sparrow Wallet and Whirlpool, which is a great alternative for those who want the privacy preserving benefits of Whirlpool but don’t have an Android mobile device to install Samourai Wallet on.
This is a guest post by Econoalchemist. Opinions expressed are entirely their own and do not necessarily reflect those of BTC Inc or Bitcoin Magazine.