-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support Skipping Empty Epoch #948
Comments
For what it's worth, I'm a little bit concerned that paritytech/substrate#13135 wasn't reviewed by André or by W3F researchers. Not that I can find any way to attack this, but it seems a bit sketchy to me nonetheless. |
Just confirming my understand of the situation with w3f/polkadot-spec#681 (comment) Then I think that the change would be to modify |
This sounds correct. I think something like this would be needed:
|
I'm actually instead considering removing the I don't like the kind of hack that Substrate does where you have data flying around that corresponds to nothing. |
There's a problem with that plan: if we don't track the starting slot of an epoch, we can't detect when a block makes an epoch change when it's not normally authorized to do so. In the context of a full node, this isn't a problem, as executing the block performs this check anyway. This problem could be solved by tracking more things, but the idea of doing a small code refactoring had the objective to simplify the logic. If we track more things, the refactoring would no longer simplify the code and is thus pointless. |
There's also no need to do that, as we can easily recalculate the number of skipped epochs at each block. |
In one of our warp-sync zombienet tests, a cumulus collator containing an integrated smoldot node is failing:
Test scenario:
The main issue here is that the relay chain nodes are using downloaded databases. The contained blocks were produced during a past run when this DB was created. So between the blocks in the DB and newly produced blocks there is a slot gap.
When this test is run now, newly produced blocks will have a larger slot that does not fit the epoch smoldot expects.
In substrate we have logic that checks if some epochs have been skipped and adjusts the
epoch_index
that is used in VRF transcript creation.The same is done during slot claiming and block import. This is the reason verification succeeds in substrate nodes but fails in smoldot.
Can we have support for skipped epochs in smoldot too?
The text was updated successfully, but these errors were encountered: