estevaocm / bitkey

A self-contained read-only CD/USB stick with everything you need to perform highly secure air-gapped Bitcoin transactions. Offline cold storage made (slightly more) practical.
https://bitkey.io
23 stars 9 forks source link

Support Exodus wallet #15

Closed emartec closed 6 years ago

emartec commented 6 years ago

Yeah, I know, this wallet does not allow offline transactions and all, but sometime, this may be overkill for low value assets and just running it on bitkey (uncompromized os installlation) online is a "fair enough" level of security.

The advantage of Exodus is that it support multiple crypto .

https://www.exodus.io/releases/

My trials to install it on bitkey ended up with a missing "libconf-2.so.4" library. We need some other package in order for it to work properly

estevaocm commented 6 years ago

I am familiar with Exodus. Not crazy about it's lack of password confirmation for payments. I understand 2FA is under development. Anyway, it is good for exchanging altcoins. Anyway, could be useful for hot-online mode as you say. Let me know if you work that library out. I expect it might be a pain to offload the wallet to the USB drive as well, since Bitkey does not persist anything on disks. Might look into it in the future.

JedMeister commented 6 years ago

FWIW, it looks like the package you are missing is libgconf-2-4.

emartec commented 6 years ago

yeah just seen that. Trying to read Turnkey documentation to know how all this stuff works. I dont see any "apt-get" commands nowhere in the code, so I guess this is some magic behind the scene that I need to know to install a package on the build

emartec commented 6 years ago

BTW, just downloaded a fresh copy of the repository in a brand new TKLDev instance and i get this error at the end of the build: tar (child): electrum-ltc-*.tar.gz: Cannot open: No such file or directory

EDIT: Just made a git-pull. Try to compile again... be right back. EDIT2: Forget all this. Everything is OK.

estevaocm commented 6 years ago

Sorry about that, but it's fixed. Apps to download are in the bitkey/plan directory. Just drop the package name there and it will be downloaded.

JedMeister commented 6 years ago

@estevaocm - you beat me to it... Just saw the notification was headed over to say, just drop it in the plan! :smile:

estevaocm commented 6 years ago

Seems I'm a quick study, @JedMeister . =) BTW, any plans to update TKLDev from Jessie to Stretch? Just curious, Jessie is still fine.

emartec commented 6 years ago

Just to say that "just trop it in the plan directory" wasn't that easy.... Which file ? apps, desktop, main, etc... ? I've added somewhere in the "apps" file, and it didn't work at compilation. Tried again as the last line of "main" and it did work... I can confirm, Exodus is now working. But it seems that there is no way to start Exodus by specifying a data directory (usb key)...

JedMeister commented 6 years ago

@estevaocm

BTW, any plans to update TKLDev from Jessie to Stretch?

Yes, definitely. Work is currently in progress, although not sure when we'll release. Early next year I hope.

FWIW we're already building Stretch based appliances on (Jessie) TKLDev. You may be able to start work on a Stretch based build for BitKey too if you wanted to?!

I won't go into detail here as it's not the place, but I'm happy to provide the info you'll need.

FWIW we won't be doing an official release of anything else until a Stretch based TurnKey Core is published. There are still a few issues blocking which we still need to iron out before we release, but as I say, I'm pretty confident it should be very early next year.

One of the major items we hope to implement is a return to use the default Debian installer. Now that they provide full and stable live support (have for a while now), it seems like a no brainer. BitKey should then boot on newer Macs (as well as other UEFI hardware that currently doesn't work).

JedMeister commented 6 years ago

@emartec

Just to say that "just trop it in the plan directory" wasn't that easy.... Which file ? apps, desktop, main, etc... ? I've added somewhere in the "apps" file, and it didn't work at compilation. Tried again as the last line of "main" and it did work...

Deep apologies on my blase response. I do this stuff all day everyday and the curse of knowledge is a powerful force! Also I don't actually work with BitKey or other desktop type builds. I forgot that it has multiple plans. Mostly I work with our server appliances and all of them only have one plan...

Having said that, all the plans should be installed very early in the build process, so unless you added it to one of the plans that was processed before a critical dependency it should (at least in theory) work regardless. But obviously, that's not quite the case...

As far as your issues with starting Exodus, I know nothing about it and have no idea what you mean, so may be able to give some advice, but would need to understand a lot more about what you're actually trying to do there...

emartec commented 6 years ago

@JedMeister Thank you for your feedback. actually what i am trying to do is to make a specific software (Exodus wallet) work on the "bitkey" build. No big deal. I added the libgconf-2-4 library to the plan, and when I download the software and run it, it now work (no missing libs). Now, I just need to add exodus to the bitkey build (By "just", I still need to create that sha256 or pgp "asc" file) and I am done.

About my last phrase:

But it seems that there is no way to start Exodus by specifying a data directory (usb key)...

It is just a concern about this specific software. and by "usb key" I mean another key, not the one on which bitkey is flashed. I'll try to contact the software developers to address this issue.

JedMeister commented 6 years ago

@emartec As you've possibly already realised, anything you can script, you can pre-install in bitkey.

You can include files that you want in the finished product within the overlay directory. Anything that can be scripted to run in an unattended way (i.e. no interaction) can be included in one of the conf.d scripts. The scripts there are executed in alphanumeric order. If you want to dig in a bit deeper, the TKLDev docs are quite good IMO (at least compared to most of our other docs anyway...)

Good luck with it all! :smile:

estevaocm commented 6 years ago

Exodus automatically saves its wallet to the (virtual) hard drive. I don't think they provide a command-line interface, since their design aims for a simple user experience. We could figure out where the wallet is saved to, probably something like .exodus/wallet, and write a wrapper like the one for Electrum in order to automatically backup this wallet to a USB drive. The wrapper would also search the USB drive for this backup and copy it to the filesystem before launching Exodus.

If you want to check it out: bitkey/overlay/usr/local/bin/electrum-wrapper

emartec commented 6 years ago

It was more simple than that. The "--datadir=/my/data/dir" parameter allow to specify where the wallet is located.

In the pull, there is also a wrapper for exodus in order to mount and encrypt a wallet location on the USB drive. Just like the electrum-wrapper. But on exodus case, there is no "cold-offline", "hot-online" separation, since it is kind of pointless because it does not support a "watch only" wallet.

estevaocm commented 6 years ago

Awesome! I'll review the pull request as soon as my day job allows. Thank you!

estevaocm commented 6 years ago

@emartec , could I bother you to move the Exodus icon in wbar-config into the if condition for offline mode? Since it does not work offline. It would be after this:

if [ ! "$mode" = "cold-offline" ]; then cat >>$CONFIG<<EOF i: /usr/local/src/firefox/browser/icons/mozicon128.png c: firefox-wrapper t: Web browser

And before the next EOF

estevaocm commented 6 years ago

Opened #20 for this.

emartec commented 6 years ago

For the offline concern, It may be usefull if you just want to see your balance while offline, but I don't mind. I would also put it after all the other icons because I may not be used as much as the other tools (electrum)

estevaocm commented 6 years ago

Does it work offline? I assumed it didn't, but I should have tested.

emartec commented 6 years ago

Yes it does. But didn't test with funds in it yet. I'll give you feedback on this.