def rpc_get_name_blockchain_record(self, name, **con_info):
        """
        Lookup all blockchain state for a name or subdomain, including its history.
        Return {'status': True, 'record': rec} on success
        Return {'error': ...} on error
        """
        res = None
        if check_name(name):
            res = self.get_name_record(name, include_expired=True, include_history=True)
        elif check_subdomain(name):
            res = self.get_subdomain_record(name, include_history=True)
        else:
            return {'error': 'Invalid name or subdomain', 'http_status': 400}

        if 'error' in res:
            return {'error': res['error'], 'http_status': res.get('http_status', 404)}

        return self.success_response({'record': res['record']})