Skip to content
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

[EVM GW] Remote registers and state re-execution #574

Open
10 of 11 tasks
sideninja opened this issue Sep 25, 2024 · 1 comment
Open
10 of 11 tasks

[EVM GW] Remote registers and state re-execution #574

sideninja opened this issue Sep 25, 2024 · 1 comment

Comments

@sideninja
Copy link
Contributor

sideninja commented Sep 25, 2024

Re-executing state locally requires for us to listen to all new transactions (ingestion engine handles that) and re-execute all the transactions locally. In order to re-execute a transaction we need to have a state upon which the transaction is applied and we need to have a EVM which the transaction uses to be executed.

We are reusing the flow-go EVM Emulator for re-execution of the transaction, we just need to make sure we can provide the state. Emulator uses a atree.Ledger to fetch register values. We can plug-in the remote register API to fetch the registers upon a get function is called. This will simulate registers being present locally and will avoid the complexity of actually keeping the state locally.

The biggest concern with this approach is scalability. Most importantly will the register API requests be fast enough during the re-execution, so that the re-execution won't be delayed behind the on-chain state. If the latency of those requests is too high this approach won't work and we will have to move toward local register index #322

We should do stress-testing to figure out the scalability possibilities with this approach, with a local AN and EVM GW setup (so the latency of the network is minimized).

@j1010001 j1010001 changed the title Remote registers and state re-execution [EVM GW] Remote registers and state re-execution Oct 1, 2024
@j1010001
Copy link
Member

no longer needed, moving to dry-run solution (onflow/flow-go#6539)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

Successfully merging a pull request may close this issue.

2 participants