Skip to content

feat: live tracing support for state-sync and system transactions#2166

Closed
milando12 wants to merge 21 commits into0xPolygon:developfrom
milando12:md/feat-tracer-original
Closed

feat: live tracing support for state-sync and system transactions#2166
milando12 wants to merge 21 commits into0xPolygon:developfrom
milando12:md/feat-tracer-original

Conversation

@milando12
Copy link
Copy Markdown

Summary

  • Adds live tracing support for state-sync and system transactions
  • Draft PR for reviewing diff against develop

Test plan

  • Review diff

milando12 and others added 21 commits February 19, 2026 13:17
- Introduced `vm.Config` to multiple functions for customizable VM tracing.
- Added tracer configuration flags (`vmtrace` and `vmtrace.jsonconfig`) to streamline monitoring during blockchain synchronization.
- Updated GenesisContract and spanner interfaces for trace integration.
- Integrated tracing hooks for StateSyncTx events.
Remove the 4 [DEBUG] log lines that were added during development
to diagnose StateSyncTx tracing issues.
When Finalize is called, the chain parameter can be a *core.HeaderChain
(not just *core.BlockChain). Without this change, the tracer in vmCfg
is nil during finalization, so StateSyncTx tracing hooks never fire.

- Add vmConfig field and GetVMConfig() method to HeaderChain
- Set hc.vmConfig in NewBlockChain after creating the HeaderChain
- Add else-if branch in Finalize and FinalizeAndAssemble to extract
  VM config from HeaderChain
The Process function creates a tracingStateDB wrapper for tracing but
was passing the unwrapped statedb to Finalize, causing the tracer to
miss StateSyncTx state changes.
Expand the `CommitState` method signature to include the `vm.Config` parameter, enabling proper VM tracing integration and configuration.
EVM struct has a comment saying never reuse
…s-through (0xPolygon#2149)

* eth/filters, rpc: add `--rpc.rangelimit` flag and fix filter config pass-through (0xPolygon#2147)

* Include range limit filter flag

* update docs

* apply more range checks

* Including RPCLogQueryLimit

* make docs
* core/vm: add kzg precompile back for madhugiri forks

* core/vm: remove kzg from prague

* core/vm: update kzg tests to ensure activation and removal

* core/vm: improve test

* core/vm: typo

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* core/vm: improve test

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
# Conflicts:
#	internal/cli/server/config.go
@sonarqubecloud
Copy link
Copy Markdown

@manav2401
Copy link
Copy Markdown
Member

Hi @milando12, is this similar to #2062?

2062 is almost ready to review as I've done quite a few refactors and it now supports live state-sync tracing and via rpc as well.

@milando12
Copy link
Copy Markdown
Author

Hi @manav2401 , yes I've been following your progress - you can ignore this one I will close it.

@milando12 milando12 closed this Mar 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants