-
Notifications
You must be signed in to change notification settings - Fork 180
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 full spork history across HCU version boundaries (PoC) #6540
Comments
Contex on product relevance and impactstatus quo
Access Nodes providing script execution across breaking HCUs is a technical precursor to Archive Nodes spanning spork boundaries. Benefits of ANs supporting script execution across breaking HCUs
Tradeoffs:
Hence, we concluded that supporting full history across HCU version boundaries is a low-hanging fruit in the context of our current development roadmap. |
Resourcing conditions are good at the moment for this particular work: this is a relatively well-understood and straight-forward engineering work; the majority of work can be done by the Krok team, which has some capacity available. |
Product relevance and impact
When Flow performs Height Coordinated Updates (HCU), the current design of Access Nodes mandates that previous history cannot be served from prior to that version because of the risk of returning different results for older blocks. More specifically, scripts cannot be executed on blocks that came before the height at which the HCU was executed since the Cadence version might have been updated during the HCU. This limiter to previous spork history is a major issue for EVM users/builders who expect full fidelity access to the spork history regardless of any HCUs.
Please see the comment on product relevance and impact below for more details.
Problem definition
EVM builders and users cannot tolerate segmented or missing blockchain history and our EVM equivalence credentials require us to hide Flow specific version details from the EVM experience.
How will we measure success
Breakdown
This work can be split into to chunks with very limited overlap
KR1: AN supports script execution across breaking HCU version boundaries
Here, we would be using the "old version beacon" (currently still used for mainnet) or some simple stop gap-solution in case KR2 wasn't ready yet.
DACI
❓DACI tbd ❓ ... probably mostly Peter and Krok as D and C. as Informed, we should have Dete, Vishal and Bastian.
KR2: Evolve Versioning of Execution Stack to use dynamic protocol state
The current mechanism to signal a change in the node software to all nodes has several limitations. There is a plan to improve and update this mechanism detailed in Flip 298. Access nodes can use this new mechanism to more robustly serve full spork history across HCU version boundaries and achieve the objective of this OKR.
This is hopefully a lighter-weight engineering task (👉 issue #6788), though it requires broader alignment across the protocol team (this work would be one puzzle piece of the much broader vision Flip 298 and we need to make sure the refactored EN version beacon fits into the longer-term vision outlined in the Flip).
DACI
❓we might need to update the Drivers on this: I think Janez might be one of the main technical drivers of this work (on the EN side and Jordan on the Protocol side) -- we could potentially remove Yurii❓
D: Jordan, Yurii, SCE
A: Alex, Peter
C: Dete
I: Vishal
Task breakdown
The text was updated successfully, but these errors were encountered: