Lanzamiento de IOTA Smart Contracts 0.3.0
Stardust listo, EVM extendido, y mucho más

Con esta versión de los Contratos Inteligentes de IOTA el framework es ahora compatible con la red Shimmer. Una vez que la red principal de IOTA se actualice a Stardust, también será compatible con IOTA. Con nuevas características como la compatibilidad total con el ledger Stardust, el soporte extendido de EVM, la mejora de la fiabilidad/recuperabilidad, la mejora de las herramientas, el soporte de gas y muchas otras mejoras, IOTA Smart Contracts está más cerca que nunca de ofrecer una solución de contratos inteligentes contundente sobre IOTA y Shimmer, ahora lista para ser probada por los desarrolladores.
Hoy el equipo de IOTA Smart Contracts se enorgullece de lanzar la última versión de IOTA Smart Contracts (ISC), la versión 0.3.0. Esta primera versión completamente funcional de ISC es compatible con la última versión de Hornet, allanando el camino hacia el soporte de la mainnet y la interacción con las nuevas características nativas de tokenización introducidas con la versión Stardust del protocolo Shimmer/IOTA.
¿Qué ha sucedido desde la versión anterior?
El año pasado, lanzamos una versión completamente funcional de IOTA Smart Contracts basada en GoShimmer, nuestro software de nodo experimental para la IOTA 2.0 DevNet, que es incompatible con la actual IOTA mainnet. ISC fue lanzado junto con una cadena de prueba para experimentar con el apoyo a los contratos inteligentes Solidity en una cadena EVM independiente. Este lanzamiento trajo mucho entusiasmo, dado que había algo con lo que trabajar en una red que funcionaba, lo que resultó en nuevos proyectos que surgieron deseosos de trabajar con ISC en el futuro. Hemos aprendido mucho de esta versión y de la red de pruebas y hemos definido los siguientes pasos:
- ISC debe ser compatible con la red principal.
- Las cadenas EVM deben poder acceder a los activos de ISC/L1 en lugar de ser completamente independientes.
- Necesitamos mejores herramientas para los contratos inteligentes basados en Wasm.
- Necesitamos una forma universal de calcular las tarifas basadas en el gas.
- ISC debe ser compatible con la red principal.
Estas conclusiones son el núcleo de lo que hemos estado construyendo para esta versión y nos complace decir que todas han sido abordadas.
Compatibilidad con la red principal
El mayor cambio en la versión 0.3.0 es el paso de usar una red basada en GoShimmer a la compatibilidad con un software de nodo preparado para la mainnet. GoShimmer es un software de nodo experimental desarrollado por el departamento de Investigación de IOTA y se utilizó inicialmente para ISC debido a la falta de soporte de anclaje de contratos inteligentes en la red principal de IOTA. Debido a su naturaleza experimental, el código de GoShimmer cambiaba con bastante frecuencia, lo que provocaba inestabilidad con ISC. Pero como GoShimmer es un software de nodo experimental y queremos tener contratos inteligentes disponibles también en la mainnet, decidimos actualizar el nodo Hornet de la mainnet y el ledger UTXO subyacente para incorporar nuevas e interesantes características implementadas por primera vez en GoShimmer, como los alias y las salidas Alias. Esta actualización se conoce como “Stardust”.
Paralelamente, hemos actualizado el software del nodo ISC (conocido como “Wasp”). Mientras que los conceptos de ISC y la arquitectura del nodo Wasp no cambiaron mucho, se requirió un esfuerzo significativo para implementar y esencialmente reescribir completamente la VM (Máquina Virtual), ahora conocida como StardustVM. La StardustVM incorpora todas las nuevas características introducidas por el protocolo Stardust: aliases, NFTs, fundiciones, tokens nativos, etc. También lleva el soporte de EVM y Wasm al siguiente nivel (más abajo). También tuvimos que modificar significativamente el protocolo entre Wasp y el L1 debido a los enfoques muy diferentes de Hornet y GoShimmer. Esta versión estará disponible en la Red Beta de Shimmer primero, luego en Shimmer, y más tarde, una vez que Stardust también se libere en la red principal de IOTA, allí también.
Soporte extendido para EVM
GoShimmer añadió soporte experimental para EVM a ISC, permitiendo a los constructores ejecutar contratos inteligentes Solidity existentes y nuevos de forma probada sobre ISC. Esta versión experimental fue un gran éxito y atrajo mucha atención de los builders y usuarios entusiasmados por echar un vistazo a un potencial ecosistema DeFi en IOTA. Esta versión era una cadena EVM independiente sobre ISC sin una forma directa de interactuar entre GoShimmer (la cadena ISC) y la cadena EVM sobre ella, lo que la convertía en una propuesta interesante pero no muy útil o única. Con esta nueva versión, añadimos un montón de nuevas funcionalidades sobre esta implementación para hacer que el soporte de EVM sea un ciudadano de primera clase en ISC.
Con el lanzamiento de la versión 0.3.0, la cadena EVM se inicia junto con la cadena ISC, y el punto de entrada JSON/RPC para ella está directamente disponible tan pronto como Wasp se ejecuta. Aunque la cadena EVM todavía se ejecuta como una cadena separada sobre la cadena ISC, ahora está mucho más entrelazada. Un “contrato inteligente mágico” que siempre está disponible en esta cadena puede ser llamado para interactuar con la caja de arena ISC directamente, lo que le permite utilizar todas las bondades que ISC puede ofrecer directamente dentro de la cadena EVM (piense en cosas como números aleatorios impredecibles sin necesidad de un Oracle, y mover activos nativos de IOTA/Shimmer/NFTs desde dentro de EVM (sin necesidad de hacer un wrap/o bridge). Esta funcionalidad permite que la cadena EVM se comunique fuera de la cadena e interactúe, a través de la capa IOTA/Shimmer, con otras cadenas e incluso con contratos inteligentes que no sean de la cadena EVM.
Junto a esta funcionalidad extendida, también hemos convertido las direcciones de Ethereum en ciudadanos de primera clase dentro de ISC. Esto le permite mantener un saldo de activos nativos en una cadena ISC controlada por su par de claves de Ethereum. Lo que esto significa en la práctica es que puedes utilizar tus herramientas y billeteras existentes como Metamask para acceder a la funcionalidad de ISC a través del contrato inteligente mágico sin necesitar un par de claves/billetera IOTA dedicadas, lo que debería contribuir a la experiencia de uso de estas cadenas EVM.
Firefly permitirá depositar activos nativos en una dirección de Ethereum en una cadena y simplificar el proceso de pasar de un saldo de IOTA/Shimmer en Firefly a un saldo direccionable por Metamask en una cadena de contrato inteligente. Para mayor comodidad, el token configurado para ser utilizado en los pagos de la tarifa de gas aparecerá en tu saldo de Metamask como el “token nativo”. Esto significa que sólo tienes que comprobar en un lugar si tienes suficientes tokens de gas para pagar tus transacciones. (Los tokens nativos de la cadena EVM no son actualmente transferibles a través de Metamask; estamos considerando esta funcionalidad y podríamos añadirla más adelante). Estamos trabajando en la mejora de esta experiencia con características más convenientes de EVM para un lanzamiento posterior.
Mejora de las herramientas para los contratos inteligentes basados en Wasm
El soporte de los contratos inteligentes basados en Wasm también ha recibido su cuota de amor y atención. Se han realizado numerosas mejoras, incluyendo el soporte para el pago de tarifas en gas, un soporte de herramientas de esquema ampliamente mejorado y una biblioteca de clientes recién generada para los tres lenguajes soportados (Go, Rust y AssemblyScript). El Wasm VM es ahora totalmente consciente de Stardust y puede utilizar la nueva funcionalidad de activos nativos también. Seguiremos mejorando y documentando estas implementaciones.
Introducción del gas y de los fees del gas
En la versión anterior, no existía el concepto de gas en la MV. Al mismo tiempo, el pago de tasas para la ejecución de contratos inteligentes era un poco de un marcador de posición, donde las tasas de gas se utilizaron para la cadena EVM y las tasas fijas para las cadenas basadas en Wasm.
Al igual que en cualquier otra plataforma de contratos inteligentes programable por Turing, ISC necesita aplicar el concepto de gas y un presupuesto de gas para controlar y cobrar las tarifas por el tiempo de ejecución y otros recursos utilizados durante la ejecución de los contratos inteligentes. La versión Stardust de ISC implementa el gas, un presupuesto de gas y las tarifas de gas de forma consistente y universal.
El pago de gas para los contratos inteligentes basados en Wasm y EVM está calibrado y las operaciones tendrán un precio de gas similar para tipos de ejecuciones similares. Hemos añadido una funcionalidad al contrato de gobernanza para que el propietario de una cadena pueda decidir en qué token se cobran las tarifas (puede ser el token base de la cadena utilizada Shimmer o posteriormente IOTA, o cualquier activo nativo), cuántos tokens se cobran por unidad de gas, y a dónde irán a parar las tarifas recaudadas (una proporción entre el propietario de la cadena y los validadores). El gas es una herramienta importante en las cadenas de contratos inteligentes, ya que protege la limitada potencia de cálculo disponible e incentiva a las entidades que dirigen la cadena: creemos que ahora tenemos una buena respuesta a eso con esta implementación, permitiendo que cualquiera defina las tasas de gas por sí mismo, de forma consistente y universal.
Fiabilidad y recuperabilidad
Una de las enseñanzas de la última versión y (principalmente) de la red de pruebas pública es que el software del nodo del contrato inteligente tiene que ser fiable y capaz de recuperarse de cualquier problema potencial que pueda surgir, incluso si todos los nodos se bloquean al mismo tiempo. Hemos tenido varias ocasiones en las que hemos tenido que reiniciar la testnet porque nos hemos encontrado con un problema no deseado.
Resolvimos varios problemas durante las primeras semanas de la testnet y creamos un grupo de trabajo que se centró exclusivamente en la fiabilidad y las herramientas administrativas. Este grupo de trabajo implementó con éxito los registros de escritura anticipada (que garantizan que, incluso si el estado se pierde en todos los nodos durante una transición de estado, el nodo podrá recuperarse), así como la mejora de los registros, las métricas adicionales, la configuración de texto plano para las cadenas, el almacenamiento seguro de claves y muchas otras pequeñas mejoras que contribuyen de una manera u otra a la fiabilidad y la gestión de los nodos.
Estamos introduciendo constantemente mejoras que contribuyen a la fiabilidad de los nodos y esperamos introducir mejoras adicionales basadas en lo que aprendan quienes utilicen esta versión.
¿Por qué esta versión?
Con este lanzamiento, queremos preparar a los constructores de nuestro ecosistema para lo que está por venir. Con Stardust listo, es sólo cuestión de tiempo antes de que la red de pruebas pública de Shimmer evolucione a Shimmer y queremos estar preparados para empezar a ejecutar contratos inteligentes allí. Actualmente estamos en una fase en la que todo funciona, pero todavía vemos margen de mejora desde el punto de vista de la experiencia del usuario, que abordaremos en próximas versiones. Agradecemos sus sugerencias de mejora, así como los aprendizajes derivados del uso de estas cadenas publicamente. De este modo, podremos ofrecer la mejor versión posible una vez que Shimmer y, más adelante, Stardust para IOTA estén disponibles.
Mientras tanto, seguiremos mejorando basándonos en lo que queda pendiente y en sus comentarios. Pronto lanzaremos una red de pruebas pública de ISC para que puedan probarla. Mientras tanto, todo el mundo puede empezar a ejecutar su propia cadena en la nueva red de pruebas pública de Shimmer o en su propia Tangle privada, por favor, consulte la documentación para más detalles. Por favor, comparte tus descubrimientos y pensamientos con nosotros a través de GitHub Issues y Discord para que podamos ofrecerte una mejor experiencia una vez que estemos listos para lanzar cadenas en una red principal.
¿Qué sigue?
Después de mejorar y documentar esta versión, revisaremos todas las funciones solicitadas y evaluaremos lo que necesitamos añadir para esta versión y las siguientes. En este momento, nos centraremos principalmente en mejorar la experiencia del usuario y la fiabilidad. Una vez que estemos satisfechos con esto, reevaluaremos nuestras prioridades y empezaremos a trabajar en nuevas e interesantes funciones basadas en la demanda de la comunidad. Háganos saber lo que piensa y póngase en contacto con nosotros en Discord para cualquier comentario o ayuda.
Post original: https://blog.shimmer.network/iota-smart-contracts-release-030/