Visión general
Soroban es la plataforma de contratos inteligentes en la red Stellar. Estos contratos son pequeños programas escritos en el lenguaje Rust y compilados como WebAssembly (Wasm) para su implementación.
Para comenzar a escribir contratos, debes tener:
- Instalar un conjunto de herramientas de Rust
- Configura tu editor para admitir programas de Rust
- 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.
Aprende más en la sección del dialecto Rust de los contratos.
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 en contratos debido a las restricciones mencionadas anteriormente. Algunas crates pueden adaptarse para su uso en contratos, y otras pueden incorporarse al entorno host como objetos o funciones host.
Otros idiomas pueden ser admitidos en el futuro, pero en este momento, solo se admite Rust.
SDK de Rust de Soroban
Los contratos se desarrollan utilizando un kit de desarrollo de software (SDK). El SDK de Soroban Rust consiste en un crate de Rust y una herramienta de línea de comandos (CLI).
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 CLI del SDK de Soroban proporciona una interfaz orientada a desarrolladores para:
- Compilar
- Probar
- Inspeccionando
- Versionado
- Desplegando
También incluye una implementación completa del entorno de ejecución del contrato que es idéntico al que se ejecuta on-chain, llamado modo de prueba local. Con esta capacidad, los contratos pueden ejecutarse localmente en la estación de trabajo de un desarrollador y pueden ser probados y depurados directamente con un depurador local dentro de un IDE estándar, así como con un arnés de pruebas nativas para pruebas unitarias de retroalimentación rápida y pruebas de fuzz o de propiedades de alta velocidad.
Entorno host
El entorno de ejecución es un conjunto de crates de Rust compilados en la herramienta SDK CLI 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.
Aprende más en la sección de conceptos del entorno.
Preguntas frecuentes sobre Soroban
¿Qué es Soroban para Stellar? ¿Es una nueva blockchain?
Soroban no es una nueva blockchain. Soroban es una plataforma de contratos inteligentes integrada en la blockchain Stellar existente. Es una función aditiva que vive junto a las operaciones existentes de Stellar y no las reemplaza.
¿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 usar 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 más información.
¿Pueden los contratos de Soroban interactuar con activos de Stellar?
Sí. Soroban contiene un Contrato de Activos Stellar integrado que puede interactuar con líneas de confianza clásicas.
¿Los emisores de activos de Stellar mantienen autorización sobre un activo enviado a
un identificador no cuenta en Soroban (AUTH_REQUIRED
, AUTH_REVOCABLE
,
AUTH_CLAWBACK
)?
AUTH_REQUIRED
, AUTH_REVOCABLE
,
AUTH_CLAWBACK
)?Sí. Los emisores retienen el mismo nivel de control en Soroban que tienen regularmente. Esta funcionalidad es accesible a través de un conjunto de funciones de administración (clawback, set_auth) en el Contrato de Activos Stellar integrado.
¿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, saldos reclamables o patrocinadores.
¿Se aplica la reserva base de Stellar a los contratos de Soroban?
No. Soroban tiene una estructura de tarifas diferente, y las entradas de libro que son asignadas por los contratos de Soroban no se suman al saldo mínimo requerido de una cuenta.
¿Necesitas ayuda para encontrar lo que buscas?
Pregunta en los canales de Desarrolladores en el Discord de Desarrolladores Stellar.
¿Debería emitir mi token como un activo de Stellar o 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 en el ecosistema Stellar y son más eficientes porque el Contrato de Activos Stellar está integrado en el host. Lee más en la Descripción general de los tokens.