Skip to content

Commit

Permalink
Merge pull request #221 from matter-labs/tee/pab/error-handling-get-t…
Browse files Browse the repository at this point in the history
…ee-proofs-api

feat(verifier): don't retry verifying permanently ignored batches
  • Loading branch information
haraldh authored Nov 27, 2024
2 parents 73ce227 + 35db547 commit 5b7f748
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 16 deletions.
19 changes: 12 additions & 7 deletions bin/verify-era-proof-attestation/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -155,19 +155,24 @@ async fn verify_batch_proofs(
total_proofs_count += 1;
let tee_type = proof.tee_type.to_uppercase();

if proof.status.eq_ignore_ascii_case("permanently_ignored") {
trace!(
batch_no,
tee_type,
"Proof is marked as permanently ignored. Skipping."
);
continue;
}
trace!(batch_no, tee_type, proof.proved_at, "Verifying proof.");

debug!(
batch_no,
"Verifying quote ({} bytes)...",
proof.attestation.len()
);
let quote_verification_result = verify_attestation_quote(&proof.attestation)?;
let attestation = proof.attestation.unwrap_or_default();
debug!(batch_no, "Verifying quote ({} bytes)...", attestation.len());
let quote_verification_result = verify_attestation_quote(&attestation)?;
let verified_successfully = verify_batch_proof(
&quote_verification_result,
attestation_policy,
node_client,
&proof.signature,
&proof.signature.unwrap_or_default(),
L1BatchNumber(proof.l1_batch_number),
)
.await?;
Expand Down
24 changes: 15 additions & 9 deletions bin/verify-era-proof-attestation/src/proof.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,12 @@ pub async fn get_proofs(
.send(stop_receiver, http_client, rpc_url)
.await?;

if !proofs.is_empty() {
if !proofs.is_empty()
&& proofs.iter().all(|proof| {
!proof.status.eq_ignore_ascii_case("failed")
&& !proof.status.eq_ignore_ascii_case("picked_by_prover")
})
{
return Ok(proofs);
}

Expand Down Expand Up @@ -153,13 +158,14 @@ pub struct GetProofsResponse {
pub struct Proof {
pub l1_batch_number: u32,
pub tee_type: String,
#[serde_as(as = "Hex")]
pub pubkey: Vec<u8>,
#[serde_as(as = "Hex")]
pub signature: Vec<u8>,
#[serde_as(as = "Hex")]
pub proof: Vec<u8>,
#[serde_as(as = "Option<Hex>")]
pub pubkey: Option<Vec<u8>>,
#[serde_as(as = "Option<Hex>")]
pub signature: Option<Vec<u8>>,
#[serde_as(as = "Option<Hex>")]
pub proof: Option<Vec<u8>>,
pub proved_at: String,
#[serde_as(as = "Hex")]
pub attestation: Vec<u8>,
pub status: String,
#[serde_as(as = "Option<Hex>")]
pub attestation: Option<Vec<u8>>,
}

0 comments on commit 5b7f748

Please sign in to comment.