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