Block Producer Guide on starting EOS Producer Node
The material posted here used in technical training sessions for BPs :
1. Compile latest EOS source code and install.
You should use following repo to clone: git clone https://github.com/EOS-Mainnet/eos
2. Create node folder and place genesis.json into the folder.
Here is the copy of Mainnet genesis but please verify it with multiple sources:
{
"initial_timestamp": "2018-06-08T08:08:08.888",
"initial_key": "EOS7EarnUhcyYqmdnPon8rm7mBCTnBoot6o7fE2WzjvEX2TdggbL3",
"initial_configuration": {
"max_block_net_usage": 1048576,
"target_block_net_usage_pct": 1000,
"max_transaction_net_usage": 524288,
"base_per_transaction_net_usage": 12,
"net_usage_leeway": 500,
"context_free_discount_net_usage_num": 20,
"context_free_discount_net_usage_den": 100,
"max_block_cpu_usage": 200000,
"target_block_cpu_usage_pct": 1000,
"max_transaction_cpu_usage": 150000,
"min_transaction_cpu_usage": 100,
"max_transaction_lifetime": 3600,
"deferred_trx_expiration_window": 600,
"max_transaction_delay": 3888000,
"max_inline_action_size": 4096,
"max_inline_action_depth": 4,
"max_authority_depth": 6
}
}
3. Create producer config.ini file using following template:
You can try using <ip-address> instead of 0.0.0.0 for http-server-address and p2p-listen-endpoint settings below. However if you are running on a cloud instance and get network error - use 0.0.0.0
get-transactions-time-limit = 3
block-log-dir = "blocks”
http-server-address = 0.0.0.0:8888
p2p-listen-endpoint = 0.0.0.0:9856
p2p-server-address = :9856
allowed-connection = any
log-level-net-plugin = info
max-clients = 100
connection-cleanup-period = 30
network-version-match = 0
sync-fetch-span = 2000
enable-stale-production = false
required-participation = 33
plugin = eosio::chain_api_plugin
plugin = eosio::history_plugin
plugin = eosio::history_api_plugin
peer-private-key = ["<EOS...public key>","<private-key>"]
signature-provider = <public--key>=KEY:<private-key>
producer-name = <12 chars name>
plugin = eosio::producer_plugin
p2p-peer-address = 209.41.67.115:7115
Complete list of peers available here:
https://docs.google.com/spreadsheets/d/1HLAIZ242dc0R8IcHnTRjVur4-wguQ6AjRxzXia-2esU/edit#gid=0
4. Create start script: vi start.sh
#!/bin/bash
NODEOS=/home/ubuntu/eos/build/programs/nodeos/nodeos
DATADIR=/home/ubuntu/node
$NODEOS --data-dir $DATADIR --config-dir $DATADIR "$@" > $DATADIR/stdout.txt 2> $DATADIR/stderr.txt & echo $! > $DATADIR/nodeos.pid
5. Create stop.sh :
#!/bin/bash
DIR=/home/ubuntu/node
if [ -f $DIR"/nodeos.pid" ]; then
pid=$(cat $DIR"/nodeos.pid")
echo $pid
kill $pid
rm -r $DIR"/nodeos.pid"
echo -ne "Stopping Nodeos"
while true; do
[ ! -d "/proc/$pid/fd" ] && break
echo -ne "."
sleep 1
done
echo -ne "\rNodeos stopped. \n"
fi
6. Make scripts executable: chmod +x *.sh
7. Start your producer node for the first time passing genesis*:
./start.sh --genesis-json genesis.json
*) For any future node restarts just use: ./start.sh and do not pass genesis again!
8. Check if process running: pgrep nodeos
- returns process id like: 1738
9. Tail and monitor your log for any errors: tail -f stderr.log
Leave Block Producer Guide on starting EOS Producer Node to:
Read more #eos posts
Best Posts From Eugene Luzgin - EOS Tribe
We have not curated any of eluzgin's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From Eugene Luzgin - EOS Tribe
- How to monitor your system using Glances
- How to create and install SSL certificate
- First EOS Tribe Financial Disclosure published
- How to set special claim keys for Block Producer
- BIOS BOOT EOS BLOCKCHAIN SETUP
- How to Configure, Register and Vote for Block Producer
- Block Producer Guide on starting EOS Producer Node
- My List of BP Candidates I voted for
- Note to BPs - How not to get hacked!
- How to register EOS tokens