Formatos de serialización

La serialización en CosmWasm permite inspeccionar y depurar los mensajes enviados en la cadena de bloques, así como analizar los resultados, sin necesidad de bibliotecas complejas ni de descargar esquemas y ABI personalizados.

JSON

JSON es autodescriptivo, legible y se utiliza en APIs de todo el mundo. Tiene algunas desventajas, como el manejo de números superiores a 2^53 (en ese caso, puede utilizar cadenas), no tener una distinción clara entre cadenas y binario codificado en base64, y no tener un esquema codificado. Autogeneramos descriptores de esquema JSON para la API pública de los contratos, que pueden utilizarse para inspeccionar la API soportada y, opcionalmente, utilizarse en herramientas del lado del cliente para la autovalidación de mensajes.

Ten en cuenta que los contratos definen su lógica de análisis para los mensajes, y el código no es impuesto por el framework. Aunque hay soporte extendido para JSON a través de cosmwasm::serde y cw-template, cualquiera puede cambiarlo siempre que se proporcione soporte de cliente para el formato personalizado.

Protobuf

Protobuf es un formato binario muy conocido y ampliamente soportado que proporciona una garantía de esquema más estricta que JSON y un formato más compacto. La compatibilidad con Protocol Buffers y gRPC se añadió con la actualización Cosmos SDK v0.39.0.

Cap'n proto

Cap'n Proto es un formato de codificación superligero con lecturas de copia cero y sin necesidad de análisis sintáctico. Se ha sugerido su uso en CosmWasm como añadido opcional. Puede considerarse un formato opcional para contratos que deseen tal eficiencia o un esquema estricto, o posiblemente sólo se utilice para codificar estructuras de datos internas (Params).

Last updated