Add same error handling for blob signing when pubkey is missing

This commit is contained in:
Jimmy Chen 2023-08-08 17:25:29 +10:00
parent ec416df061
commit d401633100
No known key found for this signature in database
GPG Key ID: 7AAEE02659DCF690

View File

@ -522,16 +522,33 @@ impl<T: SlotClock + 'static, E: EthSpec> BlockService<T, E> {
}; };
let maybe_signed_blobs = match maybe_blob_sidecars { let maybe_signed_blobs = match maybe_blob_sidecars {
Some(blob_sidecars) => Some( Some(blob_sidecars) => {
// TODO(jimmy): add same error handling as block signing, i.e. handle ValidatorStoreError::UnknownPubkey match self_ref
self_ref
.validator_store .validator_store
.sign_blobs(*validator_pubkey_ref, blob_sidecars) .sign_blobs(*validator_pubkey_ref, blob_sidecars)
.await .await
.map_err(|e| { {
BlockError::Recoverable(format!("Unable to sign blob: {:?}", e)) Ok(signed_blobs) => Some(signed_blobs),
})?, Err(ValidatorStoreError::UnknownPubkey(pubkey)) => {
), // A pubkey can be missing when a validator was recently removed
// via the API.
warn!(
log,
"Missing pubkey for blobs";
"info" => "a validator may have recently been removed from this VC",
"pubkey" => ?pubkey,
"slot" => ?slot
);
return Ok(());
}
Err(e) => {
return Err(BlockError::Recoverable(format!(
"Unable to sign blobs: {:?}",
e
)))
}
}
}
None => None, None => None,
}; };
let signing_time_ms = let signing_time_ms =