Recently, I have hit incompatibility issue of AEON wallet on different distros of Linux. Initially, I created my wallet on LinuxMint16 running on my laptop:
apt-get install cmake
apt-get install libboost-all-dev
git clone https://github.com/aeonix/aeon.git
cd aeon
make
cd build/release/src
./simplewallet –generate-wallet test
Then, I decided to move the wallet to the cloud and launched CentOS7 on the cloudlet. I repeated the compilation process:
yum groupinstall “Developement Tools” -y
yum install cmake -y
yum install boost -y
yum install libboost-devel -y
git clone https://github.com/aeonix/aeon.git
cd aeon
make
Then I copied my wallet files to the cloudlet:
scp test root@aeon:/root/wallet
scp test.keys root@aeon:/root/wallet
scp test.address.txt root@aeon:/root/wallet
Now, when tried to open my wallet with just compiled simplewallet
, I’ve got the following error in simplewallet.log
:
2017-Jul-07 19:45:45.289497 ERROR /root/aeon/src/common/boost_serialization_helper.h:108 Exception at [unserialize_obj_from_file], what=unsupported version
2017-Jul-07 19:45:45.289611 ERROR /root/aeon/src/wallet/wallet2.cpp:566 !r. THROW EXCEPTION: error::file_read_error
2017-Jul-07 19:45:45.289681 /root/aeon/src/wallet/wallet2.cpp:566:N5tools5error15file_error_baseILi2EEE: failed to read file "test"
2017-Jul-07 19:45:45.289821 Error: failed to load wallet: failed to read file "test"
2017-Jul-07 19:45:45.289878 ERROR /root/aeon/src/simplewallet/simplewallet.cpp:387 could not open account
2017-Jul-07 19:45:45.289920 ERROR /root/aeon/src/simplewallet/simplewallet.cpp:1199 Failed to initialize wallet
It’s clear from the log that the problem lurks in different versions of boost
library against which aeon was compiled: Ubuntu repo provides version 1.58 while CentOS7 provides 1.53. The wallet generated with simplewallet
compiled with higher version of boost library cannot be read with simplewallet compiled with lesser version of boost library.
So, how can we solve that problem? Probably, you can compile it from the source: https://dl.bintray.com/boostorg/release/1.64.0/source/
The compilation was easy though took some time. I, however, preferred just to change CentOS7 cloudlet to Ubuntu one.
So, what lesson I learnt from that case? In spite of the same version of AEON source was used and compilation process was without any errors, the wallets were incompatible because of different versions of boost library installed from default repos on different Linux disros.