Skip to content

Conversation

@stevenlanders
Copy link
Contributor

@stevenlanders stevenlanders commented Jan 6, 2026

Describe your changes and provide context

  • adds new config for process block
  • instruments scripts to use new executor if flag is passed
  • adds

Testing performed to validate your change

# run giga with OCC
GIGA_EXECUTOR=true GIGA_OCC=true ./scripts/benchmark.sh

# run giga without OCC (direct sequential execution with no scheduler)
GIGA_EXECUTOR=true GIGA_OCC=false ./scripts/benchmark.sh

# run non-giga 
GIGA_EXECUTOR=false ./scripts/benchmark.sh

@github-actions
Copy link

github-actions bot commented Jan 6, 2026

The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedJan 13, 2026, 11:45 AM

## Describe your changes and provide context
- wraps giga with occ 
- leaves sequential giga in place 

## Testing performed to validate your change
- more benchmarking via benchmark.sh
@stevenlanders stevenlanders changed the title Adjust flow to use new executor Add new giga executor to sei with config Jan 8, 2026
stevenlanders and others added 6 commits January 12, 2026 14:37
## Describe your changes and provide context
- associate evm senders similar to antehandler (until we can retire
association)

## Testing performed to validate your change
- new unit tests
- benchmarks
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reminder: Interpreter is the one currently doing depth management - check if it is handling depth at the right moments in regards to compatibility with evmc/evmone.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reminder: In case of delegate calls we might not be propagating sender and recipient correctly.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reminder: In case of delegate calls we might not be propagating sender and recipient correctly.

defer stateDB.Cleanup()

// Get EVM message from the transaction using recovered sender
evmMsg := app.EvmKeeper.GetEVMMessage(ctx, ethTx, sender)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://github.com/sei-protocol/go-ethereum/blob/ad46da780dee52820de6ccca91e7d797c00f0c10/core/state_transition.go#L170 we should be using this function instead - we can pass our implementation of signer which already has the senders computed.

Not a blocker for merger of this PR, we should probably have a layer above VM e.g. ExecuteTransaction where we pass an Ethereum transaction and it handles the conversion to message and invocation of vm.ApplyMessage.

Copy link
Contributor

@pdrobnjak pdrobnjak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've wired the calls between interpreter, evmc/evmone, and geth.

Looks ready to be merged!

Did not review the following files:

  • app/benchmark.go
  • app/benchmark_test.go
  • giga/tests/giga_test.go
  • scripts/benchmark.sh
  • utils/helpers/address_test.go

@stevenlanders stevenlanders merged commit 6572cf7 into pd/evmc-vm Jan 13, 2026
17 of 18 checks passed
@stevenlanders stevenlanders deleted the steven/evmc-vm branch January 13, 2026 15:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants