Skip to content
Draft
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
01053b3
first pass
JonathanOppenheimer Aug 7, 2025
f3fd073
reapply wait changes
JonathanOppenheimer Aug 7, 2025
d04a7fc
add test back
JonathanOppenheimer Aug 7, 2025
239a3b5
attempt 2
JonathanOppenheimer Aug 8, 2025
52e4d26
sync part 3!
JonathanOppenheimer Aug 8, 2025
34e3c48
sync part 4
JonathanOppenheimer Aug 8, 2025
ae531aa
oops broke the clock
JonathanOppenheimer Aug 8, 2025
38ecb7e
Merge branch 'master' into sync-pr-963-atomic-sync-package
JonathanOppenheimer Aug 11, 2025
08bf133
Merge branch 'master' into sync-pr-963-atomic-sync-package
JonathanOppenheimer Aug 11, 2025
a759870
Merge branch 'master' into sync-pr-963-atomic-sync-package
JonathanOppenheimer Aug 19, 2025
912b506
Merge remote-tracking branch 'origin/master' into sync-pr-963-atomic-…
JonathanOppenheimer Aug 21, 2025
892379e
remove duplicate import
JonathanOppenheimer Aug 21, 2025
c7c0c9a
lint
JonathanOppenheimer Aug 21, 2025
4719758
Merge remote-tracking branch 'origin/master' into sync-pr-963-atomic-…
JonathanOppenheimer Aug 25, 2025
434fb4f
lint
JonathanOppenheimer Aug 25, 2025
936aacc
Merge branch 'master' into sync-pr-963-atomic-sync-package
JonathanOppenheimer Aug 27, 2025
0edb94f
lint
JonathanOppenheimer Aug 27, 2025
af00a05
Merge remote-tracking branch 'origin/master' into sync-pr-963-atomic-…
JonathanOppenheimer Aug 29, 2025
3cb3808
Merge remote-tracking branch 'origin/master' into sync-pr-963-atomic-…
JonathanOppenheimer Sep 4, 2025
728620c
align with coreth
JonathanOppenheimer Sep 4, 2025
52aba0c
add back advance clock setting
JonathanOppenheimer Sep 4, 2025
eb25788
simplify registration
JonathanOppenheimer Sep 8, 2025
6ba1bd6
Merge branch 'master' into sync-pr-963-atomic-sync-package
JonathanOppenheimer Sep 8, 2025
59a0ccc
Merge remote-tracking branch 'origin/master' into sync-pr-963-atomic-…
JonathanOppenheimer Sep 9, 2025
07edff7
merge
JonathanOppenheimer Sep 9, 2025
2564286
Merge branch 'master' into sync-pr-963-atomic-sync-package
JonathanOppenheimer Sep 12, 2025
fa8a32d
lint
JonathanOppenheimer Sep 12, 2025
5d911d5
Merge branch 'master' into sync-pr-963-atomic-sync-package
JonathanOppenheimer Sep 15, 2025
14c8028
Merge remote-tracking branch 'origin/master' into sync-pr-963-atomic-…
JonathanOppenheimer Sep 25, 2025
8fa7586
add errors back
JonathanOppenheimer Sep 25, 2025
94c2b46
lint
JonathanOppenheimer Sep 25, 2025
5b7d576
Merge branch 'master' into sync-pr-963-atomic-sync-package
JonathanOppenheimer Sep 29, 2025
8426e2a
Merge branch 'master' into sync-pr-963-atomic-sync-package
JonathanOppenheimer Oct 1, 2025
24e0ae0
Merge branch 'master' into sync-pr-963-atomic-sync-package
JonathanOppenheimer Oct 1, 2025
7e55ada
Merge branch 'master' into sync-pr-963-atomic-sync-package
JonathanOppenheimer Oct 10, 2025
ac0b665
finish merge
JonathanOppenheimer Oct 10, 2025
2a46756
Merge remote-tracking branch 'origin/master' into sync-pr-963-atomic-…
JonathanOppenheimer Oct 10, 2025
40abb33
reduce diff
JonathanOppenheimer Oct 10, 2025
ba927d5
lint
JonathanOppenheimer Oct 10, 2025
0cc7e3b
Merge branch 'master' into sync-pr-963-atomic-sync-package
JonathanOppenheimer Oct 13, 2025
cced3ca
fix merge
JonathanOppenheimer Oct 13, 2025
291003a
Merge branch 'master' into sync-pr-963-atomic-sync-package
JonathanOppenheimer Oct 14, 2025
e84bf4a
Update plugin/evm/message/handler.go
JonathanOppenheimer Oct 14, 2025
2356b60
Update sync/client/test_client.go
JonathanOppenheimer Oct 14, 2025
9e4a453
Merge branch 'master' into sync-pr-963-atomic-sync-package
JonathanOppenheimer Oct 14, 2025
509e349
Update sync/client/stats/stats.go
JonathanOppenheimer Oct 14, 2025
33837af
lint
JonathanOppenheimer Oct 14, 2025
55f46e3
Merge branch 'master' into sync-pr-963-atomic-sync-package
JonathanOppenheimer Oct 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions consensus/dummy/consensus.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,32 @@ type Mode struct {
}

type (
OnFinalizeAndAssembleCallbackType = func(
header *types.Header,
parent *types.Header,
state *state.StateDB,
txs []*types.Transaction,
) (
extraData []byte,
blockFeeContribution *big.Int,
extDataGasUsed *big.Int,
err error,
)

OnExtraStateChangeType = func(
block *types.Block,
parent *types.Header,
statedb *state.StateDB,
) (
blockFeeContribution *big.Int,
extDataGasUsed *big.Int,
err error,
)

ConsensusCallbacks struct {
OnFinalizeAndAssemble OnFinalizeAndAssembleCallbackType
OnExtraStateChange OnExtraStateChangeType
}
DummyEngine struct {
clock *mockable.Clock
consensusMode Mode
Expand Down
9 changes: 6 additions & 3 deletions plugin/evm/block_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"github.com/ava-labs/libevm/trie"
"github.com/ava-labs/subnet-evm/params"
"github.com/ava-labs/subnet-evm/params/extras"
"github.com/ava-labs/subnet-evm/plugin/evm/extension"
"github.com/ava-labs/subnet-evm/precompile/precompileconfig"
"github.com/stretchr/testify/require"
"go.uber.org/mock/gomock"
Expand All @@ -25,8 +26,9 @@ func TestHandlePrecompileAccept(t *testing.T) {

db := rawdb.NewMemoryDatabase()
vm := &VM{
chaindb: db,
chainConfig: params.TestChainConfig,
chaindb: db,
chainConfig: params.TestChainConfig,
extensionConfig: &extension.Config{},
}

precompileAddr := common.Address{0x05}
Expand Down Expand Up @@ -88,7 +90,8 @@ func TestHandlePrecompileAccept(t *testing.T) {
)

// Call handlePrecompileAccept
blk := vm.newBlock(ethBlock)
blk, err := wrapBlock(ethBlock, vm)
require.NoError(err)
rules := extras.Rules{
AccepterPrecompiles: map[common.Address]precompileconfig.Accepter{
precompileAddr: mockAccepter,
Expand Down
156 changes: 0 additions & 156 deletions plugin/evm/block_verification.go

This file was deleted.

15 changes: 13 additions & 2 deletions plugin/evm/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"time"

"github.com/ava-labs/avalanchego/database/pebbledb"
"github.com/ava-labs/avalanchego/utils/constants"
"github.com/ava-labs/libevm/common"
"github.com/ava-labs/libevm/common/hexutil"
"github.com/spf13/cast"
Expand Down Expand Up @@ -191,7 +192,7 @@ type Config struct {
MaxOutboundActiveRequests int64 `json:"max-outbound-active-requests"`

// Sync settings
StateSyncEnabled bool `json:"state-sync-enabled"`
StateSyncEnabled *bool `json:"state-sync-enabled"` // Pointer distinguishes false (no state sync) and not set (state sync only at genesis).
Copy link
Collaborator

Choose a reason for hiding this comment

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

why have we changed this? This is a substantial change for default value, we should have a separate PR for that if we want to align them.

Copy link
Member Author

Choose a reason for hiding this comment

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

We have changed this because this was a change that Darioush made years ago to coreth, that was never synced to subnet-evm, and then was built on top off. This led to some significant divergence.

See ava-labs/coreth@cd3a14e#diff-6c4b2fd34f767685bfc35038a59ea4fbfadaa6060d70031002e3b008e73a06e7.

I have created a targeted PR for this change (and this change does need to be synced):

#1813

StateSyncSkipResume bool `json:"state-sync-skip-resume"` // Forces state sync to use the highest available summary block
StateSyncServerTrieCache int `json:"state-sync-server-trie-cache"`
StateSyncIDs string `json:"state-sync-ids"`
Expand Down Expand Up @@ -343,7 +344,17 @@ func (d Duration) MarshalJSON() ([]byte, error) {
}

// Validate returns an error if this is an invalid config.
func (c *Config) Validate() error {
func (c *Config) Validate(networkID uint32) error {
// Ensure that non-standard commit interval is not allowed for production networks
if constants.ProductionNetworkIDs.Contains(networkID) {
if c.CommitInterval != defaultCommitInterval {
return fmt.Errorf("cannot start non-local network with commit interval %d different than %d", c.CommitInterval, defaultCommitInterval)
}
if c.StateSyncCommitInterval != defaultSyncableCommitInterval {
return fmt.Errorf("cannot start non-local network with syncable interval %d different than %d", c.StateSyncCommitInterval, defaultSyncableCommitInterval)
}
}

if c.PopulateMissingTries != nil && (c.OfflinePruning || c.Pruning) {
return fmt.Errorf("cannot enable populate missing tries while offline pruning (enabled: %t)/pruning (enabled: %t) are enabled", c.OfflinePruning, c.Pruning)
}
Expand Down
8 changes: 7 additions & 1 deletion plugin/evm/config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@ import (
"github.com/stretchr/testify/assert"
)

// newTrue returns a pointer to a bool that is true
func newTrue() *bool {
b := true
return &b
}

func TestUnmarshalConfig(t *testing.T) {
tests := []struct {
name string
Expand Down Expand Up @@ -62,7 +68,7 @@ func TestUnmarshalConfig(t *testing.T) {
{
"state sync enabled",
[]byte(`{"state-sync-enabled":true}`),
Config{StateSyncEnabled: true},
Config{StateSyncEnabled: newTrue()},
false,
},
{
Expand Down
Loading
Loading