3

As I understand, the babe epoch config comes with the option of SecondaryPlain and SecondaryVRF slots, which is more or less like PoA in the case that no primary block producers are available.

  1. If this is correct, how can I set these Secondary block producers? Do we set them in the Genesis configuration?

  2. In a staking chain, do these secondary block producers require a stake backing them for block production?

I ask this because right now I have a nPoS chain running which stalled since only one validator was online out of 3, and at epoch change I get this: ElectionError::Fallback("NoFallback.") Error with block built on 0xb4b4...ff08: ClientImport("Unexpected epoch change")

and I would like to fix it, because I know substrate node can run with one validator in the --dev chain.

1 Answer 1

3

The secondary slot authors are the same as the primary slot authors, there's no distinct validator set to configure.

The reason your chain has stalled with "Unexpected epoch change" is because it was offline for more than one epoch which is not supported by BABE.

Recovering from this is a manual and convoluted process, I don't think it's worth it for dev environments. You can find some information here: https://github.com/paritytech/substrate/issues/4464.

2
  • Did you mean if "any" validator from the babe validator set is offline for more than one epoch the chain stalls? Because I have three validators, A, B, C, and only A was online. Feb 25, 2022 at 15:09
  • 1
    I meant if all validators are offline, i.e. if there's no new block for more than one epoch length of time (e.g. 1 hour or however long the epoch is). If A was online then it wasn't authoring blocks for some reason. I suppose there might have been some error with elections which might have caused blocks to fail to be authored, but I don't know enough about it to be able to debug.
    – André
    Feb 25, 2022 at 15:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.