<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def validate_block(self, block: BaseBlock) -> None: """ Performs validation on a block that is either being mined or imported. Since block validation (specifically the uncle validation) must have access to the ancestor blocks, this validation must occur at the Chain level. Cannot be used to validate genesis block. """

        if block.is_genesis:
            raise ValidationError("Cannot validate genesis block this way")
        VM_class = self.get_vm_class_for_block_number(BlockNumber(block.number))
        parent_block = self.get_block_by_hash(block.header.parent_hash)
        VM_class.validate_header(block.header, parent_block.header, check_seal=True)
        self.validate_uncles(block)
        self.validate_gaslimit(block.header)