Running a Electroneum node from source under Ubuntu 16 LTS

Author:

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

electroneumd

which will start and wait for the network synchronization – our Electroneum node will receive all the blockchains of the network!
Installing (or compiling it) the Electroneum 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 Electroneum wallet address, DO NOT TRUST any sites, which offer you a creation of Electroneum wallet or any other crypto currency. In crypto world the one how controls the private key of the wallet (which is generated with the creation of the wallet) controls the Electroneum wallet address so controls your funds! Just Install or compile a Electroneum node software – Building from source a Electroneum node under Ubuntu 16 LTS and you’ll everything you need to manage your Electroneum funds!
It’s worth mentioning again this section of Electroneum node howto (if you read other howtos for running a node you would probably read it, but it so important we include it in every 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 “electroneumd” program (the official Electroneum software), which will create a Electroneum node and after network synchronization could be used to create a Electroneum node.

Three simple rules could almost eliminate leaking your private key to hackers, which in blockchain world means losing your money…
And before start the installation a performance advice:

USE SSD

Technically with Electroneum node you can still use hard drive, but it is slow, but not impossible as some of the older crypto currencies like Ethereum, Bitcoin, Monero and so on.

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

STEP 2) Building from source a Electroneum node

Check out our howto “Building from source a Electroneum node under Ubuntu 16 LTS“.

STEP 3) Start the Electroneum node

if you have followed the howto in STEP 2) you probably have “electroneumd” installed in “~/electroneum/build/release/bin”, so run it with:

ubuntu@srv.local:~/electroneum/build/release/bin$ ./electroneumd &> ./electroneumd.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 Electroneum 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 electroneum
ubuntu@srv.local:~$ cd electroneum/build/release/bin
ubuntu@srv.local:~/electroneum/build/release/bin$ while true; do ./electroneumd &> ./electroneumd.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/.electroneum/

If you want to move it on another server or directory (or device) you must copy this directory to the new location.
The generated IO is so extensive that for a traditional hard drive probably will be difficult to catch up with the synchronization.
When you run “electroneumd” it will check the current state of the network and the current state of your Electroneum 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 Electroneum network to be used for all kind of actions in the network (create a wallet, transfer funds and more).
Here is the output of just started Electroneum node:

ubuntu@ip-172-31-9-41:~$ head -n 1000 electroneum/build/release/bin/electroneumd.log
2018-04-24 08:29:43.963     7f0862635740        INFO    global  src/daemon/main.cpp:280 Electroneum 'Helium Hydra' (v0.11.1.0-6a0535e)
2018-04-24 08:29:43.963     7f0862635740        INFO    global  src/daemon/protocol.h:56        Initializing cryptonote protocol...
2018-04-24 08:29:43.963     7f0862635740        INFO    global  src/daemon/protocol.h:61        Cryptonote protocol initialized OK
2018-04-24 08:29:43.963     7f0862635740        INFO    global  src/daemon/p2p.h:64     Initializing p2p server...
2018-04-24 08:29:48.066     7f0862635740        INFO    global  src/daemon/p2p.h:69     P2p server initialized OK
2018-04-24 08:29:48.066     7f0862635740        INFO    global  src/daemon/rpc.h:59     Initializing core rpc server...
2018-04-24 08:29:48.066     7f0862635740        INFO    global  contrib/epee/include/net/http_server_impl_base.h:70     Binding on 127.0.0.1:26968
2018-04-24 08:29:48.066     7f0862635740        INFO    global  src/daemon/rpc.h:64     Core rpc server initialized OK on port: 26968
2018-04-24 08:29:48.067     7f0862635740        INFO    global  src/daemon/core.h:74    Initializing core...
2018-04-24 08:29:48.067     7f0862635740        INFO    global  src/cryptonote_core/cryptonote_core.cpp:324     Loading blockchain from folder /home/ubuntu/.electroneum/lmdb ...
2018-04-24 08:29:48.067     7f0862635740        WARN    blockchain.db.lmdb      src/blockchain_db/lmdb/db_lmdb.cpp:73   Error attempting to retrieve a hard fork version at height 0 from the db: MDB_NOTFOUND: No matching key/data pair found
2018-04-24 08:29:48.134     7f0862635740        INFO    global  src/cryptonote_core/cryptonote_core.cpp:422     Loading checkpoints
2018-04-24 08:29:48.261     7f0862635740        INFO    global  src/daemon/core.h:79    Core initialized OK
2018-04-24 08:29:48.261     7f0862635740        INFO    global  src/daemon/rpc.h:69     Starting core rpc server...
2018-04-24 08:29:48.261 [SRV_MAIN]      INFO    global  src/daemon/rpc.h:74     Core rpc server started ok
2018-04-24 08:29:48.261 [SRV_MAIN]      INFO    global  src/daemon/p2p.h:79     Starting p2p net loop...
2018-04-24 08:29:49.262 [P2P2]  INFO    global  src/cryptonote_core/cryptonote_core.cpp:1259
**********************************************************************
The daemon will start synchronizing with the network. This may take a long time to complete.

You can set the level of process detailization* through "set_log <level|categories>" command*,
where <level> is between 0 (no details) and 4 (very verbose), or custom category based levels (eg, *:WARNING)

Use the "help" command to see the list of available commands.
**********************************************************************

2018-04-24 08:30:23.375 [P2P2]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:303     [104.128.238.120:26967 OUT] Sync data returned a new top block candidate: 1 -> 255580 [Your node is 255579 blocks (177 days) behind] 
SYNCHRONIZATION started
2018-04-24 08:30:26.448 [P2P2]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [104.128.238.120:26967 OUT]  Synced 101/255580
2018-04-24 08:30:27.820 [P2P5]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [104.128.238.120:26967 OUT]  Synced 201/255580
2018-04-24 08:30:29.107 [P2P9]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [104.128.238.120:26967 OUT]  Synced 301/255580
2018-04-24 08:30:30.378 [P2P4]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [104.128.238.120:26967 OUT]  Synced 401/255580
2018-04-24 08:30:31.673 [P2P5]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [104.128.238.120:26967 OUT]  Synced 501/255580
2018-04-24 08:30:33.064 [P2P8]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [104.128.238.120:26967 OUT]  Synced 601/255580
2018-04-24 08:30:40.652 [P2P5]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [104.128.238.120:26967 OUT]  Synced 701/255580
2018-04-24 08:30:41.899 [P2P4]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:303     [81.187.158.83:26967 OUT] Sync data returned a new top block candidate: 701 -> 255581 [Your node is 254880 blocks (177 days) behind] 
SYNCHRONIZATION started
2018-04-24 08:30:50.515 [P2P8]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [216.244.77.114:26967 OUT]  Synced 801/255581
2018-04-24 08:30:54.798 [P2P8]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [216.244.77.114:26967 OUT]  Synced 901/255581
2018-04-24 08:30:57.647 [P2P8]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [216.244.77.114:26967 OUT]  Synced 1001/255581
2018-04-24 08:31:01.556 [P2P8]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [216.244.77.114:26967 OUT]  Synced 1101/255581
2018-04-24 08:31:06.832 [P2P8]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [216.244.77.114:26967 OUT]  Synced 1201/255581
2018-04-24 08:31:11.527 [P2P8]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [216.244.77.114:26967 OUT]  Synced 1301/255581
2018-04-24 08:31:15.665 [P2P8]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [216.244.77.114:26967 OUT]  Synced 1401/255581
2018-04-24 08:31:16.453 [P2P1]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:303     [85.233.33.46:26967 OUT] Sync data returned a new top block candidate: 1401 -> 255582 [Your node is 254181 blocks (176 days) behind] 
SYNCHRONIZATION started
2018-04-24 08:31:18.632 [P2P8]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [216.244.77.114:26967 OUT]  Synced 1501/255582
2018-04-24 08:31:19.491 [P2P8]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [216.244.77.114:26967 OUT]  Synced 1601/255582
2018-04-24 08:31:20.650 [P2P8]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [216.244.77.114:26967 OUT]  Synced 1701/255582
2018-04-24 08:31:22.308 [P2P8]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [216.244.77.114:26967 OUT]  Synced 1801/255582
2018-04-24 08:31:23.548 [P2P8]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [216.244.77.114:26967 OUT]  Synced 1901/255582
2018-04-24 08:31:26.141 [P2P8]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [216.244.77.114:26967 OUT]  Synced 2001/255582
2018-04-24 08:31:27.320 [P2P8]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [216.244.77.114:26967 OUT]  Synced 2101/255582
.....
.....
.....
2018-04-24 21:46:18.051 [P2P9]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [162.218.114.202:26967 OUT]  Synced 256416/256416
2018-04-24 21:46:18.051 [P2P9]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1519    SYNCHRONIZED OK
2018-04-24 21:46:18.051 [P2P9]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1541
**********************************************************************
You are now synchronized with the network. You may now start electroneum-wallet-cli.

Use the "help" command to see the list of available commands.
**********************************************************************
2018-04-24 21:46:19.858 [P2P3]  INFO    global  src/blockchain_db/lmdb/db_lmdb.cpp:579  [batch] DB resize needed
2018-04-24 22:01:55.769 [P2P3]  INFO    global  src/blockchain_db/lmdb/db_lmdb.cpp:495  LMDB Mapsize increased.  Old: 22859MiB, New: 23883MiB
2018-04-24 22:01:55.771 [P2P3]  INFO    global  src/blockchain_db/lmdb/db_lmdb.cpp:579  [batch] DB resize needed
2018-04-24 22:05:03.853 [P2P3]  INFO    global  src/blockchain_db/lmdb/db_lmdb.cpp:495  LMDB Mapsize increased.  Old: 23883MiB, New: 24907MiB
2018-04-24 22:05:03.901 [P2P5]  INFO    global  src/blockchain_db/lmdb/db_lmdb.cpp:579  [batch] DB resize needed
2018-04-24 22:05:03.901 [P2P5]  INFO    global  src/blockchain_db/lmdb/db_lmdb.cpp:495  LMDB Mapsize increased.  Old: 24907MiB, New: 25931MiB
2018-04-24 22:05:03.942 [P2P9]  INFO    global  src/blockchain_db/lmdb/db_lmdb.cpp:579  [batch] DB resize needed
2018-04-24 22:05:03.943 [P2P9]  INFO    global  src/blockchain_db/lmdb/db_lmdb.cpp:495  LMDB Mapsize increased.  Old: 25931MiB, New: 26955MiB
2018-04-24 22:05:03.943 [P2P9]  INFO    global  src/blockchain_db/lmdb/db_lmdb.cpp:579  [batch] DB resize needed
2018-04-24 22:05:03.944 [P2P9]  INFO    global  src/blockchain_db/lmdb/db_lmdb.cpp:495  LMDB Mapsize increased.  Old: 26955MiB, New: 27979MiB
2018-04-24 22:05:04.032 [P2P4]  INFO    global  src/blockchain_db/lmdb/db_lmdb.cpp:579  [batch] DB resize needed
2018-04-24 22:05:04.033 [P2P4]  INFO    global  src/blockchain_db/lmdb/db_lmdb.cpp:495  LMDB Mapsize increased.  Old: 27979MiB, New: 29003MiB
2018-04-24 22:05:04.114 [P2P9]  INFO    global  src/blockchain_db/lmdb/db_lmdb.cpp:579  [batch] DB resize needed
2018-04-24 22:05:04.115 [P2P9]  INFO    global  src/blockchain_db/lmdb/db_lmdb.cpp:495  LMDB Mapsize increased.  Old: 29003MiB, New: 30027MiB
2018-04-24 22:05:08.452 [P2P5]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:303     [91.224.140.211:21200 OUT] Sync data returned a new top block candidate: 256417 -> 256438 [Your node is 21 blocks (0 days) behind] 
SYNCHRONIZATION started
2018-04-24 22:05:18.547 [P2P0]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1152    [91.224.140.211:21200 OUT]  Synced 256438/256438
2018-04-24 22:05:18.547 [P2P0]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1519    SYNCHRONIZED OK
2018-04-24 22:54:05.918 [P2P0]  INFO    global  src/cryptonote_protocol/cryptonote_protocol_handler.inl:1519    SYNCHRONIZED OK

There is also a log of all the output of the “electroneumd” under the “~/.electroneum/electroneum.log”.

“~/.electroneum/” is where all the data will be saved for the Electroneum node

You can see when your Electroneum node is fully synchronized and you may use the “electroneum-wallet-cli”.

As you can see we redirected the output of the program in a file in the same directory as “electroneumd”. The default output is informative here is what we can see about the blockchain syncronization:

  • how many blockchains we are behind the Electroneum network – “Sync data returned a new top block candidate: 1401 -> 255582”
  • how many days we are behind the Electroneum network – “Your node is 254181 blocks (176 days) behind”

At present with SSD and 16G RAM on a intel i7 processor and a fast Internet connection 100Mbps the full synchronization took about 12 hours and 18G of storage space.
After a successful full synchronization, in the log you’ll have:

You are now synchronized with the network.

and you are ready to use “electroneum-wallet-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.

Leave a Reply

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