HyperStake Wiki
HyperStake Wiki

Introduction[]

Why people want a Raspberry wallet? Because:

  • a staking wallet is at its best when it is opened 24/7
  • a staking wallet doesn't require much CPU power
  • a Raspberry doesn't need much electricity (and is silent, which helps for bedroom)

http://www.peercointalk.org/index.php?topic=2878.0

Maybe this should be merged with http://hyperstake.wikia.com/wiki/Installation_guide

Prerequisites[]

  • Raspberry Pi + Raspbian (any system should do, but for beginners let's assume it's Raspbian)
  • RAM
    • compilation could take up to 300MB of memory
    • model A with 256MB RAM - you will need bigger swap
    • model B and B+ with 512MB RAM - standard swap file (100MB) will do
    • Raspberry Pi 2 with 1GB needs no extra swap
    • maximize your RAM
      • sudo raspi-config - Advanced Options -> Memory Split -> set GPU memory to minimum (16MB)
    • free as much RAM as possible (if you run other applications/servers close them for the time of compilation)
  • Disk space
    • maximize your free space on SD card (min. 8GB card is recommended)
      • sudo raspi-config - Expand Filesystem (expands disk space to take all available SD card capacity)
  • Updated repositories
    • sudo apt-get update

Setup[]

All commands are executed as default user (pi)

1. Install dependencies (if you don't want Qt app you can skip qt4-qmake and libqt4-dev)

sudo apt-get install -y git build-essential libboost-dev libboost-filesystem-dev libboost-system-dev libboost-program-options-dev libboost-thread-dev libssl-dev libdb5.3++-dev libminiupnpc-dev libtool autoconf libboost-chrono-dev libboost-test-dev libprotobuf-dev protobuf-compiler qt4-qmake libqt4-dev

2. Create directories, remove then clone git repository

cd ~ && mkdir -p ~/cryptos && cd ~/cryptos && rm -rf HyperStake && git clone git://github.com/hyperstake/HyperStake

Compiling daemon (hyperstaked) from sources[]

1. Compile (takes some time, depending on CPU speed, ~2h on stock 700Mhz Raspi1)

cd ~/cryptos/HyperStake && ./autogen.sh && ./configure --with-incompatible-bdb --with-gui=no --enable-tests=no CFLAGS="-O2" && make

2. Strip debug symbols (optional but recommended: reduces binary size from 43 MB down to 2.8MB)

strip hyperstaked as

3. Allow daemon to be accessed from any path (optional: allows to use hyperstaked <command> instead of using full path)

sudo mv hyperstaked /usr/local/bin

Compiling HyperStake-qt from sources[]

1. Compile (takes even more time, depending on CPU speed, 4-8 hours)

cd ~/cryptos/HyperStake && qmake HyperStake-qt.pro && make

2. Strip debug symbols (optional but recommended: reduces binary size from 6.8MB to 5.5MB)

strip HyperStake-qt

3. Create Desktop icon (optional but useful)

wget https://raw.githubusercontent.com/presstab/HyperStake/master/src/qt/res/icons/hyperstake-128.png -O ~/.HyperStake/icon.png && echo -e "[Desktop Entry]\nName=HyperStake\nType=Application\nComment=Faster than light! \nCategories=Application\nExec=/home/pi/cryptos/HyperStake/HyperStake-qt\nIcon=/home/pi/.HyperStake/icon.png\nTerminal=false\nStartupNotify=true" > ~/Desktop/hyperstake.desktop

Create configuration file (required)[]

mkdir -p ~/.HyperStake && echo -e "rpcuser=hyperstakecrew\nrpcpassword=$(cat /dev/urandom | tr -cd '[:alnum:]' | head -c32)\nrpcallowip=127.0.0.1\ngen=0\nserver=1\ndaemon=1\nlisten=1\n" > ~/.HyperStake/HyperStake.conf

Bootstrapping blockchain (optional: speeds up syncing with network)[]

1. Download bootstrap file (url may change in the future, always check OP for current url)

cd ~/.HyperStake && wget http://hyperstrap.ml/bootstrap.zip

2. Remove old indexes and unzip blockchain file

rm -rf database blk* *.log && unzip bootstrap.zip

3. Remove zip to save space if all went well

rm bootstrap.zip

Updating[]

1. Pull fresh code from git

cd ~/cryptos/HyperStake && git pull

2. Repeat procedure for daemon or Qt (all steps)

Happy staking!