Step-by-Step Guide: How to Participate in EOS Block Producer Voting Securely

SpringRole Inc.
4 min readJun 20, 2018

--

If you aren’t aware, the entire EOS community has been voting to select block producers. The network was fully activated when 15% of tokens completed voting. If you haven’t exercised your voting rights yet, this tutorial will help you do the same.

For the purposes of this tutorial we are using the Tokenika tool. Bad actors will try to exploit inexperienced users by providing fake voting tools aimed to steal their private keys and then access their EOS tokens. Tokenika’s tool brings in additional security by having an off-line step in its voting mechanism.

Why off-line?

Tokenika’s tool offers the possibility of OFF-LINE voting for block producers. Contrary to the on-line equivalent, with off-line voting, if done properly, at no point in time is your EOS private key exposed to the outside world. Thus the risk of being hacked is substantially reduced.

How it works?

The main idea is to generate a voting transaction while being completely off-line and make sure the private key is used only for signing the transaction and is never exposed afterwards.

Three steps

The process of off-line voting is divided into three simple steps, each of them in the form of an HTML page served from the tokenika.github.io domain:

  1. ON-LINE: Fetch information about the network
  2. OFF-LINE: Generate and sign transaction with your private key
  3. ON-LINE: Push the transaction to the network

NOTE: Please make sure the URL always starts with https://tokenika.github.io/secure-bp-voting.

NOTE: Step 2 is to be done OFF-LINE, ideally on a computer which has never been connected to the Internet.

Here’s the Step-by-Step Guide to Vote for an EOS Block Producer

The easy, 3-step process involves two online and one offline step for maximum security.

Step 1: Fetch information about the network

Go to the Tokenika github page: https://tokenika.github.io/secure-bp-voting/1_get_blockchain_data.html

(Always ensure that the url has the HTTPS certificate)

Then choose an API Endpoint, in this case we used https://api.tokenika.io/

Once you click the ‘Load’ button, this will automatically fetch the information from the chain: chain_id, block_num and ref_block_prefix

Note the values: chain_id, block_num and ref_block_prefix

Copy these values, as you will require the values for chain_id, block_num and ref_block_prefix for step 2.

Step 2: Generate your voting transaction Off-line

Go to https://tokenika.github.io/secure-bp-voting/2_generate_transaction.html

Save the website on your local machine/laptop computer (right click, save as…)

Now, go off-line by turning off your Wi-Fi.

Open the saved 2_generate_transaction.html file on your browser.

Then fill up your EOS Account Name and your Private Key.

Enter the values for chain_id, block_num and ref_block_prefix that you saved in Step 1 above.

Next, choose a Transaction time (default is 10 minutes).

The final step is to write down the names of the Block Producer candidates you want to vote for. You can cast up to 30 votes, just write down all the names in a single line, separated with commas. Note that if you want to vote for more than one candidate all the names should go through in a single transaction.

Note: Do consider voting for Block Producer ‘bpacbpacbpac’. SpringRole is a part of the BPAC consortium. You can read more about us here.

Then click on Generate. And you will see a generated and signed raw transaction.

Copy the raw transaction info.

Step 3: Send the transaction

Go online again by turning your Wi-Fi on.

Go to this page: https://tokenika.github.io/secure-bp-voting/3_push_transaction.html

Choose the same API Endpoint you used in the first step.

Paste the raw transaction info you got from Step 2 into the box.

Then click on Send transaction to the network. You will get a message like this:

Congrats! You have successfully voted for a Block Producer.

Note: Do consider voting for Block Producer ‘bpacbpacbpac’. SpringRole is a part of the BPAC consortium. You can read more about us here.

--

--