Skip to content

skip LastResultsHash check if giga executor is on#2866

Merged
arajasek merged 3 commits intomainfrom
tony/skip-lastresult-hash
Feb 13, 2026
Merged

skip LastResultsHash check if giga executor is on#2866
arajasek merged 3 commits intomainfrom
tony/skip-lastresult-hash

Conversation

@codchen
Copy link
Collaborator

@codchen codchen commented Feb 12, 2026

Describe your changes and provide context

Giga executors may yield different gas usage than v2 executors due to:

  • more parity with Ethereum
  • optimized state access pattern
    Since we only care about state consistency, which is covered by AppHash, we don't need to require lastResultsHash on nodes that enabled giga.

Testing performed to validate your change

patch on giga-enabled RPC nodes

@github-actions
Copy link

github-actions bot commented Feb 12, 2026

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

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedFeb 13, 2026, 3:15 PM

@codecov
Copy link

codecov bot commented Feb 12, 2026

Codecov Report

❌ Patch coverage is 66.66667% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 57.19%. Comparing base (a60acc6) to head (fedecf8).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
app/test_helpers.go 0.00% 1 Missing ⚠️
sei-tendermint/light/rpc/client.go 0.00% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #2866   +/-   ##
=======================================
  Coverage   57.18%   57.19%           
=======================================
  Files        2091     2091           
  Lines      171512   171514    +2     
=======================================
+ Hits        98075    98089   +14     
+ Misses      64692    64682   -10     
+ Partials     8745     8743    -2     
Flag Coverage Δ
sei-chain 52.66% <66.66%> (+0.01%) ⬆️
sei-cosmos 48.15% <ø> (-0.01%) ⬇️
sei-db 68.72% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
app/app.go 72.82% <100.00%> (+0.02%) ⬆️
sei-tendermint/internal/state/execution.go 79.65% <100.00%> (-0.78%) ⬇️
sei-tendermint/internal/state/validation.go 100.00% <100.00%> (ø)
sei-tendermint/types/block.go 87.88% <ø> (ø)
sei-tendermint/types/evidence.go 77.65% <100.00%> (ø)
app/test_helpers.go 40.13% <0.00%> (-0.07%) ⬇️
sei-tendermint/light/rpc/client.go 0.00% <0.00%> (ø)

... and 37 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

if err != nil {
// Check if this is a LastResultsHash mismatch and log detailed info
if !bytes.Equal(block.LastResultsHash, state.LastResultsHash) {
if !types.SkipLastResultsHashValidation.Load() && !bytes.Equal(block.LastResultsHash, state.LastResultsHash) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Does this actually work? I think you're just skipping the log, but still returning the error here, so I don't think SkipLastResultsHashValidation actually does anything.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Copy link
Contributor

Choose a reason for hiding this comment

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

That makes sense, but then why are we changing anything here at all? I think we can leave this file as-is.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think there's value in containing a change like this if possible.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

on a giga node, if there is indeed a validation error that's not LastResultsHash mismatch, but LastResultsHash does mismatch, then the log here would say "LastResultsHash error" instead of the real error.

it's a rare case though

@arajasek arajasek force-pushed the tony/skip-lastresult-hash branch from cffaeaa to a997ef7 Compare February 13, 2026 15:04
@arajasek arajasek enabled auto-merge (squash) February 13, 2026 15:05
@arajasek arajasek merged commit 305d6f7 into main Feb 13, 2026
40 checks passed
@arajasek arajasek deleted the tony/skip-lastresult-hash branch February 13, 2026 15:27
arajasek pushed a commit that referenced this pull request Feb 23, 2026
Giga executors may yield different gas usage than v2 executors due to:
- more parity with Ethereum
- optimized state access pattern
Since we only care about state consistency, which is covered by AppHash,
we don't need to require lastResultsHash on nodes that enabled giga.

patch on giga-enabled RPC nodes
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