From f1155297a3c0278da8a23085d2d843ca128c0528 Mon Sep 17 00:00:00 2001 From: Henry de Valence Date: Tue, 24 Nov 2020 01:31:03 -0800 Subject: [PATCH] consensus: temporarily skip scripts on big transactions (#1360) Temporary workaround for #1350 until that issue is properly fixed. --- zebra-consensus/src/script.rs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/zebra-consensus/src/script.rs b/zebra-consensus/src/script.rs index 9dc4a4d10..cad3c6b09 100644 --- a/zebra-consensus/src/script.rs +++ b/zebra-consensus/src/script.rs @@ -92,12 +92,19 @@ where }; tracing::trace!(?utxo, "got UTXO"); - zebra_script::is_valid( - transaction, - branch_id, - (input_index as u32, utxo.output), - )?; - tracing::trace!("script verification succeeded"); + if transaction.inputs().len() < 20 { + zebra_script::is_valid( + transaction, + branch_id, + (input_index as u32, utxo.output), + )?; + tracing::trace!("script verification succeeded"); + } else { + tracing::debug!( + inputs.len = transaction.inputs().len(), + "skipping verification of script with many inputs to avoid quadratic work until we fix zebra_script/zcash_script interface" + ); + } Ok(()) }