/Bitcoin-for-SBC

Dream script for generating, printing, initializing, splitting, signing and restoring Bitcoin software, hardware and multisig wallets on a Single Board Compter

Primary LanguageShellMIT LicenseMIT

Bitcoin-for-SBC

All-in-one script for generating, printing, initializing, splitting, signing and restoring Bitcoin software, hardware and multisig wallets on a Single Board Computer.

After successful installation and test vectors, you can permenantly disable online access and remain air-gapped for subsequent use.

After generating / restoring bitcoin seeds, should you want to update libraries, the safest option would be to format and wipe your SD/MicroSD/EMC module, reinstall the OS, and start afresh.

Alternatively you could purchase a new flash memory card and reinstall

Minimum hardware is Pi B (512Mb RAM required to compile cython), 8GB MicroSD with expanded root partition.

See installation notes here : http://www.reddit.com/r/Bitcoin/comments/2uv0i8/guide_setting_up_trezor_electrum_202beta_armory/

Note : Full "!" installation downloads 200Mb-600Mb and takes up to 2 hours on Pi B+ or 40mins on a Pi 2 / C1

Intended Audience

Bitcoiners with an interest in security, who want a cheap simple and secure cold offline airgapped environment to generate bitcoin seeds, sign transactions, and test/restore mnemonics.

Examples

* Generating BIP38 paper wallets with bitaddress
* Initializing and restoring TREZOR and KeepKey
* Initializing and restoring HW-1 / Ledger Nano
* Test restoring a BIP39 mnemonic on an airgapped machine
* Upgrading/Downgrading TREZOR firmware
* Generating a Armory wallet offline, exporting/printing the backup, and exporting the watch only "online" wallet for generating transactions
* Offline multisig signing - Armory lockbox, Coinkite +/- btchip, Electrum 2 multisig.

Environment / OS

Pi B/B+ : NOOBS Raspian (source)

Beaglebone Black rev C : OS (source)

Pi 2 : Raspbian

Odroid C1 : Ubuntu 14.04

Piper 1.12 ISO (source)

Why

Getting Started

* OS installation
* Internet
* Camera setup
* Overclocking Pi

Script Functions

  • Bitcoin-for-SBC script
    • Run ALL installation steps - no confirmation prompts (recommended) or
    • Setup and Repo update
      • update Raspian/Debian
    • Installation core apps
      • install Trezor + Libs + KeepKey
      • install BTChip + Libs
      • install Electrum 2 + Libs
      • install Armory + Libs
      • install MultibitHD (untested)
    • Optional installation of non-core apps
      • install Bitaddress
      • install Coinkite + BitMEX signing beta tools
      • download Trezor firmwares
      • Install BIP39 scripts
      • Install pybitcointools
    • Optional helper packages
      • install QR Code Libs
      • install ImageMagick
      • install Shamir's Secret Sharing Scheme
      • Install PassGuardian
      • Install GreenAddress
      • Install Chromium and Iceweasel/Firefox
    • Maintenance
      • Test hardwarewallet installation
      • Upgrade all packages
      • Installing Raspberry Pi camera(source) QR reading importing support
    • Special functions
      • Make QR codes for cold wallet use

ToDo

	* ? CUPS / CUPS PDF for print to PDF function ?
	* Text font for Command Line such that QR codes are displayed properly
	* ? Airgapped offline fresh install  - write raspbian ISO, transfer and install armory offline bundle.  No `apt-get update` or `upgrade` or `install`
	* ? plug-up security key udev rule
            * Testing on Pi Zero, if I can get my hands on one

Future direction

* It may be possible to create a fully offline, never connected script, similar to the Armory offline bundle
	* http://bitzuma.com/posts/offline-installation-of-armory-on-tails-and-ubuntu-linux/