diff --git a/accounts/abi/bind/bind_test.go b/accounts/abi/bind/bind_test.go index c1035f6b8a..b50a8424d3 100644 --- a/accounts/abi/bind/bind_test.go +++ b/accounts/abi/bind/bind_test.go @@ -2179,6 +2179,11 @@ func golangBindings(t *testing.T, overload bool) { if out, err := replacer.CombinedOutput(); err != nil { t.Fatalf("failed to replace binding test dependency to current source tree: %v\n%s", err, out) } + replacer = exec.Command(gocmd, "mod", "edit", "-x", "-require", "github.com/ava-labs/libevm@v0.0.0", "-replace", "github.com/ava-labs/libevm=github.com/ava-labs/libevm@v0.0.0-20250306081429-d1e374a7f932") + replacer.Dir = pkg + if out, err := replacer.CombinedOutput(); err != nil { + t.Fatalf("failed to replace binding test dependency to current source tree: %v\n%s", err, out) + } tidier := exec.Command(gocmd, "mod", "tidy", "-compat=1.22") tidier.Dir = pkg if out, err := tidier.CombinedOutput(); err != nil { diff --git a/core/blockchain.go b/core/blockchain.go index 81806728a5..91742bc9a0 100644 --- a/core/blockchain.go +++ b/core/blockchain.go @@ -61,19 +61,19 @@ import ( ) var ( - accountReadTimer = metrics.NewRegisteredCounter("chain/account/reads", nil) - accountHashTimer = metrics.NewRegisteredCounter("chain/account/hashes", nil) - accountUpdateTimer = metrics.NewRegisteredCounter("chain/account/updates", nil) - accountCommitTimer = metrics.NewRegisteredCounter("chain/account/commits", nil) - storageReadTimer = metrics.NewRegisteredCounter("chain/storage/reads", nil) - storageHashTimer = metrics.NewRegisteredCounter("chain/storage/hashes", nil) - storageUpdateTimer = metrics.NewRegisteredCounter("chain/storage/updates", nil) - storageCommitTimer = metrics.NewRegisteredCounter("chain/storage/commits", nil) - snapshotAccountReadTimer = metrics.NewRegisteredCounter("chain/snapshot/account/reads", nil) - snapshotStorageReadTimer = metrics.NewRegisteredCounter("chain/snapshot/storage/reads", nil) - snapshotCommitTimer = metrics.NewRegisteredCounter("chain/snapshot/commits", nil) - - triedbCommitTimer = metrics.NewRegisteredCounter("chain/triedb/commits", nil) + accountReadTimer = metrics.GetOrRegisterOrOverrideCounter("chain/account/reads", nil) + accountHashTimer = metrics.GetOrRegisterOrOverrideCounter("chain/account/hashes", nil) + accountUpdateTimer = metrics.GetOrRegisterOrOverrideCounter("chain/account/updates", nil) + accountCommitTimer = metrics.GetOrRegisterOrOverrideCounter("chain/account/commits", nil) + storageReadTimer = metrics.GetOrRegisterOrOverrideCounter("chain/storage/reads", nil) + storageHashTimer = metrics.GetOrRegisterOrOverrideCounter("chain/storage/hashes", nil) + storageUpdateTimer = metrics.GetOrRegisterOrOverrideCounter("chain/storage/updates", nil) + storageCommitTimer = metrics.GetOrRegisterOrOverrideCounter("chain/storage/commits", nil) + snapshotAccountReadTimer = metrics.GetOrRegisterOrOverrideCounter("chain/snapshot/account/reads", nil) + snapshotStorageReadTimer = metrics.GetOrRegisterOrOverrideCounter("chain/snapshot/storage/reads", nil) + snapshotCommitTimer = metrics.GetOrRegisterOrOverrideCounter("chain/snapshot/commits", nil) + + triedbCommitTimer = metrics.GetOrRegisterOrOverrideCounter("chain/triedb/commits", nil) blockInsertTimer = metrics.NewRegisteredCounter("chain/block/inserts", nil) blockInsertCount = metrics.NewRegisteredCounter("chain/block/inserts/count", nil) diff --git a/go.mod b/go.mod index 40b78d2cb8..529a6f924c 100644 --- a/go.mod +++ b/go.mod @@ -135,3 +135,5 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect rsc.io/tmplfunc v0.0.3 // indirect ) + +replace github.com/ava-labs/libevm => github.com/ava-labs/libevm v0.0.0-20250306081429-d1e374a7f932 diff --git a/go.sum b/go.sum index d8f3ed41d8..c0a99cafcd 100644 --- a/go.sum +++ b/go.sum @@ -58,8 +58,8 @@ github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/ava-labs/avalanchego v1.12.3-0.20250220150250-9e886ffca1ba h1:VTGpl5PwfPo9046h6x7BvtjDGxEAPreNwaWK/0dwyFk= github.com/ava-labs/avalanchego v1.12.3-0.20250220150250-9e886ffca1ba/go.mod h1:oURZGkQSIWOGBqP2Lirf768MVAePVGdvYQfmHUZS4aE= -github.com/ava-labs/libevm v1.13.14-0.2.0.rc.3 h1:1CWGo2icnX9dRqGQl7CFywYGIZWxe+ucy0w8NAsVTWE= -github.com/ava-labs/libevm v1.13.14-0.2.0.rc.3/go.mod h1:+Iol+sVQ1KyoBsHf3veyrBmHCXr3xXRWq6ZXkgVfNLU= +github.com/ava-labs/libevm v0.0.0-20250306081429-d1e374a7f932 h1:wgX0Y626yEdjTyPNINTIOzzY0OrByxO47PFjKifgIs0= +github.com/ava-labs/libevm v0.0.0-20250306081429-d1e374a7f932/go.mod h1:+Iol+sVQ1KyoBsHf3veyrBmHCXr3xXRWq6ZXkgVfNLU= github.com/aymerick/raymond v2.0.3-0.20180322193309-b565731e1464+incompatible/go.mod h1:osfaiScAUVup+UC9Nfq76eWqDhXlp+4UYaA8uhTBO6g= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= diff --git a/plugin/evm/vm.go b/plugin/evm/vm.go index 904dc5a582..5bdc507847 100644 --- a/plugin/evm/vm.go +++ b/plugin/evm/vm.go @@ -630,11 +630,11 @@ func (vm *VM) Initialize( func (vm *VM) initializeMetrics() error { metrics.Enabled = true - vm.sdkMetrics = prometheus.NewRegistry() gatherer := corethprometheus.NewGatherer(metrics.DefaultRegistry) if err := vm.ctx.Metrics.Register(ethMetricsPrefix, gatherer); err != nil { return err } + vm.sdkMetrics = prometheus.NewRegistry() return vm.ctx.Metrics.Register(sdkMetricsPrefix, vm.sdkMetrics) } diff --git a/scripts/tests.e2e.sh b/scripts/tests.e2e.sh index 85f5bd3d48..ba828ec11e 100755 --- a/scripts/tests.e2e.sh +++ b/scripts/tests.e2e.sh @@ -45,6 +45,7 @@ git checkout -B "test-${AVALANCHE_VERSION}" "${AVALANCHE_VERSION}" echo "updating coreth dependency to point to ${CORETH_PATH}" go mod edit -replace "github.com/ava-labs/coreth=${CORETH_PATH}" +go mod edit -replace "github.com/ava-labs/libevm=github.com/ava-labs/libevm@v0.0.0-20250306081429-d1e374a7f932" go mod tidy echo "building avalanchego" diff --git a/warp/handlers/signature_request_test.go b/warp/handlers/signature_request_test.go index 5b30d7bc55..8bdd189c4e 100644 --- a/warp/handlers/signature_request_test.go +++ b/warp/handlers/signature_request_test.go @@ -107,6 +107,7 @@ func TestMessageSignatureHandler(t *testing.T) { for name, test := range tests { t.Run(name, func(t *testing.T) { handler := NewSignatureRequestHandler(backend, message.Codec) + t.Cleanup(handler.stats.clear) request, expectedResponse := test.setup() responseBytes, err := handler.OnMessageSignatureRequest(context.Background(), ids.GenerateTestNodeID(), 1, request) @@ -196,6 +197,7 @@ func TestBlockSignatureHandler(t *testing.T) { for name, test := range tests { t.Run(name, func(t *testing.T) { handler := NewSignatureRequestHandler(backend, message.Codec) + t.Cleanup(handler.stats.clear) request, expectedResponse := test.setup() responseBytes, err := handler.OnBlockSignatureRequest(context.Background(), ids.GenerateTestNodeID(), 1, request) diff --git a/warp/handlers/stats.go b/warp/handlers/stats.go index 6a56d54076..2d1b76c3c6 100644 --- a/warp/handlers/stats.go +++ b/warp/handlers/stats.go @@ -47,3 +47,14 @@ func (h *handlerStats) IncBlockSignatureMiss() { h.blockSignatureMiss.Inc(1) func (h *handlerStats) UpdateBlockSignatureRequestTime(duration time.Duration) { h.blockSignatureRequestDuration.Inc(int64(duration)) } + +func (h *handlerStats) clear() { + h.messageSignatureRequest.Clear() + h.messageSignatureHit.Clear() + h.messageSignatureMiss.Clear() + h.messageSignatureRequestDuration.Update(0) + h.blockSignatureRequest.Clear() + h.blockSignatureHit.Clear() + h.blockSignatureMiss.Clear() + h.blockSignatureRequestDuration.Update(0) +} diff --git a/warp/verifier_backend_test.go b/warp/verifier_backend_test.go index 718fd78dd1..08a2d946ec 100644 --- a/warp/verifier_backend_test.go +++ b/warp/verifier_backend_test.go @@ -20,6 +20,7 @@ import ( "github.com/ava-labs/coreth/plugin/evm/testutils" "github.com/ava-labs/coreth/utils" "github.com/ava-labs/coreth/warp/warptest" + "github.com/ava-labs/libevm/metrics" "github.com/stretchr/testify/require" "google.golang.org/protobuf/proto" ) @@ -102,6 +103,7 @@ func TestAddressedCallSignatures(t *testing.T) { sigCache = &cache.Empty[ids.ID, []byte]{} } warpBackend, err := NewBackend(snowCtx.NetworkID, snowCtx.ChainID, warpSigner, warptest.EmptyBlockClient, database, sigCache, [][]byte{offchainMessage.Bytes()}) + t.Cleanup(unregisterVerifierStats) require.NoError(t, err) handler := acp118.NewCachedHandler(sigCache, warpBackend, warpSigner) @@ -222,7 +224,9 @@ func TestBlockSignatures(t *testing.T) { sigCache, nil, ) + t.Cleanup(unregisterVerifierStats) require.NoError(t, err) + handler := acp118.NewCachedHandler(sigCache, warpBackend, warpSigner) requestBytes, expectedResponse := test.setup() @@ -258,3 +262,8 @@ func TestBlockSignatures(t *testing.T) { } } } + +func unregisterVerifierStats() { + metrics.Unregister("warp_backend_message_parse_fail") + metrics.Unregister("warp_backend_block_validation_fail") +}