Haciendo Stellar

Haciendo la comunidad de Stellar Network más grande de hablahispana

Haciendo la comunidad de Stellar Network
más grande de hablahispana

Soroban: Versión Preliminar #2

Hoy, nos complace compartir la segunda versión preliminar Soroban™. Soroban es una nueva plataforma de smart contracts diseñada para la escalabilidad y la sensibilidad. Compartimos el lanzamiento de la primera versión preliminar el mes pasado. Desde entonces, hemos escuchado una gran cantidad de excelentes comentarios de los desarrolladores que experimentan con la redacción de smart contracts. Esto nos ha ayudado a continuar perfeccionando la plataforma y agregar nuevas funciones para ampliar su funcionalidad. Esta todavía es una versión temprana de la plataforma, y actualizaciones futuras pueden cambiar las cosas y romper código escrito hoy. Como verán al leer la lista de cambios a continuación, hemos logrado progresar significativamente y estamos ansiosos por escuchar lo que piensan.

Esto es lo que hay nuevo en esta versión preliminar:

Contratos Incorporados

Para facilitar las cosas a los desarrolladores, Soroban admitirá una pequeña cantidad de contratos integrados diseñados para ser rápidos, económicos y proporcionar una funcionalidad clave. Esta versión implementa la maquinaria para desplegarlos e incluye un pase inicial en el primer contrato incorporado, el contrato de token estándar. Todavía está en desarrollo temprano, pero pueden encontrar detalles sobre su estado actual en los docs.

Medición

Esta versión amplía la medición para cubrir la mayor parte de la funcionalidad del entorno del contrato., en forma de entradas para modelos de costos abstractos. Esta versión también mejora el código utilizado para calibrar los modelos de costos a los costos reales del 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 del modelo de costo medido se pueden observar cuando se ejecuta un contrato a través de la CLI al pasar la opción –cost.

SDK de Autenticación (soroban-auth)

Un nuevo SDK incluido en el lanzamiento contiene la funcionalidad 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 autentificació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 una revisión profunda, así que esperen mejoras en la próxima versión preliminar. Lean más en los docs o echen un vistazo a un ejemplo.

Actualizaciones SDK (soroban-sdk v0.0.4)

El sdk-soroban ahora tiene una experiencia de usuario mejorada y algunas funciones nuevas. En concreto, incluye:

  • El 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 e implementarlos en contratos de fábrica. El código generado por el 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 se usen en las pruebas. Encuentren ejemplos en los docs: HelloClient::new(env, contract_id).hello(…)
  • Funciones para emitir eventos: env.events().publish(topics, data)
  • Funciones para contratos de fábrica para desplegar contratos: env.deployer().from_current_contract(salt).deploy(wasm)
  • Funciones para obtener el número de libro mayor y las marcas de tiempo. Por ejemplo:
    env.ledger().sequence()
    env.ledger().timestamp()
  • El macro bigint! para crear BigInts a partir de valores hexadecimales de estilo Ethereum u256. Gracias a @heytdep por la contribución que llevó a esta función. Por ejemplo:
    bigint!(&env, 0xfded3f55dec47250a52a8c0bb7038e72fa6ffaae33562f77cd2b629ef7fd424d)
  • El macro symbol! para crear símbolos en tiempo de compilación. Por ejemplo: symbol!(«a_str»)
  • También cambia el nombre de Binary a Bytes.

Actualizaciones CLI (soroban-cli v0.0.4)

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

  • Se agregó el comando soroban-cli serve. Ejecuta un servidor API RPC local para el desarrollo y prueba de aplicaciones web. Actualmente admite simulación, verificación previa y envío de transacciones.
  • Se agregó el comando soroban-cli read. Este recupera datos almacenados por contratos. Esto permite inspeccionar el estado actual del contrato durante el desarrollo.
  • Se agregó el comando soroban-cli gen. Genera enlaces de cliente de código para un contrato. Hasta ahora, solo los clientes Rust son compatibles y el resultado generado es el mismo que el del macro contractimport! disponible en el SDK. También se admite la salida JSON que cualquier otra herramienta puede traducir.
  • Se agregó el comando soroban-cli completion. Este proporciona autocompletado de shell. Este comando fue un aporte del miembro de la comunidad Stellar @fdesjardins.

Próximos Pasos

Cuanto más oigamos de ustedes, mejor. Durante los próximos meses, mientras trabajamos para convertir a Soroban en una plataforma de smart-contracts completa que sea sensata, fácil de desarrollar y construida para escalar, podríamos usar sus opiniones. Entonces, ya sean un veterano canoso de Soroban o recién estén comenzando, diríjanse a los docs. Estos recursos se actualizaran para coincidir con esta nueva versión, donde encontrarán información detallada sobre aspectos prácticos de Soroban, junto con una guía de inicio, tutoriales y ejemplos.

Si han jugado un poco y están listos para unirse a la conversación sobre el desarrollo continuo, diríjanse a los canales de Soroban en el Stellar Dev Discord, donde la SDF y los ingenieros del ecosistema están trabajando abiertamente, juntos para construir el futuro de los smart contracts.