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)


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


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


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

cd ~/Gridcoin-Research

git fetch --all

git reset --hard origin/master


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


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

git config --global http.sslverify false

Build using Autotools


cd ~/Gridcoin-Research


./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

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:

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


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


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