Linux guide

From Gridcoin
Jump to: navigation, search

Note: These instructions are for Debian based systems, openSUSE and Fedora, please see instructions on Github for other systems.


Pre-compiled binaries

If you prefer to use a repository rather than compile yourself, jump to Linux Downloads (pre-compiled)


Dependencies

All Installations:

Debian / ubuntu:

sudo apt-get install git libdb-dev libdb++-dev build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils libboost-system-dev libboost-filesystem-dev libboost-chrono-dev libboost-program-options-dev libboost-test-dev libboost-thread-dev libminiupnpc-dev software-properties-common libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libprotobuf-dev protobuf-compiler libqrencode-dev libqt5charts5-dev


openSUSE:

sudo zypper in git icoutils libdb-4_8-devel cxxtools-devel libtool autobuild automake pkg-config libopenssl-devel libevent-devel libbsd0 libbsd-devel libboost_system-devel libboost_filesystem-devel libboost_chrono-devel libboost_program_options-devel libboost_test-devel libboost_thread-devel libminiupnpc-devel libQt5DBus5 libQt5Designer5 libQt5Core5 libQt5Core-devel libQt5Gui5 libQt5Gui-devel libqt5-qtbase-devel libqt5-qttools-devel protobuf-devel qrencode-devel libQt5Charts5-devel


Fedora:

sudo dnf install git icoutils libdb-devel libdb-cxx-devel boost-build libtool auto-buildrequires automake pkg-config openssl-devel libevent-devel libbsd libbsd-devel boost boost-devel boost-filesystem boost-chrono boost-program-options boost-test boost-thread miniupnpc-devel import-properties-plugin qt5-designer qt5 qt5-devel qt5-qtbase qt5-qtbase-devel qt5-qdbusviewer dbusmenu-qt5-devel qt5-qtbase-gui qt5-qttools-devel protobuf-devel protobuf-compiler qrencode-devel qt5-qtcharts-devel


Sync to Gridcoin Repository

New Build

For if you do not have an existing ~/Gridcoin-Research folder from a previous build.

cd ~

git clone https://github.com/gridcoin/Gridcoin-Research

cd ~/Gridcoin-Research

git fetch --all

git reset --hard origin/master

OR

Upgrade Existing Build

For if you have previously built the client and have an existing ~/Gridcoin-Research folder.

cd ~/Gridcoin-Research

git fetch --all

git reset --hard origin/master


Troubleshooting

If you have trouble updating source from git try configuring git to not use ssl:

git config --global http.sslverify false

Build using Autotools

Build

cd ~/Gridcoin-Research

./autogen.sh

./configure --with-incompatible-bdb

For Systems with low RAM (e.g. <1GB RAM) such as Raspberry Pi's use the following configure command in place of the one above.

./configure --with-incompatible-bdb CXXFLAGS="--param ggc-min-expand=1 --param ggc-min-heapsize=32768"

make


Install

make install


Sometimes make install does not work.

cd src

strip gridcoinresearchd

sudo install -m 755 gridcoinresearchd /usr/bin/gridcoinresearchd


If you intend to run the client "Headless" please skip to #Creating config file

cd qt

strip gridcoinresearch

sudo install -m 755 gridcoinresearch /usr/bin/gridcoinresearch


Look for gridcoinresearch, it should be in the current folder.



Creating config file

Once Gridcoin is installed you will need to create and set-up the configuration (conf) file.

From command line:

mkdir ~/.GridcoinResearch

chmod 700 ~/.GridcoinResearch

Within this folder create a file containing the information from the page Gridcoinresearch_config_file


Blockchain snapshot (optional)

If this is a clean installation, you can improve the time it takes to get into sync with the chain by downloading a snapshot. The snapshot is never perfectly up to date, but it will get you most of the way there. Save this file in your ~/.GridcoinResearch folder:

http://download.gridcoin.us/download/downloadstake/signed/snapshot.zip


Extract the snapshot, making sure the folder and the blk001.dat file are in the ~/.GridcoinResearch folder, not a snapshot sub-folder.

Finally Restart the client


SSL (optional)

You really only need SSL if you are controlling Gridcoin directly from another host over a public network/internet using RPC.

This does not apply to most people, even if you are using ssh from another computer.

First, add this line to gridcoinresearch.conf

rpcssl=1


Then, run these commands in your shell:

cd ~/.GridcoinResearch

openssl genrsa -out server.pem 2048

openssl req -new -x509 -nodes -sha1 -days 3650 -key server.pem > server.cert

gridcoinresearchd


Wait for the server to start and then type:

gridcoinresearchd getmininginfo


This should return the current difficulty and other network settings.


Known Issues

There are occasionally issues with the permission of the ~/.GridcoinResearch folder, depending on which user first built/installed/ran the binary, such as root.

Simply change the ownership of the file to your user using this command

chown $USER -R ~/.GridcoinResearch