diff --git a/node-core/components/reporting_service.go b/node-core/components/reporting_service.go index 36c516c1ef..41dc31a1a9 100644 --- a/node-core/components/reporting_service.go +++ b/node-core/components/reporting_service.go @@ -22,6 +22,7 @@ package components import ( "cosmossdk.io/depinject" + "github.com/berachain/beacon-kit/chain" "github.com/berachain/beacon-kit/execution/client" "github.com/berachain/beacon-kit/log/phuslu" "github.com/berachain/beacon-kit/node-core/components/metrics" @@ -34,6 +35,7 @@ type ReportingServiceInput struct { Logger *phuslu.Logger TelemetrySink *metrics.TelemetrySink EngineClient *client.EngineClient + ChainSpec chain.Spec } func ProvideReportingService(in ReportingServiceInput) *version.ReportingService { @@ -42,5 +44,6 @@ func ProvideReportingService(in ReportingServiceInput) *version.ReportingService in.TelemetrySink, sdkversion.Version, in.EngineClient, + in.ChainSpec, ) } diff --git a/node-core/services/version/interfaces.go b/node-core/services/version/interfaces.go index fa7f767024..61babe8cee 100644 --- a/node-core/services/version/interfaces.go +++ b/node-core/services/version/interfaces.go @@ -20,6 +20,8 @@ package version +import "github.com/berachain/beacon-kit/chain" + // TelemetrySink is an interface for sending telemetry data. type TelemetrySink interface { // IncrementCounter increments a counter metric identified by the provided @@ -29,3 +31,7 @@ type TelemetrySink interface { // provided keys. SetGauge(key string, value int64, args ...string) } + +type ForkSpec interface { + chain.ForkSpec +} diff --git a/node-core/services/version/version.go b/node-core/services/version/version.go index e018ca9c70..f5328942a4 100644 --- a/node-core/services/version/version.go +++ b/node-core/services/version/version.go @@ -49,7 +49,8 @@ type ReportingService struct { // sink is the telemetry sink used to report metrics. sink TelemetrySink // client to query the execution layer - client *client.EngineClient + client *client.EngineClient + forkSpec ForkSpec } // NewReportingService creates a new VersionReporterService. @@ -58,6 +59,7 @@ func NewReportingService( telemetrySink TelemetrySink, version string, engineClient *client.EngineClient, + forkSpec ForkSpec, ) *ReportingService { return &ReportingService{ logger: logger, @@ -65,6 +67,7 @@ func NewReportingService( reportingInterval: defaultReportingInterval, sink: telemetrySink, client: engineClient, + forkSpec: forkSpec, } } @@ -147,6 +150,8 @@ func (rs *ReportingService) printToConsole( + 🧩 Your node is running version: %-40s+ + ♦ Eth client: %-59s+ + 💾 Your system: %-57s+ + + 🍴 Deneb1 Fork Time: %-52d+ + + 🍴 Electra Fork Time: %-51d+ + 🦺 Please report issues @ https://github.com/berachain/beacon-kit/issues + +==========================================================================+ @@ -155,6 +160,8 @@ func (rs *ReportingService) printToConsole( rs.version, fmt.Sprintf("%s (version: %s)", ethClient.Name, ethClient.Version), runtime.GOOS+"/"+runtime.GOARCH, + rs.forkSpec.Deneb1ForkTime(), + rs.forkSpec.ElectraForkTime(), )) } diff --git a/scripts/build/testing.mk b/scripts/build/testing.mk index 95b84aedf3..ccf3555d06 100644 --- a/scripts/build/testing.mk +++ b/scripts/build/testing.mk @@ -79,7 +79,9 @@ start-reth: --authrpc.addr "0.0.0.0" \ --authrpc.jwtsecret $(JWT_PATH) \ --datadir ${ETH_DATA_DIR} \ - --ipcpath ${IPC_PATH} + --ipcpath ${IPC_PATH} \ + --engine.persistence-threshold 0 \ + --engine.memory-block-buffer-target 0 ## Start a local ephemeral `reth` node on host machine start-reth-host: @@ -93,7 +95,9 @@ start-reth-host: --authrpc.addr "0.0.0.0" \ --authrpc.jwtsecret $(JWT_PATH) \ --datadir ${ETH_DATA_DIR} \ - --ipcpath ${IPC_PATH} + --ipcpath ${IPC_PATH} \ + --engine.persistence-threshold 0 \ + --engine.memory-block-buffer-target 0 ## Start an ephemeral `geth` node with docker start-geth: @@ -123,7 +127,7 @@ start-geth: --ipcpath ${IPC_PATH} ## Start a local ephemeral `geth` node on host machine -start-geth-host: +start-geth-host: $(call ask_reset_dir_func, $(ETH_DATA_DIR)) geth init --datadir ${ETH_DATA_DIR} ${ETH_GENESIS_PATH} geth \ diff --git a/state-transition/core/state_processor_payload.go b/state-transition/core/state_processor_payload.go index 5a99bcd466..48bae06ca4 100644 --- a/state-transition/core/state_processor_payload.go +++ b/state-transition/core/state_processor_payload.go @@ -27,6 +27,7 @@ import ( ctypes "github.com/berachain/beacon-kit/consensus-types/types" "github.com/berachain/beacon-kit/errors" "github.com/berachain/beacon-kit/primitives/math" + "github.com/berachain/beacon-kit/primitives/version" statedb "github.com/berachain/beacon-kit/state-transition/core/state" "golang.org/x/sync/errgroup" ) @@ -58,6 +59,19 @@ func (sp *StateProcessor) processExecutionPayload( "verify payload", txCtx.VerifyPayload(), ) + if version.EqualsOrIsAfter(blk.GetForkVersion(), version.Electra()) { + requests, getErr := blk.GetBody().GetExecutionRequests() + if getErr != nil { + return getErr + } + sp.logger.Info( + "Processing execution requests", + "deposits", len(requests.Deposits), + "withdrawals", len(requests.Withdrawals), + "consolidations", len(requests.Consolidations), + ) + } + // Perform payload verification only if the context is configured as such. if txCtx.VerifyPayload() { g.Go(func() error {