Whirlpool in the background with Sparrow Server and RaspiBlitz
CoinJoins are an important part of a Bitcoiners daily life. They allow financial privacy on the very open ledger that is the Bitcoin blockchain. However, because CoinJoins require the coordination of many different participants, they sometimes take time to be completed. A setup that can mix your coins 24/7 in the background comes in very handy. Below you will find a step by step guide of how to download, install, run and detach (keep alive) a Sparrow mixing session on your RaspiBlitz.
Install Sparrow Server
SSH into your RaspiBlitz and paste the following commands into your command line.
wget -O sparrow-server_1.8.1-1_arm64.deb https://github.com/sparrowwallet/sparrow/releases/download/1.8.1/sparrow-server_1.8.1-1_arm64.deb
wget -O sparrow-1.8.1-manifest.txt https://github.com/sparrowwallet/sparrow/releases/download/1.8.1/sparrow-1.8.1-manifest.txt
wget -O sparrow-1.8.1-manifest.txt.asc https://github.com/sparrowwallet/sparrow/releases/download/1.8.1/sparrow-1.8.1-manifest.txt.asc
curl https://keybase.io/craigraw/pgp_keys.asc | gpg --import
gpg --verify sparrow-1.8.1-manifest.txt.asc
sudo dpkg -i sparrow-server_1.8.1-1_arm64.deb
- The wget commands download the required files from the sparrowwallet repository. Please note that we install version 1.8.1 with these commands. Check the repository for the latests version and adjust them accordingly.
- Then we curl the PGP key of the Sparrow developer and import it into our gpg key-chain, to verify the signature using gpg.
- Finally we dpkg to install the Sparrow Server debian package.
Enyoing the content?
Support this blog and leave a tip!
Configure Sparrow Server
Sparrow Server looks for a configuration file in ~/.sparrow/ by default. In there we use JSON to configure our Sparrow Server installation.
Create and open the config file using vim from your home directory.
cd ~
mkdir .sparrow && vim .sparrow/config
Then copy the following JSON and replace <ELECTRS IP> with your Electrum Server IP address. If you have ElectRS installed on your RaspiBlitz this will be 127.0.0.1:50001
{
"mode": "ONLINE",
"fiatCurrency": "USD",
"exchangeSource": "COINGECKO",
"loadRecentWallets": true,
"validateDerivationPaths": true,
"groupByAddress": true,
"includeMempoolOutputs": true,
"notifyNewTransactions": true,
"checkNewVersions": true,
"openWalletsInNewWindows": false,
"hideEmptyUsedAddresses": false,
"showTransactionHex": true,
"showLoadingLog": true,
"showAddressTransactionCount": false,
"showDeprecatedImportExport": false,
"signBsmsExports": false,
"preventSleep": false,
"dustAttackThreshold": 1000,
"enumerateHwPeriod": 30,
"useZbar": true,
"serverType": "ELECTRUM_SERVER",
"useLegacyCoreWallet": false,
"electrumServer": "tcp://<ELECTRS IP>",
"recentElectrumServers": [
"tcp://<ELECTRS IP>"
],
"useProxy": false,
"autoSwitchProxy": true,
"maxServerTimeout": 34,
"maxPageSize": 100,
"usePayNym": false,
"sameAppMixing": false,
"mempoolFullRbf": false
}
To save and exit in vim hit ESC, then type :wq and hit enter
Run Sparrow Server in the background
Now that we have installed Sparrow Server and configured it to use our local Electrum Rust Server, we are ready to go. To start Sparrow Server we use the following command
/opt/sparrow/bin/Sparrow
However this would bind the process to our current SSH session and kill Sparrow Server once we disconnect. To avoid that we are going to use a tmux session to run the server. This way we can detach the session before disconnecting. Whenever we want to check on our Sparrow Server we can SSH in and reattach the session.
# Create a new tmux session
tmux
# Once the session started, run Sparrow Server and go through the setup
/opt/sparrow/bin/Sparrow
Once you are happy with your setup and started mixing, you can detach the session by hitting CTRL-b followed by d. This should bring you back to where you where when you started the session and print [detached (from session 0)] to your terminal.
Now you can log out from your SSH session and the process will remain active within the session. To reattach to the running session simply SSH back in and use the following command:
tmux attach
Congrats! You just spun up and configured your personal 24/7 mixing server. If you have any question feel free to leave them below or hit me up on Twitter