Review of freshly installed Fedora 27 Workstation (Gnome GUI)

After the tutorial of Install Fedora Workstation 27 (Gnome GUI) this tutorial is mainly to see what to expect from a freshly installed Fedora 27 Workstation – the look and feel of the GUI (Gnome – version 3.26).
The idea of this tutorial is just to see what to expect from Fedora 27 Workstation (Gnome)the look and feel of the GUI, the default installed programs and their look and how to do some basic steps with them. Here you’ll find more than 130 screenshots and not so many text we do not want to turn this review of many text and version information and 3 meaningless screenshot, which you cannot see anything for the user interface, which these days is the primary goal of a Desktop system. You can expect more of this kind reviews in the future…

screenshot 1) The default desktop look after logging

main menu
Default desktop look
Keep on reading!

Install Fedora Workstation 27 (Gnome GUI)

This tutorial will show you the simple steps of installing a modern Linux Distribution like Fedora 27 Workstation with Gnome for the user graphical interface. First we present the basic steps for installing the Operating system in addition to your present operating systems (here we have two: Windows 10 and Ubuntu 17) and then you can see some screenshots of the installed system and the look and feel of it. We have another tutorials showing more screenshots of the installed and working Fedora 27 (Gnome and KDE plasma) – so you can decide which of them to try first – coming soon.

We used the following ISO for the installation process:

https://download.fedoraproject.org/pub/fedora/linux/releases/27/Workstation/x86_64/iso/Fedora-Workstation-Live-x86_64-27-1.6.iso

It is a LIVE image so you can try it before installing. The easiest way is just to download the image and burn it to a DVD disk and then follow the installation below:

STEP 1) Boot your machine from the CD or USB (whatever you made for the installation device)

main menu
Booting the machine

Keep on reading!

Generate a new Monero address (wallet)

The generation of a new Monero address is super simple, just use

monero-wallet-cli

and personally create your new address.
And for those of you, which do not have “monero-wallet-cli” command or even do not know what is this, check out our howtos here:

  1. Install Ubuntu 16 LTS (comming soon)
  2. Building from source a Monero node under Ubuntu 16 LTS

Go to your directory where is the monero-wallet-cli binary and execute the following command:

srv@local: cd ~/monero/build/release/bin
srv@local:~/monero/build/release/bin$ ./monero-wallet-cli
This is the command line monero wallet. It needs to connect to a monero
daemon to work correctly.

Monero 'Helium Hydra' (v0.11.1.0-master-a03d34f)
Logging to ./monero-wallet-cli.log
Specify wallet file name (e.g., MyWallet). If the wallet doesn't exist, it will be created.
Wallet file name (or Ctrl-C to quit): mycryptomonero
No wallet found with that name. Confirm creation of new wallet named: mycryptomonero
(Y/Yes/N/No): Y
Generating new wallet...
Enter a new password for the wallet: 
Confirm password: 
List of available languages for your wallet's seed:
0 : Deutsch
1 : English
2 : Español
3 : Français
4 : Italiano
5 : Nederlands
6 : Português
7 : русский язык
8 : 日本語
9 : 简体中文 (中国)
10 : Esperanto
11 : Lojban
Enter the number corresponding to the language of your choice: 1
Generated new wallet: 44sEYMFqd8WMcsx5WcjY9WTYyYnBjE8o1DivymU457CwievE6yNuoWARULgDsn9AK24sUwAWa2Jr3SavgnD7a7V7QfBqifZ
View key: 61c3f248516175896bda32c85fa36452081ba79aecde962ea199d5e0ffb3080d
**********************************************************************
Your wallet has been generated!
To start synchronizing with the daemon, use the "refresh" command.
Use the "help" command to see the list of available commands.
Use "help <command>" to see a command's documentation.
Always use the "exit" command when closing monero-wallet-cli to save 
your current session's state. Otherwise, you might need to synchronize 
your wallet again (your wallet keys are NOT at risk in any case).


NOTE: the following 25 words can be used to recover access to your wallet. Write them down and store them somewhere safe and secure. Please do not store them in your email or on file storage services outside of your immediate control.

voice imitate acquire zoom gambit sack dwelt goggles
banjo vowels jetting muffin axis shyness sieve zebra
together elephant joking foxy quick doggy toffee unrest sack
**********************************************************************
Starting refresh...
Refresh done, blocks received: 0                                
Untagged accounts:
          Account               Balance      Unlocked balance                 Label
 *       0 44sEYM        0.000000000000        0.000000000000       Primary account
----------------------------------------------------------------------------------
          Total        0.000000000000        0.000000000000
Currently selected account: [0] Primary account
Tag: (No tag assigned)
Balance: 0.000000000000, unlocked balance: 0.000000000000
Background refresh thread started
[wallet 44sEYM]:

This sequence of numbers and alphabets

44sEYMFqd8WMcsx5WcjY9WTYyYnBjE8o1DivymU457CwievE6yNuoWARULgDsn9AK24sUwAWa2Jr3SavgnD7a7V7QfBqifZ

is your public Monery address, which could be used to receive Monero coins. Monero has also a view key:

61c3f248516175896bda32c85fa36452081ba79aecde962ea199d5e0ffb3080d

which can be used ONLY to view balances (In fact this key could be used to generate a new Monero wallet address, which has read only capabilities of your original wallet address – this is useful when you save your original keys offline and you just want to check balances on an online box).
On Line 9 (highlighted) you enter the name of your wallet, if new it will be created.
On Line 11 (highlighted) expected to confirm creation of new wallet with the name you entered in Line 9.
On Line 28 (highlighted) List of available languages for your wallet’s seed – the words, which could be used to recover access to your wallet.

After generating the address two things must be done:

  1. Backup your Monero wallet file, which is placed in the same directory where the monero-wallet-cli is:
    srv@local:~/monero/build/release/bin$ ls -altr 
    total 55228
    drwxrwxr-x 12 ubuntu ubuntu     4096 Mar 14 13:36 ..
    -rwxrwxr-x  1 ubuntu ubuntu  4212176 Mar 14 13:38 monero-blockchain-export
    -rwxrwxr-x  1 ubuntu ubuntu  4440496 Mar 14 13:38 monero-blockchain-import
    -rwxrwxr-x  1 ubuntu ubuntu 10222816 Mar 14 13:39 monero-gen-trusted-multisig
    -rwxrwxr-x  1 ubuntu ubuntu  9776408 Mar 14 13:40 monerod
    -rwxrwxr-x  1 ubuntu ubuntu 11004464 Mar 14 13:40 monero-wallet-cli
    -rwxrwxr-x  1 ubuntu ubuntu 11387912 Mar 14 13:40 monero-wallet-rpc
    -rw-------  1 ubuntu ubuntu     1005 Apr 25 01:14 mycryptomonero.keys
    -rw-rw-r--  1 ubuntu ubuntu     7269 Apr 25 01:21 monerod.log
    -rw-------  1 ubuntu ubuntu     8845 Apr 25 01:28 monero-wallet-cli.log
    -rw-------  1 ubuntu ubuntu  5463073 Apr 25 01:28 mycryptomonero
    drwxrwxr-x  2 ubuntu ubuntu     4096 Apr 25 01:28 .
    

    So you must backup the two files starting with your Monero wallet name (you entered above): “mycryptomonero” and “mycryptomonero.keys”

  2. Backup your password for the private key!

* Open existing wallet.

And available commands.
You can open your existing wallet when asked for the wallet file name enter the name “mycryptomonero” (the file name is expected to be in the same directory as the monero-wallet-cli) and then enter the password. And if you enter “help” you can see all the available commands of the wallet program “monero-wallet-cli”

srv@local:~/monero/build/release/bin$ ./monero-wallet-cli
This is the command line monero wallet. It needs to connect to a monero
daemon to work correctly.

Monero 'Helium Hydra' (v0.11.1.0-master-a03d34f)
Logging to ./monero-wallet-cli.log
Specify wallet file name (e.g., MyWallet). If the wallet doesn't exist, it will be created.
Wallet file name (or Ctrl-C to quit): mycryptomonero
Wallet and key files found, loading...
Wallet password: 
Opened wallet: 44sEYMFqd8WMcsx5WcjY9WTYyYnBjE8o1DivymU457CwievE6yNuoWARULgDsn9AK24sUwAWa2Jr3SavgnD7a7V7QfBqifZ
**********************************************************************
Use the "help" command to see the list of available commands.
Use "help <command>" to see a command's documentation.
**********************************************************************
Starting refresh...
Refresh done, blocks received: 0                                
Untagged accounts:
          Account               Balance      Unlocked balance                 Label
 *       0 44sEYM        0.000000000000        0.000000000000       Primary account
----------------------------------------------------------------------------------
          Total        0.000000000000        0.000000000000
Currently selected account: [0] Primary account
Tag: (No tag assigned)
Balance: 0.000000000000, unlocked balance: 0.000000000000
Background refresh thread started
[wallet 44sEYM]: help
Commands: 
  account
    account new <label text with white spaces allowed>
    account switch <index> 
    account label <index> <label text with white spaces allowed>
    account tag <tag_name> <account_index_1> [<account_index_2> ...]
    account untag <account_index_1> [<account_index_2> ...]
    account tag_description <tag_name> <description>
  address [ new <label text with white spaces allowed> | all | <index_min> [<index_max>] | label <index> <label text with white spaces allowed>]
  address_book [(add ((<address> [pid <id>])|<integrated address>) [<description possibly with whitespaces>])|(delete <index>)]
  balance [detail]
  bc_height
  check_reserve_proof <address> <signature_file> [<message>]
  check_spend_proof <txid> <signature_file> [<message>]
  check_tx_key <txid> <txkey> <address>
  check_tx_proof <txid> <address> <signature_file> [<message>]
  donate [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <amount> [<payment_id>]
  encrypted_seed
  export_key_images <file>
  export_multisig_info <filename>
  export_outputs <file>
  export_raw_multisig_tx <filename>
  fee
  finalize_multisig <string> [<string>...]
  get_description
  get_reserve_proof (all|<amount>) [<message>]
  get_spend_proof <txid> [<message>]
  get_tx_key <txid>
  get_tx_note <txid>
  get_tx_proof <txid> <address> [<message>]
  help [<command>]
  import_key_images <file>
  import_multisig_info <filename> [<filename>...]
  import_outputs <file>
  incoming_transfers [available|unavailable] [verbose] [index=<N1>[,<N2>[,...]]]
  integrated_address [<payment_id> | <address>]
  locked_transfer [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <addr> <amount> <lockblocks> [<payment_id>]
  make_multisig <threshold> <string1> [<string>...]
  password
  payment_id
  payments <PID_1> [<PID_2> ... <PID_N>]
  prepare_multisig
  refresh
  rescan_bc
  rescan_spent
  save
  save_bc
  save_watch_only
  seed
  set <option> [<value>]
  set_daemon <host>[:<port>]
  set_description [free text note]
  set_log <level>|{+,-,}<categories>
  set_tx_note <txid> [free text note]
  show_transfer <txid>
  show_transfers [in|out|pending|failed|pool] [index=<N1>[,<N2>,...]] [<min_height> [<max_height>]]
  sign <file>
  sign_multisig <filename>
  sign_transfer <file>
  spendkey
  start_mining [<number_of_threads>] [bg_mining] [ignore_battery]
  status
  stop_mining
  submit_multisig <filename>
  submit_transfer
  sweep_all [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> [<payment_id>]
  sweep_below <amount_threshold> [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> [<payment_id>]
  sweep_single [<priority>] [<ring_size>] <key_image> <address> [<payment_id>]
  sweep_unmixable
  transfer [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> <amount> [<payment_id>]
  transfer_original [index=<N1>[,<N2>,...]] [<priority>] [<ring_size>] <address> <amount> [<payment_id>]
  unspent_outputs [index=<N1>[,<N2>,...]] [<min_amount> [<max_amount>]]
  verify <filename> <address> <signature>
  viewkey
  wallet_info

* For a maximum security you could do the following

In fact you could do the following:

  1. Install a fresh copy of Ubuntu
  2. Build from source the Monero software
  3. Unplug the system from the Internet
  4. Generate the wallet
  5. Backup the wallet
  6. Generate a wallet from your view key to check balances only

Thus your wallet will never be exposed on an online machine!

* It is absolutely necessary your crypto wallet addresses to have a password for security reasons and DO NOT FORGET IT you cannot recover the password therefore your access to the wallet! If you lose your password you lose ALL your funds in the address! It’s better to write it down somewhere on a safe physical place.

Running a Electroneum node from source under Ubuntu 16 LTS

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.

Building from source a Electroneum node under Ubuntu 16 LTS

The program, which makes an Electroneum node from your computer, is called

electroneumd

You need a electroneum node to send, receive coins securely and privately and to maintain your wallet personally. DO IT YOURSELF – the most secure way of generating a electroneum wallet address and making transactions such as send and receive coins. As you usual here you’ll see: do not trust any site for generating an electroneum wallet address, use the official tools from this package to generate your addresses and to send and receive coins!
Sometimes you’ll see an easy way of installing the node such as a snap package or docker imagedo not trust them! Most of the time they are unofficial releases or 3rd party releases – trust only to the official site and repository all other packages our there bring more risk than features.

STEP 1) Update your system and install dependencies

sudo apt-get update -y
sudo apt-get -y upgrade
sudo apt-get install -y build-essential cmake pkg-config libboost-all-dev libssl-dev libunbound-dev libminiupnpc-dev libunwind8-dev liblzma-dev libldns-dev libexpat1-dev libgtest-dev doxygen graphviz

STEP 2) Get the “electroneumd” code and compile it

You could change to stable release (probably the last tag) if you like.

git clone https://github.com/electroneum/electroneum
cd electroneum
export CFLAGS="-march=native -O2 -msse3 -fomit-frame-pointer -pipe"
export CXXFLAGS="${CFLAGS}"
export CHOST="x86_64-pc-linux-gnu"
make

STEP 3) Check is everything is OK, installed electroneumd – Electroneum ‘Helium Hydra’

ls command shows the additional programs in the package.

srv@local:~/electroneum$ cd ./build/release/bin
srv@local:~/electroneum/build/release/bin$ ./electroneumd --version
Electroneum 'Helium Hydra' (v0.11.1.0-6a0535e)
srv@local:~/electroneum/build/release/bin$ ls 
electroneum-blockchain-export  electroneum-blockchain-import  electroneum-wallet-cli  electroneum-wallet-rpc  electroneumd

Most used programs are electroneumd and electroneum-wallet-cli, which offers a command line management of a electroneum wallet addresses.

* Here is the help output of “electroneumd” – the Electroneum node daemon:

srv@local:~/electroneum/build/release/bin$ ./electroneumd --help
./electroneumd --help
Electroneum 'Helium Hydra' (v0.11.1.0-6a0535e)

Usage: ./electroneumd [options|settings] [daemon_command...]

Options:
  --help                                Produce help message
  --version                             Output version information
  --os-version                          OS for which this executable was 
                                        compiled
  --config-file arg (=/home/ubuntu/.electroneum/electroneum.conf)
                                        Specify configuration file
  --test-dbg-lock-sleep arg (=0)        Sleep time in ms, defaults to 0 (off), 
                                        used to debug before/after locking 
                                        mutex. Values 100 to 1000 are good for 
                                        tests.
  --detach                              Run as daemon
  --pidfile arg                         File path to write the daemon's PID to 
                                        (optional, requires --detach)
  --non-interactive                     Run non-interactive

Settings:
  --log-file arg (=/home/ubuntu/.electroneum/electroneum.log)
                                        Specify log file
  --log-level arg
  --max-concurrency arg (=0)            Max number of threads to use for a 
                                        parallel job
  --data-dir arg (=/home/ubuntu/.electroneum)
                                        Specify data directory
  --testnet-data-dir arg (=/home/ubuntu/.electroneum/testnet)
                                        Specify testnet data directory
  --test-drop-download                  For net tests: in download, discard ALL
                                        blocks instead checking/saving them 
                                        (very fast)
  --test-drop-download-height arg (=0)  Like test-drop-download but disards 
                                        only after around certain height
  --testnet                             Run on testnet. The wallet must be 
                                        launched with --testnet flag.
  --enforce-dns-checkpointing           checkpoints from DNS server will be 
                                        enforced
  --db-type arg (=lmdb)                 Specify database type, available: lmdb
  --prep-blocks-threads arg (=4)        Max number of threads to use when 
                                        preparing block hashes in groups.
  --fast-block-sync arg (=1)            Sync up most of the way by using 
                                        embedded, known block hashes.
  --db-sync-mode arg (=fast:async:1000) Specify sync option, using format 
                                        [safe|fast|fastest]:[sync|async]:[nbloc
                                        ks_per_sync].
  --db-salvage                          Try to salvage a blockchain database if
                                        it seems corrupted
  --show-time-stats arg (=0)            Show time-stats when processing 
                                        blocks/txs and disk synchronization.
  --block-sync-size arg (=0)            How many blocks to sync at once during 
                                        chain synchronization (0 = adaptive).
  --check-updates arg (=notify)         Check for new versions of electroneum: 
                                        [disabled|notify|download|update]
  --fluffy-blocks                       Relay blocks as fluffy blocks where 
                                        possible (automatic on testnet)
  --testnet-p2p-bind-port arg (=36967)  Port for testnet p2p network protocol
  --p2p-bind-port arg (=26967)          Port for p2p network protocol
  --extra-messages-file arg             Specify file for extra messages to 
                                        include into coinbase transactions
  --start-mining arg                    Specify wallet address to mining for
  --mining-threads arg                  Specify mining threads count
  --bg-mining-enable                    enable/disable background mining
  --bg-mining-ignore-battery            if true, assumes plugged in when unable
                                        to query system power status
  --bg-mining-min-idle-interval arg     Specify min lookback interval in 
                                        seconds for determining idle state
  --bg-mining-idle-threshold arg        Specify minimum avg idle percentage 
                                        over lookback interval
  --bg-mining-miner-target arg          Specificy maximum percentage cpu use by
                                        miner(s)
  --p2p-bind-ip arg (=0.0.0.0)          Interface for p2p network protocol
  --p2p-external-port arg (=0)          External port for p2p network protocol 
                                        (if port forwarding used with NAT)
  --allow-local-ip                      Allow local ip add to peer list, mostly
                                        in debug purposes
  --add-peer arg                        Manually add peer to local peerlist
  --add-priority-node arg               Specify list of peers to connect to and
                                        attempt to keep the connection open
  --add-exclusive-node arg              Specify list of peers to connect to 
                                        only. If this option is given the 
                                        options add-priority-node and seed-node
                                        are ignored
  --seed-node arg                       Connect to a node to retrieve peer 
                                        addresses, and disconnect
  --hide-my-port                        Do not announce yourself as peerlist 
                                        candidate
  --no-igd                              Disable UPnP port mapping
  --offline                             Do not listen for peers, nor connect to
                                        any
  --out-peers arg (=-1)                 set max number of out peers
  --tos-flag arg (=-1)                  set TOS flag
  --limit-rate-up arg (=-1)             set limit-rate-up [kB/s]
  --limit-rate-down arg (=-1)           set limit-rate-down [kB/s]
  --limit-rate arg (=-1)                set limit-rate [kB/s]
  --save-graph                          Save data for dr electroneum
  --rpc-bind-port arg (=26968)          Port for RPC server
  --testnet-rpc-bind-port arg (=36968)  Port for testnet RPC server
  --restricted-rpc                      Restrict RPC to view only commands
  --rpc-bind-ip arg (=127.0.0.1)        Specify ip to bind rpc server
  --rpc-login arg                       Specify username[:password] required 
                                        for RPC server
  --confirm-external-bind               Confirm rpc-bind-ip value is NOT a 
                                        loopback (local) IP

* Here is the help output of “electroneum-wallet-cli” – the cli management tool for Electroneum wallet address

srv@local:~/electroneum/build/release/bin$ ./electroneum-wallet-cli --help
Electroneum 'Helium Hydra' (v0.11.1.0-6a0535e)

This is the command line electroneum wallet. It needs to connect to a electroneum
daemon to work correctly.

Usage:
  electroneum-wallet-cli [--wallet-file=<file>|--generate-new-wallet=<file>] [<COMMAND>]

General options:
  --help                              Produce help message
  --version                           Output version information

Wallet options:
  --daemon-address arg                Use daemon instance at <host>:<port>
  --daemon-host arg                   Use daemon instance at host <arg> instead
                                      of localhost
  --password arg                      Wallet password (escape/quote as needed)
  --password-file arg                 Wallet password file
  --daemon-port arg (=0)              Use daemon instance at port <arg> instead
                                      of 18081
  --daemon-login arg                  Specify username[:password] for daemon 
                                      RPC client
  --testnet                           For testnet. Daemon must also be launched
                                      with --testnet flag
  --restricted-rpc                    Restricts to view-only commands
  --wallet-file arg                   Use wallet <arg>
  --generate-new-wallet arg           Generate new wallet and save it to <arg>
  --generate-from-view-key arg        Generate incoming-only wallet from view 
                                      key
  --generate-from-keys arg            Generate wallet from private keys
  --generate-from-multisig-keys arg   Generate a master wallet from multisig 
                                      wallet keys
  --generate-from-json arg            Generate wallet from JSON format file
  --mnemonic-language arg             Language for mnemonic
  --command arg
  --restore-deterministic-wallet      Recover wallet using Electrum-style 
                                      mnemonic seed
  --non-deterministic                 Create non-deterministic view and spend 
                                      keys
  --electrum-seed arg                 Specify Electrum seed for wallet 
                                      recovery/creation
  --trusted-daemon                    Enable commands which rely on a trusted 
                                      daemon
  --allow-mismatched-daemon-version   Allow communicating with a daemon that 
                                      uses a different RPC version
  --restore-height arg (=0)           Restore from specific blockchain height
  --log-file arg                      Specify log file
  --log-level arg                     0-4 or categories
  --max-concurrency arg (=0)          Max number of threads to use for a 
                                      parallel job
  --config-file arg                   Config file

* Here is the output of the building process

srv@local:~$ sudo apt-get -y update
...
srv@local:~$ sudo apt-get -y upgrade
...
srv@local:~$ sudo apt-get install -y build-essential cmake pkg-config libboost-all-dev libssl-dev libunbound-dev libminiupnpc-dev libunwind8-dev liblzma-dev libldns-dev libexpat1-dev libgtest-dev doxygen graphviz
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  autotools-dev binutils cmake-data cpp cpp-5 dpkg-dev fakeroot fontconfig fontconfig-config fonts-dejavu-core fonts-liberation g++ g++-5 gcc
  gcc-5 icu-devtools libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libarchive13 libasan2 libatomic1
  libboost-atomic-dev libboost-atomic1.58-dev libboost-atomic1.58.0 libboost-chrono-dev libboost-chrono1.58-dev libboost-chrono1.58.0
  libboost-context-dev libboost-context1.58-dev libboost-context1.58.0 libboost-coroutine-dev libboost-coroutine1.58-dev
  libboost-coroutine1.58.0 libboost-date-time-dev libboost-date-time1.58-dev libboost-date-time1.58.0 libboost-dev libboost-exception-dev
  libboost-exception1.58-dev libboost-filesystem-dev libboost-filesystem1.58-dev libboost-filesystem1.58.0 libboost-graph-dev
  libboost-graph-parallel-dev libboost-graph-parallel1.58-dev libboost-graph-parallel1.58.0 libboost-graph1.58-dev libboost-graph1.58.0
  libboost-iostreams-dev libboost-iostreams1.58-dev libboost-iostreams1.58.0 libboost-locale-dev libboost-locale1.58-dev
  libboost-locale1.58.0 libboost-log-dev libboost-log1.58-dev libboost-log1.58.0 libboost-math-dev libboost-math1.58-dev libboost-math1.58.0
  libboost-mpi-dev libboost-mpi-python-dev libboost-mpi-python1.58-dev libboost-mpi-python1.58.0 libboost-mpi1.58-dev libboost-mpi1.58.0
  libboost-program-options-dev libboost-program-options1.58-dev libboost-program-options1.58.0 libboost-python-dev libboost-python1.58-dev
  libboost-python1.58.0 libboost-random-dev libboost-random1.58-dev libboost-random1.58.0 libboost-regex-dev libboost-regex1.58-dev
  libboost-regex1.58.0 libboost-serialization-dev libboost-serialization1.58-dev libboost-serialization1.58.0 libboost-signals-dev
  libboost-signals1.58-dev libboost-signals1.58.0 libboost-system-dev libboost-system1.58-dev libboost-system1.58.0 libboost-test-dev
  libboost-test1.58-dev libboost-test1.58.0 libboost-thread-dev libboost-thread1.58-dev libboost-thread1.58.0 libboost-timer-dev
  libboost-timer1.58-dev libboost-timer1.58.0 libboost-tools-dev libboost-wave-dev libboost-wave1.58-dev libboost-wave1.58.0 libboost1.58-dev
  libboost1.58-tools-dev libc-dev-bin libc6-dev libcairo2 libcc1-0 libcdt5 libcgraph6 libcilkrts5 libclang1-3.6 libcurl3 libdatrie1
  libdpkg-perl libfakeroot libfile-fcntllock-perl libfontconfig1 libgcc-5-dev libgd3 libgomp1 libgraphite2-3 libgvc6 libgvpr2 libharfbuzz0b
  libhwloc-dev libhwloc-plugins libhwloc5 libibverbs-dev libibverbs1 libice6 libicu-dev libisl15 libitm1 libjbig0 libjpeg-turbo8 libjpeg8
  libjsoncpp1 libldns1 libllvm3.6v5 liblsan0 libltdl-dev libltdl7 libminiupnpc10 libmpc3 libmpx0 libnuma-dev libobjc-5-dev libobjc4
  libopenmpi-dev libopenmpi1.10 libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpathplan4 libpciaccess0 libpixman-1-0 libpython-dev
  libpython-stdlib libpython2.7 libpython2.7-dev libpython2.7-minimal libpython2.7-stdlib libquadmath0 libsm6 libssl-doc libstdc++-5-dev
  libthai-data libthai0 libtiff5 libtool libtsan0 libubsan0 libunbound2 libunwind-dev libunwind8 libvpx3 libxaw7 libxcb-render0 libxcb-shm0
  libxmu6 libxpm4 libxrender1 libxt6 linux-libc-dev make manpages-dev mpi-default-bin mpi-default-dev ocl-icd-libopencl1 openmpi-bin
  openmpi-common python python-dev python-minimal python2.7 python2.7-dev python2.7-minimal x11-common zlib1g-dev
Suggested packages:
  binutils-doc codeblocks eclipse ninja-build cpp-doc gcc-5-locales doxygen-latex doxygen-doc doxygen-gui debian-keyring g++-multilib
  g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib autoconf automake flex bison gdb gcc-doc gcc-5-multilib libgcc1-dbg libgomp1-dbg
  libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg gsfonts
  graphviz-doc lrzip libboost-doc libboost1.58-doc gccxml libmpfrc++-dev libntl-dev xsltproc docbook-xml docbook-xsl default-jdk fop
  glibc-doc libgd-tools libhwloc-contrib-plugins icu-doc libtool-doc liblzma-doc minissdpd opennmpi-doc libstdc++-5-doc automaken gfortran
  | fortran95-compiler gcj-jdk make-doc opencl-icd gfortran openmpi-checkpoint python-doc python-tk python2.7-doc binfmt-support
The following NEW packages will be installed:
  autotools-dev binutils build-essential cmake cmake-data cpp cpp-5 doxygen dpkg-dev fakeroot fontconfig fontconfig-config fonts-dejavu-core
  fonts-liberation g++ g++-5 gcc gcc-5 graphviz icu-devtools libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
  libarchive13 libasan2 libatomic1 libboost-all-dev libboost-atomic-dev libboost-atomic1.58-dev libboost-atomic1.58.0 libboost-chrono-dev
  libboost-chrono1.58-dev libboost-chrono1.58.0 libboost-context-dev libboost-context1.58-dev libboost-context1.58.0 libboost-coroutine-dev
  libboost-coroutine1.58-dev libboost-coroutine1.58.0 libboost-date-time-dev libboost-date-time1.58-dev libboost-date-time1.58.0 libboost-dev
  libboost-exception-dev libboost-exception1.58-dev libboost-filesystem-dev libboost-filesystem1.58-dev libboost-filesystem1.58.0
  libboost-graph-dev libboost-graph-parallel-dev libboost-graph-parallel1.58-dev libboost-graph-parallel1.58.0 libboost-graph1.58-dev
  libboost-graph1.58.0 libboost-iostreams-dev libboost-iostreams1.58-dev libboost-iostreams1.58.0 libboost-locale-dev libboost-locale1.58-dev
  libboost-locale1.58.0 libboost-log-dev libboost-log1.58-dev libboost-log1.58.0 libboost-math-dev libboost-math1.58-dev libboost-math1.58.0
  libboost-mpi-dev libboost-mpi-python-dev libboost-mpi-python1.58-dev libboost-mpi-python1.58.0 libboost-mpi1.58-dev libboost-mpi1.58.0
  libboost-program-options-dev libboost-program-options1.58-dev libboost-program-options1.58.0 libboost-python-dev libboost-python1.58-dev
  libboost-python1.58.0 libboost-random-dev libboost-random1.58-dev libboost-random1.58.0 libboost-regex-dev libboost-regex1.58-dev
  libboost-regex1.58.0 libboost-serialization-dev libboost-serialization1.58-dev libboost-serialization1.58.0 libboost-signals-dev
  libboost-signals1.58-dev libboost-signals1.58.0 libboost-system-dev libboost-system1.58-dev libboost-system1.58.0 libboost-test-dev
  libboost-test1.58-dev libboost-test1.58.0 libboost-thread-dev libboost-thread1.58-dev libboost-thread1.58.0 libboost-timer-dev
  libboost-timer1.58-dev libboost-timer1.58.0 libboost-tools-dev libboost-wave-dev libboost-wave1.58-dev libboost-wave1.58.0 libboost1.58-dev
  libboost1.58-tools-dev libc-dev-bin libc6-dev libcairo2 libcc1-0 libcdt5 libcgraph6 libcilkrts5 libclang1-3.6 libcurl3 libdatrie1
  libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libfontconfig1 libgcc-5-dev libgd3 libgomp1 libgraphite2-3 libgtest-dev
  libgvc6 libgvpr2 libharfbuzz0b libhwloc-dev libhwloc-plugins libhwloc5 libibverbs-dev libibverbs1 libice6 libicu-dev libisl15 libitm1
  libjbig0 libjpeg-turbo8 libjpeg8 libjsoncpp1 libldns-dev libldns1 libllvm3.6v5 liblsan0 libltdl-dev libltdl7 liblzma-dev libminiupnpc-dev
  libminiupnpc10 libmpc3 libmpx0 libnuma-dev libobjc-5-dev libobjc4 libopenmpi-dev libopenmpi1.10 libpango-1.0-0 libpangocairo-1.0-0
  libpangoft2-1.0-0 libpathplan4 libpciaccess0 libpixman-1-0 libpython-dev libpython-stdlib libpython2.7 libpython2.7-dev
  libpython2.7-minimal libpython2.7-stdlib libquadmath0 libsm6 libssl-dev libssl-doc libstdc++-5-dev libthai-data libthai0 libtiff5 libtool
  libtsan0 libubsan0 libunbound-dev libunbound2 libunwind-dev libunwind8 libunwind8-dev libvpx3 libxaw7 libxcb-render0 libxcb-shm0 libxmu6
  libxpm4 libxrender1 libxt6 linux-libc-dev make manpages-dev mpi-default-bin mpi-default-dev ocl-icd-libopencl1 openmpi-bin openmpi-common
  pkg-config python python-dev python-minimal python2.7 python2.7-dev python2.7-minimal x11-common zlib1g-dev
0 upgraded, 213 newly installed, 0 to remove and 3 not upgraded.
Need to get 134 MB of archives.
After this operation, 578 MB of additional disk space will be used.
Get:1 http://us-east-2.ec2.archive.ubuntu.com/ubuntu xenial-updates/main amd64 cmake-data all 3.5.1-1ubuntu3 [1121 kB]
......
......
......
srv@local:~$ git clone https://github.com/electroneum/electroneum
Cloning into 'electroneum'...
remote: Counting objects: 30513, done.
remote: Total 30513 (delta 0), reused 0 (delta 0), pack-reused 30513
Receiving objects: 100% (30513/30513), 128.70 MiB | 86.51 MiB/s, done.
Resolving deltas: 100% (22819/22819), done.
Checking connectivity... done.
srv@local:~$ cd electroneum
srv@local:~/electroneum$ export CFLAGS="-march=native -O2 -msse3 -fomit-frame-pointer -pipe"
srv@local:~/electroneum$ export CXXFLAGS="${CFLAGS}"
srv@local:~/electroneum$ export CHOST="x86_64-pc-linux-gnu"
srv@local:~/electroneum$ make
mkdir -p build/release
cd build/release && cmake -D BUILD_TESTS=ON -D CMAKE_BUILD_TYPE=release ../.. && make
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building without build tag
-- Could not find DEVELOPER_LOCAL_TOOLS in env (not required)
-- BOOST_IGNORE_SYSTEM_PATHS defaults to OFF
-- Could not find DEVELOPER_LIBUNBOUND_OLD in env (not required)
-- Building for a 64-bit system
-- Building internal libraries as static
-- Could not find DATABASE in env (not required unless you want to change database type from default: lmdb)
-- Using LMDB as default DB type
-- Stack trace on exception enabled
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.0.2g") 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE  
-- Found MiniUPnPc: /usr/include/miniupnpc  
-- Found miniupnpc API version 10
-- Using shared miniupnpc found at /usr/include/miniupnpc
-- Looking for libunbound
-- Found libunbound include (unbound.h) in /usr/include
-- Found libunbound shared library
-- Using 64-bit LMDB from source tree
-- Building on x86_64 for native
-- AES support enabled
-- Found Boost Version: 105800
-- Could NOT find Readline (missing:  Readline_INCLUDE_DIR Readline_LIBRARY) 
-- Performing Test GNU_READLINE_FOUND
-- Performing Test GNU_READLINE_FOUND - Failed
-- Could not find GNU readline library so building without readline support
-- Found Git: /usr/bin/git
-- Could NOT find GTest (missing:  GTEST_LIBRARY GTEST_MAIN_LIBRARY) 
-- GTest not found on the system: will use GTest bundled with this source
-- Found Doxygen: /usr/bin/doxygen (found version "1.8.11") 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ubuntu/electroneum/build/release
make[1]: Entering directory '/home/ubuntu/electroneum/build/release'
make[2]: Entering directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target version
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[  0%] Generating version/version.h
-- You are currently on commit 6a0535e
-- The most recent tag was at 3b62c74
-- You are ahead of or behind a tagged release
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[  0%] Built target version
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target lmdb
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[  1%] Building C object external/db_drivers/liblmdb/CMakeFiles/lmdb.dir/mdb.c.o
[  1%] Building C object external/db_drivers/liblmdb/CMakeFiles/lmdb.dir/midl.c.o
[  2%] Linking C static library liblmdb.a
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[  2%] Built target lmdb
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target easylogging
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[  2%] Building CXX object external/easylogging++/CMakeFiles/easylogging.dir/easylogging++.cc.o
[  3%] Linking CXX static library libeasylogging.a
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[  3%] Built target easylogging
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target obj_cncrypto
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[  3%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/aesb.c.o
[  4%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/blake256.c.o
[  4%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/chacha8.c.o
[  5%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/crypto-ops-data.c.o
[  5%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/crypto-ops.c.o
[  5%] Building CXX object src/crypto/CMakeFiles/obj_cncrypto.dir/crypto.cpp.o
[  6%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/groestl.c.o
[  6%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/hash-extra-blake.c.o
[  7%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/hash-extra-groestl.c.o
[  7%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/hash-extra-jh.c.o
[  8%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/hash-extra-skein.c.o
[  8%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/hash.c.o
[  9%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/jh.c.o
[  9%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/keccak.c.o
[ 10%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/oaes_lib.c.o
[ 10%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/random.c.o
[ 10%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/skein.c.o
[ 11%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/slow-hash.c.o
[ 11%] Building C object src/crypto/CMakeFiles/obj_cncrypto.dir/tree-hash.c.o
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 11%] Built target obj_cncrypto
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target cncrypto
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 12%] Linking CXX static library libcncrypto.a
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 12%] Built target cncrypto
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target epee
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 12%] Building CXX object contrib/epee/src/CMakeFiles/epee.dir/hex.cpp.o
[ 13%] Building CXX object contrib/epee/src/CMakeFiles/epee.dir/http_auth.cpp.o
[ 13%] Building CXX object contrib/epee/src/CMakeFiles/epee.dir/mlog.cpp.o
[ 13%] Building CXX object contrib/epee/src/CMakeFiles/epee.dir/string_tools.cpp.o
[ 14%] Linking CXX static library libepee.a
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 14%] Built target epee
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target obj_common
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 15%] Building CXX object src/common/CMakeFiles/obj_common.dir/base58.cpp.o
[ 15%] Building CXX object src/common/CMakeFiles/obj_common.dir/command_line.cpp.o
[ 16%] Building CXX object src/common/CMakeFiles/obj_common.dir/dns_utils.cpp.o
[ 16%] Building CXX object src/common/CMakeFiles/obj_common.dir/download.cpp.o
[ 17%] Building CXX object src/common/CMakeFiles/obj_common.dir/util.cpp.o
[ 17%] Building CXX object src/common/CMakeFiles/obj_common.dir/i18n.cpp.o
[ 18%] Building CXX object src/common/CMakeFiles/obj_common.dir/password.cpp.o
[ 18%] Building CXX object src/common/CMakeFiles/obj_common.dir/perf_timer.cpp.o
[ 18%] Building CXX object src/common/CMakeFiles/obj_common.dir/task_region.cpp.o
[ 19%] Building CXX object src/common/CMakeFiles/obj_common.dir/thread_group.cpp.o
[ 19%] Building CXX object src/common/CMakeFiles/obj_common.dir/updates.cpp.o
[ 20%] Building CXX object src/common/CMakeFiles/obj_common.dir/stack_trace.cpp.o
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 20%] Built target obj_common
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target common
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 20%] Linking CXX static library libcommon.a
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 20%] Built target common
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target obj_ringct
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 21%] Building CXX object src/ringct/CMakeFiles/obj_ringct.dir/rctOps.cpp.o
[ 21%] Building CXX object src/ringct/CMakeFiles/obj_ringct.dir/rctSigs.cpp.o
[ 21%] Building CXX object src/ringct/CMakeFiles/obj_ringct.dir/rctTypes.cpp.o
[ 22%] Building C object src/ringct/CMakeFiles/obj_ringct.dir/rctCryptoOps.c.o
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 22%] Built target obj_ringct
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target obj_cryptonote_basic
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 22%] Building CXX object src/cryptonote_basic/CMakeFiles/obj_cryptonote_basic.dir/account.cpp.o
[ 23%] Building CXX object src/cryptonote_basic/CMakeFiles/obj_cryptonote_basic.dir/checkpoints.cpp.o
[ 23%] Building CXX object src/cryptonote_basic/CMakeFiles/obj_cryptonote_basic.dir/cryptonote_basic_impl.cpp.o
[ 24%] Building CXX object src/cryptonote_basic/CMakeFiles/obj_cryptonote_basic.dir/cryptonote_format_utils.cpp.o
[ 24%] Building CXX object src/cryptonote_basic/CMakeFiles/obj_cryptonote_basic.dir/difficulty.cpp.o
[ 25%] Building CXX object src/cryptonote_basic/CMakeFiles/obj_cryptonote_basic.dir/hardfork.cpp.o
[ 25%] Building CXX object src/cryptonote_basic/CMakeFiles/obj_cryptonote_basic.dir/miner.cpp.o
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 25%] Built target obj_cryptonote_basic
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target cryptonote_basic
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 25%] Linking CXX static library libcryptonote_basic.a
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 25%] Built target cryptonote_basic
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target ringct
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 26%] Linking CXX static library libringct.a
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 26%] Built target ringct
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target obj_cryptonote_core
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 27%] Building CXX object src/cryptonote_core/CMakeFiles/obj_cryptonote_core.dir/blockchain.cpp.o
[ 27%] Building CXX object src/cryptonote_core/CMakeFiles/obj_cryptonote_core.dir/cryptonote_core.cpp.o
[ 27%] Building CXX object src/cryptonote_core/CMakeFiles/obj_cryptonote_core.dir/tx_pool.cpp.o
[ 28%] Building CXX object src/cryptonote_core/CMakeFiles/obj_cryptonote_core.dir/cryptonote_tx_utils.cpp.o
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 28%] Built target obj_cryptonote_core
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 28%] Generating testnet_blocks.o
[ 29%] Generating blocks.o
Scanning dependencies of target blocks
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 30%] Building C object src/blocks/CMakeFiles/blocks.dir/blockexports.c.o
[ 30%] Linking C static library libblocks.a
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 30%] Built target blocks
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target obj_blockchain_db
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 30%] Building CXX object src/blockchain_db/CMakeFiles/obj_blockchain_db.dir/blockchain_db.cpp.o
[ 31%] Building CXX object src/blockchain_db/CMakeFiles/obj_blockchain_db.dir/lmdb/db_lmdb.cpp.o
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 31%] Built target obj_blockchain_db
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target blockchain_db
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 31%] Linking CXX static library libblockchain_db.a
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 31%] Built target blockchain_db
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target cryptonote_core
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 32%] Linking CXX static library libcryptonote_core.a
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 32%] Built target cryptonote_core
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target obj_mnemonics
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 33%] Building CXX object src/mnemonics/CMakeFiles/obj_mnemonics.dir/electrum-words.cpp.o
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 33%] Built target obj_mnemonics
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target mnemonics
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 33%] Linking CXX static library libmnemonics.a
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 33%] Built target mnemonics
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target obj_rpc
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 33%] Building CXX object src/rpc/CMakeFiles/obj_rpc.dir/core_rpc_server.cpp.o
[ 34%] Building CXX object src/rpc/CMakeFiles/obj_rpc.dir/rpc_args.cpp.o
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 34%] Built target obj_rpc
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target obj_p2p
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 34%] Building CXX object src/p2p/CMakeFiles/obj_p2p.dir/network_throttle-detail.cpp.o
[ 35%] Building CXX object src/p2p/CMakeFiles/obj_p2p.dir/connection_basic.cpp.o
[ 35%] Building CXX object src/p2p/CMakeFiles/obj_p2p.dir/network_throttle.cpp.o
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 35%] Built target obj_p2p
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target p2p
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 35%] Linking CXX static library libp2p.a
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 35%] Built target p2p
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target obj_cryptonote_protocol
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 35%] Building CXX object src/cryptonote_protocol/CMakeFiles/obj_cryptonote_protocol.dir/block_queue.cpp.o
[ 36%] Building CXX object src/cryptonote_protocol/CMakeFiles/obj_cryptonote_protocol.dir/cryptonote_protocol_handler-base.cpp.o
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 36%] Built target obj_cryptonote_protocol
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target cryptonote_protocol
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 36%] Linking CXX static library libcryptonote_protocol.a
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 36%] Built target cryptonote_protocol
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target rpc
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 36%] Linking CXX static library librpc.a
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 36%] Built target rpc
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target obj_wallet
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 36%] Building CXX object src/wallet/CMakeFiles/obj_wallet.dir/wallet2.cpp.o
[ 37%] Building CXX object src/wallet/CMakeFiles/obj_wallet.dir/wallet_args.cpp.o
[ 37%] Building CXX object src/wallet/CMakeFiles/obj_wallet.dir/node_rpc_proxy.cpp.o
[ 38%] Building CXX object src/wallet/CMakeFiles/obj_wallet.dir/api/wallet.cpp.o
[ 38%] Building CXX object src/wallet/CMakeFiles/obj_wallet.dir/api/wallet_manager.cpp.o
[ 39%] Building CXX object src/wallet/CMakeFiles/obj_wallet.dir/api/transaction_info.cpp.o
[ 39%] Building CXX object src/wallet/CMakeFiles/obj_wallet.dir/api/transaction_history.cpp.o
[ 39%] Building CXX object src/wallet/CMakeFiles/obj_wallet.dir/api/pending_transaction.cpp.o
[ 40%] Building CXX object src/wallet/CMakeFiles/obj_wallet.dir/api/utils.cpp.o
[ 40%] Building CXX object src/wallet/CMakeFiles/obj_wallet.dir/api/address_book.cpp.o
[ 41%] Building CXX object src/wallet/CMakeFiles/obj_wallet.dir/api/unsigned_transaction.cpp.o
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 41%] Built target obj_wallet
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target wallet
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 42%] Linking CXX static library ../../lib/libwallet.a
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 42%] Built target wallet
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target wallet_rpc_server
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 42%] Building CXX object src/wallet/CMakeFiles/wallet_rpc_server.dir/wallet_rpc_server.cpp.o
[ 43%] Linking CXX executable ../../bin/electroneum-wallet-rpc
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 43%] Built target wallet_rpc_server
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target simplewallet
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 44%] Building CXX object src/simplewallet/CMakeFiles/simplewallet.dir/simplewallet.cpp.o
[ 44%] Linking CXX executable ../../bin/electroneum-wallet-cli
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 44%] Built target simplewallet
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target obj_daemonizer
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 44%] Building CXX object src/daemonizer/CMakeFiles/obj_daemonizer.dir/posix_fork.cpp.o
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 44%] Built target obj_daemonizer
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target daemonizer
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 44%] Linking CXX static library libdaemonizer.a
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 44%] Built target daemonizer
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 45%] Generating blocksdat.o
Scanning dependencies of target daemon
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 45%] Building CXX object src/daemon/CMakeFiles/daemon.dir/command_parser_executor.cpp.o
[ 46%] Building CXX object src/daemon/CMakeFiles/daemon.dir/command_server.cpp.o
[ 46%] Building CXX object src/daemon/CMakeFiles/daemon.dir/daemon.cpp.o
[ 47%] Building CXX object src/daemon/CMakeFiles/daemon.dir/executor.cpp.o
[ 47%] Building CXX object src/daemon/CMakeFiles/daemon.dir/main.cpp.o
[ 47%] Building CXX object src/daemon/CMakeFiles/daemon.dir/rpc_command_executor.cpp.o
[ 48%] Linking CXX executable ../../bin/electroneumd
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 48%] Built target daemon
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 49%] Generating blocksdat.o
Scanning dependencies of target blockchain_import
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 49%] Building CXX object src/blockchain_utilities/CMakeFiles/blockchain_import.dir/blockchain_import.cpp.o
[ 50%] Building CXX object src/blockchain_utilities/CMakeFiles/blockchain_import.dir/bootstrap_file.cpp.o
[ 50%] Building CXX object src/blockchain_utilities/CMakeFiles/blockchain_import.dir/blocksdat_file.cpp.o
[ 50%] Linking CXX executable ../../bin/electroneum-blockchain-import
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 50%] Built target blockchain_import
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target blockchain_export
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 51%] Building CXX object src/blockchain_utilities/CMakeFiles/blockchain_export.dir/blockchain_export.cpp.o
[ 51%] Building CXX object src/blockchain_utilities/CMakeFiles/blockchain_export.dir/bootstrap_file.cpp.o
[ 52%] Building CXX object src/blockchain_utilities/CMakeFiles/blockchain_export.dir/blocksdat_file.cpp.o
[ 52%] Linking CXX executable ../../bin/electroneum-blockchain-export
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 52%] Built target blockchain_export
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target googletest
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 52%] Creating directories for 'googletest'
[ 53%] No download step for 'googletest'
[ 53%] No patch step for 'googletest'
[ 53%] No update step for 'googletest'
[ 54%] Performing configure step for 'googletest'
-- The CXX compiler identification is GNU 5.4.0
-- The C compiler identification is GNU 5.4.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found PythonInterp: /usr/bin/python (found version "2.7.12") 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ubuntu/electroneum/build/release/tests/gtest
[ 54%] Performing build step for 'googletest'
make[4]: Entering directory '/home/ubuntu/electroneum/build/release/tests/gtest'
make[5]: Entering directory '/home/ubuntu/electroneum/build/release/tests/gtest'
make[6]: Entering directory '/home/ubuntu/electroneum/build/release/tests/gtest'
Scanning dependencies of target gtest
make[6]: Leaving directory '/home/ubuntu/electroneum/build/release/tests/gtest'
make[6]: Entering directory '/home/ubuntu/electroneum/build/release/tests/gtest'
[ 25%] Building CXX object CMakeFiles/gtest.dir/src/gtest-all.cc.o
[ 50%] Linking CXX static library libgtest.a
make[6]: Leaving directory '/home/ubuntu/electroneum/build/release/tests/gtest'
[ 50%] Built target gtest
make[6]: Entering directory '/home/ubuntu/electroneum/build/release/tests/gtest'
Scanning dependencies of target gtest_main
make[6]: Leaving directory '/home/ubuntu/electroneum/build/release/tests/gtest'
make[6]: Entering directory '/home/ubuntu/electroneum/build/release/tests/gtest'
[ 75%] Building CXX object CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
[100%] Linking CXX static library libgtest_main.a
make[6]: Leaving directory '/home/ubuntu/electroneum/build/release/tests/gtest'
[100%] Built target gtest_main
make[5]: Leaving directory '/home/ubuntu/electroneum/build/release/tests/gtest'
make[4]: Leaving directory '/home/ubuntu/electroneum/build/release/tests/gtest'
[ 55%] No install step for 'googletest'
[ 55%] Completed 'googletest'
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 55%] Built target googletest
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target hash-target-tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 56%] Building CXX object tests/CMakeFiles/hash-target-tests.dir/hash-target.cpp.o
[ 56%] Linking CXX executable hash-target-tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 56%] Built target hash-target-tests
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target coretests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 56%] Building CXX object tests/core_tests/CMakeFiles/coretests.dir/block_reward.cpp.o
[ 57%] Building CXX object tests/core_tests/CMakeFiles/coretests.dir/block_validation.cpp.o
[ 57%] Building CXX object tests/core_tests/CMakeFiles/coretests.dir/chain_split_1.cpp.o
[ 58%] Building CXX object tests/core_tests/CMakeFiles/coretests.dir/chain_switch_1.cpp.o
[ 58%] Building CXX object tests/core_tests/CMakeFiles/coretests.dir/chaingen.cpp.o
[ 59%] Building CXX object tests/core_tests/CMakeFiles/coretests.dir/chaingen001.cpp.o
[ 59%] Building CXX object tests/core_tests/CMakeFiles/coretests.dir/chaingen_main.cpp.o
[ 60%] Building CXX object tests/core_tests/CMakeFiles/coretests.dir/double_spend.cpp.o
[ 60%] Building CXX object tests/core_tests/CMakeFiles/coretests.dir/integer_overflow.cpp.o
[ 61%] Building CXX object tests/core_tests/CMakeFiles/coretests.dir/ring_signature_1.cpp.o
[ 61%] Building CXX object tests/core_tests/CMakeFiles/coretests.dir/transaction_tests.cpp.o
[ 62%] Building CXX object tests/core_tests/CMakeFiles/coretests.dir/tx_validation.cpp.o
[ 62%] Building CXX object tests/core_tests/CMakeFiles/coretests.dir/v2_tests.cpp.o
[ 62%] Building CXX object tests/core_tests/CMakeFiles/coretests.dir/rct.cpp.o
[ 63%] Linking CXX executable coretests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 63%] Built target coretests
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target cold-outputs_fuzz_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 63%] Building CXX object tests/fuzz/CMakeFiles/cold-outputs_fuzz_tests.dir/cold-outputs.cpp.o
[ 64%] Building CXX object tests/fuzz/CMakeFiles/cold-outputs_fuzz_tests.dir/fuzzer.cpp.o
[ 64%] Linking CXX executable cold-outputs_fuzz_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 64%] Built target cold-outputs_fuzz_tests
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target transaction_fuzz_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 65%] Building CXX object tests/fuzz/CMakeFiles/transaction_fuzz_tests.dir/transaction.cpp.o
[ 65%] Building CXX object tests/fuzz/CMakeFiles/transaction_fuzz_tests.dir/fuzzer.cpp.o
[ 66%] Linking CXX executable transaction_fuzz_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 66%] Built target transaction_fuzz_tests
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target block_fuzz_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 66%] Building CXX object tests/fuzz/CMakeFiles/block_fuzz_tests.dir/block.cpp.o
[ 66%] Building CXX object tests/fuzz/CMakeFiles/block_fuzz_tests.dir/fuzzer.cpp.o
[ 67%] Linking CXX executable block_fuzz_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 67%] Built target block_fuzz_tests
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target signature_fuzz_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 68%] Building CXX object tests/fuzz/CMakeFiles/signature_fuzz_tests.dir/signature.cpp.o
[ 68%] Building CXX object tests/fuzz/CMakeFiles/signature_fuzz_tests.dir/fuzzer.cpp.o
[ 68%] Linking CXX executable signature_fuzz_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 68%] Built target signature_fuzz_tests
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target cold-transaction_fuzz_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 69%] Building CXX object tests/fuzz/CMakeFiles/cold-transaction_fuzz_tests.dir/cold-transaction.cpp.o
[ 69%] Building CXX object tests/fuzz/CMakeFiles/cold-transaction_fuzz_tests.dir/fuzzer.cpp.o
[ 70%] Linking CXX executable cold-transaction_fuzz_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 70%] Built target cold-transaction_fuzz_tests
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target cncrypto-tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 70%] Building C object tests/crypto/CMakeFiles/cncrypto-tests.dir/crypto-ops-data.c.o
[ 71%] Building C object tests/crypto/CMakeFiles/cncrypto-tests.dir/crypto-ops.c.o
[ 71%] Building CXX object tests/crypto/CMakeFiles/cncrypto-tests.dir/crypto.cpp.o
[ 72%] Building C object tests/crypto/CMakeFiles/cncrypto-tests.dir/hash.c.o
[ 72%] Building CXX object tests/crypto/CMakeFiles/cncrypto-tests.dir/main.cpp.o
[ 72%] Building C object tests/crypto/CMakeFiles/cncrypto-tests.dir/random.c.o
[ 73%] Linking CXX executable cncrypto-tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 73%] Built target cncrypto-tests
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target functional_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 73%] Building CXX object tests/functional_tests/CMakeFiles/functional_tests.dir/main.cpp.o
[ 74%] Building CXX object tests/functional_tests/CMakeFiles/functional_tests.dir/transactions_flow_test.cpp.o
[ 74%] Building CXX object tests/functional_tests/CMakeFiles/functional_tests.dir/transactions_generation_from_blockchain.cpp.o
[ 75%] Linking CXX executable functional_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 75%] Built target functional_tests
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target performance_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 76%] Building CXX object tests/performance_tests/CMakeFiles/performance_tests.dir/main.cpp.o
[ 76%] Linking CXX executable performance_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 76%] Built target performance_tests
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target core_proxy
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 77%] Building CXX object tests/core_proxy/CMakeFiles/core_proxy.dir/core_proxy.cpp.o
[ 77%] Linking CXX executable core_proxy
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 77%] Built target core_proxy
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target unit_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 77%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/address_from_url.cpp.o
[ 78%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/ban.cpp.o
[ 78%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/base58.cpp.o
[ 79%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/blockchain_db.cpp.o
[ 79%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/block_queue.cpp.o
[ 80%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/block_reward.cpp.o
[ 80%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/canonical_amounts.cpp.o
[ 80%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/chacha8.cpp.o
[ 81%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/checkpoints.cpp.o
[ 81%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/command_line.cpp.o
[ 82%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/crypto.cpp.o
[ 82%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/decompose_amount_into_digits.cpp.o
[ 83%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/dns_resolver.cpp.o
[ 83%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/epee_boosted_tcp_server.cpp.o
[ 84%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/epee_levin_protocol_handler_async.cpp.o
[ 84%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/epee_utils.cpp.o
[ 85%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/fee.cpp.o
[ 85%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/get_xtype_from_string.cpp.o
[ 85%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/http.cpp.o
[ 86%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/main.cpp.o
[ 86%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/mnemonics.cpp.o
[ 87%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/mul_div.cpp.o
[ 87%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/parse_amount.cpp.o
[ 88%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/serialization.cpp.o
[ 88%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/slow_memmem.cpp.o
[ 89%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/test_tx_utils.cpp.o
[ 89%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/test_peerlist.cpp.o
[ 90%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/test_protocol_pack.cpp.o
[ 90%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/thread_group.cpp.o
[ 90%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/hardfork.cpp.o
[ 91%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/unbound.cpp.o
[ 91%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/uri.cpp.o
[ 92%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/varint.cpp.o
[ 92%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/ringct.cpp.o
[ 93%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/output_selection.cpp.o
[ 93%] Building CXX object tests/unit_tests/CMakeFiles/unit_tests.dir/vercmp.cpp.o
[ 94%] Linking CXX executable unit_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 94%] Built target unit_tests
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target difficulty-tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 95%] Building CXX object tests/difficulty/CMakeFiles/difficulty-tests.dir/difficulty.cpp.o
[ 95%] Linking CXX executable difficulty-tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 95%] Built target difficulty-tests
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target hash-tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 96%] Building CXX object tests/hash/CMakeFiles/hash-tests.dir/main.cpp.o
[ 96%] Linking CXX executable hash-tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 96%] Built target hash-tests
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target net_load_tests_clt
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 96%] Building CXX object tests/net_load_tests/CMakeFiles/net_load_tests_clt.dir/clt.cpp.o
[ 97%] Linking CXX executable net_load_tests_clt
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 97%] Built target net_load_tests_clt
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target net_load_tests_srv
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[ 97%] Building CXX object tests/net_load_tests/CMakeFiles/net_load_tests_srv.dir/srv.cpp.o
[ 98%] Linking CXX executable net_load_tests_srv
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[ 98%] Built target net_load_tests_srv
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
Scanning dependencies of target libwallet_api_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[3]: Entering directory '/home/ubuntu/electroneum/build/release'
[100%] Building CXX object tests/libwallet_api_tests/CMakeFiles/libwallet_api_tests.dir/main.cpp.o
[100%] Linking CXX executable libwallet_api_tests
make[3]: Leaving directory '/home/ubuntu/electroneum/build/release'
[100%] Built target libwallet_api_tests
make[2]: Leaving directory '/home/ubuntu/electroneum/build/release'
make[1]: Leaving directory '/home/ubuntu/electroneum/build/release'

distccd failed to exec with “No such file or directory”

And you think your compile box using distccd is ready you start emerge in your server/desktop/laptop and the first package is OK, the your emerge is using the distccd properly and the compilation is distributed to the compile box get compiled.
But just then another package gets a warning during build time:

distcc[9356] (dcc_build_somewhere) Warning: failed to distribute, running locally instead

So everything is back in your machine not in the compile box! And you find in the logs of the distccd compile box:

Apr 23 00:36:17 compile distccd[6177]: (dcc_execvp) ERROR: failed to exec x86_64-pc-linux-gnu-clang++: No such file or directory
Apr 23 00:36:17 compile distccd[12965]: (dcc_job_summary) client: 10.10.10.10:54946 COMPILE_ERROR exit:110 sig:0 core:0 ret:0 time:3492ms x86_64-pc-linux-gnu-clang++ ../../v8/src/accessors.cc
Apr 23 00:36:17 compile distccd[13490]: (dcc_job_summary) client: 10.10.10.10:54954 COMPILE_ERROR exit:110 sig:0 core:0 ret:0 time:1677ms x86_64-pc-linux-gnu-clang++ ../../v8/src/asmjs/asm-types.cc
Apr 23 00:36:18 compile distccd[6178]: (dcc_execvp) ERROR: failed to exec x86_64-pc-linux-gnu-clang++: No such file or directory
Apr 23 00:36:18 compile distccd[6097]: (dcc_job_summary) client: 10.10.10.10:54956 COMPILE_ERROR exit:110 sig:0 core:0 ret:0 time:2340ms x86_64-pc-linux-gnu-clang++ ../../v8/src/assembler.cc
Apr 23 00:37:22 compile distccd[6180]: (dcc_execvp) ERROR: failed to exec x86_64-pc-linux-gnu-clang++: No such file or directory
Apr 23 00:37:22 compile distccd[13307]: (dcc_job_summary) client: 10.10.10.10:54990 COMPILE_ERROR exit:110 sig:0 core:0 ret:0 time:1878ms x86_64-pc-linux-gnu-clang++ ../../v8/src/heap/incremental-marking-job.cc
Apr 23 00:37:23 compile distccd[6184]: (dcc_execvp) ERROR: failed to exec x86_64-pc-linux-gnu-clang++: No such file or directory
Apr 23 00:37:23 compile distccd[13719]: (dcc_job_summary) client: 10.10.10.10:54992 COMPILE_ERROR exit:110 sig:0 core:0 ret:0 time:2139ms x86_64-pc-linux-gnu-clang++ ../../v8/src/heap/incremental-marking.cc

Ahh you missed a package, then you emerge it fast with (assumed you used Gentoo, but the solution is valid for all distros)

[root@local ]# emerge -v sys-devel/clang sys-devel/clang-runtime

And start up the build process again (if Gentoo with emerge) and again the same situation? Again the same error, but you have the “x86_64-pc-linux-gnu-clang++” command and when you type x86_64-pc-linux-gnu-clang++ it executes properly! So what is the problem? The problem is that x86_64-pc-linux-gnu-clang++ is not in the current environment PATH:

compile ~ # whereis x86_64-pc-linux-gnu-clang++
x86_64-pc-linux-gnu-clang++: /usr/lib64/llvm/5/bin/x86_64-pc-linux-gnu-clang++

The solution is very simple just restart “distccd”. A trivial one, but could save you time next time! If you install a package, which is expected to be used with distccd restart distccd!!!

Under Getnoo:

compile ~ # /etc/init.d/distccd restart
 * Caching service dependencies ...
 * Stopping distccd ...  [ ok ]
 * Starting distccd ...  [ ok ]
compile ~ #

* You might get error for another file, check if it exists if not install it and then restart the distccd daemon, for example you could get error for any of these:

x86_64-pc-linux-gnu-addr2line
x86_64-pc-linux-gnu-elfedit
x86_64-pc-linux-gnu-gprof
x86_64-pc-linux-gnu-ar
x86_64-pc-linux-gnu-g++
x86_64-pc-linux-gnu-ld
x86_64-pc-linux-gnu-as
x86_64-pc-linux-gnu-g++-6.4.0
x86_64-pc-linux-gnu-ld.bfd
x86_64-pc-linux-gnu-c++
x86_64-pc-linux-gnu-g++-7.2.0
x86_64-pc-linux-gnu-ld.gold
x86_64-pc-linux-gnu-c++-6.4.0
x86_64-pc-linux-gnu-gcc
x86_64-pc-linux-gnu-libgcrypt-config
x86_64-pc-linux-gnu-c++-7.2.0
x86_64-pc-linux-gnu-gcc-6.4.0
x86_64-pc-linux-gnu-llvm-config
x86_64-pc-linux-gnu-c++filt
x86_64-pc-linux-gnu-gcc-7.2.0
x86_64-pc-linux-gnu-nm
x86_64-pc-linux-gnu-clang
x86_64-pc-linux-gnu-gcc-ar
x86_64-pc-linux-gnu-objcopy
x86_64-pc-linux-gnu-clang++
x86_64-pc-linux-gnu-gcc-nm
x86_64-pc-linux-gnu-objdump
x86_64-pc-linux-gnu-clang-5.0
x86_64-pc-linux-gnu-gcc-ranlib
x86_64-pc-linux-gnu-pcre-config
x86_64-pc-linux-gnu-clang++-5.0
x86_64-pc-linux-gnu-gcov
x86_64-pc-linux-gnu-pkg-config
x86_64-pc-linux-gnu-clang-cl
x86_64-pc-linux-gnu-gcov-6.4.0
x86_64-pc-linux-gnu-ranlib
x86_64-pc-linux-gnu-clang-cl-5.0
x86_64-pc-linux-gnu-gcov-7.2.0
x86_64-pc-linux-gnu-readelf
x86_64-pc-linux-gnu-clang-cpp
x86_64-pc-linux-gnu-gcov-dump
x86_64-pc-linux-gnu-size
x86_64-pc-linux-gnu-clang-cpp-5.0
x86_64-pc-linux-gnu-gcov-tool
x86_64-pc-linux-gnu-strings
x86_64-pc-linux-gnu-cpp
x86_64-pc-linux-gnu-gfortran
x86_64-pc-linux-gnu-strip
x86_64-pc-linux-gnu-cpp-6.4.0
x86_64-pc-linux-gnu-gfortran-6.4.0
x86_64-pc-linux-gnu-xml2-config
x86_64-pc-linux-gnu-cpp-7.2.0
x86_64-pc-linux-gnu-gfortran-7.2.0
x86_64-pc-linux-gnu-xslt-config
x86_64-pc-linux-gnu-curl-config
x86_64-pc-linux-gnu-gio-querymodules

Resume compilation of a packet from where it failed under Gentoo

Sometimes problems are too specific, but they can show us a path to look for a more general problem and its solution. There was a nasty bug in emerging Firefox package in Gentoo basically it compiled all the source and then it got an error from the build script, but all the source was compiled successfully! So the solution was just to manually install with

ebuild

the package and not to wait for the fix 😉 A good workaround.

But what if we have a big package, which failed during compilation

because of “out of ram” or “out of space” or a missing library, which the maintainer did not included in the dependencies. So tens of minutes or even hours of compilation (yes, there are still such packets like chromium) is wasted and we must start up from the beginning? No you can continue the current failed compilation from the exact point of failure using “ebuild”.
In our example we have a failed compilation of chromium with “out of memory”. We need the exact version of the package, scroll to your emerge command and copy the version, in our case it was: chromium-67.0.3377.1.ebuild
Here are the commands:

STEP 1) Continue compilation

[root@local ]# ebuild /usr/portage/www-client/chromium/chromium-67.0.3377.1.ebuild compile
>>> Existing ${T}/environment for 'chromium-67.0.3377.1' will be sourced.
>>> Run 'clean' to start with a fresh environment.
>>> Checking chromium-67.0.3377.1.tar.xz's mtime...
>>> WORKDIR is up-to-date, keeping...
 * checking ebuild checksums 😉 ...                                                                                                    [ ok ]
 * checking auxfile checksums 😉 ...                                                                                                   [ ok ]
 * checking miscfile checksums 😉 ...                                                                                                  [ ok ]
 * Checking for at least 3 GiB RAM ...                                                                                                  [ ok ]
 * Checking for at least 5 GiB disk space at "/var/tmp/portage/www-client/chromium-67.0.3377.1/temp" ...                                [ ok ]
>>> It appears that 'setup' has already executed for 'chromium-67.0.3377.1'; skipping.
>>> Remove '/var/tmp/portage/www-client/chromium-67.0.3377.1/.setuped' to force setup.
>>> It appears that 'unpack' has already executed for 'chromium-67.0.3377.1'; skipping.
>>> Remove '/var/tmp/portage/www-client/chromium-67.0.3377.1/.unpacked' to force unpack.
>>> It appears that 'prepare' has already executed for 'chromium-67.0.3377.1'; skipping.
>>> Remove '/var/tmp/portage/www-client/chromium-67.0.3377.1/.prepared' to force prepare.
>>> It appears that 'configure' has already executed for 'chromium-67.0.3377.1'; skipping.
>>> Remove '/var/tmp/portage/www-client/chromium-67.0.3377.1/.configured' to force configure.
>>> Compiling source in /var/tmp/portage/www-client/chromium-67.0.3377.1/work/chromium-67.0.3377.1 ...
ninja -v -j6 -l6 -C out/Release mksnapshot
ninja: Entering directory `out/Release'

As you can see in the output above an existing environment for ‘chromium-67.0.3377.1’ will be sourced.
Here the compilation continue from the last failed compilation script, it skipped multiple source dependencies.

STEP 2) Install the package

In fact two commands:

ebuild /usr/portage/www-client/chromium/chromium-67.0.3377.1.ebuild install
ebuild /usr/portage/www-client/chromium/chromium-67.0.3377.1.ebuild qmerge

The first command “install” will install the package in the working directory of the emerge process and then the second “qmerge” will install all the files of the package in the install directory to the live filesystem and will do some additional checks and modifications in your systems package database to install the package properly as if the emerge was used.

Review of netdata graphs – nginx, php-fpm, mysql, memcached, redis, mail (postfix)

Here we show what to expect from the netdata graphics when using it in a web server. So we included here only the specific graphs for a web server:

  1. nginx – the web server
  2. php-fpm – the application, fastcgi php
  3. mysql – the database server
  4. memcached – memory cache
  5. redis – more sophisticated memory/disk cache
  6. mail – postfix mail server to send and receive mails

You can also visit our review of the generic graphs like system overview, cpu, memory and disks here: Review of netdata graphs – system overview, cpu, memory, disks and nfs

So here are the graphs netdata 1.10 offers to us:

CHART 1) Nginx Graphs

1) all active connections; 2) requests per second to nginx

main menu
Nginx Graphs

CHART 2) Nginx Graphs 2

1) nginx active connections by their status – reading (from client), writing (from client), idle (doing nothing, but opened to the client); 2) connections rate – accepted and handled

main menu
Nginx Graphs 2

CHART 3) PHP-FPM – FastCGI PHP performance metrics

1) active connections – active (executing PHP code on the CPU right now – “php running”), max active, idle; 2) requests; 3) performance – max children reached or slow requests (it depends on your version of netdata).

main menu
PHP-FPM – FastCGI PHP performance metrics

CHART 4) PHP-FPM – request information

1) reuqest duration – minimum, maximum, avarage – how much time do a request take time – very useful to see how fast is your backend application. 2) request CPU in procentages; 3) request memory – reuested memory by your php fpm processes.

main menu
PHP-FPM – request information

CHART 5) MySQL – performance metrics

1) bandwidth – The amount of data sent to mysql clients (out) and received from mysql clients (in); 2) queries – The number of statements executed by the server. To see a slow queries the slow query log should be enabled.

main menu
MySQL – performance metrics

CHART 6) MySQL – handlers and locks

1) handlers – netdata Quotation: “Usage of the internal handlers of mysql. This chart provides very good insights of what the mysql server is actually doing. – commit, the number of internal COMMIT statements; delete, the number of times that rows have been deleted from tables; prepare, a counter for the prepare phase of two-phase commit operations; read first, the number of times the first entry in an index was read. A high value suggests that the server is doing a lot of full index scans; e.g. SELECT col1 FROM foo, with col1 indexed; read key, the number of requests to read a row based on a key. If this value is high, it is a good indication that your tables are properly indexed for your queries; read next, the number of requests to read the next row in key order. This value is incremented if you are querying an index column with a range constraint or if you are doing an index scan; read prev, the number of requests to read the previous row in key order. This read method is mainly used to optimize ORDER BY … DESC; read rnd, the number of requests to read a row based on a fixed position. A high value indicates you are doing a lot of queries that require sorting of the result. You probably have a lot of queries that require MySQL to scan entire tables or you have joins that do not use keys properly; read rnd next, the number of requests to read the next row in the data file. This value is high if you are doing a lot of table scans. Generally this suggests that your tables are not properly indexed or that your queries are not written to take advantage of the indexes you have; rollback, the number of requests for a storage engine to perform a rollback operation; savepoint, the number of requests for a storage engine to place a savepoint; savepoint rollback, the number of requests for a storage engine to roll back to a savepoint; update, the number of requests to update a row in a table; write, the number of requests to insert a row in a table.” 2) MySQL table locks counters, netdata Quotation: ” immediate, the number of times that a request for a table lock could be granted immediately – waited, the number of times that a request for a table lock could not be granted immediately and a wait was needed. If this is high and you have performance problems, you should first optimize your queries, and then either split your table or tables or use replication.”

main menu
MySQL – handlers and locks

CHART 7) MySQL – sorts, selects and temporaries

1) mysql SELECT JOIN – full range, range, scan; 2) mysql sorts – range and scan; 3) temporaries – disk tables (writing to the disk is slow and should be avoided!!!) and tables.

main menu
MySQL – sorts, selects and temporaries

CHART 8) MySQL – connections and binlog

1) connections in seconds – all and aborted – if you are using persistent connections to MySQL you can see a busy MySQL server could have 2-3 new connections in a minute, because all the application backend uses the pool of already opened connections to the server. 2) connection errors – accepted, internal, max, peer_addr, select, tcpwrap; 3) binlog transactions per second

main menu
MySQL – connections and binlog

CHART 9) MySQL – binlog and threads

1) binlog statement cache; 2) MySQL threads – connected, cached, running; 3) threads cache misses

main menu
MySQL – binlog and threads

CHART 10) MySQL – Innodb engine infromation

1) Innodb I/O bandwidth – reads and writes; 2) Innodb I/O Operations – reads, writes and fsyncs; 3) Innodb Pending I/O Operations – reads and fsyncs; 4) Innodb Log Operations – write requests and writes.

main menu
MySQL – Innodb engine infromation

CHART 11) MySQL – Innodb engine infromation 2

1) Innodb OS Log Operations – fsyncs; 2) Innodb OS Log bandwidth – write (megabytes/s); 3) Innodb current row locks – current_waits; 4) Innodb row operations – inserted, read, updated and deleted.

main menu
MySQL – Innodb engine infromation 2

CHART 12) MySQL – Innodb engine infromation 3

1) Innodb buffer pool pages – data, dirty, free, flushed, misc, total; 2) Innodb buffer pool bytes – data and dirty; 3) Innodb buffer pool read ahaed – all, evicted, random; 4) Innodb buffer pool requests – reads and writes per second.

main menu
MySQL – Innodb engine infromation 3

CHART 13) MySQL – Innodb engine infromation 4

1) Innodb buffer pool operations – disk reads – operations per second.

main menu
MySQL – Innodb engine infromation 4

CHART 14) MySQL – query cache (qcache)

1) query cache operations – hits, low memory prunes, inserts, not cached; 2) queries in the cache; 3) query cache free memory; 4) query cache memory blocks – free and total.

main menu
MySQL – query cache (qcache)

CHART 15) MySQL – myisam engine information

This server does not uses MyISAM engine, so you can see almost everything is zero – 1) MyISAM key cache blocks – unused and used; 2) MyISAM key cache requests – reads and writes; 3) MyISAM key cache disk operation – reads and writes.

main menu
MySQL – myisam engine information

CHART 16) MySQL – files

1) open files – how many files are opened at the moment; 2) opened file rate – files per second.

main menu
MySQL – files

CHART 17) Memcached – distributed memory caching system. A key-value memory storage.

1) cache size – available and used; 2) network – in and out megabytes per second.

main menu
Memcached – distributed memory caching system. A key-value memory storage.

CHART 18) Memcached – connections and items

1) connections – current and total. Persistent connections are used, so no new connections often; 2) items cached – current and total. 3) items – evicted (forced removed – be careful here, this means your cached items are forcedly removed by the server because of lack of memory?) and reclaims (expired items).

main menu
Memcached – connections and items

CHART 19) Memcached – get and set operations

1) get operation requests – hits and misses; 2) get operations rate – requests per second; 3) set operation requests – requests per second.

main menu
Memcached – get and set operations

CHART 20) Memcached – check and set ops, delete ops, increment ops

1) check and set operation requests – hits, misses, bad value; 2) delete operation requests – hits and misses; increment operation requests – hits and misses

main menu
Memcached – check and set ops, delete ops, increment ops

CHART 21) Memcached – decrement ops, touch ops

1) decrement operation request – hits and misses; 2) touch operation requests – hits and misses; 3) touch operation requests rate – requests per second.

main menu
Memcached – decrement ops, touch ops

CHART 22) Postfix – mail service

1) Postfix Queue Emails – the emails in the queue of the mail transfer agent, these mails are in transfer state; 2) Postfix Queue Emails size – size.

main menu
Postfix – mail service

CHART 23) Redis – performance metrics for in-memory data structure store, used as a database, cache and message broker.

1) operations – commands and operations per second; 2) hit rate – persentage, the effectiveness of the cache.

main menu
Redis – performance metrics for in-memory data structure store, used as a database, cache and message broker.

CHART 24) Redis – memory, keys, network

1) Redis memory utilization – total and lua; 2) keys – how many keys does each database have – keys per database name; 3) network – Redis network bandwidth – in and out in megabytes per second.

main menu
Redis – memory, keys, network

CHART 25) Redis – connections and replication

1) Redis connections – received per second – it’s like new connections and if you use persistent connections no new connections are opened often; 2) Redis clients – connected processes to the redis server; 3) replication – connected slave servers.

main menu
Redis – connections and replication

CHART 26) Redis – persistence (save the databases to the disks)

1) Persistence changes since last save – changes – how many changed items have been there since last save of the databases to the disks. 2) Duration of the RDB Save operation – rdb save in time; 3) Status of the last RDB Save Operation – rdb status.

main menu
Redis – persistence (save the databases to the disks)

CHART 27) Web server access logs information

Live parsing of the access logs – be careful here, because this could take a good deal of CPU and I/O of your busy server. Here we included only the default nginx log, which does not save many records. netdata Quotation: “Information extracted from a server log file. web_log plugin incrementally parses the server log file to provide, in real-time, a break down of key server performance metrics. For web servers, an extended log file format may optionally be used (for nginx and apache) offering timing information and bandwidth for both requests and responses. web_log plugin may also be configured to provide a break down of requests per URL pattern (check /etc/netdata/python.d/web_log.conf).” – 1) responses – success and bad requests per second; 2) Response codes – 1xx and 4xx and more if any in the logs.

main menu
Web server access logs information

CHART 28) Web server access logs information – detailed response code, bandwidth, http methods

1) detailed response code – requests per second; 2) bandwidth of the requests and reponses; 3) Requests per HTTP Method – GET, POST, PUT, DELETE and so on if they present in the logs.

main menu
Web server access logs information – detailed response code, bandwidth, http methods

CHART 29) Web server access logs information – http versions, ip protocols, clients

1) Requests per HTTP Version – 1.0, 1.1 and 2.0 if any in the logs; 2) Requests per IP protocol – IPv4 and IPv6 (if used); 3) clients – unique client IPs per data collection.

main menu
Web server access logs information – http versions, ip protocols, clients

CHART 30) Web server access logs information – unique client IPs

Unique client IPs since last restart of netdata

main menu
Web server access logs information – unique client IPs

Review of netdata graphs – system overview, cpu, memory, disks and nfs

This is a review of the netdata graphs. Here you can see what you can expect to have when you install netdata (version 1.10) in you server.
As you can see many of the graphs have detailed explanations and some of them have hits what to monitor and pay attention to.

CHART 1) System Overview and grapsh which gather statistics from all parts of the system like CPU, load, disk, ram, swap, network, processes, idlejitter, interrups, softirqs, softnet, entropy, ipc semaphores, uptime.

This is a fst view of the resources of the system and it presents summarized statistics, not detailed! For example you can expect to have the total CPU usage not per core or processor and so on.

main menu
System Overview

CHART 2) CPU and Load

1) Total CPU utilization, netdata Quotation: “Total CPU utilization (all cores). 100% here means there is no CPU idle time at all. You can get per core usage at the CPUs section and per application usage at the Applications Monitoring section. Keep an eye on iowait. If it is constantly high, your disks are a bottleneck and they slow your system down. Another important metric worth monitoring, is softirq. A constantly high percentage of softirq may indicate network driver issues.” and 2) System Load Average – netdata Quotation: “Current system load, i.e. the number of processes using CPU or waiting for system resources (usually CPU and disk). The 3 metrics refer to 1, 5 and 15 minute averages. Linux calculates this once every 5 seconds. Netdata reads them from /proc/loadavg.””

main menu
CPU and Load

CHART 3) Disk

1) Total Disk I/O for all disks from /proc/vmstat. You can easily match how much of the read/written data is from/to disks. 2) Memory paged form/to disk.

main menu
Disk I/O and Memory Paged from/to disk

CHART 4) RAM

1) Read from /proc/meminfo. It shows the total RAM and how much is free, used, cached and in buffers. Together with swap graph this is like “free” linux command in the browser. 2) Read from /proc/meminfo. It shows total, free and used swap memory. 3) Swap I/O – Read from /proc/vmstat. More interesting than the previous one, because here you can get aware how often is used your swap device. In fact if you have ins and outs here even a couple of them you probably need more physical RAM or you have misconfigured a service or a application, which could be identified by graphs in Applications->mem or User->mem – which shows the applications’ and users’ ram usage.

main menu
System memory and System swap memory

CHART 5) All network traffic on all interfaces – no virtual ones included, but it includes IPv4 and IPv6 traffic.

main menu
Physical Network Interfaces Aggregated Bandwidth

CHART 6) Processes

1) Read /proc/stat. It appears the Running are “processes in the CPU” and Blocked are in Disk sleep. netdata Quotation: “System processes, read from /proc/stat. Running are the processes in the CPU. Blocked are processes that are willing to enter the CPU, but they cannot, e.g. because they wait for disk activity.” 2) The number of new processes created per second. 3) All system processes – the total number for the given time.

main menu
System processes

CHART 7) Context Switches and idle

1) Context Switches – how many times the CPU is switching from one process, thread or task to another. 2) netdata Quotation: “idle jitter is calculated by netdata. A thread is spawned that requests to sleep for a few microseconds. When the system wakes it up, it measures how many microseconds have passed. The difference between the requested and the actual duration of the sleep, is the idle jitter. This number is useful in real-time environments, where CPU jitter can affect the quality of the service (like VoIP media gateways).”

main menu
Context Switches and idlejitter

CHART 8) Interrupts and softirqs

1) Total number of CPU interrupts, 2) System interrupts – hardware interrupts – which part of your hardware system is doing the interrups – you could identify a hardware abuser. 3) CPU softirqs in detail, read from /proc/softirqs – you could identify a software abuser – a service or a processes

main menu
Interrups and softirqs

CHART 9) softnet and entropy

1) netdata Quotation: “Statistics for CPUs SoftIRQs related to network receive work. Break down per CPU core can be found at CPU / softnet statistics. processed states the number of packets processed, dropped is the number packets dropped because the network device backlog was full (to fix them on Linux use sysctl to increase net.core.netdev_max_backlog), squeezed is the number of packets dropped because the network device budget ran out (to fix them on Linux use sysctl to increase net.core.netdev_budget).” 2) netdata Quotation: “Entropy, is a pool of random numbers (/dev/random) that is mainly used in cryptography. If the pool of entropy gets empty, processes requiring random numbers may run a lot slower (it depends on the interface each program uses), waiting for the pool to be replenished. Ideally a system with high entropy demands should have a hardware device for that purpose (TPM is one such device). There are also several software-only options you may install, like haveged, although these are generally useful only in servers.”

main menu
softnet and entropy

CHART 10) IPC Semaphores and Uptime

1) The total ipc semaphores used in the system 3) uptime of the system

main menu
ipc semaphores and uptime

CHART 11) CPU

Utilization by core/logical processor. You can see how much percentage of the CPU is spent in user, system, iowait (probably disk operations!) and softirq (mainly network, but could be also a program with many threads with a lot context switching between them). Here you can see the first Core utilization graph has softirq of 6.0 and the other have none – this is due to the network card is using only the first core/processor (more to follow on the subject).

main menu
CPUs

CHART 12) Interrupts

Interrupts by core/logical processor. Hardware interrups – enp3s0_28 (the network card), NMI, LOC, PMI, IWI, RES, CAL, TLB and so on. You can see the network interrupts are processed only by the first core/processor. You can change this by setting cpu affinity and to split across all CPU – in most cases you do not need this, because using one core/processor the latency is better, but on a busy server easily could reach 100% busy of the first core and the network packets processing will get in troubles.

main menu
Interrupts

CHART 13) softirqs

Software interrupts – TIMER, NET_TX, NET_RX, TASKLET, SCHED, RCU – network, context switches synchronization and so on.

main menu
softirqs

CHART 14) softnet

Quotation netdata: “Statistics for per CPUs core SoftIRQs related to network receive work. Total for all CPU cores can be found at System / softnet statistics. processed states the number of packets processed, dropped is the number packets dropped because the network device backlog was full (to fix them on Linux use sysctl to increase net.core.netdev_max_backlog), squeezed is the number of packets dropped because the network device budget ran out (to fix them on Linux use sysctl to increase net.core.netdev_budget).” You can see how much SoftIRQs related to network receive each CPU. As you can see again the network is processed by the first core/processor.

main menu
softnet

CHART 15) throttling and cpufreq

1) The throttling of the CPU cores if any and 2) cpu frequency changes. If your server is in idle probably you can see more often to get to lower frequency on some cores/processors.

main menu
Throttling and cpufreq

CHART 16) C-state residency for each core/processor.

main menu
Cpuidle

CHART 17) Memory

1) Total available RAM for applications, 2) Commited Memory is the all the memory allocated by processes and 3) page faults – Quotation netdata: “A page fault is a type of interrupt, called trap, raised by computer hardware when a running program accesses a memory page that is mapped into the virtual address space, but not actually loaded into main memory. If the page is loaded in memory at the time the fault is generated, but is not marked in the memory management unit as being loaded in memory, then it is called a minor or soft page fault. A major page fault is generated when the system needs to load the memory page from disk or swap memory.”

main menu
Memory

CHART 18) Kernel and Swap memory

1) Quotation netdata: “Dirty is the amount of memory waiting to be written to disk. Writeback is how much memory is actively being written to disk.” – you can tune kernel to how much dirty memory to hold. 2) Memory used by kernel – netdata Quotation: “The total amount of memory being used by the kernel. Slab is the amount of memory used by the kernel to cache data structures for its own use. KernelStack is the amount of memory allocated for each task done by the kernel. PageTables is the amount of memory dedicated to the lowest level of page tables (A page table is used to turn a virtual address into a physical memory address). VmallocUsed is the amount of memory being used as virtual address space.” 3) slab – netdata Quotation: “Reclaimable is the amount of memory which the kernel can reuse. Unreclaimable can not be reused even when the kernel is lacking memory.”

main menu
kernel

CHART 19) Hugepages

netdata Quotation: “Hugepages is a feature that allows the kernel to utilize the multiple page size capabilities of modern hardware architectures. The kernel creates multiple pages of virtual memory, mapped from both physical RAM and swap. There is a mechanism in the CPU architecture called “Translation Lookaside Buffers” (TLB) to manage the mapping of virtual memory pages to actual physical memory addresses. The TLB is a limited hardware resource, so utilizing a large amount of physical memory with the default page size consumes the TLB and adds processing overhead. By utilizing Huge Pages, the kernel is able to create pages of much larger sizes, each page consuming a single resource in the TLB. Huge Pages are pinned to physical RAM and cannot be swapped/paged out.”

main menu
hugepages

CHART 20) deduper (ksm)

You can save some RAM with this feature. netdata Quotation: “Kernel Same-page Merging (KSM) performance monitoring, read from several files in /sys/kernel/mm/ksm/. KSM is a memory-saving de-duplication feature in the Linux kernel (since version 2.6.32). The KSM daemon ksmd periodically scans those areas of user memory which have been registered with it, looking for pages of identical content which can be replaced by a single write-protected page (which is automatically copied if a process later wants to update its content). KSM was originally developed for use with KVM (where it was known as Kernel Shared Memory), to fit more virtual machines into physical memory, by sharing the data common between them. But it can be useful to any application which generates many instances of the same data.”

main menu
deduper (ksm)

CHART 21) Charts with the performance of the disks and disk devices like raids – charts for every device in the system. Most important charts here are the disk utilization where you can see how busy is your device!

1) The disk I/O Bandwidth – Amount of data transferred to and from disk – “md2”. 2) Disk Completed I/O operations – netdata Quotation: “Completed disk I/O operations. Keep in mind the number of operations requested might be higher, since the system is able to merge adjacent to each other (see merged operations chart).”

main menu
Disks

CHART 22) Disk I/O

1) The average I/O Operations size of device “md2”, 2) Disk space utilization of device “md2” and 3) inodes usage of device “md2”.

main menu
Disks

CHART 23) Disk I/O of md0

1) Disk I/O Bandwidth, 2) Disk Completed I/O Operations, 3) The average I/O Operations

main menu
Disk statitsics for device md0

CHART 24) Disk I/O of sda

1) Disk I/O Bandwidth, 2) Disk Completed I/O Operations, 3) Disk current I/O Operations

main menu
Disk statitsics for device sda

CHART 25) Disk I/O of sda 2

1) Backlog – netdata Quotation: “Backlog is an indication of the duration of pending disk operations. On every I/O event the system is multiplying the time spent doing I/O since the last update of this field with the number of pending operations. While not accurate, this metric can provide an indication of the expected completion time of the operations in progress.”, 2) Disk Utilization Time – one of the most important charts, you can see if you disk is saturated, netdata Quotation: “Disk Utilization measures the amount of time the disk was busy with something. This is not related to its performance. 100% means that the system always had an outstanding operation on the disk. Keep in mind that depending on the underlying technology of the disk, 100% here may or may not be an indication of congestion.” 3) Average Completed I/O Operation Time 4) Average Completed I/O Operation Time

main menu
Disk statitsics for device sda – 2

CHART 26) Disk I/O of sda 3

1) netdata Quotation: “The average service time for completed I/O operations. This metric is calculated using the total busy time of the disk and the number of completed operations. If the disk is able to execute multiple parallel operations the reporting average service time will be misleading.” 2) netdata Quotation: “The number of merged disk operations. The system is able to merge adjacent I/O operations, for example two 4KB reads can become one 8KB read before given to disk.” 3) netdata Quotation: “The sum of the duration of all completed I/O operations. This number can exceed the interval if the disk is able to execute I/O operations in parallel.”

main menu
Disk statitsics for device sda – 3

CHART 27) Performance statistics for a NFS client working on the system.

1) RPC – calls per second, 2) What kind of RPC calls and how many of them.

main menu
NFS Client

Speeding up the receiving of mysql binlog when replication is configured

Have you aver set up a mysql replication between two host with more than 100ms latency between. Let’s say one of your server is in US and the other is in Europe. The latency between the servers could reach more than 100ms and your MySQL replication (or galera cluster, or master-master configuration) which could easily turn into problems when you have really busy servers. In our case we have really busy servers with more than 7G binlog of every minute, which means 7G/minute transfer between the servers with a latency of 100ms and it could get worse your connectivity just hiccup for a minute or two and you would have a replication behind with more than 20 binlog files, which could take up to an hour to advance. There is a good chance to get the binlog files a lot faster – between 5-8 times faster

just compress them!

You can enable compression between your servers so they will transfer the binlog in a compressed format, the compression algo is really fast and almost no CPU consuming you’ll not observe any penalties (even if you enable it between servers on “the same switch”) and your traffic will decrease with almost 5-8 times it depends on your queries but in general it is around such values! So you now 1G binlog could be transferred 5-8 times faster using only 150Mbytes of your connection!
Here is how to enable this option

  1. Enter MySQL console
  2. set the compression to true
  3. verify the compression is set
  4. STOP and then START the slave – the compression won’t happen between the servers if you DO NOT DO this!!!
srv@local ~ # mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 55856
Server version: 10.1.30-MariaDB-1~xenial mariadb.org binary distribution

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> set global slave_compressed_protocol=1;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> show global variables like 'slave_compressed_protocol';
+---------------------------+-------+
| Variable_name             | Value |
+---------------------------+-------+
| slave_compressed_protocol | ON    |
+---------------------------+-------+
1 row in set (0.00 sec)

MariaDB [(none)]> STOP SLAVE;
Query OK, 0 rows affected (0.15 sec)

MariaDB [(none)]> START SLAVE;
Query OK, 0 rows affected (0.01 sec)

Then check your network:

main menu
Network Statistics

main menu
Network Packets