Walletwasabi: Make Wasabi Wallet persistent on TAILS

Created on 19 Mar 2020  路  10Comments  路  Source: zkSNACKs/WalletWasabi

TAILS do not support installing persistent software (aka additional software) from arbitrary .deb file, only packages inside official/custom-added repository are allowed.
_dpkg -i wasabi.deb_ will work, however installing a software without apt/synaptic manager is not persistent.
If you try to install .deb with _apt install wasabi.deb_, some hook functions implemented by TAILS in the apt tool will check if the package is in apt cache. If there is no match, apt will refuse to install it too.
So the solution is clear, we either:

  • Make Wasabi Wallet into the debian repo, so that it is accessible from TAILS synaptic manager.
  • Set up a self-host repository, and add some content in our tutorial page. People will need to add the repository in TAILS manually (pretty complicated, see Configuring additional APT repositories (for advanced users) )
    or:

  • Deliver a Flatpak or AppImage file, and store them in _~/Persistence_ so that we do not need to install it with dpkg on every session.

_The Dotfile_ feature of TAILS is also a good feature to make config files or wallet files persistent, though we may need some UX design to make it work for TAILS but not confusing in any other system.

questioresearch

Most helpful comment

I see the usecases but I also see the downsides.

Just some babbling that maybe could be interesting.

However we are already using persistent volume feature of TAILS, and the persistent volume must be activated every time if we want to operate on our Bitcoin no matter what, why don't we make full use of it?

Because there are consequences. I don't think it's good to say:" Since you are already using persistence as a storage, you may as well use it for everything else", persistence can be made more or less pervasive.
For example, I may want to use my Bitcoin Core with my HW and I don't want/need Wasabi, JoinMarket, BTCPay Server or whatever. In this scenario there's no simple way to avoid my "additional software" persistence to kick in.
On the other hand, someone that created a persistence with the one and only goal of using Wasabi could find some convenience.

Persistent volume is always an detachable thing and can only be unlocked by user password input upon startup (in TAILS greeter). That means: no unlocked persistent volume, no personal data/additional software, and the content itself inside it is secure enough.

Correct.

By using the term "automatically" it is not really "automatic", it is always the user that unlocks the persistent volume, and intends to let TAILS install software/make symlink.

Yeah but the user has no way to unlock the persistence without having these softwares installed or the symlinks created. As you said, user will have to reconfigure persistence and reboot to achieve this.
Let's say "automatically" as in "automatically installed/created at every session start".

After all using the script provided in tutorial on every session is no better than let TAILS handle the install (and make optional Dotfile symlink) and users can always copy the wallet files manually.

That's the point, you don't need to use this script in every session if you don't need, this is opt-in selectively when you need. Wasabi as additional software would be a much more pervasive thing. But again, for some usecases this would be a plus not a downside.

If we make full (and correct of course) use of those features of TAILS, the small thumbdrive can be our on-the-go bitcoin operation platform, setting up itself at all times. In an emergency I can plug in the thumbdrive, unlock the persistent, startup TAILS session, open wasabi, do coinjoin or transaction without hassle, shutdown the system, unplug the thumbdrive, it is still amnesic and incognito.

Yeah, this is nice but again it carries trade offs. I would like to highlight again the difference between the different shade of persistence and encourage people to not believe that: "since the persistence is created, than it doesn't matter how much we use it it'll always be the same thing."

Tails has always been dope and, as for everything, different people will use it differently.

All 10 comments

@yahiheb dpkg -i wasabi.deb will not make wasabi persistent (listed as _Additional Software_ in TAILS) and wasabi will be removed by the end of session.
The wallet files and other configs can be better stored in Dotfile directory. TAILS will make a symlink from HOME to Dotfile, thus copying /.walletwasabi to HOME is unnecessary, if we put /.walletwasabi under Dotfile it will be at HOME automatically. Please update your tutorial.

@PulpCattel

Distributing Wasabi installable with apt is in our roadmap.

@cyanlink yes, persistent Wasabi in amnesia OS is great, but as @yahiheb already linked above, we have a how to very well documented here, even with a script to automate the persistence setup. Please take a look, I believe this is functional. If anything is wrong, feel free to make a PR to fix it :rocket:

dpkg -i wasabi.deb will not make wasabi persistent (listed as Additional Software in TAILS) and wasabi will be removed by the end of session.

That's exactly my goal, and the direction of my original simple guide.
If, for example, Wasabi would be in the Debian repo, I would still encourage people to not make it automatically installed and updated by default (as I would encourage with any critical Bitcoin software). Instead, I would encourage them to use the persistent storage as an encrypted Bitcoin toolbox and Wasabi as one of the tools that can be installed in a disposable way when needed.
I also apply the same reasoning to symlinks or scripts that automatically copy/paste .walletwasabi in home or anything like that. I personally wouldn't be comfortable having my wallet folders linked or copy/pasted in home automatically every time. e.g, I could have multiple wallets and wanting to selectively choose which one to show to my Wasabi client.
But that's just for me and my guide.

