-
Notifications
You must be signed in to change notification settings - Fork 0
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
Forecast range for certificate validation #25
Comments
Assumptions
Description of Peras forecastingIn order to validate a vote or certificate
Package up this data in a perasForecast ::
ExtLedgerState -- ^ @st@
-> PerasRoundNo -- ^ Peras round we want to validate votes/a certificate in
-> Either OutsideForecastRange PerasView We elide configuration data here. The range of forecasting is This function can be implemented on Cardano (for a future Peras-enabled era):
Importantly, Property (Peras forecast stability): For any two (extended) ledger states Here, the important bit is the phrasing "ledger states that the node can observe (apart from disaster scenarios)". By this, we mean ledger states that correspond to a block that the node has selected. Due to the Side note. These changes would also allow us to increase the regular header forecast range to A note on chain growthWe often assume chain growth above. Most directly, chain growth means that there are at least Getting rid of Assumption 2?Ideally, we wouldn't need Assumption 2 (but it also doesn't seem that bad to me). However, I don't see a good alternative. Fundamentally, we need to know the epoch nonce to validate a vote in general,2 and we have no idea what the epoch nonce for the next epoch will be until we have selected sufficiently many ( A few ideas:
Footnotes
|
One interesting thing is that we also need a (bounded) "negative forecast range" (probably should use a better name for that), in order to validate old certificates in blocks. This shouldn't be difficult, just need to keep a fairly small amount of old state (e.g. stake distribution + protocol params + epoch nonce for the previous epoch) around. The stake distribution and protocol params of the previous epoch are already recorded in the ledger state for reward calculation. |
The researchers understand the problem/tradeoff here and will report on whether moving the epoch nonce snapshotting earlier is feasible. |
Especially for #24, it is important that we can actually validate all certs that could boost blocks in a Genesis window. For this, we need to ensure that the forecast range is large enough.
Intuitively, it seems to me that what we need is:
The text was updated successfully, but these errors were encountered: