From c91ed04d6b33efa1935cd952f1bf982c9ea66960 Mon Sep 17 00:00:00 2001 From: kirdatatjana Date: Wed, 15 Oct 2025 18:15:31 +0200 Subject: [PATCH 1/2] Fixed syncing PayloadStatus handler logic --- app/src/sync_handler.rs | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/app/src/sync_handler.rs b/app/src/sync_handler.rs index f6b41fe9..53b177a8 100644 --- a/app/src/sync_handler.rs +++ b/app/src/sync_handler.rs @@ -6,7 +6,7 @@ use ssz::{Decode, Encode}; use std::time::Duration; use tracing::{error, info, warn}; -use alloy_rpc_types_engine::ExecutionPayloadV3; +use alloy_rpc_types_engine::{ExecutionPayloadV3, PayloadStatusEnum}; use malachitebft_app_channel::app::types::codec::Codec; use malachitebft_app_channel::app::types::core::{Round, Validity}; use malachitebft_app_channel::app::types::sync::RawDecidedValue; @@ -37,12 +37,11 @@ pub async fn validate_synced_payload( .await; match result { - Ok(payload_status) => { - if payload_status.status.is_valid() { + Ok(payload_status) => match payload_status.status { + PayloadStatusEnum::Valid => { return Ok(Validity::Valid); } - - if payload_status.status.is_syncing() { + PayloadStatusEnum::Syncing => { warn!( %height, %round, "⚠️ Execution client SYNCING, retrying in {:?}", @@ -53,13 +52,15 @@ pub async fn validate_synced_payload( retry_delay = std::cmp::min(retry_delay * 2, Duration::from_secs(2)); continue; } - - // INVALID or ACCEPTED - both are treated as invalid - // INVALID: malicious block - // ACCEPTED: Non-canonical payload - should not happen with instant finality - error!(%height, %round, "🔴 Synced block validation failed: {}", payload_status.status); - return Ok(Validity::Invalid); - } + PayloadStatusEnum::Accepted => { + warn!(%height, %round, "⚠️ Synced block ACCEPTED: {:?}", payload_status.status); + return Ok(Validity::Invalid); + } + PayloadStatusEnum::Invalid { validation_error } => { + error!(%height, %round, validation_error = ?validation_error, "🔴 Synced block INVALID"); + return Ok(Validity::Invalid); + } + }, Err(e) => { error!(%height, %round, "🔴 Payload validation RPC error: {}", e); return Err(e); From 62769b7ba88d90f65667ab9e5ff6eb90d5d13f8a Mon Sep 17 00:00:00 2001 From: kirdatatjana Date: Wed, 22 Oct 2025 18:18:24 +0200 Subject: [PATCH 2/2] fmt fix --- app/src/sync_handler.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/sync_handler.rs b/app/src/sync_handler.rs index d04b687f..629f9eeb 100644 --- a/app/src/sync_handler.rs +++ b/app/src/sync_handler.rs @@ -5,7 +5,6 @@ use std::time::Duration; use alloy_rpc_types_engine::{ExecutionPayloadV3, PayloadStatusEnum}; use bytes::Bytes; use color_eyre::eyre::{self, eyre}; - use malachitebft_app_channel::app::types::codec::Codec; use malachitebft_app_channel::app::types::core::{Round, Validity}; use malachitebft_app_channel::app::types::sync::RawDecidedValue;