- Implement forced inclusion and based sequencing (#2797)
This changes requires to add a
da_epoch_forced_inclusionfield ingenesis.jsonfile. To enable this feature, set the force inclusion namespace in theevnode.yaml. - Added
post-txcommand and force inclusion server to submit transaction directly to the DA layer. (#2888) Additionally, modified the core package to support marking transactions as forced included transactions. The execution client ought to perform basic validation on those transactions as they have skipped the execution client's mempool.
- Rename
evm-singletoevmandgrpc-singletoevgrpcfor clarity. #2839 - Split cache interface in
CacheManagerandPendingManagerand createdaclient to easy DA handling. #2878 - Improve startup da retrieval height when cache cleared or empty. #2880
- BREAKING: Removed unused and confusing metrics from sequencers and block processing, including sequencer-specific metrics (gas price, blob size, transaction status, pending blocks), channel buffer metrics, overly granular error metrics, block production categorization metrics, and sync lag metrics. Essential metrics for DA submission health, block production, and performance monitoring are retained. #2904
- Enhanced health check system with separate liveness (
/health/live) and readiness (/health/ready) HTTP endpoints. Readiness endpoint includes P2P listening check and aggregator block production rate validation (5x block time threshold). (#2800) - Added
GetP2PStoreInfoRPC method to retrieve head/tail metadata for go-header stores used by P2P sync (#2835) - Added protobuf definitions for
P2PStoreEntryandP2PStoreSnapshotmessages to support P2P store inspection
- Improved EVM execution client payload status validation with proper retry logic for SYNCING states in
InitChain,ExecuteTxs, andSetFinalmethods. The implementation now follows Engine API specification by retrying SYNCING/ACCEPTED status with exponential backoff and failing immediately on INVALID status, preventing unnecessary node shutdowns during transient execution engine sync operations. (#2863) - Remove GasPrice and GasMultiplier from DA interface and configuration to use celestia-node's native fee estimation. (#2822)
- Use cache instead of in memory store for reaper. Persist cache on reload. Autoclean after 24 hours. (#2811)
- Improved P2P sync service store initialization to be atomic and prevent race conditions (#2838)
- Enhanced P2P bootstrap behavior to intelligently detect starting height from local store instead of requiring trusted hash
- Relaxed execution layer height validation in block replay to allow execution to be ahead of target height, enabling recovery from manual intervention scenarios
- BREAKING: Removed
evnode.v1.HealthServicegRPC endpoint. Use HTTP endpoints:GET /health/liveandGET /health/ready. (#2800) - BREAKING: Removed
TrustedHashconfiguration option and--evnode.node.trusted_hashflag. Sync service now automatically determines starting height from local store state (#2838) - BREAKING: Removed unused and confusing metrics from sequencers and block processing, including sequencer-specific metrics (gas price, blob size, transaction status, pending blocks), channel buffer metrics, overly granular error metrics, block production categorization metrics, and sync lag metrics. Essential metrics for DA submission health, block production, and performance monitoring are retained. #2904
- Fixed sync service initialization issue when node is not on genesis but has an empty store
- Added automated upgrade test for the
evmapp that verifies compatibility when moving from v1.0.0-beta.8 to HEAD in CI (#2780) - Added execution-layer replay mechanism so nodes can resynchronize by replaying missed batches against the executor (#2771)
- Added cache-pruning logic that evicts entries once heights are finalized to keep node memory usage bounded (#2761)
- Added Prometheus gauges and counters that surface DA submission failures, pending blobs, and resend attempts for easier operational monitoring (#2756)
- Added gRPC execution client implementation for remote execution services using Connect-RPC protocol (#2490)
- Added
ExecutorServiceprotobuf definition with InitChain, GetTxs, ExecuteTxs, and SetFinal RPCs (#2490) - Added new
grpcapp for running EVNode with a remote execution layer via gRPC (#2490)
- Hardened signer CLI and block pipeline per security audit: passphrases must be provided via
--evnode.signer.passphrase_file, JWT secrets must be provided via--evm.jwt-secret-file, data/header validation enforces metadata and timestamp checks, and the reaper backs off on failures (BREAKING) (#2764) - Added retries around executor
ExecuteTxscalls to better tolerate transient execution errors (#2784) - Increased default
ReadinessMaxBlocksBehindfrom 3 to 30 blocks so/health/readystays true during normal batch sync (#2779) - Updated EVM execution client to use new
txpoolExt_getTxsRPC API for retrieving pending transactions as RLP-encoded bytes
- Removed
LastCommitHash,ConsensusHash, andLastResultsHashfrom the canonical header representation in favor of slim headers (BREAKING; legacy hashes now live underHeader.Legacy) (#2766)