Running a Groestlcoin node (wallet cli) from source under Ubuntu 16 LTS

Author:

This howto is made to show you how to run a full Groestlcoin node. To run a Groestlcoin node we need the official Groestlcoin daemon software:

groestlcoind

from the Groestlcoin Core package: https://www.groestlcoin.org/groestlcoin-core-wallet/ This program will start and wait for the network synchronization – our Groestlcoin node will receive all the blockchains of the network!
Installing (or compiling it) the Groestlcoin Core software of the official site will ensure you have the right software for generating and sending/receiving transactions securely and privately! Always use your node software for generating the Groestlcoin wallet address, DO NOT TRUST any sites, which offer you a creation of Groestlcoin wallet. In crypto world the one how controls the private key of the wallet (which is generated with the creation of the wallet) controls the Groestlcoin wallet address so controls your funds! It is so important that we repeat it in EVERY cryptocurrency howto! Just Install or compile a Groestlcoin Core node software – Running a Groestlcoin node (cli) from source under Ubuntu 16 LTS and you’ll everything you need to manage your Groestlcoin funds!
It’s worth mentioning again this section of Groestlcoin (Wallet) node howto:
And also be warned DO NOT use insecure sources when:

  1. installing Ubuntu, install it from a cd/dvd/usb downloaded from the official Ubuntu site here.
  2. installing all the needed dependencies from official sources only, not recommended the PPA reposigories, neither!
  3. install yourself the “groestlcoind” program (the official Groestlcoin software), which will create an Groestlcoin node and after network synchronization could be used to create an Groestlcoin node.

Three simple rules could almost eliminate leaking your private key to hackers, which in blockchain world means losing your money…

With Groestlcoin you can still use ordinary hard drive, but it will be much slower than SSDs.

USE SSD

STEP 1) Install Ubuntu 16 – our howto will be available soon here.

STEP 2) Building from source an Groestlcoin (Wallet) node

Check out our howto “Running a Groestlcoin node (cli) from source under Ubuntu 16 LTS“.

STEP 3) Start the Groestlcoin node

if you have followed the howto in STEP 2) you probably have “groestlcoind” installed in “~/groestlcoin-core/bin”, so run it with:

ubuntu@srv.local:~/groestlcoin-core/bin$ ./groestlcoind &> ./groestlcoind.log

It is a good practice to run it with screen and in an infinite loop – if the program crashes it will start automatically and you’ll always have a synchronized node, of course, if you do not need a Groestlcoin (wallet) node running all the time the infinite loop is not needed. The user could just start the node, wait for synchronization and then make your transactions and stop the node, after several days you can start it up the catching up the synchronization won’t take much time:

ubuntu@srv.local:~$ screen -R groestlcoin
ubuntu@srv.local:~$ cd groestlcoin-core/bin/
ubuntu@srv.local:~/groestlcoin-core/bin$ while true; do ./groestlcoind &> ./groestlcoind.log;done

STEP 3) Wait for the blockchain network synchronization

This step could take significant amount of time, server resources and network bandwidth! USE SSD(s) for your home directory, because the blockchain database will be saved at your

home directory/.groestlcoin/

If you want to move it on another server or directory (or device) you must copy this directory to the new location.
When you run “groestlcoind” it will check the current state of the network and the current state of your groestlcoin (wallet) node, so no matter it is started for the first time or not a network synchronization is needed, your node need to be synchronized with the groestlcoin network to be used for all kind of actions in the network (create a wallet, transfer funds and more).
Here is the “~/.groestlcoin” direcotry:

srv@local:~$ ls -altr .groestlcoin/
total 24356
drwxr-xr-x 7 ubuntu ubuntu     4096 Mar 27 21:41 ..
-rw------- 1 ubuntu ubuntu        0 Mar 27 21:41 .lock
-rw------- 1 ubuntu ubuntu        6 Mar 27 21:41 groestlcoin.pid
-rw------- 1 ubuntu ubuntu        0 Mar 27 21:41 db.log
-rw------- 1 ubuntu ubuntu       75 Mar 27 21:41 .cookie
drwx------ 2 ubuntu ubuntu     4096 Mar 27 21:41 chainstate
drwx------ 3 ubuntu ubuntu     4096 Mar 27 21:41 blocks
drwx------ 2 ubuntu ubuntu     4096 Mar 27 21:41 database
-rw------- 1 ubuntu ubuntu    90112 Mar 27 21:41 wallet.dat
-rw------- 1 ubuntu ubuntu     1106 Mar 27 21:41 peers.dat
-rw------- 1 ubuntu ubuntu       37 Mar 27 21:41 banlist.dat
drwxrwxr-x 5 ubuntu ubuntu     4096 Mar 27 21:41 .
-rw------- 1 ubuntu ubuntu 24809419 Mar 27 21:48 debug.log
srv@local:~$ 

You can monitor all activity and synchronization of the groestlcoin (wallet) node in

debug.log

Here is the log of the node start:

2018-03-27 21:41:57 Groestlcoin version v2.13.3
2018-03-27 21:41:57 InitParameterInteraction: parameter interaction: -whitelistforcerelay=1 -> setting -whitelistrelay=1
2018-03-27 21:41:57 Default data directory /home/ubuntu/.groestlcoin
2018-03-27 21:41:57 Using data directory /home/ubuntu/.groestlcoin
2018-03-27 21:41:57 Using config file /home/ubuntu/.groestlcoin/groestlcoin.conf
2018-03-27 21:41:57 Using at most 125 connections (1024 file descriptors available)
2018-03-27 21:41:57 Using 32 MiB out of 32 requested for signature cache, able to store 1048576 elements
2018-03-27 21:41:57 Using 4 threads for script verification
2018-03-27 21:41:57 scheduler thread start
2018-03-27 21:41:57 HTTP: creating work queue of depth 16
2018-03-27 21:41:57 No rpcpassword set - using random cookie authentication
2018-03-27 21:41:57 Generated RPC authentication cookie /home/ubuntu/.groestlcoin/.cookie
2018-03-27 21:41:57 HTTP: starting 4 worker threads
2018-03-27 21:41:57 Using BerkeleyDB version Berkeley DB 5.3.28: (September  9, 2013)
2018-03-27 21:41:57 Using wallet wallet.dat
2018-03-27 21:41:57 init message: Verifying wallet...
2018-03-27 21:41:57 CDBEnv::Open: LogDir=/home/ubuntu/.groestlcoin/database ErrorFile=/home/ubuntu/.groestlcoin/db.log
2018-03-27 21:41:57 Bound to [::]:1331
2018-03-27 21:41:57 Bound to 0.0.0.0:1331
2018-03-27 21:41:57 Cache configuration:
2018-03-27 21:41:57 * Using 2.0MiB for block index database
2018-03-27 21:41:57 * Using 8.0MiB for chain state database
2018-03-27 21:41:57 * Using 290.0MiB for in-memory UTXO set
2018-03-27 21:41:57 init message: Loading block index...
2018-03-27 21:41:57 Opening LevelDB in /home/ubuntu/.groestlcoin/blocks/index
2018-03-27 21:41:57 Opened LevelDB successfully
2018-03-27 21:41:57 Using obfuscation key for /home/ubuntu/.groestlcoin/blocks/index: 0000000000000000
2018-03-27 21:41:57 Opening LevelDB in /home/ubuntu/.groestlcoin/chainstate
2018-03-27 21:41:57 Opened LevelDB successfully
2018-03-27 21:41:57 Using obfuscation key for /home/ubuntu/.groestlcoin/chainstate: 0000000000000000
2018-03-27 21:41:57 LoadBlockIndexDB: last block file = 0
2018-03-27 21:41:57 LoadBlockIndexDB: last block file info: CBlockFileInfo(blocks=0, size=0, heights=0...0, time=1970-01-01...1970-01-01)
2018-03-27 21:41:57 Checking all blk files are present...
2018-03-27 21:41:57 LoadBlockIndexDB: transaction index disabled
2018-03-27 21:41:57 Initializing databases...
2018-03-27 21:41:57 Pre-allocating up to position 0x1000000 in blk00000.dat
2018-03-27 21:41:57 init message: Verifying blocks...
2018-03-27 21:41:57  block index              18ms
2018-03-27 21:41:57 init message: Loading wallet...
2018-03-27 21:41:57 nFileVersion = 2130300
2018-03-27 21:41:57 Keys: 0 plaintext, 0 encrypted, 0 w/ metadata, 0 total
2018-03-27 21:41:57 Performing wallet upgrade to 60000
2018-03-27 21:41:57 keypool added key 1, size=1
2018-03-27 21:41:57 keypool added key 2, size=2
2018-03-27 21:41:57 keypool added key 3, size=3
2018-03-27 21:41:57 keypool added key 4, size=4
2018-03-27 21:41:57 keypool added key 5, size=5
2018-03-27 21:41:57 keypool added key 6, size=6
2018-03-27 21:41:57 keypool added key 7, size=7
2018-03-27 21:41:57 keypool added key 8, size=8
2018-03-27 21:41:57 keypool added key 9, size=9
2018-03-27 21:41:57 keypool added key 10, size=10
2018-03-27 21:41:57 keypool added key 11, size=11
2018-03-27 21:41:57 keypool added key 12, size=12
2018-03-27 21:41:57 keypool added key 13, size=13
2018-03-27 21:41:57 keypool added key 14, size=14
2018-03-27 21:41:57 keypool added key 15, size=15
2018-03-27 21:41:57 keypool added key 16, size=16
2018-03-27 21:41:57 keypool added key 17, size=17
2018-03-27 21:41:57 keypool added key 18, size=18
2018-03-27 21:41:57 keypool added key 19, size=19
2018-03-27 21:41:57 keypool added key 20, size=20
2018-03-27 21:41:57 keypool added key 21, size=21
2018-03-27 21:41:57 keypool added key 22, size=22
2018-03-27 21:41:57 keypool added key 23, size=23
2018-03-27 21:41:57 keypool added key 24, size=24
2018-03-27 21:41:57 keypool added key 25, size=25
2018-03-27 21:41:57 keypool added key 26, size=26
2018-03-27 21:41:58 keypool added key 27, size=27
2018-03-27 21:41:58 keypool added key 28, size=28
2018-03-27 21:41:58 keypool added key 29, size=29
2018-03-27 21:41:58 keypool added key 30, size=30
2018-03-27 21:41:58 keypool added key 31, size=31
2018-03-27 21:41:58 keypool added key 32, size=32
2018-03-27 21:41:58 keypool added key 33, size=33
2018-03-27 21:41:58 keypool added key 34, size=34
2018-03-27 21:41:58 keypool added key 35, size=35
2018-03-27 21:41:58 keypool added key 36, size=36
2018-03-27 21:41:58 keypool added key 37, size=37
2018-03-27 21:41:58 keypool added key 38, size=38
2018-03-27 21:41:58 keypool added key 39, size=39
2018-03-27 21:41:58 keypool added key 40, size=40
2018-03-27 21:41:58 keypool added key 41, size=41
2018-03-27 21:41:58 keypool added key 42, size=42
2018-03-27 21:41:58 keypool added key 43, size=43
2018-03-27 21:41:58 keypool added key 44, size=44
2018-03-27 21:41:58 keypool added key 45, size=45
2018-03-27 21:41:58 keypool added key 46, size=46
2018-03-27 21:41:58 keypool added key 47, size=47
2018-03-27 21:41:58 keypool added key 48, size=48
2018-03-27 21:41:58 keypool added key 49, size=49
2018-03-27 21:41:58 keypool added key 50, size=50
2018-03-27 21:41:58 keypool added key 51, size=51
2018-03-27 21:41:58 keypool added key 52, size=52
2018-03-27 21:41:58 keypool added key 53, size=53
2018-03-27 21:41:58 keypool added key 54, size=54
2018-03-27 21:41:58 keypool added key 55, size=55
2018-03-27 21:41:58 keypool added key 56, size=56
2018-03-27 21:41:58 keypool added key 57, size=57
2018-03-27 21:41:58 keypool added key 58, size=58
2018-03-27 21:41:58 keypool added key 59, size=59
2018-03-27 21:41:58 keypool added key 60, size=60
2018-03-27 21:41:58 keypool added key 61, size=61
2018-03-27 21:41:58 keypool added key 62, size=62
2018-03-27 21:41:58 keypool added key 63, size=63
2018-03-27 21:41:58 keypool added key 64, size=64
2018-03-27 21:41:58 keypool added key 65, size=65
2018-03-27 21:41:58 keypool added key 66, size=66
2018-03-27 21:41:58 keypool added key 67, size=67
2018-03-27 21:41:58 keypool added key 68, size=68
2018-03-27 21:41:58 keypool added key 69, size=69
2018-03-27 21:41:58 keypool added key 70, size=70
2018-03-27 21:41:58 keypool added key 71, size=71
2018-03-27 21:41:58 keypool added key 72, size=72
2018-03-27 21:41:58 keypool added key 73, size=73
2018-03-27 21:41:58 keypool added key 74, size=74
2018-03-27 21:41:58 keypool added key 75, size=75
2018-03-27 21:41:58 keypool added key 76, size=76
2018-03-27 21:41:58 keypool added key 77, size=77
2018-03-27 21:41:58 keypool added key 78, size=78
2018-03-27 21:41:58 keypool added key 79, size=79
2018-03-27 21:41:58 keypool added key 80, size=80
2018-03-27 21:41:58 keypool added key 81, size=81
2018-03-27 21:41:58 keypool added key 82, size=82
2018-03-27 21:41:58 keypool added key 83, size=83
2018-03-27 21:41:58 keypool added key 84, size=84
2018-03-27 21:41:58 keypool added key 85, size=85
2018-03-27 21:41:58 keypool added key 86, size=86
2018-03-27 21:41:58 keypool added key 87, size=87
2018-03-27 21:41:58 keypool added key 88, size=88
2018-03-27 21:41:58 keypool added key 89, size=89
2018-03-27 21:41:58 keypool added key 90, size=90
2018-03-27 21:41:58 keypool added key 91, size=91
2018-03-27 21:41:58 keypool added key 92, size=92
2018-03-27 21:41:58 keypool added key 93, size=93
2018-03-27 21:41:58 keypool added key 94, size=94
2018-03-27 21:41:58 keypool added key 95, size=95
2018-03-27 21:41:58 keypool added key 96, size=96
2018-03-27 21:41:58 keypool added key 97, size=97
2018-03-27 21:41:58 keypool added key 98, size=98
2018-03-27 21:41:58 keypool added key 99, size=99
2018-03-27 21:41:58 keypool added key 100, size=100
2018-03-27 21:41:58 keypool added key 101, size=101
2018-03-27 21:41:58 keypool reserve 1
2018-03-27 21:41:58 keypool keep 1
2018-03-27 21:41:58  wallet                  453ms
2018-03-27 21:41:58 setKeyPool.size() = 100
2018-03-27 21:41:58 mapWallet.size() = 0
2018-03-27 21:41:58 mapAddressBook.size() = 1
2018-03-27 21:41:58 UpdateTip: new best=00000ac5927c594d49cc0bdb81759d0da8297eb614683d3acb62f0703b639023 height=0 version=0x00000070 log2_work=20.000001 tx=1 date='2014-03-20 19:13:49' progress=0.000007 cache=0.0MiB(0tx)
2018-03-27 21:41:58 mapBlockIndex.size() = 1
2018-03-27 21:41:58 Failed to open mempool file from disk. Continuing anyway.
2018-03-27 21:41:58 nBestHeight = 0
2018-03-27 21:41:58 torcontrol thread start
2018-03-27 21:41:58 init message: Loading addresses...
2018-03-27 21:41:58 ERROR: Read: Failed to open file /home/ubuntu/.groestlcoin/peers.dat
2018-03-27 21:41:58 Invalid or missing peers.dat; recreating
2018-03-27 21:41:58 init message: Loading banlist...
2018-03-27 21:41:58 ERROR: Read: Failed to open file /home/ubuntu/.groestlcoin/banlist.dat
2018-03-27 21:41:58 Invalid or missing banlist.dat; recreating
2018-03-27 21:41:58 init message: Starting network threads...
2018-03-27 21:41:58 net thread start
2018-03-27 21:41:58 init message: Done loading
2018-03-27 21:41:58 dnsseed thread start
2018-03-27 21:41:58 addcon thread start
2018-03-27 21:41:58 Loading addresses from DNS seeds (could take a while)
2018-03-27 21:41:58 opencon thread start
2018-03-27 21:41:58 msghand thread start
2018-03-27 21:41:58 5 addresses found from DNS seeds
2018-03-27 21:41:58 dnsseed thread exit
2018-03-27 21:41:58 receive version message: /Groestlcoin:2.13.3/: version 70015, blocks=2020505, us=18.220.186.120:43158, peer=0
2018-03-27 21:41:59 Pre-allocating up to position 0x100000 in rev00000.dat
2018-03-27 21:41:59 UpdateTip: new best=00000973d52019a3fdda1b1f346e1d76cbf12f8fdd9fbf0ade33bc1da89cb2e9 height=1 version=0x00000070 log2_work=21.000001 tx=2 date='2014-03-22 13:41:11' progress=0.000014 cache=0.0MiB(1tx)
2018-03-27 21:41:59 UpdateTip: new best=000005a19e5880b2e85af1ece6a7a853dd786081915c9e5744da7d9d49e036b2 height=2 version=0x00000070 log2_work=21.584964 tx=3 date='2014-03-22 13:41:12' progress=0.000020 cache=0.0MiB(2tx)
2018-03-27 21:41:59 UpdateTip: new best=00000b7b176cc31f551ff383a57c1ef468b63d2b29ca0819d6728e74892868d5 height=3 version=0x00000070 log2_work=22.000001 tx=4 date='2014-03-22 13:41:14' progress=0.000027 cache=0.0MiB(3tx)

