Split block announce processing into two parts
This pull requests splits the block announce processing into two parts. Into a phase that is called pre-validation that will be async and call the block announce validator and into a second phase that processes the result of the pre-validation. The important change here is that the pre-validation phase is async. This will be required by Cumulus/parachains. When a parachain announces a block, it adds the candidate message send by the relay chain as extra data into the block announcement. To verify this candidate message, the relay chain parent is required that was used when building this message. Now it can happen that we first receive the block announcement before fully importing the relay chain block and this leads to the parachain block not being imported. By making the pre-validation async, we will be able to wait for the relay chain block to be imported to verify the candidate message.
parent
72102d25
Please register or sign in to comment