Add failfast precompile to detect interop#2670
Conversation
|
The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).
|
|
The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).
|
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #2670 +/- ##
==========================================
+ Coverage 43.68% 43.69% +0.01%
==========================================
Files 1911 1913 +2
Lines 159439 159450 +11
==========================================
+ Hits 69653 69676 +23
+ Misses 83380 83373 -7
+ Partials 6406 6401 -5
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
stevenlanders
left a comment
There was a problem hiding this comment.
lgtm, just one comment - might be better to be explicit about the individual precompiles here just for clarity
| var AllCustomPrecompilesFailFast = map[common.Address]vm.PrecompiledContract{} | ||
|
|
||
| func init() { | ||
| for addr := 0x1001; addr <= 0x100C; addr++ { |
There was a problem hiding this comment.
I'd suggest actually just having a hardcoded list of addresses just for clarity, because SOME precompiles may still be allowed:
common.HexToAddress(bank.BankAddress),
common.HexToAddress(wasmd.WasmdAddress),
common.HexToAddress(json.JSONAddress), // Maybe okay?
common.HexToAddress(addr.AddrAddress), // Maybe okay?
common.HexToAddress(staking.StakingAddress), // Maybe okay?
common.HexToAddress(gov.GovAddress), // Maybe okay?
common.HexToAddress(distribution.DistrAddress), // Maybe okay?
common.HexToAddress(oracle.OracleAddress),
common.HexToAddress(ibc.IBCAddress),
common.HexToAddress(pointerview.PointerViewAddress),
common.HexToAddress(pointer.PointerAddress),
common.HexToAddress(solo.SoloAddress),
common.HexToAddress(p256.P256VerifyAddress), // Maybe okay?
01463bd to
2edce7a
Compare
2edce7a to
2e65ec2
Compare
76a67bf to
5327cda
Compare
## Describe your changes and provide context This PR supports running a Giga node, in consensus with other non-Giga nodes. It only supports sequential execution for Giga, falling back to the v2 logic for cosmos and interop transactions. TODO: - [x] Land #2670 - [x] Land sei-protocol/go-ethereum#78 ## Testing performed to validate your change - tests pass - devnet runs with 1/4 nodes using giga, and both evm and cosmos txs hurled at the chain --------- Co-authored-by: Steven Landers <steven@seinetwork.io>
Describe your changes and provide context
Added a failfast precompile to be registered on the giga executor at v2's custom precompile range, so that custom precompile calls can be intercepted and fall back to v2 executor.
Testing performed to validate your change
to be tested when the executor is ready to wire up