in pyqldbsamples/validate_qldb_hash_chain.py [0:0]
def compare_journal_blocks(previous_journal_block, journal_block):
"""
Compare the hash values on the given journal blocks.
:type previous_journal_block: :py:class:`pyqldbsamples.qldb.journal_block.JournalBlock`
:param previous_journal_block: Previous journal block in the chain.
:type journal_block: :py:class:`pyqldbsamples.qldb.journal_block.JournalBlock`
:param journal_block: Current journal block in the chain.
:rtype: :py:class:`pyqldbsamples.qldb.journal_block.JournalBlock`
:return: The current journal block in the chain.
:raises RuntimeError: If the chain hash on the journal block is broken.
"""
if previous_journal_block is None:
return journal_block
if previous_journal_block.block_hash != journal_block.previous_block_hash:
raise RuntimeError('Previous block hash does not match!')
block_hash = join_hash_pairwise(journal_block.entries_hash, previous_journal_block.block_hash)
if block_hash != journal_block.block_hash:
raise RuntimeError("Block hash doesn't match expected block hash. Verification failed.")
return journal_block