Add a raw disk to a virtualbox virtual machine

This is strange there is no way to add a physical disk to your virtual machine under virtualbox! Still it is possible and it is simple, but you need to execute few commands under console so you need to open a terminal and to have a root privileges!
To use a raw disk in our virtual machine we must create a special VMDK file and then to use it when adding a hard drive to our virtualbox virtual machine with “Use an existing virtual hard disk dile”.

Here are the right steps to add a raw disk:

STEP 1) Permissions – your user must have (write) permissions to access raw disks

In most cases your user do not have write permission to the disk – it is the same under MS Windows and any Linux distribution (and probably MAC)! So here is the right way how to give permissions under Linux and Windows:

  • Under Linux (Ubuntu, Centos, Fedora, Gentoo and probably all other). There are at least two ways to give WRITE permission to the raw disk (use one of them, the first one is preferred). We want to add our third disk the “/dev/sdc” so the examples are with this device:
    1. add your user to “disk” group and log out. After you log in you’ll have WRITE permissions to the disks. Probably you must log off your GUI (Gnome, KDE and so on), too!
      srv@local ~ $ sudo sudo usermod -a -G disk myuser
      

      “myuser” is the username of the user I am logged in. The log out and log in (if you are using a GUI – gnome, kde or something else, you must log out from the GUI, too and then log in again).

    2. execute virtualbox with root user
    3. change the permission of the physical device you want to use (this is temporary, because next time you reboot you must change it again)
      srv@local ~ $ sudo chmod o+rw /dev/sdc 
      
  • Under Windows 10 (or 7) – you must start the command prompt and Virtualbox with “run as Administrator” – look at the next step (STEP 2).

Keep on reading!

grub2: grub-install: error: disk mduuid not found even after the partition has bios_grub on

This tutorial is for all of us that has done everything by the book with parted and still they receive an error when installing grub2 to the boot sector!

srv@local ~ # grub2-install /dev/sda
Installing for i386-pc platform.
grub2-install: error: disk `mduuid/613f3f0bb202bf03a5664e17b3d568a0' not found. 

The solution is relatively simple:

Boot from a rescue disk and reinstall grub from there!

The problem is that currently loaded kernel remembers the old device, which was deleted, and probably you won’t be able to fresh the metadata in the memory. In fact, if you receive this error when booted in a rescue disc you probably have done some changes on the layout of the disks or the partitions or the RAID devices and you must reboot the machine again and then JUST reinstall the grub.
Such problems could have happened if you deleted partitions or made some disk layout changes (using parted?) on mounted or partitions in use and the kernel could loaded the partition changes in memory. The parted reports the changes will take effect after system reboot.

STEP 1) Check the devices and mount the root and boot

They might be on the same device here they are on different MD devices (in the case, software array). md1 is the boot and md2 is the root.

root@rescue ~ # cat /proc/mdstat 
Personalities : [raid1] 
md3 : active raid1 sda5[3] sdb5[2]
      422716416 blocks super 1.2 [2/2] [UU]
      bitmap: 0/4 pages [0KB], 65536KB chunk

md2 : active raid1 sda3[3] sdb3[2]
      31440896 blocks super 1.2 [2/2] [UU]
      
md1 : active raid1 sda2[3] sdb2[2]
      523712 blocks super 1.2 [2/2] [UU]
      
md0 : active raid1 sda1[3] sdb1[2]
      33521664 blocks super 1.2 [2/2] [UU]
      
unused devices: <none>
root@rescue ~ # mount /dev/md2 /mnt/
root@rescue ~ # mount /dev/md1 /mnt/boot/
root@rescue ~ # ls -altr /mnt/
total 396K
drwxr-xr-x.  2 root root 4.0K Apr 11  2018 srv
drwxr-xr-x.  2 root root 4.0K Apr 11  2018 opt
drwxr-xr-x.  2 root root 4.0K Apr 11  2018 mnt
drwxr-xr-x.  2 root root 4.0K Apr 11  2018 media
drwxr-xr-x.  2 root root 4.0K Apr 11  2018 home
lrwxrwxrwx.  1 root root    8 May 14  2018 sbin -> usr/sbin
lrwxrwxrwx.  1 root root    9 May 14  2018 lib64 -> usr/lib64
lrwxrwxrwx.  1 root root    7 May 14  2018 lib -> usr/lib
lrwxrwxrwx.  1 root root    7 May 14  2018 bin -> usr/bin
drwxr-xr-x. 13 root root 4.0K May 14  2018 usr
drwx------.  2 root root  16K Feb 12  2019 lost+found
drwxr-xr-x   2 root root 4.0K Feb 12  2019 boot
drwxr-xr-x   2 root root 4.0K Feb 12  2019 storage1
drwxr-xr-x   2 root root 4.0K Feb 12  2019 sys
drwxr-xr-x   2 root root 4.0K Feb 12  2019 dev
drwxr-xr-x   2 root root 4.0K Feb 12  2019 prochttps://www.google.com/search?client=firefox-b-d&q=samsung+tab10+2020
drwxr-xr-x   3 root root 4.0K Feb 12  2019 run
-rw-r-----.  1 root root  575 Feb 12  2019 installimage.conf
-rw-r-----.  1 root root  13K Feb 12  2019 installimage.debug
drwxr-xr-x. 20 root root 4.0K Feb 12  2019 var
drwxr-xr-x. 85 root root 4.0K Nov  2  2019 etc
-rw-r--r--.  1 root root 291K Nov  2  2019 .readahead
drwxr-xr-x. 19 root root 4.0K Nov  2  2019 .
dr-xr-x---.  6 root root 4.0K May  4 19:24 root
drwxrwxrwt.  7 root root 4.0K May  8 14:14 tmp
drwxr-xr-x   1 root root  160 May  8 16:57 ..
root@rescue ~ # ls -altr /mnt/boot/
total 194M
drwxr-xr-x.  3 root root 1.0K Sep 18  2017 efi
-rw-------.  1 root root  49M Sep 18  2017 initramfs-0-rescue-9063ac396d784f4c997ceacdd0590c25.img
-rwxr-xr-x.  1 root root 5.7M Sep 18  2017 vmlinuz-0-rescue-9063ac396d784f4c997ceacdd0590c25
-rw-------.  1 root root 3.4M Feb  1  2019 System.map-3.10.0-957.5.1.el7.x86_64
-rw-r--r--.  1 root root 149K Feb  1  2019 config-https://www.google.com/search?client=firefox-b-d&q=samsung+tab10+20203.10.0-957.5.1.el7.x86_64
-rw-r--r--.  1 root root  170 Feb  1  2019 .vmlinuz-3.10.0-957.5.1.el7.x86_64.hmac
-rwxr-xr-x.  1 root root 6.4M Feb  1  2019 vmlinuz-3.10.0-957.5.1.el7.x86_64
-rw-r--r--.  1 root root 307K Feb  1  2019 symvers-3.10.0-957.5.1.el7.x86_64.gz
drwx------.  2 root root  12K Feb 12  2019 lost+found
drwxr-xr-x.  2 root root 1.0K Feb 12  2019 grub
-rw-------.  1 root root 3.5M Oct 18  2019 System.map-3.10.0-1062.4.1.el7.x86_64
-rw-r--r--.  1 root root 150K Oct 18  2019 config-3.10.0-1062.4.1.el7.x86_64
-rw-r--r--.  1 root root  171 Oct 18  2019 .vmlinuz-3.10.0-1062.4.1.el7.x86_64.hmac
-rwxr-xr-x.  1 root root 6.5M Oct 18  2019 vmlinuz-3.10.0-1062.4.1.el7.x86_64
-rw-r--r--.  1 root root 312K Oct 18  2019 symvers-3.10.0-1062.4.1.el7.x86_64.gz
-rw-------.  1 root root  13M Nov  2  2019 initramfs-3.10.0-957.5.1.el7.x86_64kdump.img
-rw-------.  1 root root  47M Nov  2md  2019 initramfs-3.10.0-1062.4.1.el7.x86_64.img
-rw-------.  1 root root  46M Nov  2  2019 initramfs-3.10.0-957.5.1.el7.x86_64.img
-rw-------.  1 root root  13M Nov  2  2019 initramfs-3.10.0-1062.4.1.el7.x86_64kdump.img
dr-xr-xr-x.  6 root root 1.0K Nov  2  2019 .
drwxr-xr-x. 19 root root 4.0K Nov  2  2019 ..
drwx------.  5 root root 1.0K May  4 16:11 grub2

STEP 2) mount the dev, proc and sys relative to the root mount above and chroot in the root.

After chroot it is recommended to

root@rescue ~ # mount -o bind /dev /mnt/dev
root@rescue ~ # mount -o bind /proc /mnt/proc
root@rescue ~ # mount -o bind /sys /mnt/sys
root@rescue ~ # chroot /mnt/
root@rescue / # cd
root@rescue ~ # . /etc/profile

STEP 3)Install grub2

Unmount all mounted directories above and reboot.

root@rescue ~ # grub2-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.
root@rescue ~ # grub2-install /dev/sdb
Installing for i386-pc platform.
Installation finished. No error reported.
root@rescue ~ # exit
root@rescue ~ # umount /mnt/boot 
root@rescue ~ # umount /mnt/dev
root@rescue ~ # umount /mnt/proc 
root@rescue ~ # umount /mnt/sys
root@rescue ~ # umount /mnt/
root@rescue ~ # reboot

* If you are using UEFI enabled boot you probably need more options for the grub installation

Something like that for the grub2 installation (but it is specific for your distro – the path for efi directory, just find it under /boot and put the right path – nothing special!):

grub-install --recheck --target=x86_64-efi --efi-directory=/boot/efi/ /dev/sda

Where does this error come from?

If you search the ID by part of it you will discover it under /dev/disk/by-id/, which is a link to md1, but still there is an error for missing device, because the kernel loaded the device as md-name-rescue:1. And if you reboot the kernel the old and wrong name won’t exists. As mentioned above this could have happened if you deleted partitions or made some disk layout changes (using parted?) on mounted or partitions in use and the kernel could loaded the partition changes.

[root@srv47 ~]# cd /dev/disk/by-id/
[root@srv47 by-id]# ls -altr
total 0
drwxr-xr-x. 5 root root 100  4 May  9,14 ..
lrwxrwxrwx. 1 root root   9  4 May 10,14 md-uuid-e4023626:e09f7c39:20ed5720:2ef1b5af -> ../../md0
lrwxrwxrwx. 1 root root   9  4 May 10,14 md-uuid-ae63857c:b8d537f5:4c09ae48:48148f59 -> ../../md3
lrwxrwxrwx. 1 root root   9  4 May 10,14 md-uuid-4a28f3a7:94dc6dc7:a40a7084:c21463d7 -> ../../md2
lrwxrwxrwx. 1 root root   9  4 May 10,14 md-name-rescue:3 -> ../../md3
lrwxrwxrwx. 1 root root   9  4 May 10,14 md-name-rescue:2 -> ../../md2
lrwxrwxrwx. 1 root root   9  4 May 10,14 md-name-rescue:0 -> ../../md0
lrwxrwxrwx. 1 root root   9  4 May 10,14 md-uuid-613f3f0b:b202bf03:a5664e17:b3d568a0 -> ../../md1
lrwxrwxrwx. 1 root root   9  4 May 10,14 md-name-rescue:1 -> ../../md1
drwxr-xr-x. 2 root root 680  4 May 12,16 .
lrwxrwxrwx. 1 root root   9  8 May 12,01 wwn-0x500a075116bd3e33 -> ../../sda
lrwxrwxrwx. 1 root root   9  8 May 12,01 ata-Micron_1100_MTFDDAK512TBN_171416BD3E33 -> ../../sda
lrwxrwxrwx. 1 root root  10  8 May 12,01 wwn-0x500a075116bd3e33-part1 -> ../../sda1
lrwxrwxrwx. 1 root root  10  8 May 12,01 ata-Micron_1100_MTFDDAK512TBN_171416BD3E33-part1 -> ../../sda1
lrwxrwxrwx. 1 root root  10  8 May 12,01 wwn-0x500a075116bd3e33-part5 -> ../../sda5
lrwxrwxrwx. 1 root root  10  8 May 12,01 wwn-0x500a075116bd3e33-part4 -> ../../sda4
lrwxrwxrwx. 1 root root  10  8 May 12,01 wwn-0x500a075116bd3e33-part3 -> ../../sda3
lrwxrwxrwx. 1 root root  10  8 May 12,01 wwn-0x500a075116bd3e33-part2 -> ../../sda2
lrwxrwxrwx. 1 root root  10  8 May 12,01 ata-Micron_1100_MTFDDAK512TBN_171416BD3E33-part5 -> ../../sda5
lrwxrwxrwx. 1 root root  10  8 May 12,01 ata-Micron_1100_MTFDDAK512TBN_171416BD3E33-part4 -> ../../sda4
lrwxrwxrwx. 1 root root  10  8 May 12,01 ata-Micron_1100_MTFDDAK512TBN_171416BD3E33-part3 -> ../../sda3
lrwxrwxrwx. 1 root root  10  8 May 12,01 ata-Micron_1100_MTFDDAK512TBN_171416BD3E33-part2 -> ../../sda2
lrwxrwxrwx. 1 root root   9  8 May 12,01 wwn-0x500a07511bb48b38 -> ../../sdb
lrwxrwxrwx. 1 root root   9  8 May 12,01 ata-Micron_1100_MTFDDAK512TBN_18081BB48B38 -> ../../sdb
lrwxrwxrwx. 1 root root  10  8 May 12,01 wwn-0x500a07511bb48b38-part5 -> ../../sdb5
lrwxrwxrwx. 1 root root  10  8 May 12,01 wwn-0x500a07511bb48b38-part4 -> ../../sdb4
lrwxrwxrwx. 1 root root  10  8 May 12,01 wwn-0x500a07511bb48b38-part3 -> ../../sdb3
lrwxrwxrwx. 1 root root  10  8 May 12,01 wwn-0x500a07511bb48b38-part2 -> ../../sdb2
lrwxrwxrwx. 1 root root  10  8 May 12,01 wwn-0x500a07511bb48b38-part1 -> ../../sdb1
lrwxrwxrwx. 1 root root  10  8 May 12,01 ata-Micron_1100_MTFDDAK512TBN_18081BB48B38-part5 -> ../../sdb5
lrwxrwxrwx. 1 root root  10  8 May 12,01 ata-Micron_1100_MTFDDAK512TBN_18081BB48B38-part4 -> ../../sdb4
lrwxrwxrwx. 1 root root  10  8 May 12,01 ata-Micron_1100_MTFDDAK512TBN_18081BB48B38-part3 -> ../../sdb3
lrwxrwxrwx. 1 root root  10  8 May 12,01 ata-Micron_1100_MTFDDAK512TBN_18081BB48B38-part2 -> ../../sdb2
lrwxrwxrwx. 1 root root  10  8 May 12,01 ata-Micron_1100_MTFDDAK512TBN_18081BB48B38-part1 -> ../../sdb1

HDML-Cloner Box Pro trims display output – aspect ratio problem

The Cloner Alliance HDML-Cloner Box Pro is a cool little box, which allows you to record video output from multiple devices such as PC, TV, set-top box, it could have two simultaneous input streams and it supports HDMI, VGA, MMI (Multimedia Video Interface with HDMI). It has a remote controller with even a button of making only screenshots of the video input!

It happens really rare, but the device could have problems with auto detecting the right aspect ratio (or/and resolution) and it trims several lines of the display output from the forth directions of the display as shown bellow:

main menu
Display problem – display output trimmed.

And even you try all the options in the Remote Controller of aspect ration 16:9, 4:3 and PC (even Auto is not correct) or try to change the source (probably to rescan the source – HDMI, VGA, AV, YPbPr) nothing will help to prevent this problem of trimming some pixels’ lines in each direction!

But the device has more options than those in the “Remote Controller”

In such situations you should use

“Just Scan” aspect ratio

There is another method if this one does not work for you or “Just Scan” is unavailable. Check out after the steps for the second method.

You could see them by clicking the settings button or by using the HDML-Cloner Pro Helper

main menu
Remote controller – settings button

Keep on reading!

Install Fedora 27 KDE Plasma Desktop

This tutorial will show you the simple steps of installing a modern Linux Distribution like Fedora 27 KDE Plasma Desktop 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 KDE Plasma Desktop (Gnome and KDE plasma) – so you can decide which of them to try first – coming soon.
All of the installation setups are very similar for all GUIs of Fedora 27 it loads a live edition of the version of Fedora 27 you install and then the setup is launched by the user, the setup almost identical in all edition, but we do not want to give you a tutorials with “spaghetti” and unstructured flow of steps to follow.

We used the following ISO for the installation process:

https://download.fedoraproject.org/pub/fedora/linux/releases/27/Spins/x86_64/iso/Fedora-KDE-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:

The first 3 steps show how to enable the DVD-ROM to be first bootable device. If you’ve done it you can skip these steps.

STEP 1) Select your DVD-ROM device to boot (or USB device the installation stick) UEFI: DVD to install Fedora 27 KDE Plasma Desktop

main menu
Select DVD-ROM to boot from it in your BIOS
Keep on reading!

mariadb mysql slave cannot stop and then crashes on start up with segmentation fault or abort

Let’s show you what means

“That’s specifics of InnoDB data storage.”

Here is the what this specific case will teach you:

  1. basic debug with strace
  2. MySQL could hangs in a infinite loop during a shutdown (could be seen with strace)
  3. InnoDB files could get corrupted without a hardware issue, but with a kill -KILL or probably it was corrupted before the shutdown and the kill?
  4. list the opened files (and the IDs = file descriptors) of a mysql process
  5. start a mysql slave without a starting the replication on start with “skip-slave-start”
  6. Remove a corrupted innodb file, which causes database (mysql process) crash leaving your with no database at all – replace a innodb file, start the server, then drop the innodb table with sql command and recreate it to continue using healthy table
  7. 2 rows (4 INTEGER columns) could eat up a lot of space – 12G and probably infinite! === “That’s specifics of InnoDB data storage.”
    This table file is 12 Gigabytes in size!!!

    MariaDB [mysql]> select * from gtid_slave_pos;
    +-----------+----------+-----------+-------------+
    | domain_id | sub_id   | server_id | seq_no      |
    +-----------+----------+-----------+-------------+
    |         0 | 16983943 |       101 | 45790450502 |
    |         0 | 16983944 |       101 | 45790450503 |
    +-----------+----------+-----------+-------------+
    2 rows in set (0.00 sec)
    

Here is presented a specific case with replication, but in your case you may not use replication, your problem table could be another (and your mariadb/mysql server crashes on start up or selecting from a specific table or on shutdown?), so find the problem table and remove it, here we show you how to do it! BACKUP the mysql datadir BEFORE any intervention!

Here we have a situation: a mariadb (mysql) server running as slave to a really busy master server, so you could expect 10 000 update/insert/delete queries. Everything was working till the time we wanted to shutdown the mysql process, which occurred to be impossible.

STEP 1) We tried everything from “systemctl stop mysql” to kill -TERM multiple times

5 hour the mysql process was running with 2000 opened file descriptors to multiple table files. The strace showed this:

[pid 14824] <... io_getevents resumed> []{0, 500000000}) = 0
[pid 14815] <... io_getevents resumed> []{0, 500000000}) = 0
[pid 14824] io_getevents(139723876253696, 1, 256,  <unfinished ...>
[pid 14815] io_getevents(139723876356096, 1, 256,  <unfinished ...>
[pid 14825] <... futex resumed> )       = -1 ETIMEDOUT (Connection timed out)
[pid 14825] futex(0x55d16885deb0, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 14825] futex(0x55d16885dedc, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 3576261, {1525268239, 312230000}, ffffffff <unfinished ...>
[pid 14852] <... futex resumed> )       = -1 ETIMEDOUT (Connection timed out)
[pid 14852] futex(0x55d16885dd30, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 14852] futex(0x55d16885dd5c, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 2775717, {1525268240, 308225000}, ffffffff <unfinished ...>
[pid 14825] <... futex resumed> )       = -1 ETIMEDOUT (Connection timed out)
[pid 14825] futex(0x55d16885deb0, FUTEX_WAKE_PRIVATE, 1) = 0
[pid 14825] futex(0x55d16885dedc, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 3576263, {1525268240, 304889000}, ffffffff <unfinished ...>
[pid 14862] <... nanosleep resumed> NULL) = 0
[pid 14862] nanosleep({1, 0},  <unfinished ...>
[pid 14821] <... io_getevents resumed> []{0, 500000000}) = 0
[pid 14821] io_getevents(139723876315136, 1, 256,  <unfinished ...>
[pid 14820] <... io_getevents resumed> []{0, 500000000}) = 0

And this has been repeating many times for hours without any disk activity on flushing any IO…so no use to wait for something, which apparently won’t finish at all.

STEP 2) So a

kill -9

was used to stop the mysql process. What could go wrong??? InnoDB is awesome and cannot corrupt if the hardware is OK, right? Yeahhh right…
When the start command was executed, the mysql process started, the innodb engine recovery completed successfully and after 5 minutes without listening socket and heavy IO reading there is the segmentation fault crash and YOU have no database….
So here is one of the crashes taken from the log:

2018-05-02 19:51:54 139990018914496 [ERROR] Plugin 'innodb' already installed
2018-05-02 19:51:54 139990018914496 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2018-05-02 19:51:54 139990018914496 [Note] InnoDB: Uses event mutexes
2018-05-02 19:51:54 139990018914496 [Note] InnoDB: Compressed tables use zlib 1.2.8
2018-05-02 19:51:54 139990018914496 [Note] InnoDB: Using Linux native AIO
2018-05-02 19:51:54 139990018914496 [Note] InnoDB: Number of pools: 1
2018-05-02 19:51:54 139990018914496 [Note] InnoDB: Using SSE2 crc32 instructions
2018-05-02 19:51:54 139990018914496 [Note] InnoDB: Initializing buffer pool, total size = 64G, instances = 8, chunk size = 128M
2018-05-02 19:51:56 139990018914496 [Note] InnoDB: Completed initialization of buffer pool
2018-05-02 19:51:56 139913709942528 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2018-05-02 19:51:56 139990018914496 [Note] InnoDB: Highest supported file format is Barracuda.
2018-05-02 19:51:56 139990018914496 [Note] InnoDB: Starting crash recovery from checkpoint LSN=311205983427362
2018-05-02 19:51:57 139990018914496 [Note] InnoDB: Last binlog file '/var/log/mysql-binlog/mysql-bin.227009', position 38590879
2018-05-02 19:52:12 139990018914496 [Note] InnoDB: 128 out of 128 rollback segments are active.
2018-05-02 19:52:12 139990018914496 [Note] InnoDB: Removed temporary tablespace data file: "ibtmp1"
2018-05-02 19:52:12 139990018914496 [Note] InnoDB: Creating shared tablespace for temporary tables
2018-05-02 19:52:12 139990018914496 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2018-05-02 19:52:12 139990018914496 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2018-05-02 19:52:12 139990018914496 [Note] InnoDB: Waiting for purge to start
2018-05-02 19:52:12 139990018914496 [Note] InnoDB: 5.7.21 started; log sequence number 311205983427371
2018-05-02 19:52:12 139915446597376 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
2018-05-02 19:52:12 139990018914496 [Note] Plugin 'FEEDBACK' is disabled.
2018-05-02 19:52:12 139990018914496 [Note] Recovering after a crash using tc.log
2018-05-02 19:52:12 139990018914496 [Note] Starting crash recovery...
2018-05-02 19:52:12 139990018914496 [Note] Crash recovery finished.
2018-05-02 19:52:12 139990018914496 [Note] Server socket created on IP: '0.0.0.0'.
2018-05-02 19:52:12 139990018914496 [Warning] 'user' entry 'root@srvdns2' ignored in --skip-name-resolve mode.
2018-05-02 19:52:12 139990018914496 [Warning] 'proxies_priv' entry '@% root@srvdns1' ignored in --skip-name-resolve mode.
2018-05-02 19:53:52 139915446597376 [Note] InnoDB: Buffer pool(s) load completed at 180502 19:53:52
180502 19:57:12 [ERROR] mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.

To report this bug, see https://mariadb.com/kb/en/reporting-bugs

We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed, 
something is definitely wrong and this may fail.

Server version: 10.2.13-MariaDB-10.2.13+maria~xenial
key_buffer_size=2147483648
read_buffer_size=262144
max_used_connections=0
max_threads=10002
thread_count=6
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 6871600 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x7f40700009a8
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0x7f515c4fecf8 thread_stack 0x49000
*** buffer overflow detected ***: /usr/sbin/mysqld terminated
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f51f54eb7e5]
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x7f51f558d15c]
/lib/x86_64-linux-gnu/libc.so.6(+0x117160)[0x7f51f558b160]
/lib/x86_64-linux-gnu/libc.so.6(+0x1190a7)[0x7f51f558d0a7]
/usr/sbin/mysqld(my_addr_resolve+0xde)[0x55a9e9f1832e]
/usr/sbin/mysqld(my_print_stacktrace+0x1e2)[0x55a9e9eff2e2]
/usr/sbin/mysqld(handle_fatal_signal+0x345)[0x55a9e9999b95]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7f51f5eda390]
/lib/x86_64-linux-gnu/libc.so.6(+0x9f849)[0x7f51f5513849]
/usr/sbin/mysqld(insert_dynamic+0x2a)[0x55a9e9ed3a4a]
/usr/sbin/mysqld(_Z25rpl_load_gtid_slave_stateP3THD+0x424)[0x55a9e98c43a4]
/usr/sbin/mysqld(handle_slave_background+0xe7)[0x55a9e97834e7]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7f51f5ed06ba]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7f51f557b41d]
======= Memory map: ========
55a9e933e000-55a9ea423000 r-xp 00000000 08:03 148565                     /usr/sbin/mysqld
55a9ea622000-55a9ea6f4000 r--p 010e4000 08:03 148565                     /usr/sbin/mysqld
55a9ea6f4000-55a9ea7aa000 rw-p 011b6000 08:03 148565                     /usr/sbin/mysqld
55a9ea7aa000-55a9eb03d000 rw-p 00000000 00:00 0 
55a9eba46000-55aa4e67b000 rw-p 00000000 00:00 0                          [heap]

STEP 3) So the default way of repairing the InnoDB is to use

innodb_force_recovery

in your my.cnf configuration file:

[mysqld]
innodb_force_recovery=1

But again and again crashes even enabling all the options of innodb_force_recovery=1,2,3,4,5 and last 6. But when using “innodb_force_recovery=4” and 5 and 6 we have some strange additional error:

2018-05-02 21:43:34 139667439187712 [ERROR] InnoDB: Failed to find tablespace for table `mysql`.`gtid_slave_pos` in the cache. Attempting to load the tablespace with space id 63584
2018-05-02 21:43:34 139667439187712 [Warning] InnoDB: Allocated tablespace ID 63584 for mysql/gtid_slave_pos, old maximum was 0

The innodb_force_recovery did not help we still cannot start our MySQL database, but there were two things:

  1. No errors were reported by the InnoDB Engine – “InnoDB: Buffer pool(s) load completed” and Crash recovery always finished without errors
  2. The MySQL starts successfully, but not listening socket and then after 3~5 minutes of extensive IO reading from the disk by the mysql process it crashes

It was like something big was loading just on the start and in fact needed on the very beginning, so what start immediately after successful load of the mysql process?

REPLICATION

Remember this is a slave!

STEP 4) So trying to prevent the start of the replication on start of the mysql process with:

[mysqld]
skip-slave-start

STEP 5) strace and file descritor to find the offender table file.

The skip-slave-start option DID the trick – NO Segmentation fault

the mysql processes immediately after successful engines load began to listen on sockets. So the big offender was probably something connected with the replication! A big table used in the replication? How to find it, ok remove the “skip-slave-start”, then start the mysql process and wait for the time the IO read kicks in, then strace the mysql process (find the ID of the process with ps – the first number of the following command is the ID of the mysql process):

srv@local ~ # ps axuf|grep mysql|grep -v grep
mysql    6969  239  8.3 78561320 10983848 ?   Ssl  22:53 108:59 /usr/sbin/mysqld
srv@local ~ # strace -f -p 6969
strace -f -p 6969
strace: Process 6969 attached with 27 threads
[pid  6996] rt_sigtimedwait([HUP QUIT ALRM TERM TSTP], NULL, NULL, 8 <unfinished ...>
[pid  6994] futex(0x55941cb5d1ec, FUTEX_WAIT_PRIVATE, 1, NULL <unfinished ...>
[pid  6995] futex(0x7f93c6de1d24, FUTEX_WAIT_PRIVATE, 1, NULL <unfinished ...>
[pid  6993] restart_syscall(<... resuming interrupted nanosleep ...> <unfinished ...>
[pid  6992] futex(0x55941cb5d0ec, FUTEX_WAIT_PRIVATE, 1, NULL <unfinished ...>
[pid  6991] futex(0x55941cb5cd6c, FUTEX_WAIT_PRIVATE, 1, NULL <unfinished ...>
[pid  6990] restart_syscall(<... resuming interrupted futex ...> <unfinished ...>
[pid  6997] mremap(0x7f9298b76000, 2210828288, 2210836480, MREMAP_MAYMOVE <unfinished ...>
[pid  6989] restart_syscall(<... resuming interrupted futex ...> <unfinished ...>
[pid  6988] restart_syscall(<... resuming interrupted futex ...> <unfinished ...>
[pid  6986] futex(0x55947cfe941c, FUTEX_WAIT_PRIVATE, 33, NULL <unfinished ...>
[pid  6985] futex(0x55947cfe941c, FUTEX_WAIT_PRIVATE, 31, NULL <unfinished ...>
[pid  6984] futex(0x55947cfe941c, FUTEX_WAIT_PRIVATE, 32, NULL <unfinished ...>
[pid  6997] <... mremap resumed> )      = 0x7f9298b76000
[pid  6984] <... futex resumed> )       = -1 EAGAIN (Resource temporarily unavailable)
[pid  6983] restart_syscall(<... resuming interrupted futex ...> <unfinished ...>
[pid  6984] futex(0x55947cfe941c, FUTEX_WAIT_PRIVATE, 33, NULL <unfinished ...>
[pid  6982] io_getevents(140347217702912, 1, 256,  <unfinished ...>
[pid  6981] io_getevents(140347217723392, 1, 256,  <unfinished ...>
[pid  6985] <... futex resumed> )       = -1 EAGAIN (Resource temporarily unavailable)
[pid  6980] io_getevents(140347217743872, 1, 256,  <unfinished ...>
[pid  6979] io_getevents(140347217764352, 1, 256,  <unfinished ...>
[pid  6978] io_getevents(140347217825792, 1, 256,  <unfinished ...>
[pid  6977] io_getevents(140347217846272, 1, 256,  <unfinished ...>
[pid  6985] futex(0x55947cfe941c, FUTEX_WAIT_PRIVATE, 33, NULL <unfinished ...>
[pid  6976] io_getevents(140347217866752, 1, 256,  <unfinished ...>
[pid  6975] io_getevents(140347219357696, 1, 256,  <unfinished ...>
[pid  6974] io_getevents(140347217784832, 1, 256,  <unfinished ...>
[pid  6973] io_getevents(140347217805312, 1, 256,  <unfinished ...>
[pid  6971] restart_syscall(<... resuming interrupted futex ...> <unfinished ...>
[pid  6970] restart_syscall(<... resuming interrupted futex ...> <unfinished ...>
[pid  6969] futex(0x55941a4be944, FUTEX_WAIT_PRIVATE, 1, NULL <unfinished ...>
[pid  6997] pread64(38, "\201L\321\365\0\5\315\3\0\5\315\0\0\5\315\6\0\1\30\307o\303\365]E\277\0\0\0\0\0\0"..., 16384, 6228590592) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210836480, 2210844672, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "\210\271\277\343\0\5\315\6\0\5\315\3\0\5\315\7\0\1\30\307o\343\362~E\277\0\0\0\0\0\0"..., 16384, 6228639744) = 16384
[pid  6997] pread64(38, "\305\17\303k\0\5\315\7\0\5\315\6\0\5\315\10\0\1\30\307o\377\224gE\277\0\0\0\0\0\0"..., 16384, 6228656128) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210844672, 2210852864, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "\217\351V~\0\5\315\10\0\5\315\7\0\5\315\n\0\1\30\307p\34\31\363E\277\0\0\0\0\0\0"..., 16384, 6228672512) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210852864, 2210861056, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "\367\321\330\232\0\5\315\n\0\5\315\10\0\5\315\v\0\1\30\307p>\316\360E\277\0\0\0\0\0\0"..., 16384, 6228705280) = 16384
[pid  6997] pread64(38, "\374v\202\177\0\5\315\v\0\5\315\n\0\5\315\r\0\1\30\307p\\alE\277\0\0\0\0\0\0"..., 16384, 6228721664) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210861056, 2210869248, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "s\261\0A\0\5\315\r\0\5\315\v\0\5\315\16\0\1\30\307p\212\1AE\277\0\0\0\0\0\0"..., 16384, 6228754432) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210869248, 2210877440, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "\214\t\7\244\0\5\315\16\0\5\315\r\0\5\315\21\0\1\30\307p\242H\37E\277\0\0\0\0\0\0"..., 16384, 6228770816) = 16384
[pid  6997] pread64(38, "<\n\272\"\0\5\315\21\0\5\315\16\0\5\315\24\0\1\30\307p\311i\313E\277\0\0\0\0\0\0"..., 16384, 6228819968) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210877440, 2210885632, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] mremap(0x7f9298b76000, 2210885632, 2210893824, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "n|I\n\0\5\315\24\0\5\315\21\0\5\315\25\0\1\30\307p\360EqE\277\0\0\0\0\0\0"..., 16384, 6228869120) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210893824, 2210902016, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "\270\206\326\207\0\5\315\25\0\5\315\24\0\5\315\27\0\1\30\307q\1a\251E\277\0\0\0\0\0\0"..., 16384, 6228885504) = 16384
[pid  6997] pread64(38, "{l\226S\0\5\315\27\0\5\315\25\0\5\315\31\0\1\30\307q&\205!E\277\0\0\0\0\0\0"..., 16384, 6228918272) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210902016, 2210910208, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "\201\265]&\0\5\315\31\0\5\315\27\0\5\315\32\0\1\30\307qK\365\212E\277\0\0\0\0\0\0"..., 16384, 6228951040) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210910208, 2210918400, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "\352?\236\327\0\5\315\32\0\5\315\31\0\5\315\33\0\1\30\307qob:E\277\0\0\0\0\0\0"..., 16384, 6228967424) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210918400, 2210926592, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] mremap(0x7f9298b76000, 2210926592, 2210934784, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "3c\33\301\0\5\315\33\0\5\315\32\0\5\315\36\0\1\30\307q\2236%E\277\0\0\0\0\0\0"..., 16384, 6228983808) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210934784, 2210942976, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "Zi\343\177\0\5\315\36\0\5\315\33\0\5\315\37\0\1\30\307q\325\27LE\277\0\0\0\0\0\0"..., 16384, 6229032960) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210942976, 2210951168, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "v5h%\0\5\315\37\0\5\315\36\0\5\315!\0\1\30\307r\f\325\364E\277\0\0\0\0\0\0"..., 16384, 6229049344) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210951168, 2210959360, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "0\6Yn\0\5\315!\0\5\315\37\0\5\315\"\0\1\30\307sCX@E\277\0\0\0\0\0\0"..., 16384, 6229082112) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210959360, 2210967552, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "\203\243K\203\0\5\315\"\0\5\315!\0\5\315$\0\1\30\307t;\234\302E\277\0\0\0\0\0\0"..., 16384, 6229098496) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210967552, 2210975744, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "9\264\332j\0\5\315$\0\5\315\"\0\5\315%\0\1\30\307\177\370#\371E\277\0\0\0\0\0\0"..., 16384, 6229131264) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210975744, 2210983936, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, ":\200+\337\0\5\315%\0\5\315$\0\5\315&\0\1\30\307\200\20U-E\277\0\0\0\0\0\0"..., 16384, 6229147648) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210983936, 2210992128, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "\35-th\0\5\315&\0\5\315%\0\5\315(\0\1\30\307\200+\333CE\277\0\0\0\0\0\0"..., 16384, 6229164032) = 16384
[pid  6997] pread64(38, "\246Y\305\351\0\5\315(\0\5\315&\0\5\315)\0\1\30\307\200[\324\305E\277\0\0\0\0\0\0"..., 16384, 6229196800) = 16384
[pid  6997] mremap(0x7f9298b76000, 2210992128, 2211000320, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "\340(\2\350\0\5\315)\0\5\315(\0\5\315+\0\1\30\307\200\214L\365E\277\0\0\0\0\0\0"..., 16384, 6229213184) = 16384
[pid  6997] mremap(0x7f9298b76000, 2211000320, 2211008512, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "A\374\37\23\0\5\315+\0\5\315)\0\5\315,\0\1\30\307\200\252\30\373E\277\0\0\0\0\0\0"..., 16384, 6229245952) = 16384
[pid  6997] mremap(0x7f9298b76000, 2211008512, 2211016704, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "iW\274\365\0\5\315,\0\5\315+\0\5\315.\0\1\30\307\200\332\266\256E\277\0\0\0\0\0\0"..., 16384, 6229262336) = 16384
[pid  6997] mremap(0x7f9298b76000, 2211016704, 2211024896, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "\343c\340\347\0\5\315.\0\5\315,\0\5\315/\0\1\30\307\200\356\272YE\277\0\0\0\0\0\0"..., 16384, 6229295104) = 16384
[pid  6997] mremap(0x7f9298b76000, 2211024896, 2211033088, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "}\35\32i\0\5\315/\0\5\315.\0\5\3150\0\1\30\307\201\5\226\256E\277\0\0\0\0\0\0"..., 16384, 6229311488) = 16384
[pid  6997] pread64(38, "\322\237\206\377\0\5\3150\0\5\315/\0\5\3151\0\1\30\307\201\257\241\272E\277\0\0\0\0\0\0"..., 16384, 6229327872) = 16384
[pid  6997] mremap(0x7f9298b76000, 2211033088, 2211041280, MREMAP_MAYMOVE) = 0x7f9298b76000
[pid  6997] pread64(38, "/\250\21!\0\5\3151\0\5\3150\0\5\3152\0\1\30\307\203\3\237\2E\277\0\0\0\0\0\0"..., 16384, 6229344256) = 16384
[pid  6997] mremap(0x7f9298b76000, 2211041280, 2211049472, MREMAP_MAYMOVE) = 0x7f9298b76000

You see multiple lines (thousands) with:

[pid  6997] pread64(38, "/\250\21!\0\5\3151\0\5\3150\0\5\3152\0\1\30\307\203\3\237\2E\277\0\0\0\0\0\0"..., 16384, 6229344256) = 16384
[pid  6997] mremap(0x7f9298b76000, 2211041280, 2211049472, MREMAP_MAYMOVE) = 0x7f9298b76000

The pread64 – reads from file descriptor with ID=38, then you can list all file descriptors for the mysql process ID with:

srv@local mysql # ls -altr /proc/6969/fd
total 0
dr-xr-xr-x 9 mysql mysql  0 May  2 21:32 ..
l-wx------ 1 root  root  64 May  2 21:35 2 -> /var/log/mysql/error.log
dr-x------ 2 root  root   0 May  2 21:35 .
lrwx------ 1 root  root  64 May  2 21:35 9 -> /tmp/ibgyw4AI (deleted)
lrwx------ 1 root  root  64 May  2 21:35 8 -> /tmp/ibuaprWP (deleted)
lrwx------ 1 root  root  64 May  2 21:35 7 -> /tmp/ibfXwsBW (deleted)
lrwx------ 1 root  root  64 May  2 21:35 6 -> /var/lib/mysql/ibdata1
lrwx------ 1 root  root  64 May  2 21:35 5 -> /var/lib/mysql/aria_log.00000001
lr-x------ 1 root  root  64 May  2 21:35 4 -> /var/lib/mysql
lrwx------ 1 root  root  64 May  2 21:35 38 -> /var/lib/mysql/mysql/gtid_slave_pos.ibd
lrwx------ 1 root  root  64 May  2 21:35 37 -> /var/lib/mysql/mysql/event.MYD
lrwx------ 1 root  root  64 May  2 21:35 36 -> /var/lib/mysql/mysql/event.MYI
lrwx------ 1 root  root  64 May  2 21:35 35 -> /var/lib/mysql/mysql/procs_priv.MYD
lrwx------ 1 root  root  64 May  2 21:35 34 -> /var/lib/mysql/mysql/procs_priv.MYI
lrwx------ 1 root  root  64 May  2 21:35 33 -> /var/lib/mysql/mysql/columns_priv.MYD
lrwx------ 1 root  root  64 May  2 21:35 32 -> /var/lib/mysql/mysql/columns_priv.MYI
lrwx------ 1 root  root  64 May  2 21:35 31 -> /var/lib/mysql/mysql/tables_priv.MYD
lrwx------ 1 root  root  64 May  2 21:35 30 -> /var/lib/mysql/mysql/tables_priv.MYI
lrwx------ 1 root  root  64 May  2 21:35 3 -> /var/lib/mysql/aria_log_control
lrwx------ 1 root  root  64 May  2 21:35 29 -> /var/lib/mysql/mysql/roles_mapping.MYD
lrwx------ 1 root  root  64 May  2 21:35 28 -> /var/lib/mysql/mysql/roles_mapping.MYI
lrwx------ 1 root  root  64 May  2 21:35 27 -> /var/lib/mysql/mysql/proxies_priv.MYD
lrwx------ 1 root  root  64 May  2 21:35 26 -> /var/lib/mysql/mysql/proxies_priv.MYI
lrwx------ 1 root  root  64 May  2 21:35 25 -> /var/lib/mysql/mysql/host.MYD
lrwx------ 1 root  root  64 May  2 21:35 24 -> /var/lib/mysql/mysql/host.MYI
lrwx------ 1 root  root  64 May  2 21:35 23 -> /var/lib/mysql/mysql/db.MYD
lrwx------ 1 root  root  64 May  2 21:35 22 -> /var/lib/mysql/mysql/db.MYI
lrwx------ 1 root  root  64 May  2 21:35 21 -> /var/lib/mysql/mysql/user.MYD
lrwx------ 1 root  root  64 May  2 21:35 20 -> /var/lib/mysql/mysql/user.MYI
lrwx------ 1 root  root  64 May  2 21:35 19 -> socket:[49519]
lrwx------ 1 root  root  64 May  2 21:35 18 -> socket:[49518]
lrwx------ 1 root  root  64 May  2 21:35 17 -> /var/lib/mysql/mysql/servers.MYD
lrwx------ 1 root  root  64 May  2 21:35 16 -> /var/lib/mysql/mysql/servers.MYI
lrwx------ 1 root  root  64 May  2 21:35 15 -> /var/lib/mysql/tc.log
lrwx------ 1 root  root  64 May  2 21:35 13 -> /tmp/ib281FZH (deleted)
lrwx------ 1 root  root  64 May  2 21:35 12 -> /var/lib/mysql/ibtmp1
lrwx------ 1 root  root  64 May  2 21:35 11 -> /var/lib/mysql/ib_logfile1
lrwx------ 1 root  root  64 May  2 21:35 10 -> /var/lib/mysql/ib_logfile0
l-wx------ 1 root  root  64 May  2 21:35 1 -> /var/log/mysql/error.log
lrwx------ 1 root  root  64 May  2 21:35 0 -> /dev/pts/3

And again file descriptor with ID=38 is:

/var/lib/mysql/mysql/gtid_slave_pos.ibd

And when you check the size – 12G…..12G for this table? Why? What is used for?

STEP 6) And from the manual:

The mysql.gtid_slave_pos table is used in replication by slave servers to keep track of their current position (the global transaction ID of the last transaction applied). Using the table allows the slave to maintain a consistent value for the gtid_slave_pos system variable across server restarts. See Global Transaction ID.

You should never attempt to modify the table directly. If you do need to change the global gtid_slave_pos value, use SET GLOBAL gtid_slave_pos = ... instead.

The table is updated with the new position as part of each transaction committed during replication. This makes it preferable that the table is using the same storage engine as the tables otherwise being modified in the transaction, since otherwise a multi-engine transaction is needed that can reduce performance.

Hmm “The table is updated with the new position as part of each transaction committed during replication” and 12G table – could it track minillions of transactions? Probably not, in fact this table has only 2-3-4 rows at a given time!!! But the size is 12G, well as we said this is:
“That’s specifics of InnoDB data storage. Did you try to run OPTIMIZE TABLE mysql.gtid_slave_pos? It should allow to reclaim the disk space.” (taken from: https://jira.mariadb.org/browse/MDEV-12318).

STEP 7) Remove a corrupted innodb file, which causes database (mysql process) crash leaving your with no database at all and then recreate the table

Restart your mysql server with “skip-slave-start” again to be able to start it (look above).
So a table probably with couple of rows takes 12G and MariaDB is using it for the replication on start up, but the replication position is kept on another place “master.info”, can we delete this offender file “gtid_slave_pos.ibd”? Yes we can, move the file out of its place (mysql datadir) and then create a second table with:

MariaDB [mysql]> use mysql
MariaDB [mysql]> CREATE TABLE `gtid_slave_pos1` (
    ->   `domain_id` int(10) unsigned NOT NULL,
    ->   `sub_id` bigint(20) unsigned NOT NULL,
    ->   `server_id` int(10) unsigned NOT NULL,
    ->   `seq_no` bigint(20) unsigned NOT NULL,
    ->   PRIMARY KEY (`domain_id`,`sub_id`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Replication slave GTID position';
Query OK, 0 rows affected (0.01 sec)

Copy gtid_slave_pos1.ibd to gtid_slave_pos.ibd and restart the mysql process, it will report an error for a table mysql.gtid_slave_pos but you will be able to drop the table and then create it with the same name: “gtid_slave_pos” (you could drop the temporary one “gtid_slave_pos1”)

MariaDB [mysql]> use mysql
MariaDB [mysql]> DROP TABLE `gtid_slave_pos`;
Query OK, 0 rows affected (0.01 sec)
MariaDB [mysql]> CREATE TABLE `gtid_slave_pos` (
    ->   `domain_id` int(10) unsigned NOT NULL,
    ->   `sub_id` bigint(20) unsigned NOT NULL,
    ->   `server_id` int(10) unsigned NOT NULL,
    ->   `seq_no` bigint(20) unsigned NOT NULL,
    ->   PRIMARY KEY (`domain_id`,`sub_id`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Replication slave GTID position';
Query OK, 0 rows affected (0.01 sec)
MariaDB [mysql]> DROP TABLE `gtid_slave_pos1`;
Query OK, 0 rows affected (0.01 sec)

The create table statement is taken from another server probably it is a good idea to do it yourself, login on a healthy mysql server and issue: “show create table mysql.gtid_slave_pos;”.
So now you have a healthy mysql.gtid_slave_posto be used for your replication. Restart your mysql server removing “skip-slave-start” from your configuration file and here it is the replication is OK and running:

MariaDB [(none)]> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.10.10.10
                  Master_User: replusr
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.071301
          Read_Master_Log_Pos: 64980976
               Relay_Log_File: mysqld-relay-bin.230012
                Relay_Log_Pos: 80704376
        Relay_Master_Log_File: mysql-bin.090129
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: test
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 80704077
              Relay_Log_Space: 113209377078
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 30944
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 101
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
                   Using_Gtid: No
                  Gtid_IO_Pos: 
      Replicate_Do_Domain_Ids: 
  Replicate_Ignore_Domain_Ids: 
                Parallel_Mode: conservative
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Waiting for room in worker thread event queue
1 row in set (0.00 sec)

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'