When a fork is not switchable, flag it
So we do not try twice a same fork when our current block has not changed.
What we will do:
- when a fork is not switchable, flag it as "unswitchtable"
- do not try to switch on unswitchable forks
- when a new block is added to the blockchain, unmark all unswitchable so the fork can be tried again
Indeed, a new block on the blockchain might change the status of the fork. For example, if we just switched on another chain which is finally compliant with the fork, we better have this fork not marked as unswitchable. This property is relative to the current chain. So when it change, the property might change as well.