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.
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.
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.
SCREENSHOT 3) When syncing with the network, there is a progress bar at the left bottom and a hint window with the progress.
SCREENSHOT 4) After fast pre-sync of headers, the application is syncing headers.
SCREENSHOT 5) Syncing the last 24 hours’ headers and blocks.
It is a lot faster. Syncing only the last missing blocks.
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.
SCREENSHOT 7) Open (Load) a wallet.
These wallets have already been imported (or created) with this application.
SCREENSHOT 8) Wallet Overview after it is opened.
Balances and recent transactions. This wallet is new and has no coins.
SCREENSHOT 9) Tune some options of the node and wallet functionalities of Groestlcoin Core 25.0.0.
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.