-
Notifications
You must be signed in to change notification settings - Fork 863
Bootstrap evmone integration with build tags
#2705
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## 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 ``` --------- Co-authored-by: pdrobnjak <drobnjakpavle95@gmail.com>
## Describe your changes and provide context Refactor of the `evmc` and `geth` VM. First an improvement on the abstraction - we're working on transaction executor level, not on the VM level. Second, we can leverage the same executor implementation to cover both `evmone` and `geth` cases. Removing everything that's redundant since second point holds true. ## Testing performed to validate your change Ran `giga/tests`.
## Describe your changes and provide context - adds giga occ flag to initialize_local_chain ## Testing performed to validate your change - funds account after init local chain successfully
|
The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).
|
pdrobnjak
commented
Jan 15, 2026
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2705 +/- ##
=======================================
Coverage 43.76% 43.76%
=======================================
Files 1913 1914 +1
Lines 159491 159504 +13
=======================================
+ Hits 69797 69805 +8
- Misses 83271 83277 +6
+ Partials 6423 6422 -1
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
- Add bootstrap script to download pre-built evmone from GitHub releases - Add LoadEvmone() to load shared library from EVMONE_PATH env var - Update NewEvmoneExecutor to accept evmc.VM and pass to HostContext - Wire up evmone loading in app.go executeEVMTxWithGigaExecutor Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add EvmoneVM field to EvmKeeper to store pre-loaded VM - Load evmone at app initialization when GigaExecutor is enabled - Remove LoadEvmone call from block execution path - Pass EvmKeeper.EvmoneVM directly to NewEvmoneExecutor This avoids the first block being bottlenecked by VM initialization. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add giga/executor/lib package with InitVM() and version verification - Use runtime/debug.ReadBuildInfo to infer expected evmone version from EVMC - Add build tag files for darwin/arm64 and linux/amd64 - Include pre-built evmone 0.12.0 binaries for both platforms - Remove LoadEvmone() from executor.go (no longer needed) - Update app.go to use lib.InitVM() - Update bootstrap script with correct output filenames The version check ensures the committed binary matches the EVMC dependency in go.mod, preventing accidental version mismatches. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
40f80b3 to
f315862
Compare
Add three new tests that verify contract deployment and execution produce identical results between Geth and Giga executors: - TestGigaVsGeth_ContractDeployAndCall: Deploy SimpleStorage contract - TestGigaVsGeth_ContractCallsSequential: Deploy + multiple calls in same block - TestAllModes_ContractExecution: Test across all three executor modes Also adds: - CompareResultsNoGas helper for comparing results without strict gas checks (Geth and evmone may have different gas accounting) - CreateContractDeployTxs and CreateContractCallTxs helpers - SimpleStorage bytecode from example/contracts/simplestorage Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
evmone integration with build tags
When building on an unsupported OS/architecture combination, the build now fails with a descriptive error message instead of the unclear "undefined: libName" error. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
stevenlanders
approved these changes
Jan 15, 2026
arajasek
approved these changes
Jan 15, 2026
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Changes
New
giga/executor/libpackageevmlib.go:InitEvmoneVM()function that loads evmone and verifies version compatibilitylib_darwin_arm64.go,lib_linux_amd64.go: Build tag files defining platform-specific library namesApp integration
EvmoneVMfield added toEvmKeeperto store pre-loaded VMevmoneloaded at app initialization when GigaExecutor is enabled