def _validate_block(self, bigchain): """Validate the Block without validating the transactions. Args: bigchain (:class:`~bigchaindb.Bigchain`): An instantiated Bigchain object. Raises: ValidationError: If there is a problem with the block """ # Check if the block was created by a federation node if self.node_pubkey not in bigchain.federation: raise SybilError('Only federation nodes can create blocks') # Check that the signature is valid if not self.is_signature_valid(): raise InvalidSignature('Invalid block signature')
def _validate_block(self, bigchain): """Validate the Block without validating the transactions. Args: bigchain (:class:`~bigchaindb.Bigchain`): An instantiated Bigchain object. Raises: ValidationError: If there is a problem with the block """ # Check if the block was created by a federation node if self.node_pubkey not in bigchain.federation: raise SybilError('Only federation nodes can create blocks') # Check that the signature is valid if not self.is_signature_valid(): raise InvalidSignature('Invalid block signature') # Check that the block contains no duplicated transactions txids = [tx.id for tx in self.transactions] if len(txids) != len(set(txids)): raise DuplicateTransaction('Block has duplicate transaction')