It was a bit while after the Building from source a Groestlcoin node (cli only) under Ubuntu 16 LTS. So after 6 years is it the same procedure or there are additional or simplified steps (to build) and run a cryptocurrency Groestlcoin node? The GRS price seems the same as it was 6 years ago, but there are some new things in the software.
The first step is to build the software and it is one of the most important steps – download the source code ONLY from the official source, check the official site https://www.groestlcoin.org/groestlcoin-core-wallet/ where the source code could be downloaded or to see where is the official place for the source code – https://github.com/Groestlcoin/groestlcoin. Check the links yourself! The https://github.com/Groestlcoin/groestlcoin git link will be used to download the latest stable version of the code and to build a Groestlcoin node, which may or may not include wallet capabilities. Building the Groestlcoin core package from the source you’ll have your private and secure Groestlcoin node (and wallet), which could be used to make secure transactions and receive funds in the Groestlcoin network and a lot more! DO IT YOURSELF – the most secure way of generating a Groestlcoin wallet address, making transactions such as sending and receiving coins, and storing your wallets.
STEP 1) Update your system and install dependencies
Update your 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! By default, many Linux systems won’t 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 722 Mbytes will be occupied.
0 upgraded, 217 newly installed, 0 to remove and 5 not upgraded. Need to get 138 MB of archives. After this operation, 722 MB of additional disk space will be used.
STEP 2) Get the “Groestlcoin Core” code and compile it
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 make -j 8 make install
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:
...... ...... 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 = no 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. 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). The GUI won’t be built (with gui / qt = no), because there missing libraries, and this article is only a command line online.
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 25388 drwxrwxr-x 2 myuser myuser 4096 Aug 17 14:29 . drwxrwxr-x 6 myuser myuser 4096 Aug 17 14:29 .. -rwxr-xr-x 1 myuser myuser 1085888 Aug 17 14:29 groestlcoin-cli -rwxr-xr-x 1 myuser myuser 13260936 Aug 17 14:29 groestlcoind -rwxr-xr-x 1 myuser myuser 3268464 Aug 17 14:29 groestlcoin-tx -rwxr-xr-x 1 myuser myuser 1116416 Aug 17 14:29 groestlcoin-util -rwxr-xr-x 1 myuser myuser 7249704 Aug 17 14:29 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 offers a command line management of a Groestlcoin wallet addresses.
Run the Groestlcoin daemon with
myuser@mydesktop:~/groestlcoin-core/bin$ #./groestlcoind &> ./groestlcoind.log
The output will be redirected to the ./groestlcoind.log and it starts with the following:
myuser@mydesktop:~/groestlcoin-core/bin$ cat ./groestlcoind.log 2023-08-17T12:06:48Z Groestlcoin Core version v25.0.0 (release build) 2023-08-17T12:06:48Z Using the 'sse4(1way),sse41(4way),avx2(8way)' SHA256 implementation 2023-08-17T12:06:48Z Using RdSeed as an additional entropy source 2023-08-17T12:06:48Z Using RdRand as an additional entropy source 2023-08-17T12:06:48Z Default data directory /home/myuser/.groestlcoin 2023-08-17T12:06:48Z Using data directory /home/myuser/.groestlcoin 2023-08-17T12:06:48Z Config file: /home/myuser/.groestlcoin/groestlcoin.conf (not found, skipping) 2023-08-17T12:06:48Z Using at most 125 automatic connections (1024 file descriptors available) 2023-08-17T12:06:48Z Using 16 MiB out of 16 MiB requested for signature cache, able to store 524288 elements 2023-08-17T12:06:48Z Using 16 MiB out of 16 MiB requested for script execution cache, able to store 524288 elements 2023-08-17T12:06:48Z Script verification uses 1 additional threads 2023-08-17T12:06:48Z scheduler thread start 2023-08-17T12:06:48Z Binding RPC on address ::1 port 1441 2023-08-17T12:06:48Z Binding RPC on address 127.0.0.1 port 1441 2023-08-17T12:06:48Z [http] creating work queue of depth 16 2023-08-17T12:06:48Z Using random cookie authentication. 2023-08-17T12:06:48Z Generated RPC authentication cookie /home/myuser/.groestlcoin/.cookie 2023-08-17T12:06:48Z [http] starting 4 worker threads 2023-08-17T12:06:48Z Using wallet directory /home/myuser/.groestlcoin/wallets 2023-08-17T12:06:48Z init message: Verifying wallet(s)… 2023-08-17T12:06:48Z Using /16 prefix for IP bucketing 2023-08-17T12:06:48Z init message: Loading P2P addresses… 2023-08-17T12:06:48Z Creating peers.dat because the file was not found ("/home/myuser/.groestlcoin/peers.dat") 2023-08-17T12:06:48Z init message: Loading banlist… 2023-08-17T12:06:48Z Recreating the banlist database 2023-08-17T12:06:48Z SetNetworkActive: true 2023-08-17T12:06:48Z Failed to read fee estimates from /home/myuser/.groestlcoin/fee_estimates.dat. Continue anyway. 2023-08-17T12:06:48Z Cache configuration: 2023-08-17T12:06:48Z * Using 2.0 MiB for block index database 2023-08-17T12:06:48Z * Using 8.0 MiB for chain state database 2023-08-17T12:06:48Z * Using 440.0 MiB for in-memory UTXO set (plus up to 286.1 MiB of unused mempool space) 2023-08-17T12:06:48Z init message: Loading block index… 2023-08-17T12:06:48Z Assuming ancestors of block 0000000000000a9dfdf648ef3ff356d06e6145baae1d7b9d333a47e5445c55c8 have valid signatures. 2023-08-17T12:06:48Z Setting nMinimumChainWork=00000000000000000000000000000000000000000000015afedaa4b53f69802c 2023-08-17T12:06:48Z Opening LevelDB in /home/myuser/.groestlcoin/blocks/index 2023-08-17T12:06:48Z Opened LevelDB successfully 2023-08-17T12:06:48Z Using obfuscation key for /home/myuser/.groestlcoin/blocks/index: 0000000000000000 2023-08-17T12:06:48Z LoadBlockIndexDB: last block file = 0 2023-08-17T12:06:48Z LoadBlockIndexDB: last block file info: CBlockFileInfo(blocks=0, size=0, heights=0...0, time=1970-01-01...1970-01-01) 2023-08-17T12:06:48Z Checking all blk files are present... 2023-08-17T12:06:48Z Initializing databases... 2023-08-17T12:06:48Z Initializing chainstate Chainstate [ibd] @ height -1 (null) 2023-08-17T12:06:48Z Opening LevelDB in /home/myuser/.groestlcoin/chainstate 2023-08-17T12:06:48Z Opened LevelDB successfully 2023-08-17T12:06:48Z Wrote new obfuscate key for /home/myuser/.groestlcoin/chainstate: cd5ae8554cabd618 2023-08-17T12:06:48Z Using obfuscation key for /home/myuser/.groestlcoin/chainstate: cd5ae8554cabd618 2023-08-17T12:06:48Z [snapshot] allocating all cache to the IBD chainstate 2023-08-17T12:06:48Z Opening LevelDB in /home/myuser/.groestlcoin/chainstate 2023-08-17T12:06:48Z Opened LevelDB successfully 2023-08-17T12:06:48Z Using obfuscation key for /home/myuser/.groestlcoin/chainstate: cd5ae8554cabd618 2023-08-17T12:06:48Z [Chainstate [ibd] @ height -1 (null)] resized coinsdb cache to 8.0 MiB 2023-08-17T12:06:48Z [Chainstate [ibd] @ height -1 (null)] resized coinstip cache to 440.0 MiB 2023-08-17T12:06:48Z init message: Verifying blocks… 2023-08-17T12:06:48Z block index 55ms 2023-08-17T12:06:48Z Setting NODE_NETWORK on non-prune mode 2023-08-17T12:06:48Z loadblk thread start 2023-08-17T12:06:48Z UpdateTip: new best=00000ac5927c594d49cc0bdb81759d0da8297eb614683d3acb62f0703b639023 height=0 version=0x00000070 log2_work=20.000001 tx=1 date='2014-03-20T19:13:49Z' progress=0.000000 cache=0.0MiB(0txo) 2023-08-17T12:06:48Z block tree size = 1 2023-08-17T12:06:48Z nBestHeight = 0 2023-08-17T12:06:48Z Failed to open mempool file from disk. Continuing anyway. 2023-08-17T12:06:48Z loadblk thread exit 2023-08-17T12:06:48Z torcontrol thread start 2023-08-17T12:06:48Z Bound to 127.0.0.1:1444 2023-08-17T12:06:48Z Bound to [::]:1331 2023-08-17T12:06:48Z Bound to 0.0.0.0:1331 2023-08-17T12:06:48Z 0 block-relay-only anchors will be tried for connections. 2023-08-17T12:06:48Z init message: Starting network threads… 2023-08-17T12:06:48Z net thread start 2023-08-17T12:06:48Z init message: Done loading 2023-08-17T12:06:48Z addcon thread start 2023-08-17T12:06:48Z msghand thread start 2023-08-17T12:06:48Z dnsseed thread start 2023-08-17T12:06:48Z Loading addresses from DNS seed dnsseed4.groestlcoin.org. 2023-08-17T12:06:48Z opencon thread start 2023-08-17T12:06:48Z Loading addresses from DNS seed dnsseed1.groestlcoin.org. 2023-08-17T12:06:48Z Loading addresses from DNS seed dnsseed3.groestlcoin.org. 2023-08-17T12:06:48Z Loading addresses from DNS seed dnsseed2.groestlcoin.org. 2023-08-17T12:06:48Z 49 addresses found from DNS seeds 2023-08-17T12:06:48Z dnsseed thread exit 2023-08-17T12:06:49Z New outbound peer connected: version: 70016, blocks=4717740, peer=0 (outbound-full-relay) 2023-08-17T12:06:50Z Pre-synchronizing blockheaders, height: 2000 (~0.04%) 2023-08-17T12:06:50Z Pre-synchronizing blockheaders, height: 4000 (~0.08%) 2023-08-17T12:06:51Z Pre-synchronizing blockheaders, height: 6000 (~0.12%) 2023-08-17T12:06:52Z Pre-synchronizing blockheaders, height: 8000 (~0.16%) 2023-08-17T12:06:53Z Pre-synchronizing blockheaders, height: 10000 (~0.20%) 2023-08-17T12:06:54Z Pre-synchronizing blockheaders, height: 12000 (~0.24%) 2023-08-17T12:06:54Z Pre-synchronizing blockheaders, height: 14000 (~0.28%) 2023-08-17T12:06:55Z Pre-synchronizing blockheaders, height: 16000 (~0.32%) 2023-08-17T12:06:56Z Pre-synchronizing blockheaders, height: 18000 (~0.36%) 2023-08-17T12:06:56Z New outbound peer connected: version: 70016, blocks=4717740, peer=2 (outbound-full-relay) 2023-08-17T12:06:57Z Pre-synchronizing blockheaders, height: 20000 (~0.40%) 2023-08-17T12:06:57Z Pre-synchronizing blockheaders, height: 22000 (~0.44%) 2023-08-17T12:06:58Z Pre-synchronizing blockheaders, height: 24000 (~0.49%) 2023-08-17T12:06:58Z New outbound peer connected: version: 70016, blocks=4717740, peer=3 (outbound-full-relay) 2023-08-17T12:06:58Z Pre-synchronizing blockheaders, height: 26000 (~0.53%) 2023-08-17T12:06:59Z New outbound peer connected: version: 70016, blocks=4717740, peer=4 (outbound-full-relay) 2023-08-17T12:06:59Z Pre-synchronizing blockheaders, height: 28000 (~0.57%) 2023-08-17T12:07:00Z Pre-synchronizing blockheaders, height: 30000 (~0.61%) 2023-08-17T12:07:00Z New outbound peer connected: version: 70016, blocks=4717740, peer=5 (outbound-full-relay) 2023-08-17T12:07:00Z New outbound peer connected: version: 70016, blocks=4717740, peer=6 (outbound-full-relay) 2023-08-17T12:07:00Z Pre-synchronizing blockheaders, height: 32000 (~0.65%) ...... ...... 2023-08-17T12:12:13Z Pre-synchronizing blockheaders, height: 2998000 (~62.39%) 2023-08-17T12:12:14Z Pre-synchronizing blockheaders, height: 3000000 (~62.43%) 2023-08-17T12:12:14Z Pre-synchronizing blockheaders, height: 3002000 (~62.47%) 2023-08-17T12:12:15Z Pre-synchronizing blockheaders, height: 3004000 (~62.52%) 2023-08-17T12:12:15Z Pre-synchronizing blockheaders, height: 3006000 (~62.56%) 2023-08-17T12:12:16Z Pre-synchronizing blockheaders, height: 3008000 (~62.60%) 2023-08-17T12:12:16Z Pre-synchronizing blockheaders, height: 3010000 (~62.64%) 2023-08-17T12:12:16Z Pre-synchronizing blockheaders, height: 3012000 (~62.69%) 2023-08-17T12:12:17Z Pre-synchronizing blockheaders, height: 3014000 (~62.73%) 2023-08-17T12:12:17Z Pre-synchronizing blockheaders, height: 3016000 (~62.77%) 2023-08-17T12:12:17Z Pre-synchronizing blockheaders, height: 3018000 (~62.82%) ...... ...... 2023-08-17T12:16:28Z Pre-synchronizing blockheaders, height: 4546000 (~96.18%) 2023-08-17T12:16:29Z Pre-synchronizing blockheaders, height: 4548000 (~96.23%) 2023-08-17T12:16:29Z Pre-synchronizing blockheaders, height: 4550000 (~96.27%) 2023-08-17T12:16:29Z Pre-synchronizing blockheaders, height: 4552000 (~96.31%) 2023-08-17T12:16:30Z Pre-synchronizing blockheaders, height: 4554000 (~96.36%) 2023-08-17T12:16:33Z Synchronizing blockheaders, height: 41 (~0.00%) 2023-08-17T12:16:33Z Synchronizing blockheaders, height: 2041 (~0.04%) 2023-08-17T12:16:34Z Synchronizing blockheaders, height: 4041 (~0.08%) 2023-08-17T12:16:34Z Synchronizing blockheaders, height: 6041 (~0.12%) 2023-08-17T12:16:35Z Synchronizing blockheaders, height: 8041 (~0.16%) 2023-08-17T12:16:35Z Synchronizing blockheaders, height: 10041 (~0.20%) 2023-08-17T12:16:35Z Synchronizing blockheaders, height: 12041 (~0.24%) 2023-08-17T12:16:35Z Synchronizing blockheaders, height: 14041 (~0.28%) 2023-08-17T12:16:36Z Synchronizing blockheaders, height: 16041 (~0.32%) ...... ...... 2023-08-17T12:18:02Z Synchronizing blockheaders, height: 252041 (~5.09%) 2023-08-17T12:18:03Z Potential stale tip detected, will try using extra outbound peer (last tip update: 675 seconds ago) 2023-08-17T12:18:04Z Synchronizing blockheaders, height: 254041 (~5.13%) 2023-08-17T12:18:05Z Synchronizing blockheaders, height: 256041 (~5.17%) 2023-08-17T12:18:06Z Synchronizing blockheaders, height: 258041 (~5.21%) 2023-08-17T12:18:06Z New outbound peer connected: version: 70016, blocks=4717752, peer=15 (outbound-full-relay) 2023-08-17T12:18:07Z Synchronizing blockheaders, height: 260041 (~5.25%) 2023-08-17T12:18:08Z Synchronizing blockheaders, height: 262041 (~5.29%) 2023-08-17T12:18:09Z Synchronizing blockheaders, height: 264041 (~5.33%) 2023-08-17T12:18:10Z Synchronizing blockheaders, height: 266041 (~5.37%) ...... ......
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.
With “groestlcoin-cli” we can check the process of synchronization.
At first, when the pre-synchronizing is working. The blocks and headers are both 0.
myuser@mydesktop:~/groestlcoin-core/bin$ ./groestlcoin-cli getblockchaininfo { "chain": "main", "blocks": 0, "headers": 0, "bestblockhash": "00000ac5927c594d49cc0bdb81759d0da8297eb614683d3acb62f0703b639023", "difficulty": 0.0002441371325370145, "time": 1395342829, "mediantime": 1395342829, "verificationprogress": 1.649850751462372e-07, "initialblockdownload": true, "chainwork": "0000000000000000000000000000000000000000000000000000000000100001", "size_on_disk": 274, "pruned": false, "warnings": "" } myuser@mydesktop:~/groestlcoin-core/bin$ tail -n 10 ./groestlcoind.log 2023-08-17T12:58:07Z Pre-synchronizing blockheaders, height: 836000 (~16.98%) 2023-08-17T12:58:08Z Pre-synchronizing blockheaders, height: 840000 (~17.06%) 2023-08-17T12:58:08Z Pre-synchronizing blockheaders, height: 844000 (~17.15%) 2023-08-17T12:58:08Z Pre-synchronizing blockheaders, height: 848000 (~17.23%) 2023-08-17T12:58:08Z Pre-synchronizing blockheaders, height: 852000 (~17.31%) 2023-08-17T12:58:09Z Pre-synchronizing blockheaders, height: 856000 (~17.39%) 2023-08-17T12:58:09Z Pre-synchronizing blockheaders, height: 860000 (~17.47%) 2023-08-17T12:58:09Z Pre-synchronizing blockheaders, height: 864000 (~17.56%) 2023-08-17T12:58:10Z Pre-synchronizing blockheaders, height: 868000 (~17.64%) 2023-08-17T12:58:10Z Pre-synchronizing blockheaders, height: 872000 (~17.72%)
Second, when the synchronizing of the headers stage is on. The headers are increasing while the blocks stay 0.
myuser@mydesktop:~/groestlcoin-core/bin$ ./groestlcoin-cli getblockchaininfo { "chain": "main", "blocks": 0, "headers": 278041, "bestblockhash": "00000ac5927c594d49cc0bdb81759d0da8297eb614683d3acb62f0703b639023", "difficulty": 0.0002441371325370145, "time": 1395342829, "mediantime": 1395342829, "verificationprogress": 1.649849661224583e-07, "initialblockdownload": true, "chainwork": "0000000000000000000000000000000000000000000000000000000000100001", "size_on_disk": 274, "pruned": false, "warnings": "" } myuser@mydesktop:~/groestlcoin-core/bin$ tail -n 10 ./groestlcoind.log 2023-08-17T13:01:39Z Synchronizing blockheaders, height: 274041 (~5.53%) 2023-08-17T13:01:40Z Synchronizing blockheaders, height: 276041 (~5.57%) 2023-08-17T13:01:40Z Synchronizing blockheaders, height: 278041 (~5.61%) 2023-08-17T13:01:41Z Synchronizing blockheaders, height: 280041 (~5.66%) 2023-08-17T13:01:42Z Synchronizing blockheaders, height: 282041 (~5.70%) 2023-08-17T13:01:42Z Synchronizing blockheaders, height: 284041 (~5.74%) 2023-08-17T13:01:43Z Synchronizing blockheaders, height: 286041 (~5.78%) 2023-08-17T13:01:44Z Synchronizing blockheaders, height: 288041 (~5.82%) 2023-08-17T13:01:44Z Synchronizing blockheaders, height: 290041 (~5.86%) 2023-08-17T13:01:45Z Synchronizing blockheaders, height: 292041 (~5.90%)
And the third stage, when the blocks are updated and saved in the nodes. The headers and blocks are advancing.
myuser@mydesktop:~/groestlcoin-core/bin$ ./groestlcoin-cli getblockchaininfo { "chain": "main", "blocks": 612559, "headers": 4717828, "bestblockhash": "0000000004ee88e0bd762d022869ec6d2aea4808cd318daef3a68e3544ee54d8", "difficulty": 8.460137363468579, "time": 1432960532, "mediantime": 1432960367, "verificationprogress": 0.1660944777126042, "initialblockdownload": true, "chainwork": "000000000000000000000000000000000000000000000000018807cf12356542", "size_on_disk": 465450292, "pruned": false, "warnings": "" } myuser@mydesktop:~/groestlcoin-core/bin$ tail -n 10 ./groestlcoind.log 2023-08-17T13:45:49Z UpdateTip: new best=00000000057ef4db3267767975d368222b1923285960b1603aa8d0072c8b28d3 height=615657 version=0x00000070 log2_work=56.616541 tx=1010047 date='2015-06-01T10:47:49Z' progress=0.166641 cache=105.9MiB(946095txo) 2023-08-17T13:45:49Z UpdateTip: new best=000000000f02f08d7bf6a2f72ecb8e51cf2f249058603a59a244bb00f49f00c1 height=615658 version=0x00000070 log2_work=56.616541 tx=1010048 date='2015-06-01T10:48:14Z' progress=0.166641 cache=105.9MiB(946096txo) 2023-08-17T13:45:49Z UpdateTip: new best=000000000d08c01a8b13f35d2a9d58158c25219c026a0cc4dc40d07cf6e83316 height=615659 version=0x00000070 log2_work=56.616542 tx=1010050 date='2015-06-01T10:51:17Z' progress=0.166642 cache=105.9MiB(946098txo) 2023-08-17T13:45:49Z UpdateTip: new best=0000000006de31b2ffab022949f067728a24690a2b87d19bcf911c437f182715 height=615660 version=0x00000070 log2_work=56.616543 tx=1010051 date='2015-06-01T10:51:21Z' progress=0.166642 cache=105.9MiB(946099txo) 2023-08-17T13:45:49Z UpdateTip: new best=000000001250e96ce32f7e7fd8b59ae0a9de970edbbf0cf320d5b1c7e462ab1c height=615661 version=0x00000070 log2_work=56.616543 tx=1010052 date='2015-06-01T10:51:45Z' progress=0.166642 cache=105.9MiB(946100txo) 2023-08-17T13:45:49Z UpdateTip: new best=000000000be4992fc393ded06111c33d6efdd1372ae0a8e783622594a3d18409 height=615662 version=0x00000070 log2_work=56.616544 tx=1010053 date='2015-06-01T10:53:56Z' progress=0.166642 cache=105.9MiB(946101txo) 2023-08-17T13:45:49Z UpdateTip: new best=0000000013b739bc8f2fdf28318d800d4f5df359c9e69dd4b041389b4c5d670d height=615663 version=0x00000070 log2_work=56.616545 tx=1010054 date='2015-06-01T10:54:31Z' progress=0.166642 cache=105.9MiB(946102txo) 2023-08-17T13:45:49Z UpdateTip: new best=00000000034daa9493447c9f1d83e3bd23fbaffde2bf3b96bff0fb4221a89ca2 height=615664 version=0x00000070 log2_work=56.616545 tx=1010055 date='2015-06-01T10:54:38Z' progress=0.166643 cache=105.9MiB(946103txo) 2023-08-17T13:45:49Z UpdateTip: new best=000000000e7328264cd0c0b9da1a2e4b976d136d2d41a1ac53fe1d759b9a821f height=615665 version=0x00000070 log2_work=56.616546 tx=1010056 date='2015-06-01T10:54:44Z' progress=0.166643 cache=105.9MiB(946104txo) 2023-08-17T13:45:49Z UpdateTip: new best=000000000d1d2426de2b9c4b57151c93d77a85e6aaca2ade5cfc8db635af513f height=615666 version=0x00000070 log2_work=56.616547 tx=1010059 date='2015-06-01T11:02:56Z' progress=0.166643 cache=105.9MiB(946110txo)
The “blocks” are 612559 the total of 4717828. When “blocks” count equalize with the “headers” your Groestlcoin (wallet) node is synchronized successfully and the debug.log will just only output a couple of lines every minutes:
myuser@mydesktop:~/groestlcoin-core/bin$ ./groestlcoin-cli getblockchaininfo { "chain": "main", "blocks": 4717996, "headers": 4717996, "bestblockhash": "0000000000002de0cd048ca43a1da0d0b74f4e572c14154158a1c93b82800d50", "difficulty": 358681.8878206132, "time": 1692290299, "mediantime": 1692289731, "verificationprogress": 0.9999990843266201, "initialblockdownload": false, "chainwork": "00000000000000000000000000000000000000000000016d1dc217abbe9e09e4", "size_on_disk": 3030844527, "pruned": false, "warnings": "" } myuser@mydesktop:~/groestlcoin-core/bin$ tail groestlcoind.log 2023-08-17T16:37:22Z Saw new header hash=000000000000134b02314a120250641a9afe06991728600a2d013a654dff8fd8 height=4717994 2023-08-17T16:37:22Z [net] Saw new cmpctblock header hash=000000000000134b02314a120250641a9afe06991728600a2d013a654dff8fd8 peer=9 2023-08-17T16:37:22Z UpdateTip: new best=000000000000134b02314a120250641a9afe06991728600a2d013a654dff8fd8 height=4717994 version=0x20000000 log2_work=72.512211 tx=6059565 date='2023-08-17T16:37:09Z' progress=1.000000 cache=569.1MiB(5274018txo) 2023-08-17T16:38:19Z Saw new header hash=000000000000180519a1696fa1d2cc68d80a10a6577a2a201c091c52bffcb2d2 height=4717995 2023-08-17T16:38:19Z UpdateTip: new best=000000000000180519a1696fa1d2cc68d80a10a6577a2a201c091c52bffcb2d2 height=4717995 version=0x20000000 log2_work=72.512212 tx=6059567 date='2023-08-17T16:38:03Z' progress=1.000000 cache=569.1MiB(5274020txo) 2023-08-17T16:38:38Z Saw new header hash=0000000000002de0cd048ca43a1da0d0b74f4e572c14154158a1c93b82800d50 height=4717996 2023-08-17T16:38:38Z [net] Saw new cmpctblock header hash=0000000000002de0cd048ca43a1da0d0b74f4e572c14154158a1c93b82800d50 peer=9 2023-08-17T16:38:38Z UpdateTip: new best=0000000000002de0cd048ca43a1da0d0b74f4e572c14154158a1c93b82800d50 height=4717996 version=0x20000000 log2_work=72.512212 tx=6059568 date='2023-08-17T16:38:19Z' progress=1.000000 cache=569.1MiB(5274021txo) 2023-08-17T16:43:21Z Saw new header hash=0000000000002263320bc904a381b428502f99b684188c6f15baf82a4e54faa3 height=4717997 2023-08-17T16:43:21Z UpdateTip: new best=0000000000002263320bc904a381b428502f99b684188c6f15baf82a4e54faa3 height=4717997 version=0x20000000 log2_work=72.512212 tx=6059571 date='2023-08-17T16:43:14Z' progress=1.000000 cache=569.1MiB(5274018txo)
The starting date of the line will differ with a couple of seconds of the date in the transaction – the “date=” after the “tx=”.
Now the user can use this Groestlcoin (wallet) node for transactions.
At present, with SSD and 8G RAM on a intel i7 processor and a fast Internet connection 1000Mbps the full synchronization took about 90 minutes and 3.6G of storage space (without the logs space).
myuser@mydesktop:~/.groestlcoin$ ls -altrh blocks/ total 2.9G -rw------- 1 ubuntu ubuntu 128M Aug 17 13:38 blk00000.dat -rw------- 1 ubuntu ubuntu 22M Aug 17 13:38 rev00000.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 13:42 blk00001.dat -rw------- 1 ubuntu ubuntu 24M Aug 17 13:42 rev00001.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 13:46 blk00002.dat -rw------- 1 ubuntu ubuntu 25M Aug 17 13:46 rev00002.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 13:49 blk00003.dat -rw------- 1 ubuntu ubuntu 26M Aug 17 13:49 rev00003.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 13:53 blk00004.dat -rw------- 1 ubuntu ubuntu 26M Aug 17 13:53 rev00004.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 13:58 blk00005.dat -rw------- 1 ubuntu ubuntu 25M Aug 17 13:58 rev00005.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 14:00 blk00006.dat -rw------- 1 ubuntu ubuntu 21M Aug 17 14:00 rev00006.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 14:02 blk00007.dat -rw------- 1 ubuntu ubuntu 22M Aug 17 14:02 rev00007.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 14:05 blk00008.dat -rw------- 1 ubuntu ubuntu 20M Aug 17 14:05 rev00008.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 14:08 blk00009.dat -rw------- 1 ubuntu ubuntu 20M Aug 17 14:08 rev00009.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 14:10 blk00010.dat -rw------- 1 ubuntu ubuntu 21M Aug 17 14:10 rev00010.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 14:13 blk00011.dat -rw------- 1 ubuntu ubuntu 21M Aug 17 14:13 rev00011.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 14:15 blk00012.dat -rw------- 1 ubuntu ubuntu 20M Aug 17 14:15 rev00012.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 14:18 blk00013.dat -rw------- 1 ubuntu ubuntu 20M Aug 17 14:18 rev00013.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 14:21 blk00014.dat -rw------- 1 ubuntu ubuntu 20M Aug 17 14:21 rev00014.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 14:24 blk00015.dat -rw------- 1 ubuntu ubuntu 21M Aug 17 14:24 rev00015.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 14:26 blk00016.dat -rw------- 1 ubuntu ubuntu 20M Aug 17 14:26 rev00016.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 14:29 blk00017.dat -rw------- 1 ubuntu ubuntu 20M Aug 17 14:29 rev00017.dat -rw------- 1 ubuntu ubuntu 128M Aug 17 14:32 blk00018.dat drwx------ 3 ubuntu ubuntu 4.0K Aug 17 14:32 . -rw------- 1 ubuntu ubuntu 20M Aug 17 14:32 rev00018.dat drwx------ 2 ubuntu ubuntu 20K Aug 17 15:57 index drwx------ 5 ubuntu ubuntu 4.0K Aug 17 16:42 .. -rw------- 1 ubuntu ubuntu 8.0M Aug 17 16:53 rev00019.dat -rw------- 1 ubuntu ubuntu 48M Aug 17 16:53 blk00019.dat
You are ready to use “groestlcoin-cli” or the others program to manage your funds – for example, send, receive, and check the balance of your funds.
If you stop and start the program it will start the synchronization from the point you stopped.
Groestlcoin cli (groestlcoin-cli) utility
Here is the help command with the full list of available commands, which could be executed by the Groestlcoin cli.
myuser@mydesktop:~/groestlcoin-core/bin$ ./groestlcoin-cli help == Blockchain == getbestblockhash getblock "blockhash" ( verbosity ) getblockchaininfo getblockcount getblockfilter "blockhash" ( "filtertype" ) getblockfrompeer "blockhash" peer_id getblockhash height getblockheader "blockhash" ( verbose ) getblockstats hash_or_height ( stats ) getchaintips getchaintxstats ( nblocks "blockhash" ) getdeploymentinfo ( "blockhash" ) getdifficulty getmempoolancestors "txid" ( verbose ) getmempooldescendants "txid" ( verbose ) getmempoolentry "txid" getmempoolinfo getrawmempool ( verbose mempool_sequence ) gettxout "txid" n ( include_mempool ) gettxoutproof ["txid",...] ( "blockhash" ) gettxoutsetinfo ( "hash_type" hash_or_height use_index ) gettxspendingprevout [{"txid":"hex","vout":n},...] preciousblock "blockhash" pruneblockchain height savemempool scanblocks "action" ( [scanobjects,...] start_height stop_height "filtertype" "options" ) scantxoutset "action" ( [scanobjects,...] ) verifychain ( checklevel nblocks ) verifytxoutproof "proof" == Control == getmemoryinfo ( "mode" ) getrpcinfo help ( "command" ) logging ( ["include_category",...] ["exclude_category",...] ) stop uptime == Mining == getblocktemplate ( "template_request" ) getmininginfo getnetworkhashps ( nblocks height ) prioritisetransaction "txid" ( dummy ) fee_delta submitblock "hexdata" ( "dummy" ) submitheader "hexdata" == Network == addnode "node" "command" clearbanned disconnectnode ( "address" nodeid ) getaddednodeinfo ( "node" ) getconnectioncount getnettotals getnetworkinfo getnodeaddresses ( count "network" ) getpeerinfo listbanned ping setban "subnet" "command" ( bantime absolute ) setnetworkactive state == Rawtransactions == analyzepsbt "psbt" combinepsbt ["psbt",...] combinerawtransaction ["hexstring",...] converttopsbt "hexstring" ( permitsigdata iswitness ) createpsbt [{"txid":"hex","vout":n,"sequence":n},...] [{"address":amount,...},{"data":"hex"},...] ( locktime replaceable ) createrawtransaction [{"txid":"hex","vout":n,"sequence":n},...] [{"address":amount,...},{"data":"hex"},...] ( locktime replaceable ) decodepsbt "psbt" decoderawtransaction "hexstring" ( iswitness ) decodescript "hexstring" finalizepsbt "psbt" ( extract ) fundrawtransaction "hexstring" ( options iswitness ) getrawtransaction "txid" ( verbosity "blockhash" ) joinpsbts ["psbt",...] sendrawtransaction "hexstring" ( maxfeerate maxburnamount ) signrawtransactionwithkey "hexstring" ["privatekey",...] ( [{"txid":"hex","vout":n,"scriptPubKey":"hex","redeemScript":"hex","witnessScript":"hex","amount":amount},...] "sighashtype" ) testmempoolaccept ["rawtx",...] ( maxfeerate ) utxoupdatepsbt "psbt" ( ["",{"desc":"str","range":n or [n,n]},...] ) == Signer == enumeratesigners == Util == createmultisig nrequired ["key",...] ( "address_type" ) deriveaddresses "descriptor" ( range ) estimatesmartfee conf_target ( "estimate_mode" ) getdescriptorinfo "descriptor" getindexinfo ( "index_name" ) signmessagewithprivkey "privkey" "message" validateaddress "address" verifymessage "address" "signature" "message" == Wallet == abandontransaction "txid" abortrescan addmultisigaddress nrequired ["key",...] ( "label" "address_type" ) backupwallet "destination" bumpfee "txid" ( options ) createwallet "wallet_name" ( disable_private_keys blank "passphrase" avoid_reuse descriptors load_on_startup external_signer ) dumpprivkey "address" dumpwallet "filename" encryptwallet "passphrase" getaddressesbylabel "label" getaddressinfo "address" getbalance ( "dummy" minconf include_watchonly avoid_reuse ) getbalances getnewaddress ( "label" "address_type" ) getrawchangeaddress ( "address_type" ) getreceivedbyaddress "address" ( minconf include_immature_coinbase ) getreceivedbylabel "label" ( minconf include_immature_coinbase ) gettransaction "txid" ( include_watchonly verbose ) getunconfirmedbalance getwalletinfo importaddress "address" ( "label" rescan p2sh ) importdescriptors "requests" importmulti "requests" ( "options" ) importprivkey "privkey" ( "label" rescan ) importprunedfunds "rawtransaction" "txoutproof" importpubkey "pubkey" ( "label" rescan ) importwallet "filename" keypoolrefill ( newsize ) listaddressgroupings listdescriptors ( private ) listlabels ( "purpose" ) listlockunspent listreceivedbyaddress ( minconf include_empty include_watchonly "address_filter" include_immature_coinbase ) listreceivedbylabel ( minconf include_empty include_watchonly include_immature_coinbase ) listsinceblock ( "blockhash" target_confirmations include_watchonly include_removed include_change "label" ) listtransactions ( "label" count skip include_watchonly ) listunspent ( minconf maxconf ["address",...] include_unsafe query_options ) listwalletdir listwallets loadwallet "filename" ( load_on_startup ) lockunspent unlock ( [{"txid":"hex","vout":n},...] persistent ) migratewallet ( "wallet_name" "passphrase" ) newkeypool psbtbumpfee "txid" ( options ) removeprunedfunds "txid" rescanblockchain ( start_height stop_height ) restorewallet "wallet_name" "backup_file" ( load_on_startup ) send [{"address":amount,...},{"data":"hex"},...] ( conf_target "estimate_mode" fee_rate options ) sendall ["address",{"address":amount,...},...] ( conf_target "estimate_mode" fee_rate options ) sendmany ( "" ) {"address":amount,...} ( minconf "comment" ["address",...] replaceable conf_target "estimate_mode" fee_rate verbose ) sendtoaddress "address" amount ( "comment" "comment_to" subtractfeefromamount replaceable conf_target "estimate_mode" avoid_reuse fee_rate verbose ) sethdseed ( newkeypool "seed" ) setlabel "address" "label" settxfee amount setwalletflag "flag" ( value ) signmessage "address" "message" signrawtransactionwithwallet "hexstring" ( [{"txid":"hex","vout":n,"scriptPubKey":"hex","redeemScript":"hex","witnessScript":"hex","amount":amount},...] "sighashtype" ) simulaterawtransaction ( ["rawtx",...] {"include_watchonly":bool,...} ) unloadwallet ( "wallet_name" load_on_startup ) upgradewallet ( version ) walletcreatefundedpsbt ( [{"txid":"hex","vout":n,"sequence":n,"weight":n},...] ) [{"address":amount,...},{"data":"hex"},...] ( locktime options bip32derivs ) walletdisplayaddress "address" walletlock walletpassphrase "passphrase" timeout walletpassphrasechange "oldpassphrase" "newpassphrase" walletprocesspsbt "psbt" ( sign "sighashtype" bip32derivs finalize ) == Zmq == getzmqnotifications
In addition to the help command, there are options, which can be seen with “-h”:
myuser@mydesktop:~/groestlcoin-core/bin$ ./groestlcoin-cli -h Groestlcoin Core RPC client version v25.0.0 Usage: groestlcoin-cli [options] <command> [params] Send command to Groestlcoin Core or: groestlcoin-cli [options] -named <command> [name=value]... Send command to Groestlcoin Core (with named arguments) or: groestlcoin-cli [options] help List commands or: groestlcoin-cli [options] help <command> Get help for a command Options: -? Print this help message and exit -addrinfo Get the number of addresses known to the node, per network and total, after filtering for quality and recency. The total number of addresses known to the node may be higher. -color=<when> Color setting for CLI output (default: auto). Valid values: always, auto (add color codes when standard output is connected to a terminal and OS is not WIN32), never. -conf=<file> Specify configuration file. Relative paths will be prefixed by datadir location. (default: groestlcoin.conf) -datadir=<dir> Specify data directory -generate Generate blocks, equivalent to RPC getnewaddress followed by RPC generatetoaddress. Optional positional integer arguments are number of blocks to generate (default: 1) and maximum iterations to try (default: 100000000), equivalent to RPC generatetoaddress nblocks and maxtries arguments. Example: groestlcoin-cli -generate 4 1000000 -getinfo Get general information from the remote server. Note that unlike server-side RPC calls, the output of -getinfo is the result of multiple non-atomic requests. Some entries in the output may represent results from different states (e.g. wallet balance may be as of a different block from the chain state reported) -named Pass named instead of positional arguments (default: false) -netinfo Get network peer connection information from the remote server. An optional integer argument from 0 to 4 can be passed for different peers listings (default: 0). Pass "help" for detailed help documentation. -rpcclienttimeout=<n> Timeout in seconds during HTTP requests, or 0 for no timeout. (default: 900) -rpcconnect=<ip> Send commands to node running on <ip> (default: 127.0.0.1) -rpccookiefile=<loc> Location of the auth cookie. Relative paths will be prefixed by a net-specific datadir location. (default: data dir) -rpcpassword=<pw> Password for JSON-RPC connections -rpcport=<port> Connect to JSON-RPC on <port> (default: 1441, testnet: 17766, signet: 31441, regtest: 18443) -rpcuser=<user> Username for JSON-RPC connections -rpcwait Wait for RPC server to start -rpcwaittimeout=<n> Timeout in seconds to wait for the RPC server to start, or 0 for no timeout. (default: 0) -rpcwallet=<walletname> Send RPC for non-default wallet on RPC server (needs to exactly match corresponding -wallet option passed to groestlcoind). This changes the RPC endpoint used, e.g. http://127.0.0.1:1441/wallet/<walletname> -stdin Read extra arguments from standard input, one per line until EOF/Ctrl-D (recommended for sensitive information such as passphrases). When combined with -stdinrpcpass, the first line from standard input is used for the RPC password. -stdinrpcpass Read RPC password from standard input as a single line. When combined with -stdin, the first line from standard input is used for the RPC password. When combined with -stdinwalletpassphrase, -stdinrpcpass consumes the first line, and -stdinwalletpassphrase consumes the second. -stdinwalletpassphrase Read wallet passphrase from standard input as a single line. When combined with -stdin, the first line from standard input is used for the wallet passphrase. -version Print version and exit Debugging/Testing options: Chain selection options: -chain=<chain> Use the chain <chain> (default: main). Allowed values: main, test, signet, regtest -signet Use the signet chain. Equivalent to -chain=signet. Note that the network is defined by the -signetchallenge parameter -signetchallenge Blocks must satisfy the given script to be considered valid (only for signet networks; defaults to the global default signet test network challenge) -signetseednode Specify a seed node for the signet network, in the hostname[:port] format, e.g. sig.net:1234 (may be used multiple times to specify multiple seed nodes; defaults to the global default signet test network seed node(s)) -testnet