Artículo de Blog
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:
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.
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
.
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.
El soroban-sdk ahora tiene una experiencia de usuario mejorada y algunas nuevas funcionalidades. Específicamente, incluye:
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")
;HelloClient::new(env, contract_id).hello(...)
env.events().publish(topics, data)
env.deployer().from_current_contract(salt).deploy(wasm)
env.ledger().sequence()
env.ledger().timestamp()
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)
macro symbol!
para crear Símbolos en tiempo de compilación. Por ejemplo: symbol!("a_str")
Binary
a Bytes
.El soroban-cli también ha ganado mejoras en la experiencia de usuario y varios comandos nuevos. Específicamente:
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.soroban-cli read
fue añadido. Recupera datos almacenados por contratos. Esto te permite inspeccionar el estado actual de tu contrato mientras desarrollas.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.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.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.