EOSphere Blog
Published in

EOSphere Blog

WAX Technical How To #3

In our very first WAX Technical How To you learnt how to build a Node and sync it to the WAX Public Testnet. Providing API and Seed services are key to being part of the WAX service provider Ecosystem, however to be rewarded for your efforts and to participate in the governance of the chain you will need to become a WAX Testnet Block Producer.

This 3rd Edition will show you how to configure a WAX Testnet Block Production Node and register your account as a WAX Testnet Block Producer

How to Set Up a WAX Testnet Block Producer Node

In this example we will be using the same WAX software build process for the Block Producer Node and Cleos Interface Node as used in the first WAX Technical How To

The Block Producer Node also needs to be configured and sync’d up to the WAX Testnet precisely the same as the first WAX example, additional configuration will be applied later in this example.

Environment

There is consensus amongst Block Producers that best practice for any EOSIO production deployment is that each node serve a specific function. In particular the Block Producer Node should not be publicly accessible or used as a Public API or Peer.

In this example we will have three different nodes serving specific functions:

Public API and Peer Node
This is the Node created in the First WAX How To Article and will be used to provide public API and Peer services.
It will need to be Sync’d to the current WAX Testnet Headblock

Block Producer Node
This is the Node used to securely sign blocks on the WAX Testnet and the main additional production Node in this example.
It will need to be Sync’d to the current WAX Testnet Headblock.
In addition to configuring the latest available peer list published by EOSNation, it is a good idea to allow it to peer to your own Public Peer Node.

Cleos Interface Node
This Node is completely private and used to interact with the Public Testnet Network via command line. Ubuntu Terminal / MacOS Terminal / Windows Ubuntu Shell are great lightweight OS’s for running this private interface.

Two WAX software included applications are used: cleos which is the command line interface for the WAX software and keosd which is essentially a wallet / key manager service daemon for storing private keys and signing digital messages. If you hadn’t run the installation script after compiling the WAX Software you can find the binary’s here: ~/wax2.0/build/programs

As you will be importing your private keys into keosd it is important that this Node is secured and treated as private.

cleos uses your keys imported into keosd as authority to execute privileged actions on the network through an API running in nodeos

Getting a Testnet Account

A WAX Testnet Block Producer requires an account to be created that can be used to register intent to become a producer that token holders are able to vote for.

There is a cost in WAX Testnet Tokens associated with registering an account, however you need an account to hold tokens. This would be problematic.. but there is a very handy WAX Testnet Account Creator and Faucet provided by WAX Sweden that can be used to easily create your first account and fill it with WAX Testnet Tokens.

Run the following curl requests on your on Cleos Node to create and fund your account , obviously supplementing with your desired account name:

> curl https://faucet.waxsweden.org/create_account?eospherewoot{"msg": "succeeded", "keys": {"active_key": {"public": "EOS8PSfvq342YTVtogNVskjCttpx1rQX9JT59wQuLt2Nkz16ZmsL4", "private": "5JZsTE4LzwbHKLX25n3D4gSYVtB5AxyDgGGrUPaMWpAmbWveu72"}, "owner_key": {"public": "EOS7gjEzaYfd9FeSU8BzREgrLQz4QwizFfsKDJtgswCwwyhgX6dqa", "private": "5J7zm5kfBkhhuSnzxxxxxxxxxxxxxxxxxxxxxxnmi73eh8ANLzpB"}}, "account": "eospherewoot"}> curl https://faucet.waxsweden.org/get_token?eospherewoot{"msg": "succeeded"}

You are presented with two key pairs, active_key and owner_key .. keep both of these pairs safely stored in this example we will be using the active_key.

Import your account key to keosd

Now that we have an account lets’s import it to a keosd wallet so we can use it with cleos

On your Cleos Node Create a WAX Testnet Wallet and import your account key:

> cleos wallet create -n waxtestnet --to-consoleCreating wallet: waxtestnetSave password to use in the future to unlock this wallet.
Without password imported keys will not be retrievable.
"PW5JoPmniazjAH3RTx4gcR5njKvPP6or8k7VzXu8ffGwwsFxqSGYN"

keosd is automatically started (you may have to make sure it’s in the local path) .. the wallet is then created. This password is for your local wallet called waxtestnet, keep is safe. By default the wallets are stored here: ~/eosio-wallet

Import your active account key:

#Unlock your wallet with the password from before
> cleos wallet unlock -n waxtestnet
password: Unlocked: waxtestnet
#Import your active_key : private
> cleos wallet import -n waxtestnet
private key: imported private key for: EOS8PSfvq342YTVtogNVskjCttpx1rQX9JT59wQuLt2Nkz16ZmsL4

Configure the Block Producer Node

As already mentioned previously the Block Producer Node needs some specific configuration that enables block signing.

Firstly we need a EOSIO key-pair specifically for signing use, which can be accomplished using the Cleos Node:

> cleos create key --to-console
Private key: 5JVfLEuHuoVkEX6CyScPHNLgxtRdUcdLp3hqzrXC54xVjtESFXX
Public key: EOS6HWBC39JAXaRo5aG5yAcAjgQYhQ44T5GtcxJVbZFZox6FFa15k

Next configure the config.ini on your Block Producer Node with the following block production additions specific to your deployment:

#This is your BP account name
producer-name = eospherewoot
#This is your block signing key-pair
signature-provider = EOS6HWBC39JAXaRo5aG5yAcAjgQYhQ44T5GtcxJVbZFZox6FFa15k=KEY:5JVfLEuHuoVkEX6CyScPHNLgxtRdUcdLp3hqzrXC54xVjtESFXX
#Optimises hand off by producing a bit earlier
last-block-time-offset-us = -200000
#Lowers CPU time available on last block for better hand off
last-block-cpu-effort-percent = 20
#Enables block production on this node
plugin = eosio::producer_plugin

Now restart nodeos on your Block Producer Node and ensure it catches back up to the headblock.

You can check on both your nodeos Nodes by querying them from your Cleos Node to ensure they are in a good state.. and on the correct chain:

> cleos -u https://wax-testnet.eosphere.io get info{
"server_version": "b5344cde",
"chain_id": "f16b1833c747c43682f4386fca9cbb327929334a762755ebec17f6f23c9b8a12",
"head_block_num": 111813838,
"last_irreversible_block_num": 111813507,
"last_irreversible_block_id": "06aa23838410642de5d297e95a410d68ab9076028fa444c464c48172031f364d",
"head_block_id": "06aa24cea654e6250d87e41872f6754000c60226e9a490803186497e0ad70609",
"head_block_time": "2021-09-16T05:17:33.000",
"head_block_producer": "blacklusionx",
"virtual_block_cpu_limit": 200000000,
"virtual_block_net_limit": 1048576000,
"block_cpu_limit": 199900,
"block_net_limit": 1048576,
"server_version_string": "v2.0.12wax01",
"fork_db_head_block_num": 111813838,
"fork_db_head_block_id": "06aa24cea654e6250d87e41872f6754000c60226e9a490803186497e0ad70609",
"server_full_version_string": "v2.0.12wax01-b5344cde06837726fef9e384fcedc207dcf6b160"
}

Registering your Block Producer Account

Now that you are sure all is correctly configured and your Nodes are in sync with the network, you can register your intent to sign blocks and allow token holders to vote for you.

Before you execute the regproducer action, now is probably a good time to advertise your intent to the rest of the WAX Testnet Community.

There is a WAX Testnet Telegram Group where you can interact with other Block Producers, Service Providers and DApp builders.

There has been some testing recently in regards to optimum path hand-over between Block Production Nodes across the globe, if you advise in the Telegram of where your Node is located in the world one of the Testnet BP’s will assign you a location number that helps the network.

Also you will need to be voted into the #21 to be able to produce blocks, the Telegram Group is the place to ask for these votes as well.

Execute the regproducer action as below with your specifc details:

#The last number is your assigned location
> cleos -u https://wax-testnet.eosphere.io system regproducer eospherewoot 21

As the action is executed on the block-chain level you can actually point your request to any sync’d testnet API i.e you don’t have to execute this action on your own Nodes.

If/When you have been voted into the top #21 your nodeos output will look something like this for 12 blocks in a round:

info  2021-09-16T05:36:01.541 nodeos    producer_plugin.cpp:377       on_incoming_block    ] Received block e23bca90f0e6bc3d... #111816053 @ 2021-09-16T05:36:01.500 signed by eospherewoot [trxs: 0, lib: 111815725, conf: 0, latency: 41 ms]
info 2021-09-16T05:36:02.042 nodeos producer_plugin.cpp:377 on_incoming_block ] Received block c6d4ac08300ed117... #111816054 @ 2021-09-16T05:36:02.000 signed by eopsherewoot [trxs: 0, lib: 111815725, conf: 0, latency: 42 ms]

If you have any questions or challenges with getting your WAX Testnet Block Producer Node up and running feel free to reach-out to me or one of the team in the EOSphere Telegram Channel.

EOSphere Guild is a Block Producer on the WAX Protocol Network as well as many other EOSIO based Blockchains.

If you find our work helpful, please vote us on the WAX Mainnet: eosphereiobp

If you prefer to proxy your vote, our proxy account is : blklotusprxy

Connect with EOSphere via these channels:

TELEGRAM | MEDIUM |YOUTUBE | FACEBOOK | TWITTER | INSTAGRAM

--

--

--

Leading Australian EOSIO Block Producer candidate serving the entire EOSphere

Recommended from Medium

6 not so obvious things about ElasticSearch

Fast and Slow Pointers

Building an ARME

Tutorial Fuzzy Logic Mamdani for Arduino

Tutorial Fuzzy Logic Mamdani for Arduino

Synthetix Staking Telegram Bot Tutorial (PC/Mac)

What are variables in programming

Exploring Dialogflow: Understanding Agent Interaction

PHP Traits: When To Use And Why

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Ross Dold

Ross Dold

Co-Founder of EOSphere Australia

More from Medium

WAX Technical How To #8

bountyblok on WAX — NOVEMBER 2021 UPDATE

Patch Notes v1.0.5.2: Crafting Sneak Peek and Achievement Boosts

How To Earn WAX Rewards By Voting and Staking Your Extra WAX