Saltar al contenido principal

4. Desplegar el Increment Contract

Despliegue de dos pasos

Vale la pena saber que deploy es en realidad un proceso de dos pasos.

  1. Sube los bytes del contrato a la red. Soroban actualmente se refiere a esto como instalando el contrato—desde la perspectiva de la blockchain, esta es una metáfora razonable. Esto sube los bytes del contrato a la red, indexándolo por su hash. Este código de contrato ahora puede ser referenciado por múltiples contratos, lo que significa que tendrían exactamente el mismo comportamiento pero un estado de almacenamiento separado.

  2. Instanciar el contrato. Esto realmente crea lo que probablemente pienses como un Smart Contract. Crea un nuevo ID de contrato y lo asocia con los bytes del contrato que fueron subidos en el paso anterior.

Puedes ejecutar estos dos pasos por separado. Probémoslo con el contrato Increment:

stellar contract install \
--network testnet \
--source alice \
--wasm target/wasm32-unknown-unknown/release/soroban_increment_contract.wasm

Esto devuelve el hash de los bytes Wasm, como 6ddb28e0980f643bb97350f7e3bacb0ff1fe74d846c6d4f2c625e766210fbb5b. Ahora puedes usar --wasm-hash con deploy en lugar de --wasm:

stellar contract deploy \
--wasm-hash 6ddb28e0980f643bb97350f7e3bacb0ff1fe74d846c6d4f2c625e766210fbb5b \
--source alice \
--network testnet

Este comando devolverá el ID del contrato (por ejemplo, CACDYF3CYMJEJTIVFESQYZTN67GO2R5D5IUABTCUG3HXQSRXCSOROBAN), y puedes usarlo para invocar el contrato como hicimos en ejemplos anteriores.

stellar contract invoke \
--id CACDYF3CYMJEJTIVFESQYZTN67GO2R5D5IUABTCUG3HXQSRXCSOROBAN \
--source alice \
--network testnet \
-- \
increment

Deberías ver la siguiente salida:

1

Ejecuta esto varias veces más para observar cómo cambia el conteo.

Ejecutar tu propia red/nodo

A veces necesitarás ejecutar tu propio nodo:

  • ¡Aplicaciones en producción! Stellar mantiene nodos RPC de prueba públicos para Testnet y Futurenet, pero no para Mainnet. En su lugar, necesitarás ejecutar tu propio nodo y apuntar tu aplicación a ese nodo. Si deseas utilizar una plataforma de software como servicio para esto, varios proveedores están disponibles.
  • Cuando necesites una red que difiera de la versión desplegada en Testnet.

El equipo de RPC mantiene contenedores de Docker que hacen esto lo más sencillo posible. Consulta la referencia de RPC para más detalles.

Próximamente

¿Listo para convertir estos contratos desplegados en una aplicación web simple? Dirígete a la sección Construir un Frontend Dapp.