Resumen
Soroban es la plataforma de contratos inteligentes en la red Stellar. Los contratos son pequeños programas escritos en el lenguaje de programación Rust y compilados como WebAssembly (Wasm) para su implementación.
Para comenzar a escribir contratos, instala un conjunto de herramientas de Rust, configura tu editor para admitir programas de Rust y aprende algunos conceptos básicos de Rust.
Rust en Stellar
Los contratos inteligentes de Stellar tienen varias características (como límites de recursos, consideraciones de seguridad y más) que obligan a los contratos a utilizar solo un subconjunto limitado del lenguaje completo de Rust y deben utilizar bibliotecas especializadas para la mayoría de las tareas. Lee más en la sección Dialecto Rust del Contrato.
En particular, la biblioteca estándar de Rust y la mayoría de las bibliotecas de terceros (llamadas "crates") no estarán disponibles para su uso directo y sin modificaciones en los contratos debido a las limitaciones mencionadas anteriormente. Algunas crates pueden adaptarse para su uso en contratos, y otras pueden incorporarse al entorno host como objetos o funciones host.
Es posible que el soporte para otros idiomas se implemente en el futuro, pero en este momento, solo Rust está admitido.
SDK de Rust de Soroban
Los contratos se desarrollan utilizando un kit de desarrollo de software (SDK). El SDK de Rust de Soroban consiste en una crate de Rust y una herramienta de línea de comandos.
La crate del SDK actúa como sustituto de la biblioteca estándar de Rust, proporcionando estructuras de datos y funciones de utilidad para contratos, así como acceso a funcionalidades específicas de contratos inteligentes desde el entorno del contrato, como el hash criptográfico y la verificación de firmas, acceso a almacenamiento persistente on-chain, y localización e invocación de contratos secundarios a través de identificadores estables.
La herramienta de línea de comandos del SDK de Soroban proporciona una interfaz centrada en el desarrollador para compilar, probar, inspeccionar, versionar e implementar contratos. También incluye una implementación completa del entorno del host de contratos que es idéntica a la que se ejecuta on-chain, llamada modo de prueba local. Con esta capacidad, los contratos se pueden ejecutar localmente en la estación de trabajo de un desarrollador y se pueden [probar y depurar] directamente con un depurador local dentro de un IDE estándar, así como una arnés de prueba nativa para pruebas unitarias de retroalimentación rápida y fuzzing o pruebas de propiedades de alta velocidad.
Entorno host
El entorno host es un conjunto de crates de Rust compiladas en la herramienta de línea de comandos del SDK y stellar-core. Comprende un conjunto de objetos y funciones host, una interfaz para el almacenamiento on-chain y la invocación de contratos, un sistema de contabilidad de recursos y cobros de tarifas, y un intérprete de Wasm.
La mayoría de los desarrolladores de contratos no necesitarán interactuar frecuentemente con el entorno host directamente: las funciones del SDK envuelven la mayoría de sus instalaciones y proporcionan tipos y funciones más ricos y ergonómicos, pero es útil entender su estructura para comprender el modelo conceptual que presenta el SDK. Es probable que algunas partes del entorno host sean visibles al probar o depurar contratos compilados de forma nativa en una estación de trabajo local.
Lee más en la sección Conceptos del Entorno.
Preguntas frecuentes sobre Soroban
What is Soroban to Stellar? ¿Es una nueva blockchain?
Soroban no es una nueva blockchain. Soroban es una plataforma de contratos inteligentes integrada en la blockchain existente de Stellar. Es una característica adicional que existe junto a y no reemplaza el conjunto existente de operaciones de Stellar.
¿Cómo invoco un contrato de Soroban en Stellar?
Invoca un contrato de Soroban enviando una transacción que contenga la nueva operación: InvokeHostFunctionOp
.
¿Pueden los contratos de Soroban utilizar cuentas de Stellar para autenticación?
Sí. Las cuentas de Stellar se comparten con Soroban. Los contratos inteligentes tienen acceso a la configuración del firmante de la cuenta de Stellar y conocen la cuenta fuente que los invocó directamente en una transacción. Consulta la sección de Autorización para obtener más información.
¿Pueden los contratos de Soroban interactuar con los activos de Stellar?
Sí. Soroban contiene un Contrato de Activos Stellar incorporado que puede interactuar con líneas de confianza clásicas.
¿Los emisores de activos de Stellar mantienen la autorización sobre un activo enviado a un identificador que no es cuenta en Soroban (AUTH_REQUIRED
, AUTH_REVOCABLE
, AUTH_CLAWBACK
)?
Sí. Los emisores mantienen el mismo nivel de control en Soroban como lo tienen regularmente. Esta funcionalidad es accesible a través de un conjunto de funciones administrativas (clawback, set_auth) en el Contrato de Activos Stellar incorporado.
¿Pueden los contratos de Soroban interactuar con otras operaciones de Stellar?
No. Aparte de las interacciones con cuentas y activos mencionadas anteriormente. Esto significa que los contratos de Soroban no pueden interactuar con el SDEX, balances reclamables o patrocinios.
¿Se aplica la reserva base de Stellar a los contratos de Soroban?
No. Soroban tiene una estructura de tarifas diferente, y las entradas de ledger que son asignadas por los contratos de Soroban no añaden al saldo mínimo requerido de una cuenta.
¿Debería emitir mi token como un activo de Stellar o como un token personalizado de Soroban?
En la medida de lo posible, recomendamos emitir tokens como activos de Stellar. Estos tokens se beneficiarán de ser interoperables con las herramientas existentes disponibles en el ecosistema Stellar y tienen un mejor rendimiento porque el Contrato de Activos Stellar está integrado en el host. Lee más en la Descripción general de Tokens.
¿Necesitas ayuda para encontrar lo que buscas?
Pregunta en los canales para desarrolladores en el Stellar Developer Discord.