code: async def dump_blob(writer, elem, elem_type, params=None):
      
      elem_is_blob = isinstance(elem, BlobType)
      elem_params = elem if elem_is_blob or elem_type is None else elem_type
      data = bytes(getattr(elem, BlobType.DATA_ATTR) if elem_is_blob else elem)
  
      if not elem_params.FIX_SIZE:
          await dump_uvarint(writer, len(elem))
      elif len(data) != elem_params.SIZE:
          raise ValueError('Fixed size blob has not defined size: %s' % elem_params.SIZE)
      await writer.awrite(data)
docs: Dumps blob message to the writer.
      Supports both blob and raw value.
  
      :param writer:
      :param elem:
      :param elem_type:
      :param params:
      :return: