async def _validate_hello_req(self, hello_other_side: HelloRequest) -> None:
    state_machine = self.chain.get_state_machine()
    state = self.chain.get_head_state()
    config = state_machine.config
    if (hello_other_side.fork_version != state.fork.current_version):
        raise ValidationError(f'`fork_version` mismatches: hello_other_side.fork_version={hello_other_side.fork_version}, state.fork.current_version={state.fork.current_version}')
    if (hello_other_side.finalized_epoch > state.finalized_checkpoint.epoch):
        return
    if ((hello_other_side.finalized_epoch == 0) and (hello_other_side.finalized_root == ZERO_SIGNING_ROOT)):
        return
    finalized_epoch_start_slot = compute_start_slot_of_epoch(hello_other_side.finalized_epoch, config.SLOTS_PER_EPOCH)
    finalized_root = self.chain.get_canonical_block_root(finalized_epoch_start_slot)
    if (hello_other_side.finalized_root != finalized_root):
        raise ValidationError(f'`finalized_root` mismatches: hello_other_side.finalized_root={hello_other_side.finalized_root}, hello_other_side.finalized_epoch={hello_other_side.finalized_epoch}, our `finalized_root` at the same `finalized_epoch`={finalized_root}')
async def _validate_hello_req(self, hello_other_side: HelloRequest) -> None:
    state_machine = self.chain.get_state_machine()
    state = self.chain.get_head_state()
    config = state_machine.config
    if (hello_other_side.fork_version != state.fork.current_version):
        raise ValidationError(f'`fork_version` mismatches: hello_other_side.fork_version={hello_other_side.fork_version}, state.fork.current_version={state.fork.current_version}')
    if (hello_other_side.finalized_epoch > state.finalized_checkpoint.epoch):
        return
    if ((hello_other_side.finalized_epoch == 0) and (hello_other_side.finalized_root == ZERO_SIGNING_ROOT)):
        return
    finalized_epoch_start_slot = compute_start_slot_of_epoch(hello_other_side.finalized_epoch, config.SLOTS_PER_EPOCH)
    finalized_root = self.chain.get_canonical_block_root(finalized_epoch_start_slot)
    if (hello_other_side.finalized_root != finalized_root):
        raise ValidationError(f'`finalized_root` mismatches: hello_other_side.finalized_root={hello_other_side.finalized_root}, hello_other_side.finalized_epoch={hello_other_side.finalized_epoch}, our `finalized_root` at the same `finalized_epoch`={finalized_root}')