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
Having previous_block_hash in the Block Stream BlockHeader causes a timing problem that prevents optimal parallel thread pipelining in the consensus node. To get the block hash we have to have finished hashing the state of the previous block. This can take as long as it takes to execute all transactions in the next block. Because of that we do not want to hold up creating the block header until that hash is ready.
Solution
We already also have the hash of the previous block in BlockProof.previous_block_root_hash so we can just remove BlockHeader.previous_block_hash. This should then remove the synchronization requirement from services and allow more optimal parallel thread pipelining. The detailed comment for explaining the hash should be moved to BlockProof.previous_block_root_hash so we don't loose it.
The text was updated successfully, but these errors were encountered:
Problem
Having
previous_block_hash
in the Block StreamBlockHeader
causes a timing problem that prevents optimal parallel thread pipelining in the consensus node. To get the block hash we have to have finished hashing the state of the previous block. This can take as long as it takes to execute all transactions in the next block. Because of that we do not want to hold up creating the block header until that hash is ready.Solution
We already also have the hash of the previous block in
BlockProof.previous_block_root_hash
so we can just removeBlockHeader.previous_block_hash
. This should then remove the synchronization requirement from services and allow more optimal parallel thread pipelining. The detailed comment for explaining the hash should be moved toBlockProof.previous_block_root_hash
so we don't loose it.The text was updated successfully, but these errors were encountered: