Build and run the Groestlcoin Core 25.0 node with a graphical wallet

Author:

In continuation to the article Building from source and run a Groestlcoin node (cli only) under Ubuntu 22.04 LTS, which offers only a command line management to the Groestlcoin wallets, this article will show a more convenient way with a graphical user interface. Groistlcoin Core software includes a graphical user interface for the Groestlcoin wallet.

main menu
node window synced with network

The first thing is to build the Groestlcoin Core software as shown in the link above with some additional dependencies and options.
It’s worth noting there is a package for the graphical Groestlcoin wallet on the official site of Groestlcoin, but the idea behind this series of articles is to build everything from the official source code and to run an own Groestlcoin node, which will be used for the user’s Groestlcoin wallet. Such no trusting anyone or any site, but only the official source code of the project. The security is really important in the crypto world.

Here are the steps to build and run the Groestlcoin node with wallet functionality – command line and graphical user interface. The graphical user interface uses QT5 to build the wallet interface and all libraries are included in the official Ubuntu repositories.

STEP 1) Build and run the Groestlcoin node

For more detailed information check out Building from source and run a Groestlcoin node (cli only) under Ubuntu 22.04 LTS.

First, install the dependencies but with additional libraries including the QT5 and qrencode. Update the system and install the needed additional binaries and libraries to build and run the Groestlcoin core package. These dependencies include the ones needed to build the Groestcoin wallet functionality with GUI! By default, many Linux systems won’t even include dependencies needed to build the wallet.

sudo apt -y update
sudo apt -y upgrade
sudo apt install build-essential libssl-dev libboost-all-dev libtool automake libevent-dev bsdmainutils git make g++ gcc autoconf cpp ngrep iftop sysstat autotools-dev pkg-config libminiupnpc-dev libzmq3-dev libdb-dev libdb5.3++-dev sqlite3 libsqlite3-dev

An additional 1042 Mbytes will be occupied.

0 upgraded, 277 newly installed, 0 to remove and 3 not upgraded.
Need to get 211 MB of archives.
After this operation, 1042 MB of additional disk space will be used.

STEP 2) Get the “Groestlcoin Core” code and compile it with wallet GUI support

The git may be used to download the latest source code. Or the user may choose to download the latest stable tag (release). At present, the latest stable release is 25.0 – https://github.com/Groestlcoin/groestlcoin/archive/refs/tags/v25.0.tar.gz. Download it and unpack it.

wget https://github.com/Groestlcoin/groestlcoin/archive/refs/tags/v25.0.tar.gz
tar xf v25.0.tar.gz
cd groestlcoin-25.0/
export CFLAGS="-march=native -O2 -msse3 -fomit-frame-pointer -pipe"
export CXXFLAGS="${CFLAGS}"
export CHOST="x86_64-pc-linux-gnu"
./autogen.sh
./configure --prefix=/home/myuser/groestlcoin-core --enable-util-wallet --with-utils --with-gui=qt5 --with-qrencode
make -j 8
make install

There are two more options – QT5 and qrencode compared to the command line-only version.

Change the directory name “/home/myuser/groestlcoin-core” to something meaningful for the current setup or more generic and global for the system such as “/usr/local/groestlcoin-core” (and “sudo make install” after the compiling process). It is a good idea to install and run it from an ordinary user, not a root or an administrative user.
Check out the last screen after the configure command (after the configure command above, this is the last 60 lines, where the configurator shows what is going to be compiled and built ):

./configure --prefix=/home/myuser/groestlcoin-core --enable-util-wallet --with-utils --with-gui=qt5 --with-qrencode
......
......
Build Options:
  with external callbacks = no
  with benchmarks         = no
  with tests              = yes
  with ctime tests        = no
  with coverage           = no
  with examples           = no
  module ecdh             = no
  module recovery         = yes
  module extrakeys        = yes
  module schnorrsig       = yes

  asm                     = x86_64
  ecmult window size      = 15
  ecmult gen prec. bits   = 4

  valgrind                = no
  CC                      = gcc
  CPPFLAGS                =  
  SECP_CFLAGS             = -O2  -std=c89 -pedantic -Wno-long-long -Wnested-externs -Wshadow -Wstrict-prototypes -Wundef -Wno-overlength-strings -Wall -Wno-unused-function -Wextra -Wcast-align -Wcast-align=strict -fvisibility=hidden 
  CFLAGS                  = -march=native -O2 -msse3 -fomit-frame-pointer -pipe
  LDFLAGS                 = 

Options used to compile and link:
  external signer = yes
  multiprocess    = no
  with experimental syscall sandbox support = yes
  with libs       = yes
  with wallet     = yes
    with sqlite   = yes
    with bdb      = yes
  with gui / qt   = yes
    with qr       = yes
  with zmq        = yes
  with test       = no
  with fuzz binary = yes
  with bench      = no
  with upnp       = yes
  with natpmp     = no
  use asm         = yes
  USDT tracing    = no
  sanitizers      = 
  debug enabled   = no
  gprof enabled   = no
  werror          = no
  LTO             = no

  target os       = linux-gnu
  build os        = linux-gnu

  CC              = gcc
  CFLAGS          = -pthread -march=native -O2 -msse3 -fomit-frame-pointer -pipe
  CPPFLAGS        =   -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3  -DHAVE_BUILD_INFO -DPROVIDE_FUZZ_MAIN_FUNCTION 
  CXX             = g++ -std=c++17
  CXXFLAGS        =    -fstack-reuse=none -Wstack-protector -fstack-protector-all -fcf-protection=full -fstack-clash-protection      -fno-extended-identifiers -march=native -O2 -msse3 -fomit-frame-pointer -pipe
  LDFLAGS         =  -lpthread  -Wl,-z,relro -Wl,-z,now -Wl,-z,separate-code -pie   
  AR              = /usr/bin/ar
  ARFLAGS         = cr

