Skip to content

Commit 66869b4

Browse files
authored
chore: increase logging for debugging (#145)
* add additional error logging for flashblock processing * bump processing logs to info * log canon block number being used
1 parent 089e3bc commit 66869b4

File tree

1 file changed

+40
-27
lines changed

1 file changed

+40
-27
lines changed

crates/flashblocks-rpc/src/state.rs

Lines changed: 40 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ where
217217
let prev_pending_blocks = self.pending_blocks.load_full();
218218
match update {
219219
StateUpdate::Canonical(block) => {
220-
debug!(
220+
info!(
221221
message = "processing canonical block",
222222
block_number = block.number
223223
);
@@ -232,7 +232,7 @@ where
232232
}
233233
StateUpdate::Flashblock(flashblock) => {
234234
let start_time = Instant::now();
235-
debug!(
235+
info!(
236236
message = "processing flashblock",
237237
block_number = flashblock.metadata.block_number,
238238
flashblock_index = flashblock.index
@@ -249,7 +249,8 @@ where
249249
.record(start_time.elapsed());
250250
}
251251
Err(e) => {
252-
error!(message = "could not process Flashblock", error = %e);
252+
error!(message = "could not process Flashblock", error = %e, block_number = flashblock.metadata.block_number,
253+
flashblock_index = flashblock.index);
253254
self.metrics.block_processing_error.increment(1);
254255
}
255256
}
@@ -396,8 +397,10 @@ where
396397
let earliest_block_number = flashblocks_per_block.keys().min().unwrap();
397398
let canonical_block = earliest_block_number - 1;
398399
let mut last_block_header = self.client.header_by_number(canonical_block)?.ok_or(eyre!(
399-
"Failed to extract header for canonical block number {}. This is okay if your node is not fully synced to tip yet.",
400-
canonical_block
400+
"Failed to extract header for canonical block number {}. This is okay if your node is not fully synced to tip yet. Earliest block number {}. Flashblocks per block: {:?}",
401+
canonical_block,
402+
earliest_block_number,
403+
flashblocks_per_block.keys(),
401404
))?;
402405

403406
let evm_config = OpEvmConfig::optimism(self.client.chain_spec());
@@ -426,7 +429,6 @@ where
426429
None => StateOverridesBuilder::default(),
427430
};
428431
for (_block_number, flashblocks) in flashblocks_per_block {
429-
let nested_db = db.nest();
430432
let base = flashblocks
431433
.first()
432434
.ok_or(eyre!("cannot build a pending block from no flashblocks"))?
@@ -506,7 +508,7 @@ where
506508
};
507509

508510
let evm_env = evm_config.next_evm_env(&last_block_header, &block_env_attributes)?;
509-
let mut evm = evm_config.evm_with_env(nested_db, evm_env);
511+
let mut evm = evm_config.evm_with_env(db, evm_env);
510512

511513
let mut gas_used = 0;
512514
let mut next_log_index = 0;
@@ -617,34 +619,45 @@ where
617619
}
618620

619621
if should_execute_transaction {
620-
let ResultAndState { state, .. } = evm.transact(recovered_transaction)?;
621-
for (addr, acc) in &state {
622-
let state_diff = B256HashMap::<B256>::from_iter(
623-
acc.storage
624-
.iter()
625-
.map(|(&key, slot)| (key.into(), slot.present_value.into())),
626-
);
627-
let acc_override = AccountOverride {
628-
balance: Some(acc.info.balance),
629-
nonce: Some(acc.info.nonce),
630-
code: acc.info.code.clone().map(|code| code.bytes()),
631-
state: None,
632-
state_diff: Some(state_diff),
633-
move_precompile_to: None,
634-
};
635-
state_cache_builder = state_cache_builder.append(*addr, acc_override);
622+
match evm.transact(recovered_transaction) {
623+
Ok(ResultAndState { state, .. }) => {
624+
for (addr, acc) in &state {
625+
let state_diff =
626+
B256HashMap::<B256>::from_iter(acc.storage.iter().map(
627+
|(&key, slot)| (key.into(), slot.present_value.into()),
628+
));
629+
let acc_override = AccountOverride {
630+
balance: Some(acc.info.balance),
631+
nonce: Some(acc.info.nonce),
632+
code: acc.info.code.clone().map(|code| code.bytes()),
633+
state: Some(state_diff),
634+
state_diff: None,
635+
move_precompile_to: None,
636+
};
637+
state_cache_builder =
638+
state_cache_builder.append(*addr, acc_override);
639+
}
640+
pending_blocks_builder
641+
.with_transaction_state(transaction.tx_hash(), state.clone());
642+
evm.db_mut().commit(state);
643+
}
644+
Err(e) => {
645+
return Err(eyre!(
646+
"failed to execute transaction: {:?} tx_hash: {:?} sender: {:?}",
647+
e,
648+
transaction.tx_hash(),
649+
sender
650+
));
651+
}
636652
}
637-
pending_blocks_builder
638-
.with_transaction_state(transaction.tx_hash(), state.clone());
639-
evm.db_mut().commit(state);
640653
}
641654
}
642655

643656
for (address, balance) in updated_balances {
644657
pending_blocks_builder.with_account_balance(address, balance);
645658
}
646659

647-
db = evm.into_db().flatten();
660+
db = evm.into_db();
648661
last_block_header = block.header.clone();
649662
}
650663

0 commit comments

Comments
 (0)