Install RetoSwap on Tails OS with Persistent Storage

Step-by-step guide to installing RetoSwap / Haveno on Tails OS with Persistent Storage, including the optional “Command filtered” onion-grater workaround.

*****Always check the official GitHub page first because the installer command or release URL may change after this post is published****

https://github.com/retoaccess1/haveno-reto/: Install RetoSwap on Tails OS with Persistent Storage

Install RetoSwap on Tails OS with Persistent Storage

This guide shows how to install RetoSwap / Haveno on Tails OS using Persistent Storage.

RetoSwap is a Haveno-based Monero P2P exchange app. On Tails, Persistent Storage is needed because Tails normally forgets installed apps and files after shutdown.

Important: This guide is for educational use. Before using any P2P trading app, read the official documentation, understand the risks, and follow your local laws.


Requirements

Before starting:

  1. Boot Tails OS.
  2. Unlock Persistent Storage.
  3. Set an Administration Password.
  4. Enable Dotfiles in Persistent Storage.
  5. Make sure Tor / internet is connected.

To enable Dotfiles:

Applications → Tails → Persistent Storage
Dotfiles → ON

After enabling Dotfiles, reboot Tails and unlock Persistent Storage again.


Get the RetoSwap installer URL and fingerprint

Go to the official RetoSwap GitHub release page and copy the latest Linux .deb installer URL.

For example, right-click this file name and copy the link:

haveno-v1.8.0-linux-x86_64-installer.deb

You also need the RetoSwap signing key fingerprint.

If you downloaded the public key file, you can check it with:

ls
gpg --show-keys --fingerprint reto_public.asc

Copy the fingerprint value without spaces.

For RetoSwap 1.8.0, the fingerprint used in this guide is:

DAA24D878B8D36C90120A897CA02DAC12DAE2D0F

Run the official Tails install command

Open Terminal and run this from the Persistent folder:

cd ~/Persistent

Then run:

curl -fsSLO https://github.com/haveno-dex/haveno/raw/master/scripts/install_tails/haveno-install.sh && \
bash haveno-install.sh \
https://github.com/retoaccess1/haveno-reto/releases/download/v1.8.0-reto/haveno-v1.8.0-linux-x86_64-installer.deb \
DAA24D878B8D36C90120A897CA02DAC12DAE2D0F

The installer should download the RetoSwap package, download the signature, import the signing key, verify the package, and move the files into Persistent Storage.

A successful install should show something like:

Haveno binaries have been successfully verified.
Files moved to persistent directory /home/amnesia/Persistent/haveno/Install
Haveno installation setup completed successfully.

Start RetoSwap

After installation, start RetoSwap from:

Applications → Other → Haveno / RetoSwap

Or start it from Terminal:

~/Persistent/haveno/App/utils/exec.sh

The first startup can take a few minutes because RetoSwap needs to connect over Tor, publish a hidden service, sync the Monero wallet, and download P2P network data.


Workaround for “Command filtered”

Only use this workaround if RetoSwap starts but fails with:

Command filtered

This can happen if Tails onion-grater blocks newer Tor hidden-service options used by RetoSwap 1.8.0.

Close RetoSwap first, then run:

cd ~/Persistent

cat > ~/Persistent/haveno/App/utils/haveno.yml <<'EOF'
---
- apparmor-profiles:
  - '/opt/haveno/bin/Haveno'
  users:
  - 'amnesia'
  commands:
    AUTHCHALLENGE:
    - 'SAFECOOKIE .*'
    AUTHENTICATE:
    - '.*'
    SETEVENTS:
    - 'CIRC ORCONN INFO NOTICE WARN ERR HS_DESC HS_DESC_CONTENT'
    GETINFO:
    - pattern: 'status/bootstrap-phase'
      response:
      - pattern: '250-status/bootstrap-phase=.*'
        replacement: '250-status/bootstrap-phase=NOTICE BOOTSTRAP PROGRESS=100 TAG=done SUMMARY="Done"'
    - 'net/listeners/socks'
    ADD_ONION:
    - pattern: 'NEW:(\S+) PoWQueueBurst=(\S+) PoWDefensesEnabled=(\S+) PoWQueueRate=(\S+) Port=9999,(\S+)'
      replacement: 'NEW:{} PoWQueueBurst={} PoWDefensesEnabled={} PoWQueueRate={} Port=9999,{client-address}:{}'
    - pattern: '(\S+):(\S+) PoWQueueBurst=(\S+) PoWDefensesEnabled=(\S+) PoWQueueRate=(\S+) Port=9999,(\S+)'
      replacement: '{}:{} PoWQueueBurst={} PoWDefensesEnabled={} PoWQueueRate={} Port=9999,{client-address}:{}'
    - pattern: 'NEW:(\S+) Port=9999,(\S+)'
      replacement: 'NEW:{} Port=9999,{client-address}:{}'
    - pattern: '(\S+):(\S+) Port=9999,(\S+)'
      replacement: '{}:{} Port=9999,{client-address}:{}'
    DEL_ONION:
    - '.+'
    HSFETCH:
    - '.+'
  events:
    CIRC:
      suppress: true
    ORCONN:
      suppress: true
    INFO:
      suppress: true
    NOTICE:
      suppress: true
    WARN:
      suppress: true
    ERR:
      suppress: true
    HS_DESC:
      suppress: true
    HS_DESC_CONTENT:
      suppress: true
EOF

sudo cp ~/Persistent/haveno/App/utils/haveno.yml /etc/onion-grater.d/haveno.yml
sudo systemctl restart onion-grater.service

Then start RetoSwap again:

~/Persistent/haveno/App/utils/exec.sh

Or open it from:

Applications → Other → Haveno / RetoSwap

Success check

RetoSwap is working when the app finishes loading and connects to the network.

If you start it from Terminal, successful logs may include:

p2pNetWorkReady=true
Application fully initialized

Notes

  • If the official installer is updated later, use the official instructions first.
  • Only use the workaround if you get the “Command filtered” error.
  • If first startup is slow, wait a few minutes. Tails and Tor can be slow, especially during first launch.
  • If you already have an older Haveno/RetoSwap install on Tails, back up your old data folder before changing anything.
  • Do not blindly overwrite old folders if you have funds, open trades, or important history.

Leave a Comment

Your email address will not be published. Required fields are marked *


Scroll to Top