Profundicemos en la versión v0.21.0 de Cartesi Machine Emulator. Esta actualización incluye una gran cantidad de mejoras. Entre ellas: documentación nueva sobre el “verification game”, una herramienta CLI para ejecutar por cuenta propia el flujo de pruebas de fraude, e importantes mejoras de infraestructura destinadas a incrementar la velocidad y la persistencia de toda la capa de estado. Estos son los detalles:🧵↓
https://fxtwitter.com/cartesiproject/status/2089698617829597516

1/ La documentación se ha reescrito por completo y se ha trasladado al repositorio de código del emulador, con una nueva sección de explicación paso a paso del “verification game”. ¿Quieres entender cómo funciona por dentro la prueba de fraude de Cartesi? Empieza aquí: https://github.com/cartesi/machine-emulator/blob/v0.21.0/doc/README.md

2/ El CLI ahora puede calcular los hashes de cómputo (computation hashes), rastrear los árboles Merkle de salida y generar pruebas para una salida específica, así como pruebas para la raíz Merkle de la salida. Esto significa que puedes realizar desde la línea de comandos la mayor parte de las tareas necesarias para ejecutar el flujo de la prueba de fraude.

3/ La función de rango de direcciones NVRAM permite que las aplicaciones mapeen directamente su estado en un rango de direcciones físicas mediante el controlador Linux UIO. El estado permanece persistente durante el avance (advance state) y, además, no requiere el costo de sincronización de caché de páginas del kernel, por lo que incluso si el estado de la aplicación sigue creciendo, la velocidad de escritura se mantiene eficiente.

4/ Máquinas con almacenamiento continuo (Rolling stored machines): el CLI ahora admite avanzar utilizando los estados de máquinas guardados en disco, y también hacer revert (revert) mediante la clonación de instantáneas almacenadas. Estas operaciones pueden ejecutarse localmente o contra servidores remotos. Esto proporciona una solución de estado persistente para aplicaciones que no quieren mantener el estado completo de la máquina residente en memoria.

5/ Fortalecimiento del mecanismo de avance de estado: cada avance de estado ahora finaliza con un resultado claro y demostrable, es decir: “accepted” (aceptado), “rejected” (rechazado), “halted” (detenido) o “out of cycles” (superó el límite de ciclos). Esto es crucial cuando una disputa entra en la fase del “verification game”, ya que en esa etapa cada resultado debe ser demostrable, no solo observable.

6/ Aviso para desarrolladores: esta versión incluye algunos cambios destructivos, como archivos de cabecera públicos renombrados, un flag de reversión (revert flag) reestructurado y una versión actualizada del protocolo JSON-RPC. Estos cambios no alteran el comportamiento central del emulador; solo significan que necesitas actualizar parte del código de llamadas. Consulta el registro de cambios para los detalles completos. 7/ Esta publicación también incluye: nuevas utilidades auxiliares de Lua (incluyendo una librería de árboles hash para construir prototipos del protocolo de prueba de fraude), soporte para la instrucción comprimida RISC-V Zcb (necesaria para kernels construidos con GCC 14), autocompletado bash para el CLI y garantías más sólidas de persistencia de instantáneas.

8/ Para ver todos los detalles de la publicación, visita: https://github.com/cartesi/machine-emulator/releases/tag/v0.21.0

Desarrolladores, esta actualización está hecha especialmente para ustedes. Bienvenidos a profundizar en la nueva documentación del verification game, a probar las herramientas de prueba del CLI y a plantear preguntas o dar feedback en Discord: https://discord.gg/cartesi

Reenvío: https://x.com/cartesiproject/status/2089698617829597516