For more details refer BEP-21: https://github.com/bigchaindb/BEPs/tree/master/21

def validate(self, bigchain, current_transactions=[]):
        """For more details refer BEP-21: https://github.com/bigchaindb/BEPs/tree/master/21
        """

        current_validators = self.get_validators(bigchain)

        super(ValidatorElection, self).validate(bigchain, current_transactions=current_transactions)

        # NOTE: change more than 1/3 of the current power is not allowed
        if self.asset['data']['power'] >= (1/3)*sum(current_validators.values()):
            raise InvalidPowerChange('`power` change must be less than 1/3 of total power')

        return self