It reports the features and libs, which going to be built in the compiled software. As the options for the wallet were enabled, the configure reports the build script will build wallet functionality, too with QT GUI and QR addition. In fact, if SQLite and bdb libraries are missing, the wallet won’t be built even if it was included in the configure script options. So check the last screen of the configure script (the output of the ./configure command above). This time the GUI will be built because all the dependency libraries are installed on the system.
The building of the Groestlcoin Core with the wallet is relatively fast on 4-8 cores and after a few minutes, the software is ready to be installed on the configured path and to be used.

STEP 3) Run the Groestlcoin node.

Check everything is OK and then run the groestlcoind daemon, which will connect to the network and will save the blockchain in home directory/.groestlcoin/ (in the current set up under /home/myuser/.groestlcoin/).
ls command shows the additional programs in the package.

myuser@mydesktop:~/groestlcoin-core/bin$ cd /home/myuser/groestlcoin-core/bin/
myuser@mydesktop:~/groestlcoin-core/bin$ ls -al
total 46924
drwxrwxr-x 2 myuser myuser     4096 Aug 25 12:04 .
drwxrwxr-x 6 myuser myuser     4096 Aug 25 12:04 ..
-rwxr-xr-x 1 myuser myuser  1085888 Aug 25 12:04 groestlcoin-cli
-rwxr-xr-x 1 myuser myuser 13260936 Aug 25 12:04 groestlcoind
-rwxr-xr-x 1 myuser myuser 22050768 Aug 25 12:04 groestlcoin-qt
-rwxr-xr-x 1 myuser myuser  3268464 Aug 25 12:04 groestlcoin-tx
-rwxr-xr-x 1 myuser myuser  1116416 Aug 25 12:04 groestlcoin-util
-rwxr-xr-x 1 myuser myuser  7249704 Aug 25 12:04 groestlcoin-wallet
myuser@mydesktop:~/groestlcoin-core/bin$  ./groestlcoind --version
Groestlcoin Core version v25.0.0
Copyright (C) 2014-2023 The Groestlcoin Core developers
Copyright (C) 2009-2023 The Bitcoin Core developers

Please contribute if you find Groestlcoin Core useful. Visit
<https://groestlcoin.org/> for further information about the software.
The source code is available from <https://github.com/Groestlcoin/groestlcoin>.

This is experimental software.
Distributed under the MIT software license, see the accompanying file COPYING
or <https://opensource.org/licenses/MIT>

Most used programs are groestlcoind and groestlcoin-cli, which offer a command line management of a Groestlcoin wallet addresses. And here the groestlcoin-qt is used to manage the Groestlcoin wallet and the node. In fact, the GUI application groestlcoin-qt will immediately start the Groestlcoin node synchronizing, because without it cannot operate on Groestlcoin addresses in the network.

For more details on what is going on in the background in the logs, the user may check – Building from source and run a Groestlcoin node (cli only) under Ubuntu 22.04 LTS.

So now, the node is up and running, but still copies the blocks from the network. So, the node is still in synchronizing state. After a couple of minutes of “Pre-synchronizing” state, it will begin the real synchronizing stage. After synchronizing with the Groestlcoin network the user may use the wallet with its full functionality.

Here are from first run to what the Groestlcoin Core wallet looks like with couple of screenshots:

SCREENSHOT 1) The first run with Welcome screen.

Choose the directory where the data files and wallets’ files will be placed. The storage space may be limited if needed.

main menu
Welcome screen

SCREENSHOT 2) Pre-syncing only headers from the blockchain.

This window informs the user when the wallet’s balance will be correct – when the wallet application finishes syncing with the Groestlcoin network.

main menu
pre-syncing headers progress windows

SCREENSHOT 3) When syncing with the network, there is a progress bar at the left bottom and a hint window with the progress.

main menu
pre-syncing headers hint window

SCREENSHOT 4) After fast pre-sync of headers, the application is syncing headers.

main menu
Syncing Headers

SCREENSHOT 5) Syncing the last 24 hours’ headers and blocks.

It is a lot faster. Syncing only the last missing blocks.

main menu
24 hours ago last synced block

SCREENSHOT 6) The node window reports the application is fully synced with the network, so the wallets’ balances are correct. And the wallet application could be used to send Groestlcoin coins.

main menu
node window fully synced

SCREENSHOT 7) Open (Load) a wallet.

These wallets have already been imported (or created) with this application.

main menu
File Open Wallet

SCREENSHOT 8) Wallet Overview after it is opened.

Balances and recent transactions. This wallet is new and has no coins.

main menu
Wallet Overview

SCREENSHOT 9) Tune some options of the node and wallet functionalities of Groestlcoin Core 25.0.0.

main menu
menu Settings Options

SCREENSHOT 10) Main option tab.

There are some useful options such as “Start Groestlcoin Core on system login”, and “Prune block storage to … 2G” (limit the amount it occupies, but it limits the history of the transaction, too), “Size of database cache”, “Number of script verification threads”, “Enable RPC server” and “Rest Options” to the defaults.

main menu
Options Main

Leave a Reply

Your email address will not be published. Required fields are marked *