EOS
Aren't we all excited about EOS? What does it look like? How can I touch it?
Who wants to run the next gen block chain on their computer?
Here I am showing my steps to run one of the first full nodes of EOS. Unfortunately it just runs on local computer and it doesn't have peer to peer implemented yet, i.e. there is no communication with anybody. They will be implemented for sure.
For this experiment, I used VirtualBox and a Ubuntu 16 VM. Other OS'es may have different routes.
Disclaimer: I am not responsible for any damage you cause.
Installing boost
EOS is written in C++ and uses boost libraries.
Boost is a collection of C++ libraries that "enhance" C++ core functionality.
Download 1.64 at http://www.boost.org/
Unzip it
cd into it
./bootstrap.sh
sudo ./b2 install
This will take some time. Go grab your favorite drink.
Install git
Git is the source control management software. It basically allows collaboration while building software.
In our case we will download source code of EOS to our machine.
sudo apt install git
Install autoconf
sudo apt install autoconf
Install libtool
sudo apt install libtool
Install libsecp256k1
git clone https://github.com/cryptonomex/secp256k1-zkp.git
cd secp256k1-zkp
./autogen.sh
./configure
make
sudo make install
Install cmake
Even though cmake 3.8 was listed as required version, current stock version 3.5.1 of Ubuntu 16 also worked in my case.
sudo apt install cmake
Install OpenSSL libraries
sudo apt install libssl-dev
Install clang
We will add some repositories because stock clang version does not work for EOS.
This can break your Ubuntu if you are not careful.
sudo nano /etc/apt/sources.list
Taken from this address: http://releases.llvm.org/download.html add these lines:
deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-4.0 main
deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-4.0 main
Save and Exit
sudo apt update
To retrieve the archive signature:
wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
To install clang and lldb (4.0 release):
apt-get install clang-4.0 lldb-4.0 lld-4.0
export CC and CXX to use clang for cmake
We are going to tell cmake to use clang (by default it uses gcc).
export CC=/usr/bin/clang-4.0
export CXX=/usr/bin/clang++-4.0
Install EOS
cd ~
git clone https://github.com/eosio/eos --recursive
cd eos
cmake .
Make sure first two lines of the output from above include Clang.
make
cd tests
./chain_test
If it prints *** no errors detected
we are good to go.
Running it
cd ..
cd programs
cd eosd
./eosd
It will print some texts in red.
cd data-dir
nano config.ini
uncomment # genesis-json and put the genesis.json file you got from github (eos root directory). Example:
genesis-json /home/yourusername/eos/genesis.json
Enable production on a stale chain, since a single-node test chain is pretty much always stale.
enable-stale-production = true
Enable block production with the testnet producers
producer-id = {"_id":0}
producer-id = {"_id":1}
producer-id = {"_id":2}
producer-id = {"_id":3}
producer-id = {"_id":4}
producer-id = {"_id":5}
producer-id = {"_id":6}
producer-id = {"_id":7}
producer-id = {"_id":8}
producer-id = {"_id":9}
producer-id = {"_id":10}
Load the block producer plugin, so we can produce blocks
plugin = eos::producer_plugin
Save and Exit
cd ..
./eosd
Watch it generate blocks...
Congratulations! you made it.
You are now experiencing the cutting edge block chain tech.
Here is the creators that I know of. Thank you guys: @dantheman @modprobe @jamesc @eosio
I've been wanting to do this since I read about EOS and will follow your guide when I do. thanks!
I've also been watching the git repo to learn all I can as it's developed, I have high hopes for EOS !!!
you are welcome. I too have high hopes!
Thks for sharing this walkthrough. it will surely help other in installing eos. looking forward to see the development.
you are welcome! it may be easier in the future but it won't be this much fun for sure
So for what can we use this right now?
Not much. Just get used to install it maybe.
Thanks for providing this walk through. It will be very helpful!
You are welcome.
thanks. deaddy. I have one question. I installed boost version 1.64 (boost_1_64_0.7z), but when I check the version, it says Version: 1.58.0.1ubuntu1. Can I change it?
Overwrite 1.64 files onto 1.58.
You need sudo
I ran into an error when following these instructions on ubuntu 17.10:
CMake Error at /usr/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake:137 (message): Could NOT find GMP (missing: GMP_LIBRARIES GMP_INCLUDE_DIR)
Thanks for the procedure.
I will test it out.