You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a consensus bug occurs, the invalid block is not properly tracked. Although the block is added to the BadBlockManager, the instance used for at the block processing part is not the same instance used for the RPC tracing functionality.
As a result, when calling tracing APIs such as debug_standardTraceBadBlockToFile, the block is not found, preventing investigation.
To fix this issue, both components (the block processing and the RPC tracing) should share the same BadBlockManager instance
Also, it appears that adding a block to the BadBlockManager does not always happen. For instance, in the case of a state root mismatch, the execution goes through this part of the code without adding the block: MainnetBlockValidator.java#L221
We should investigate why the decision was made not to add the block in this case and determine how to properly handle state root mismatches so that they are also tracked as bad blocks.
Expected behavior: [What you expect to happen]
Ensure that the BadBlockManager instance used for processing blocks is the same as the one used for RPC tracing.
Investigate why state root mismatches are not added to the BadBlockManager and determine how to fix this behavior.
The text was updated successfully, but these errors were encountered:
matkt
added
bug
Something isn't working
P2
High (ex: Degrading performance issues, unexpected behavior of core features (DevP2P, syncing, etc))
labels
Jan 30, 2025
jflo
added a commit
to jflo/besu
that referenced
this issue
Jan 30, 2025
When a consensus bug occurs, the invalid block is not properly tracked. Although the block is added to the BadBlockManager, the instance used for at the block processing part is not the same instance used for the RPC tracing functionality.
As a result, when calling tracing APIs such as debug_standardTraceBadBlockToFile, the block is not found, preventing investigation.
To fix this issue, both components (the block processing and the RPC tracing) should share the same BadBlockManager instance
Also, it appears that adding a block to the BadBlockManager does not always happen. For instance, in the case of a state root mismatch, the execution goes through this part of the code without adding the block:
MainnetBlockValidator.java#L221
We should investigate why the decision was made not to add the block in this case and determine how to properly handle state root mismatches so that they are also tracked as bad blocks.
Expected behavior: [What you expect to happen]
The text was updated successfully, but these errors were encountered: