-
Notifications
You must be signed in to change notification settings - Fork 10
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
PoC to allow indexing unsealed finalized execution results #727
Comments
Why not add this to AN with or maybe just a POC AN proxy, encapsulating this logic, instead of making it part of EVM GW, just emulating |
That's a good point. A field like |
@peterargue I started working on a PoC for the flow you described, regarding the available APIs (#728). For {
"level": "fatal",
"version": "development",
"component": "bootstrap-ingestion",
"engine": "*ingestion.Engine",
"error": "failure in event subscription with: recoverable: disconnected: error receiving : rpc error: code = DeadlineExceeded desc = stream encountered an error: context deadline exceeded",
"time": "2025-01-21T12:33:45+02:00",
"message": "engine failed to run"
} every ~550 blocks or so. Started indexing at height For {
"level": "fatal",
"version": "development",
"component": "bootstrap-ingestion",
"engine": "*ingestion.Engine",
"error": "failure in event subscription with: recoverable: disconnected: error receiving : rpc error: code = Internal desc = unexpected EOF",
"time": "2025-01-21T13:10:54+02:00",
"message": "engine failed to run"
} every ~350 blocks or so. Started indexing at height To work around this, I added a retry upon receiving the above 2 errors (see here: https://github.com/onflow/flow-evm-gateway/pull/728/files#diff-a827adfab89b0bf3476547f91d16457d696bd3a32446a9010275de2d78062a5aR219-R239). |
I looked into this. The issue was with our side-car proxy config. It was setup to timout connections for this grpc endpoint after 120s. That was originally added when all of the endpoints were polling. We'll relax it now that the endpoint also supports streaming |
Currently, EVM Gateways always use event streaming for the latest events, which are always for sealed blocks. There is work starting soon to add support for streaming data from unsealed finalized blocks, but that is still several months away. In the mean time, we'd like to create a gateway PoC that demonstrates indexing EVM execution data soon after execution (soft-finality).
It turns out this is possible today using the polling version of the Access API, specifically the
GetEventsForBlockIDs
. The general flow would be:SubscribeBlockHeaders*
endpoints.GetEventsForBlockIDs
using the block's ID for each of the EVM event typesNotes:
The text was updated successfully, but these errors were encountered: