EOS Block Producer Guide — Updated April 10, 2021

eosiob
4 min readJun 1, 2018

--

This guide has been updated and can be used for setting up a block producer any EOSIO chain — PROTON, WAX, TELOS, BOS. EUROPECHAIN, COFFE, REMME, or FIO… Each chain will have varying ways of onboarding BPs, so please reach out to the admins on the relevant Telegram channels or websites.

Recommend reading my post on becoming a Block Producer.

Security First

First check out this EOS Block Producer Ghostbusters Security guide for your infrastructure setup. REMINDER — please do not run nodeos as “root” under any circumstances.

Please also read this security advice from EOS Tribe is located here — Note to BPs — How not to get hacked!

Here is JemXPat’s guide to EOS Core infrastructure.

Please note, your EOS source should be based off of the EOSIO Github.

Practice Running your Node

It’s good to practice running your node — try it out on a testnet. There are 2 really great ones — Jungle Testnet or CryptoKylin Testnet.

Block Producer Hardware

I have been updating this gist with some helpful information gathered from discussing hardware recommendations with other BPs.

Block Producer Node Configuration

Please read the above links on security. I drafted an example config.ini you can use, but I strongly recommend against using this in production. This config has everything running from a single server. It’s not recommended to expose the API on your producer node. In your producer node, you only need to run the chain and producer plugins, but I recommend adding the LiquidEOS Heartbeat plugin.

Ideally, you want to keep your producer node IP secret. Most Block Producers have several seed nodes that hide their producer node. The producer only peers with the seed node.

Explanation of EOS Permissions

This is very important to understand because the future of your Block Producer depends on being able to manage your keys successfully.

Producer Key — This is the key for signing blocks and identifying your Block Producer. This key cannot sign transactions on EOS, it can only sign blocks. Therefore it cannot transfer or claim EOS.

Owner Permission — this is the superuser key for your Block Producer. Do not store on any computer, put the private key somewhere safe. You can use this key to change your Active Key at any time. Additionally, in the case that your active key is stolen, you may be able to recover funds through arbitration by proving the Owner Key. Best practice is to set this as a multisig permission.

Active Permission — this is the controlling key for your Block Producer — you will use this key to claim block rewards.

EOS Block Producer Registration Commands

Create EOS wallet

cleos wallet create -n walletname

Record the password and keep secure.

Unlock EOS Wallet

cleos wallet unlock

Paste your wallet password

Load Generated EOS Account Private Key Into Your Wallet

cleos wallet import <privkey>

Create New Account From Your Generated Account

To find your automatically created account visit https://eosauthority.com and paste in your ETH public key, this will return your EOS public key and your created account name. This new account name should be 12 lowercase alphanumeric first char is a-z, then 1 to 11 more chars that are a-z or 1–5.

cleos system newaccount — stake-net "4.0000 EOS" — stake-cpu "4.0000 EOS" — buy-ram-kbytes 8 accountname newaccountname <owner-publickey> <active-publickey>

Load new account private key into your wallet.

cleos wallet import -n walletname <privkey>

Create a bp.json For Your Block Producer

This will be used by voting portals and websites to identify producers. The bp.json contains location info for your Block Producer, nodes, and also contains other identifiable information such as your Block Producer public key.

For instance http://<yourwebsite.com>/bp.json When you register your producer the url field should be filled with http://<yourwebsite.com>. Do not put the bp_info.json file in the url.

Example of EOS Block Producer bp_info.json

For instance, for EOS Sweden the bp.json is located at https://eossweden.org/bp.json, the URL to locate this will be https://eossweden.org.

Compliance

Your bp.json must contain your logo, links to your website, your p2p and api servers, a code of conduct, and an ownership disclosure. Failure to provide some of these items could result in arbitration against you from other BPs.

  • Register as an EOS Block Producer (regproducer)

This account name should be 12 lowercase alphanumeric first char is a-z, then 1 to 11 more chars that are a-z or 1–5 and it should match the new account you created above.

cleos -u https://proxy.eosnode.tools system regproducer accountname <producer-publickey> “https://<domain.com>/” -p accountname

Finally, Verify You Are A Registered Producer

cleos system listproducers

The output should show your producer in the list with the number of votes:

Producer Producer key Url Scaled votes

eos42freedom XXXXXXXXXXXXXXXXXXX https://keybase.pub/ankh2054/ 14.4242

Now you can start collecting votes and you should appear automagically in voting portals based on your json.

Please comment with questions, corrections, or requests for additional info below.

Written in collaboration with Charles Holzkampf with EOS42.

Additional Tools for Block Producers: http://bit.ly/eosbptools

--

--

Responses (9)