When reasoning about a particular problem, I realized that I don't know how session changes work with chain reversions. To my knowledge session changes are based on time/slots and not on blocks. So let's assume the following chain:
Session N N + 1
------------------------------^--|--------------------------------!|------------------------------------
A reversion is triggered at !
back to ^
, so the new chain looks like this:
Still session N - 1
------------------------------^
We are back to session N - 1
, but given that we can not revert time, we will change session on the very next block being produced, but how? Time wise we will already be in session N + 1
. So what happens? Do we lose a session? Will we jump somehow to session N + 1
immediately? Will we have two session changes in direct sequence. (^-
block will be session N
and ^--
will be already session N + 1
?)
Put differently: Are we catching up or skip or something else entirely?