Artículo de Blog

Soroban: Versión Previa #2

Autor

The Soroban Team

Fecha de publicación

Soroban

Lanzamiento previo

Contratos inteligentes

Hoy, estamos emocionados de compartir la segunda versión previa de Soroban™. Soroban es una nueva plataforma de contratos inteligentes diseñada para la escalabilidad y sensatez. Compartimos la primera versión previa el mes pasado. Desde entonces, hemos recibido un montón de comentarios positivos de desarrolladores experimentando con la escritura de contratos inteligentes. Esto nos ha ayudado a seguir refinando la plataforma y añadir nuevas características para extender su funcionalidad. Esta sigue siendo una versión temprana de la plataforma, y las actualizaciones futuras pueden cambiar cosas y romper el código que escribas hoy. Como verás al mirar la lista de cambios a continuación, hemos hecho un progreso significativo, y estamos ansiosos por escuchar lo que piensas.

Aquí está lo nuevo en esta versión previa:

Contratos Integrados

Para facilitar las cosas a los desarrolladores, Soroban admitirá un pequeño número de contratos integrados diseñados para ser rápidos, baratos de ejecutar y proporcionar funcionalidad básica útil. Esta versión implementa la maquinaria para desplegarlos, e incluye un primer intento en el primer contrato integrado, el contrato de token estándar. Aún está en desarrollo temprano, pero puedes encontrar detalles sobre su estado actual en los documentos.

Medición

Esta versión expande la medición para cubrir la mayoría de la funcionalidad del entorno del contrato, en forma de entradas a modelos de costos abstractos. Esta versión también mejora el código utilizado para calibrar modelos de costos a costos reales de CPU. Actualmente los modelos de costos no están calibrados, ni están sujetos a ningún límite. En el futuro, los modelos de costos estarán completamente calibrados y cuando se ejecuten en redes de producción, estarán sujetos a límites y tarifas. Las entradas de modelos de costos medidos se pueden observar al ejecutar un contrato a través de la CLI pasando la opción --cost.

SDK de Autenticación (soroban-auth)

Un nuevo SDK incluido en la versión contiene funcionalidades que la mayoría de los contratos necesitarán para verificar que las invocaciones a sus contratos estén firmadas por los firmantes apropiados. Los contratos en Soroban pueden implementar el esquema de autenticación que prefieran, pero este SDK proporcionará una opción predeterminada que es compatible con cuentas Stellar, firmas Ed25519 y llamadas entre contratos. Este SDK está bajo revisión intensiva, así que espera mejoras en la próxima versión previa. Lee más en los documentos o echa un vistazo a un ejemplo.

Actualizaciones del SDK (soroban-sdk v0.0.4)

El soroban-sdk ahora tiene una experiencia de usuario mejorada y algunas nuevas funcionalidades. Específicamente, incluye:

  • La macro contractimport! que importa un contrato desde su archivo wasm a otro contrato. Los contratos pueden usar esto para probar la integración de otros contratos, importar sus tipos y desplegarlos en contratos de fábrica. El código generado por la macro es el mismo que el generado por el comando soroban-cli gen. Por ejemplo: contractimport!(file = "contract.wasm");
  • Una interfaz de cliente generada para que los contratos la usen en pruebas. Encuentra ejemplos en los documentos: HelloClient::new(env, contract_id).hello(...)
  • Funciones para emitir eventos: env.events().publish(topics, data)
  • Funciones para que los contratos de fábrica desplieguen contratos: env.deployer().from_current_contract(salt).deploy(wasm)
  • Funciones para obtener el número de ledger y marcas de tiempo. Por ejemplo:
    env.ledger().sequence()
    env.ledger().timestamp()
  • La macro bigint! para crear BigInts a partir de valores hexadecimales al estilo Ethereum u256. Gracias a @heytdep por la contribución que llevó a esta característica. Por ejemplo: bigint!(&env, 0xfded3f55dec47250a52a8c0bb7038e72fa6ffaae33562f77cd2b629ef7fd424d)
  • La macro symbol! para crear Símbolos en tiempo de compilación. Por ejemplo: symbol!("a_str")
  • También renombra Binary a Bytes.

Actualizaciones del CLI (soroban-cli v0.0.4)

El soroban-cli también ha ganado mejoras en la experiencia de usuario y varios comandos nuevos. Específicamente:

  • El comando soroban-cli serve fue añadido. Ejecuta un servidor de API RPC local para el desarrollo y prueba de aplicaciones web. Actualmente soporta simular, preverificar y enviar transacciones.
  • El comando soroban-cli read fue añadido. Recupera datos almacenados por contratos. Esto te permite inspeccionar el estado actual de tu contrato mientras desarrollas.
  • El comando soroban-cli gen fue añadido. Genera enlaces de código cliente para un contrato. Hasta ahora solo se admiten clientes Rust y la salida generada es la misma que la macro contractimport! disponible en el SDK. La salida JSON también es compatible, la cual cualquier otra herramienta podría traducir.
  • El comando soroban-cli completion fue añadido. Proporciona auto-completado de shell en tu terminal. Este comando fue contribuido por el miembro de la comunidad Stellar @fdesjardins.

Próximos Pasos

Cuanto más escuchamos de ti, mejor. En los próximos meses, mientras trabajamos para dar forma a Soroban como una plataforma de contratos inteligentes todo incluido que es sensata, amigable para los desarrolladores y construida para escalar, podríamos usar tu aporte. Así que, ya seas un veterano de Soroban o apenas estés comenzando, dirígete a los documentos. Estos recursos están actualizados para coincidir con esta nueva versión, donde encontrarás información detallada sobre los entresijos de Soroban, junto con una guía para comenzar, tutoriales y ejemplos.

Si has jugado un poco y estás listo para unirte a la conversación sobre el desarrollo continuo, dirígete a los canales de Soroban en el Stellar Dev Discord, donde SDF y los ingenieros del ecosistema están trabajando abiertamente, juntos, para construir el futuro de los contratos inteligentes.