code: def get_namespace_record(namespace_id, proxy=None, hostport=None):
      
  
      assert proxy or hostport, 'Need either proxy handle or hostport string'
      if proxy is None:
          proxy = connect_hostport(hostport)
      
      namespace_schema = {
          'type': 'object',
          'properties': NAMESPACE_SCHEMA_PROPERTIES,
          'required': NAMESPACE_SCHEMA_REQUIRED
      }
  
      rec_schema = {
          'type': 'object',
          'properties': {
              'record': namespace_schema,
          },
          'required': [
              'record',
          ],
      }
  
      resp_schema = json_response_schema( rec_schema )
              
      ret = {}
      try:
          ret = proxy.get_namespace_blockchain_record(namespace_id)
          ret = json_validate(resp_schema, ret)
          if json_is_error(ret):
              return ret
  
          ret = ret['record']
  
          # this isn't needed
          ret.pop('opcode', None)
  
      except socket.timeout:
          log.error("Connection timed out")
          resp = {'error': 'Connection to remote host timed out.', 'http_status': 503}
          return resp
  
      except socket.error as se:
          log.error("Connection error {}".format(se.errno))
          resp = {'error': 'Connection to remote host failed.', 'http_status': 502}
          return resp
  
      except ValidationError as e:
          if BLOCKSTACK_DEBUG:
              log.exception(e)
  
          resp = {'error': 'Server response did not match expected schema.  You are likely communicating with an out-of-date Blockstack node.', 'http_status': 502}
          return resp
  
      except Exception as ee:
          if BLOCKSTACK_DEBUG:
              log.exception(ee)
  
          log.error("Caught exception while connecting to Blockstack node: {}".format(ee))
          resp = {'error': 'Failed to contact Blockstack node.  Try again with `--debug`.', 'http_status': 500}
          return resp
  
      return ret
docs: Get the blockchain record for a namespace.
      Returns the dict on success
      Returns {'error': ...} on failure