Step by step guide for BP candidates to start an EOS node and join EOSNet.io testnet
Join Telegram EOSNet.io TestNet channel: https://t.me/joinchat/GCDtvUqDVpSZ_mYd0y6vJQ
Prerequisites
You must be registered BP candidate and have fast multicore server with enough RAM running on fast Internet line in order to keep up with block production on a network.
Installation and configuration of testnode
Installation instructions below have been tested on Ubuntu v16 server.
Change to folder /opt and do git checkout of EOS SuperDawn 2018/03/18 branch:
git clone --branch SuperDawn-2018-03-18 https://github.com/eosio/eos --recursive eosYou should now have /opt/eos folder. Go there: cd eos
Assuming you are running in remote ssh session - start build process using nohup tool:
nohup ./build.sh ubuntu &You can monitor build progress by running: tail -f nohup.out
Your last 4 lines in nohup.out should be:
[100%] Building CXX object programs/eosiod/CMakeFiles/eosiod.dir/main.cpp.o
[100%] Linking CXX executable eosiod
[100%] Built target chain_test
[100%] Built target eosiod
IMPORTANT: If you get build errors - please install doxygen:
sudo apt-get install doxygen
And then repeat from step #3.
Change to folder: cd /opt/eos/build/programs/eosiod and run: ./eosiod
You should get and error and process exits:
676452ms thread-0 main.cpp:89 main ] 10 assert_exception: Assert Exception
fc::exists( my->genesis_file ): unable to find genesis file '', check --genesis-json argument
{"f":""}
thread-0 chain_plugin.cpp:189 plugin_startup
{"my->genesis_file.generic_string()":""}
thread-0 chain_plugin.cpp:210 plugin_startupNow change to newly created folder data-dir under eosiod: cd data-dir
Now fetch a genesis file and sample config.ini either from GitHub location:
https://github.com/EOSTribe/eosnetUpload both files to the server and place them into that data-dir folder (replace existing config.ini).
Edit config.ini file and update following lines:
9.1 Make sure genesis path is correct:
genesis-json=/opt/eos/build/programs/eosiod/data-dir/genesis_eosnet.json
9.2 Change following line to domain name registered for your server IP:
p2p-server-address = <your domain>:6600
If you don't have a domain assigned - comment it out.
9.3 Change following line to name of your BP candidate:
agent-name = "<Your name>"
In my case it's 'EOS-SLC' or just use your name like John Doe, etc.
9.4 Now and most important - change producer name and keys:
producer-name = <prod-name>
private-key = ["<owner_public_key>","<owner_private_key>"]
- Contact me directly for producer account name and keys.
Telegram name: Eugene Luzgin - EOS SLC
Telegram EOSNet.io TestNet channel: https://t.me/joinchat/GCDtvUqDVpSZ_mYd0y6vJQ
Email: [email protected]
Starting the node
Get start and stop scripts from GitHub repo (courtesy of CryptoLions):
https://github.com/CryptoLions/scripts
Place them under eosiod folder and update paths in each script.
Run the node: ./start.sh
Check the logs to make sure no errors and process still running:
ps -ef | grep eosiod
...
Congratulations - you are up and running as BP on EOSNet.io testnet!
Don't forget to register your node on EOSNet.io or send me your information to be included in network stats.
Monitor page of EOSNet.io Testnet: http://eosslc.com/monitor/
Additional configuration if you run on AWS EC2 instance
By default AWS will restrict access to your open server ports.
And you will need to keep peer (6600) and http (8800) ports accessible.
Here is the instruction provided by @BPNode for configuring open access to those ports:
https://steemit.com/aws/@bpnode/guide-for-bp-candidates-to-setup-aws-ip-and-ports-with-screenshots
You should be able to then call the endpoint for checking status of your running node:
http://HOST_NAME:8800/v1/chain/get_info
How to contact me:
Easiest: Find me on Telegram by name: Eugene Luzgin - EOS SLC
Email: [email protected]
Please send me the following information - so that I can add your node into monitoring app:
Your name
Organization (BP candidate name)
Contact email
Location of server (city, country)
Host name (or IP)
Peer port (default 6600)
HTTP Port (default 8800)