Seguía cometiendo un error al pensar sobre Moonlight y Phoenix: estaba tratando la forma del estado como si también determinara la finalización.
Esa suposición empezó a inquietarme.
Moonlight llega con
#DuskVM un modelo de cuenta pública: Balances, Enviador, Receptor, Monto y Progresión de Nonce.
Phoenix se construye sobre un rastro completamente diferente: Notas Encriptadas, Salidas Protegidas, Nullifiers y Estado Privado.
Mi primera intuición fue que dos sistemas tan distintos probablemente necesitarían dos maneras distintas de volverse finales.
Pero quizá ahí estaba agregando complejidad que en realidad no existe.
Moonlight puede seguir con forma de cuenta. Phoenix puede seguir con forma de nota.
#DuskVM no necesita aplanar ninguno de los dos en algún formato universal de estado solo para decidir cuándo termina la ejecución.
Eso también me hizo replantearme
#DuskDS .
Había supuesto que necesitaba crear un único estado compartido
$DUSK debajo de ambos modelos. Ahora estoy menos convencido de eso.
La lógica de ejecución puede seguir siendo especializada mientras Dusk L1 aún le da al estado resultante un límite determinista de finalización.
Y honestamente, esa separación me resulta más interesante que los modelos individuales de estado.
Las distintas formas de representar el estado no necesariamente requieren respuestas distintas a la pregunta de cuándo ese estado ya está finalmente completado.
Lo que sigo preguntándome es qué tan limpia se mantiene esta separación a medida que Moonlight y Phoenix se vuelven más complejos.
#dusk $DUSK @Dusk