Build your wallets on a flash drive with a live Linux OS
I have been building linux live versions for a number of years and found the lightweight but powerful operating system was amazingly useful as a portable desktop. It dawned on me that a hardware wallet could be made to protect my cryptocurrency with the same technology. These are enormously flexible tools that can go in an unlimited number of directions once they are built, but I attempted to describe a basic framework that contains the basic elements required to have wallets capable of storing the major cryptocurrencies, an additional hardware solution for off line storage and some means to protect your data from casual observation.
You will need to customize your build to suit your needs, but I picked wallets of the major currencies. For example I picked jaxx because it provides anonymous addresses for multiple currencies that can be used to move funds and accept funds without giving personal details. I do not recommend JAXX for long term storage, but it will provide long term storage and is a useful tool. Make sure to test the system as you go, take detailed notes, and research solutions carefully. I attempted to provide reliable source information but make no claims to the security of any of these applications. Be sure to research the tools used in your build. This is just a good framework for building a portable wallet with “pretty good security”. It provides a means to build portable wallets, hardware wallets, and back up your build to DVD for loss prevention with all of it, backups included, being password protected and encrypted.
For this build I choose to install a debian type distribution to a flash drive. 8GB will work, but 32GB, 64GB, or 128GB will provide some additional space to work with. These instructions will work for Debian, Ubuntu, Mint, or any other related distribution. I picked debian type installations because I like the package management and live USB support, but I’m fairly sure it could be done with Fedora based installs as well.
The installation instructions are easy to follow, but during the installation phase, I would recommend configuring grub to install to the flash drive rather than the main drive of the computer during the creation of the partitions. Also, encrypt your home folder or the entire system to prevent casual browsing of the files with some other operating system. Applications and app images can be installed to your home folder and those contents will be protected from observation if the drive is lost.
I will take a moment here to strongly recommend creating some sort of handwritten logbook that you keep in a very secure place. Take extensive notes on public and private keys to maintain access to your currency whenever you are creating accounts. You will want to write down and secure this information to recreate in any wallet you make. This was invaluable when creating my personal hardware wallet.
Detailed instructions for your version of linux can be found easily by searching for”install linux version to flash drive.”
Install Debian
Install Mint
https://linoxide.com/linux-how-to/install-linux-mint-18-usb-flash/
Install Ubuntu
https://help.ubuntu.com/community/Installation/FromUSBStick
It will also be necessary to modify your bios to boot from CD then USB then HD1 to begin this project.
CryptoCurrency Linux Build
In this document I have included the commands I used to build my personal Linux drive, but updates are constantly being released. I would recommend getting the most recent version of all the software described. It is vitally important that great care is taken to download software from trusted sources and check the hashes after downloading the software. The installation and use of Hashrat is described below. It is considered best practice to check the hash of every piece of software installed that is not downloaded from a “Trusted Repository” to verify the integrity of the downloaded file.
Open a Terminal and Get Started…
Install wget
GNU Wget is a free software package for retrieving files using HTTP, HTTPS, FTP and FTPS the most widely-used Internet protocols.
$ sudo apt-get install wget
Install GDBI Package Manager
First install Gdebi package. Gdebi will take care of all necessary dependencies while installing a .deb software package.
$ sudo apt-get install gdebi
After ensuring GDBI is installed it is possible possible to install .deb files with the following command context.
$ sudo dpkg -i FileName.deb
$ sudo apt-get install -f
Install github fuse
Runs github AppImages
$ sudo apt-get install fuse
$ sudo modprobe fuse
$ sudo groupadd fuse
$ user=”$(whoami)”
$ sudo usermod -a -G fuse $user
Install Curl
$ sudo apt-get install curl
Verify the check sums of all software when downloaded from reputable sources with shasum.
See man shasum for syntax with the following command.
Your system can be protected from loss with Pinguy Builder.
If you are careful about what is installed it is easy to build a wallet that will fit on a DVD. Keep the fat down to a minimum and a backup can be built with Pinguy Builder. Pinguy Builder is currently hosted in Sourceforge website. Head over to the following URL and download the latest Pinguy Builder version.
Download Pinguy Builder
https://sourceforge.net/projects/pinguy-os/files/ISO_Builder/
Go to the download location, and then install Pinguy Builder as shown below.
$ sudo gdebi pinguybuilder_4.3-6_all-beta.deb
$ sudo dpkg -i pinguybuilder_4.3-6_all-beta.deb
$ sudo apt-get install -f
Install Browsers
Remove Firefox / Thunderbird
To remove some of the fat in the installation you may wish to remove Firefox and Thunderbird. It is absolutely unnecessary if you are a fan of the packages, but if you need the space, there is 300 MB of space.
$ sudo apt remove firefox
$ sudo apt remove thunderbird
Add Chromium Browser
Chromium is a good choice because it supports the tor, jaxx, metamask, and ledger nano extensions. This makes the wallets and apps easily supported between devices and operating systems. Essentially Chrome or Firefox is a choice that each user will make depending on their personal preferences. I personally was a Firefox fan, but at the time of writing this document the Chrome extensions worked better for my purposes. It allowed me to run the TOR and JAXX extension with less issues than Firefox, but as I stated above, this comes down to a personal decision based on the software prefered by the user. I have also included the installation of the Brave and TOR browsers as options to make the environment as comfortable as possible. You may want to isolate the uses of browsers as well by installing 2 or more browsers for different purposes.
$ Chromium sudo apt install -y chromium-browser
If you need Flash, run the following command.
$ sudo apt install -y pepperflashplugin-nonfree
$ sudo update-pepperflashplugin-nonfree –install
I typically configure chromium to open in incognito mode by editing the application entry in the desktop file. You have to change one line in the chromium-browser.desktop file. Use sudo gedit to open the file in /usr/share/applications/ directly and make the edits.
Find the File…
/usr/share/applications$ ls chrom.
Chromium-browser.desktop
Any text editor can be used, VI or NANO can be used from the command line, but with the space available in modern systems why not used a GUI based text editor. There are any number of them emacs, lime, ect, but for the sake of this document I’m going to use gedit. If your system does not have gedit it can be installed from the command line by typing:
$ sudo apt-get install gedit
It can be opened by typing:
$ gedit /filename
Or
$ sudo gedit /filename (to provide administrative privilege)
To edit the file open the file with a text editor with the following command.
$sudo gedit /usr/share/applications/chromium-browser.desktop
Find the first line in the file that begins with Exec=chromium-browser
Replace the line by Exec=chromium-browser –incognito
An additional browser may be helpful for non- crypto related browsing. I currently like the Brave browser or the TOR browser.
Install Brave
https://github.com/brave/browser-laptop/releases
For AMD64:
$ wget -O brave.deb https://laptop-updates.brave.com/latest/dev/ubuntu64
$ sudo dpkg -i ./brave.deb
$ sudo apt-get install -f
Install TOR
$ sudo apt install tor Start Service
$ sudo /etc/init.d/tor start
Verify TOR Service
$ ps aux|grep tor
$ systemctl status tor
Start TOR Service on Boot
$ sudo update-rc.d tor enable
Install the TOR Chromium Extension
With Tor installed, let’s add the necessary extension to Chrome. Here’s how:
Open Chrome
Point the browser to the Tor Button extension page
https://chrome.google.com/webstore/detail/tor-browser-button/goimpaiignmlnmdnpnkbbjoophmbebhp
Click ADD TO CHROME
When prompted, click Add extension
Allow the installation to complete
Tor Browser
$ sudo add-apt-repository ppa:webupd8team/tor-browser
$ sudo apt-get update
$ sudo apt-get install tor-browser
Communications Programs
You may wish to install communication programs like Signal or Telegram
Installing standalone Signal Desktop
Download the repository’s key and install it into the system
$ curl -s https://updates.signal.org/desktop/apt/keys.asc | sudo apt-key add –
$ sudo add-apt-repository “deb [arch=amd64] https://updates.signal.org/desktop/aptxenial main”
$ sudo apt update
$ sudo apt install signal-desktop
Install Telegram
$ sudo add-apt-repository ppa:atareao/telegram
$ sudo apt-get update
$ sudo apt-get install telegram
Begin Installing Wallets
Wallet .appimages should be executed inside of the home folder in a directory like /home/username/Documents/Wallet to encrypt them and prevent access to the files if the flash drive is ever misplaced
Install JAXX Wallet – jaxx.io
This can be done as an app image or as a chromium extension
https://jaxx.io/downloads.html
Copy jaxx-1.3.15-x86_64.AppImage to /home/username/Documents/Wallet/jaxx
Note: The chromium extension worked better in my install than the appimage, but that is mostly determined by how your set your appimage permissions with chmod.
Jaxx requires Ubuntu 12.04, Fedora 21, or Debian 8 (or later)
$ sha1sum jaxx-1.3.18-x86_64.AppImage
$ sudo chmod u+x jaxx-1.3.18-x86_64.AppImage
$ ./jaxx-1.3.18-x86_64.AppImage
Note: the ./ in front of the ./jaxx-1.3.15-x86_64.AppImage executes the file. You will be promted to add the file to the menu system makes the .appinmage executable and adds it the menu to execute in the future.
https://itsfoss.com/use-appimage-linux/
Note: If issues occur with permissions chmod 770 or chmod 777 can be used in place of chmod u+x but it opens up permissions to more users. It is important to restrict permissions as much as possible without restricting the application from running properly. If the wallets are built inside of the encrypted home file no other user will have access to the file without your password, and many are password protected to enforce security policy as well. It is still prudent to enforce the tightest security policy possible. For more details see man chmod
In general, chmod commands take the form:
chmod options permissions file name
Install Ledger Nano S
https://www.ledgerwallet.com/apps
Any supported hardware wallet will work, but I chose ledger nano because it is what I had handy for this example. You may like Trezor or keep key or some other variation. The important issue is that you have offline storage for you cryptocurrency.
https://www.ledger.com/products/ledger-nano-s
Ledger Nano S Ledger Live
https://www.ledger.com/pages/ledger-live
Ledger live is the newest software for installing currencies on the Ledger Naono. If you are invested in NEO you will also have to install Neon as well. Neon will provide both a desktop wallet and hardware wallet solution for NEP-5 tokens. It can also access accounts if you have the private key incase you have lost access to your wallet for some reason.
Download Ledger Live
$ sha1sum ledger-live-desktop-1.1.10-linux-x86_64.AppImage
$ sudo chmod u+x ledger-live-desktop-1.1.10-linux-x86_64.AppImage
$ ./ledger-live-desktop-1.1.10-linux-x86_64.AppImage
Ledger live seems to have corrected the issue of unrecognised USB device with the ledger wallet but it may be necessary to edit /etc/udev/rules.d/ to map the device. I found this frustrating when I first started working with a Ledger Nano S so I have included instructions to troubleshoot and repair this issue.
https://developer.chrome.com/apps/app_usb#caveats
It may be possible to run this command to create the /udev rule. If this fails it may be necessary to manually edit the file manually with a text editor.
$ sudo wget -q -O – https://raw.githubusercontent.com/LedgerHQ/udev-rules/master/add_udev_rules.sh | sudo bash
On most Linux systems, USB devices are mapped with read-only permissions by default. To open a device through this API, your user will need to have write access to it too. A simple solution is to set a udev rule. Create a file.
/etc/udev/rules.d/50-yourdevicename.rules with the following content:
SUBSYSTEM==”usb”, ATTR{idVendor}==”[yourdevicevendor]”, MODE=”0664″, GROUP=”plugdev”
If the system won’t update the UDEV rules with the file copy the UDEV Directory to /etc/udev/ Run nautilus as root
$sudo nautilus
Use the File Explorer to copy the UDEV direcctory to /etc/udev/
Install Ledger Wallet – NEO
NEON – http://neonwallet.com/
Neon also provides software wallets for neo and nep-5 tokens
Execute the installation in /home/username/Documents/Wallet/neo
Download the .deb file for ubuntu from here : https://github.com/CityOfZion/neon-wallet/releases
.deb file Install
$ sha256sum Neon-0.2.8_amd64.Linux.deb
$ sudo dpkg -i Neon-0.2.8_amd64.Linux.deb
$ sudo apt-get install -f
AppImage file Install Linux AppImage:
$ sha256sum Neon-0.2.8-x86_64.Linux.AppImage
$ Neon-0.2.8-x86_64.Linux.AppImage sudo chmod u+x
$ ./Neon-0.2.8-x86_64.Linux.AppImage
Install EOS Greymass
https://github.com/greymass/eos-voter
$ shasum -b -a 512 linux-eos-voter-0.5.1-amd64.deb
$ sudo dpkg -i linux-eos-voter-0.5.1-amd64.deb
$ sudo apt-get linux-eos-voter-0.5.1-amd64.deb
EOS is also now supported by the Ledger Nano s
Install Monero
Monero is also now supported by the Ledger Nano s
Before proceeding with the installation, the following packages are required:
Update Ubuntu’s repository
$ sudo apt update
Install dependencies to be able to compile Monero
$ sudo apt install build-essential cmake libboost-all-dev miniupnpc libunbound-dev graphviz doxygen libunwind8-dev pkg-config libssl-dev libcurl4-openssl-dev libgtest-dev libreadline-dev libminiupnpc-dev libzmq3-dev
Monero Official Download Links
https://getmonero.org/downloads/#linux
Linux, 64-bit Current Version: 0.12.3.0 Lithium Luna
SHA256 Hash (GUI): dcf0a103589b8e71cdb8298dec96610f9f50b25e8f48afef5186d4c460a4ecae
Linux, 64-bit Command-Line Tools Only
Current Version: 0.12.3.0 Lithium Luna
SHA256 Hash (CLI): 72fe937aa2832a0079767914c27671436768ff3c486597c3353a8567d9547487
Note: for these examples I’m using the file monero-linux-x64-v0.12.3.0.tar.bz2. Replace this file name with the current release file name.
Copy the downloaded Monero file to your /Wallet/monero directory and expand the TAR file with the following command.
Execute the installation in /home/username/Documents/Wallet/monero/
$ sha256sum monero-linux-x64-v0.12.3.0.tar.bz2
$ sudo tar xjf monero-linux-x64-v0.12.3.0.tar.bz2
To avoid issues you should set permissions recursively for all files in the directory with chmod.
$ sudo chmod u+x . -r
Or
$ sudo chmod 777 . -r
I have found this can correct some issues with the installation. You may want to experiment with the permissions. To see a more detailed description of CHMOD view the man file by typing “man chmod” in a terminal window. I have seen the program have errors and functions that failed to operate correctly because the installation of the TAR file did not have appropriate permissions. The installation of the Monero Wallet is one of the most versatile and possible difficult wallets to work with. It can be compiled from source, can mine, and may download the entire blockchain. All of these attributes should be considered as you are working with the wallet. If the size of the flash drive is less than 128GB it is recommended that a remote node is used. The current size of the blockchain is greater than 64GB
Use a remote node to avoid the size of the Monero blockchain
Connecting to the node from the GUI wallet After you enter your password for your wallet, you will see a pop up that will give you the option to “use custom settings”. Click on it. You will then be sent to the “Settings” page in the GUI. At this point you should see two text boxes to the right of a label that says “Daemon address”. In the first box (the one to the left) you need to enter the address of the node that you want to connect to. This address might look like node.moneroworld.com or it could look like any old ip address. The smaller box to the right is where you enter the node’s port. The default port is 18081 but if you are using a random node the port that is used will vary. The port for node.moneroworld.com uses 18089.
Default Node Setting: 127.0.0.1 Port: 18081
Common Remote Noe: node.moneroworld.com Port: 18089
This article began as notes I took to build this wallet. It was a series of builds and a lot of research to find the answers I needed to build this wallet platform. The wallet platform can be built as written, but it was actually designed as a basic guide to developing a wallet that is flexible enough to support the major cryptocurrencies on a flash drive. It is the groundwork that can be built upon to support any of the major cryptocurrencies, support VPNs or the TOR network to have secure communication with web exchanges, and provide some form of disaster recovery. I can not stress enough the importance of taking good notes and employing security protocols to maintain access to your wallets. In all reality you should need nothing more than access to a small notebook to obtain access to any wallet you create from any computer. The flash drive is just a tool to control access to your private keys. From here you should take your installation and make it your own. I have installed gaymass for eos support, edited desktop icons, customized my installation to make it comfortable to use. Remember the internet is an unlimited supply of ideas, you just need to figure out how to ask the question, and verify the sources.
This article is provided by u/blackfootradio at r/cryptotux
READMORE:https://trybe.one/build-your-wallets-on-a-flash-drive-with-a-live-linux-os/
You have a minor misspelling in the following sentence:
It should be preferred instead of prefered.Coins mentioned in post: