cadena de bloques
COZ ha anunciado una revisión de Mamba, su Python SDK para Neo N3. El alcance del proyecto se ha reducido significativamente como parte de la reestructuración, que está diseñada para hacer que el SDK sea más liviano, accesible y fácil de mantener en el futuro.
Nueva dirección
Mamba fue el nombre que se le dio a la versión N3 de neo-python, un nodo completo y SDK creado en 2017 para la red Legacy. Al igual que su predecesor, Mamba se diseñó originalmente para actuar como un nodo completo, lo que permite a los desarrolladores sincronizar la cadena de bloques y la interfaz con la red directamente.
A partir de la nueva versión v1.0.0, la infraestructura de nodos se eliminó por completo de Mamba. La nueva versión servirá principalmente como una billetera ligera y SDK de aplicaciones, donde la interfaz con la cadena de bloques se maneja a través de RPC. Esto es más adecuado para los desarrolladores de aplicaciones de Python integrados en el ecosistema N3, ya que reduce la complejidad al iniciar un proyecto.
Reducir Mamba a sus componentes más útiles para los desarrolladores de dApp permite que el equipo obtenga una serie de beneficios. Dado que se necesita menos tiempo para mantener la base de código entre las versiones de Neo, las horas del desarrollador se pueden dedicar a encontrar formas de reducir la barrera de entrada para los creadores de aplicaciones. Además, eliminar varias dependencias de terceros permite que el SDK sea compatible con las plataformas más importantes, como los dispositivos MacOS ARM.
Mamba v1.0.0
En su nueva forma, Mamba cumple una función similar en el ecosistema a Neon.js. Los componentes básicos se proporcionan para manejar todas las operaciones básicas de la red, incluida la implementación de contratos inteligentes, la votación, las transferencias de activos y la gestión de billeteras.
También se incluyen otras herramientas para admitir casos de uso más especializados. En el anuncio, se proporcionó un ejemplo de las nuevas clases de envoltura de contrato, que demuestra cómo realizar una solicitud de saldo en el contrato nativo de Neo.
Se proporcionan contenedores similares para otros contratos nativos, pero los desarrolladores pueden envolver cualquier contrato implementado utilizando el contenedor GenericContract para llamar a sus métodos de una manera conveniente. El resultado de la invocación se puede convertir fácilmente en un valor nativo de Python utilizando las funciones auxiliares de desenvolvimiento proporcionadas.
La fachada de Mamba se encarga de todo el proceso de construcción, retransmisión y obtención de los resultados de una transacción. Al igual que Neon.js y su interfaz experimental, los contenedores de contrato se pueden usar para realizar consultas de solo lectura y acciones que persisten en el estado de la cadena de bloques, lo que cuesta GAS en el proceso.
Sin embargo, Mamba también lleva esta capacidad un paso más allá, pudiendo ejecutar scripts de transacciones personalizados además de invocaciones directas de contratos. En la documentación se proporciona una guía para usar Mamba con contratos inteligentes y se pueden encontrar varios ejemplos de acciones comunes en GitHub.
Los desarrolladores pueden aprender cómo comenzar a usar Mamba visitando la documentación en el siguiente enlace:
https://mamba.coz.io/