You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
From time to time, the version or cadence or FVM is upgraded on the network. When this happens, the update is typically not backwards compatible, so a Height Coordinated Upgrade (HCU) is needed to coordinate all execution nodes to switch to the new version at the exact same height.
Access nodes also need to ensure they only execute scripts for blocks that are compatible with their current version of cadence. The VersionControl module can provide visibility into which blocks are compatible with the node's current version.
Proposed Solution
Integrate with the VersionControl (#5788) module in the Access node's local script execution system. Before executing a script, the node should check if the block the script was requested for is compatible with the node's current version using the CompatibleAtBlock(height uint64) bool method. If not, it should return an error.
Problem Definition
From time to time, the version or cadence or FVM is upgraded on the network. When this happens, the update is typically not backwards compatible, so a Height Coordinated Upgrade (HCU) is needed to coordinate all execution nodes to switch to the new version at the exact same height.
Access nodes also need to ensure they only execute scripts for blocks that are compatible with their current version of cadence. The
VersionControl
module can provide visibility into which blocks are compatible with the node's current version.Proposed Solution
Integrate with the
VersionControl
(#5788) module in the Access node's local script execution system. Before executing a script, the node should check if the block the script was requested for is compatible with the node's current version using theCompatibleAtBlock(height uint64) bool
method. If not, it should return an error.If the check is put in this method https://github.com/onflow/flow-go/blob/master/engine/access/rpc/backend/script_executor.go#L83-L89
then the API's failover mechanism will kick in, allowing for graceful failover to an EN (or rejecting the request if configured with local only)
The text was updated successfully, but these errors were encountered: