If you are appointed Interim Block Producer, here is our experience and tips:
-
In the
sample_config
, tweakhook_boot_node.sh
to reflect your environment. -
Run
eos-bios boot --single
. -
This will generate a
genesis.json
andgenesis.pub
andgenesis.key
. -
If you ever need to restart the chain because injection fails or whatever, run:
eos-bios boot --single --reuse-genesis
. This way, you don't need to disseminate anothergenesis.json
and require everyone to clear-up their storage. -
The node your boot NEEDS --max-transaction-time=5000 for transactions not to fail.
-
You should not mesh to anyone during injection. There are already bots that are sending automated transactions.. if you are meshed with someone exposing an API endpoint, the boot sequence will surely be impacted, and validation will most probably fail.
-
Once injection succeeds, and validation passes (the
eos-bios
built-in validation) you can enableauthor-whitelist = nobody
in the configuration, and add a fewp2p-peer-address
statements. Do not usecontract-whitelist
unless #3418 has been merged and you are running updated code. -
Restart your node, and
resume
production if it was paused on startup (remove the--genesis-json
flag). -
Blocks should start propagating to the network, but no transaction can make it into the chain.
-
Once everyone got the contents, they should be able to validate it without issue, as it is read-only.
The community might want to publish reports of the different validation tools so that everyone gains confidence it is the chain we want to bring to the world.
- When the time comes to unlock the chain for transaction, stop the node,
remove
author-whitelist
If your node is unable to produce, its connectivty breaks, or you want to move that producing node off of your Raspberry Pi, do the following:
- Call
/v1/producer/pause
on the first node. - Ensure the node to which you are transitioning was fully sync'd and has the last blocks
- Make sure
enable-stale-production = true
on the target node. - Call
/v1/producer/resume
on the new node or restart without--pause-on-startup
. - WARN: do NOT hand it off back to the INITIAL node without a PROPER RESTART OF THE FIRST NODE. Otherwise, you will hit: EOSIO/eos#3442
- If you handoff before unfreezing the chain, make sure the target
node has
author-whitelist = nobody
also, otherwise you risk unfreezing the chain too early.