I understand that: an economic protocol defines a fitness (a.k.a score) function that maps a block (a context?) to a sequence of bytes (the fitness of the block). The fitness is used by the shell to arbitrate between candidate blocks at the same level of the chain.

Suppose we have the following chain, where fitness is a sequence of two bytes, lexicographically ordered.

Genesis - fitness 0 0 - level 0
A       - fitness 1 0 - level 1
B       - fitness 2 0 - level 2

Are the following block injections accepted or rejected by the shell:

  • a block B' on top of A, with fitness 2 0
  • a block A' on top of Genesis, with fitness 1 1

1 Answer 1


Block B' has the same fitness, so the node would wait for the next block before deciding which is canonical.

Block A' - depends when the node see this blocks. If the node already sees B, B has a higher fitness so A' would be ignored. If the node only sees A, then it would switch to A' as it has a higher fitness.

If the node did switch from A to A', and then block B came along, it would then switch back to A + B as that chain has a higher overall fitness.

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.