@cyanlink as @MaxHillebrand said, if you want you can write a PR to add some instructions about Dotfiles persistence.

@PulpCattel I see your point of keeping a stable and "cold" backup of a toolbox. However we are already using persistent volume feature of TAILS, and the persistent volume must be activated every time if we want to operate on our Bitcoin no matter what, why don't we make full use of it?

Persistent volume is always an detachable thing and can only be unlocked by user password input upon startup (in TAILS greeter). That means: no unlocked persistent volume, no personal data/additional software, and the content itself inside it is secure enough.

By using the term "automatically" it is not really "automatic", it is always the user that unlocks the persistent volume, and intends to let TAILS install software/make symlink. That's what persistent volume is designed for. Thanks to the symlink, software do not need to be aware of the existence of persistent volume too. Additional software can be uninstalled in TAILS at any time (though you need to unlock persistent).

After all using the script provided in tutorial on every session is no better than let TAILS handle the install (and make optional Dotfile symlink) and users can always copy the wallet files manually.

If we make full (and correct of course) use of those features of TAILS, the small thumbdrive can be our on-the-go bitcoin operation platform, setting up itself at all times. In an emergency I can plug in the thumbdrive, unlock the persistent, startup TAILS session, open wasabi, do coinjoin or transaction without hassle, shutdown the system, unplug the thumbdrive, it is still amnesic and incognito.

This does sound very interesting @cyanlink, thank you for clarifying it!

Though I must say, that I'm not advanced in tinkering with tails, and I really cannot speak for the trade-offs to the two approaches. But it seems, that what you propose is easier to use after setup, and still secure under TAILS design.

I don't want to offload more work on you, you have already helped a lot in this issue. However, if you have some time to make a pull request to the documentation and propose a new amnesia wasabi setup, I would very much appreciate it, and there is even a monthly bounty for it too :)

I see the usecases but I also see the downsides.

Just some babbling that maybe could be interesting.

However we are already using persistent volume feature of TAILS, and the persistent volume must be activated every time if we want to operate on our Bitcoin no matter what, why don't we make full use of it?

Because there are consequences. I don't think it's good to say:" Since you are already using persistence as a storage, you may as well use it for everything else", persistence can be made more or less pervasive.
For example, I may want to use my Bitcoin Core with my HW and I don't want/need Wasabi, JoinMarket, BTCPay Server or whatever. In this scenario there's no simple way to avoid my "additional software" persistence to kick in.
On the other hand, someone that created a persistence with the one and only goal of using Wasabi could find some convenience.

Persistent volume is always an detachable thing and can only be unlocked by user password input upon startup (in TAILS greeter). That means: no unlocked persistent volume, no personal data/additional software, and the content itself inside it is secure enough.

Correct.

By using the term "automatically" it is not really "automatic", it is always the user that unlocks the persistent volume, and intends to let TAILS install software/make symlink.

Yeah but the user has no way to unlock the persistence without having these softwares installed or the symlinks created. As you said, user will have to reconfigure persistence and reboot to achieve this.
Let's say "automatically" as in "automatically installed/created at every session start".

After all using the script provided in tutorial on every session is no better than let TAILS handle the install (and make optional Dotfile symlink) and users can always copy the wallet files manually.

That's the point, you don't need to use this script in every session if you don't need, this is opt-in selectively when you need. Wasabi as additional software would be a much more pervasive thing. But again, for some usecases this would be a plus not a downside.

If we make full (and correct of course) use of those features of TAILS, the small thumbdrive can be our on-the-go bitcoin operation platform, setting up itself at all times. In an emergency I can plug in the thumbdrive, unlock the persistent, startup TAILS session, open wasabi, do coinjoin or transaction without hassle, shutdown the system, unplug the thumbdrive, it is still amnesic and incognito.

Yeah, this is nice but again it carries trade offs. I would like to highlight again the difference between the different shade of persistence and encourage people to not believe that: "since the persistence is created, than it doesn't matter how much we use it it'll always be the same thing."

Tails has always been dope and, as for everything, different people will use it differently.

@PulpCattel Yes I fully understand that now, and another example would be bisq. Bisq has no debian repository and they only deliver .deb files too. It's impossible to ask all developers to make it to the official repo. Keeping a .deb file in persistent is the only good practice (or you need to mess up with adding a (maybe insecure and dirty) APT repo by yourself).

Was this page helpful?
0 / 5 - 0 ratings

Related issues

2pac1 picture 2pac1  路  3Comments

yahiheb picture yahiheb  路  3Comments

the-metalworker picture the-metalworker  路  3Comments

davterra picture davterra  路  3Comments

MaxHillebrand picture MaxHillebrand  路  3Comments