Components:
ExecutionResult selection (https://github.com/onflow/flow-go/issues/7546)ExecutionResult instead of existing approachThe Access API will have the following new request parameters which are used to determine which ExecutionResults should be used to serve the request:
message ExecutionStateQuery {
uint agreeing_executors = 1;
repeated bytes required_executor_id = 2;
bytes ancestor_result_id = 3;
bool include_executor_metadata = 4;
}
agreeing_executors specifies the minimum number of ExecutionReceipts for the ExecutionResultrequired_executor_id is a set of execution node IDs, one of which must have produced the ExecutionResultinclude_executor_metadata specifies whether or not to include the executor metadata in the response.ancestor_result_id (for future use) specifies an ExecutionResult that must be an ancestor of the given request. Used to ensure the user gets a consistent view of the state (or an error if the fork is abandoned)Each execution state related endpoint will also optionally return the following in the response