Generaci贸n de constructores de transacciones

Aprende c贸mo generar constructores de transacciones para el lenguaje de programaci贸n de tu SDK objetivo.

Antecedentes

La biblioteca catbuffer define el protocolo para serializar y deserializar entidades de Bitxor. La biblioteca viene con generadores de c贸digo para diferentes lenguajes. Los SDK y aplicaciones utilizan el c贸digo generado para interactuar con el punto final de transacciones REST.

../_images/catbuffer.png

M贸dulo de serializaci贸n de Bitxor SDK

La biblioteca logra las siguientes propiedades:

Eficiencia de memoria

Large networks compute a large number of transactions. Working with binary optimized in size makes the communication faster. Furthermore, reading entities from memory buffers鈥攐r just a part of them鈥攊s memory efficient.

Flexibilidad

Los puntos finales de transacciones REST transaction endpoints manejan las llamadas para actualizar el estado de la cadena de bloques. La carga 煤til serializada de una transacci贸n se adjunta al cuerpo de la llamada POST. Estos puntos finales permiten agregar nuevas funcionalidades al lado del cliente sin modificar el contrato de la API.

Reutilizaci贸n

Las aplicaciones pueden incrustar el c贸digo generado sin administrar dependencias, lo cual es especialmente deseable en entornos altamente seguros. Adem谩s, compartir una base de c贸digo com煤n permite agregar nuevas caracter铆sticas con menos esfuerzo.

Los esquemas definen la estructura de datos de las entidades. La biblioteca genera el c贸digo m谩s optimizado necesario para serializar y deserializar las entidades definidas.

Instalaci贸n

  1. Clona el repositorio catbuffer-generators.

    git clone https://github.com/bitxorcorp/catbuffer-generators
    
  2. Instala los requisitos del paquete.

    pip install -r requirements.txt
    
  3. Clona el repositorio catbuffer-schemas dentro de la carpeta catbuffer-generators.

    git clone https://github.com/bitxorcorp/bitxor/tree/main/catbuffer/schemas
    

Uso

Dentro de la carpeta catbuffer-schemas del repositorio catbuffer, puedes encontrar la estructura de datos de las entidades. Con la ayuda de un generador de c贸digo, puedes producir el c贸digo m谩s optimizado necesario para serializar y deserializar esas entidades.

Por ejemplo, ejecuta el siguiente comando para generar constructores de transacciones en C++ para una TransferTransaction:

python main.py --schema bitxor/transfer/transfer.cats --generator cpp_builder

Tambi茅n puedes generar c贸digo para todos los esquemas ejecutando el siguiente comando en el directorio catbuffer-generators:

python ../scripts/generate_all.sh cpp_builder

El generador crea un nuevo archivo para cada esquema en la carpeta catbuffer/_generated/cpp_builder.