Last couple of lines shows that the synchronization process is running…

With “groestlcoin-cli” we can check the process of synchronization:

srv@local:~/groestlcoin-core/bin$ ./groestlcoin-cli getblockchaininfo
{
  "chain": "main",
  "blocks": 1592616,
  "headers": 2020535,
  "bestblockhash": "0000000002e22d910805ded76c2ecf8538b71bde259a87d42eb0f461874ac470",
  "difficulty": 29.7853045557759,
  "mediantime": 1495007637,
  "verificationprogress": 0.9850607167871146,
  "chainwork": "0000000000000000000000000000000000000000000000000238bd35306e983c",
  "pruned": false,
  "softforks": [
    {
      "id": "bip34",
      "version": 2,
      "reject": {
        "status": true
      }
    }, 
    {
      "id": "bip66",
      "version": 3,
      "reject": {
        "status": true
      }
    }
  ],
  "bip9_softforks": {
    "csv": {
      "status": "active",
      "startTime": 1484956800,
      "timeout": 1498003200,
      "since": 1439424
    },
    "segwit": {
      "status": "active",
      "startTime": 1484956800,
      "timeout": 1498003200,
      "since": 1439424
    },
    "bip65": {
      "status": "active",
      "startTime": 1484956800,
      "timeout": 1498003200,
      "since": 1439424
    }
  }
}

You can see we are at 1592616 of total 2020535. 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:

2018-03-27 22:25:49 UpdateTip: new best=000000000002c7e048092df98fd1d15f0e16e444f1c98f8777b826640e614e32 height=2020547 version=0x20000000 log2_work=60.941936 tx=2701441 date='2018-03-27 22:25:22' progress=1.000000 cache=94.0MiB(426839tx)
2018-03-27 22:25:56 UpdateTip: new best=0000000000063fc891f7a82e86ed43c30fd31c749955d7f0389b89a968fde322 height=2020548 version=0x20000000 log2_work=60.941946 tx=2701442 date='2018-03-27 22:25:49' progress=1.000000 cache=94.0MiB(426840tx)

The starting date of the line will differ with couple of seconds of the date in the transaction – the “date=” after the “tx=”.
Now you can start using your Groestlcoin (wallet) node for transactions and

At present with SSD and 16G RAM on a intel i7 processor and a fast Internet connection 100Mbps the full synchronization took about 40 minutes and 2G of storage space.
You are ready to use “groestlcoin-cli” or the others program to manage your funds – for example send, receive, check balance of your funds.
If you stop and start the program it will start the synchronization from the point you stopped.

3 thoughts on “Running a Groestlcoin node (wallet cli) from source under Ubuntu 16 LTS”

Leave a Reply

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