Sigo pensando en los dos tipos de transacciones que Dusk introdujo en Rusk: CanonicalTransaction y LedgerTransaction.
Representan capas diferentes de la misma transacción. CanonicalTransaction es la forma con la que Rusk trabaja de manera lógica, mientras que LedgerTransaction envuelve esa transacción en la representación del libro mayor requerida por una versión concreta del protocolo. La tensión es que Dusk quiere que esos formatos de almacenamiento evolucionen sin forzar que el significado de una transacción evolucione con ellos, una propiedad importante mientras se impulsa llevar los mercados financieros onchain con instituciones licenciadas por la UE. Lo que aún no sé es si esa separación realmente mantendrá los cambios de versión contenidos dentro de Rusk, o si los cambios de formato seguirán filtrándose en wallets, aplicaciones y la reejecución histórica.
Los detalles que vale la pena vigilar son cómo Dusk normaliza las transacciones entrantes, selecciona la representación del libro mayor correcta e interpreta las transacciones antiguas después de las actualizaciones del protocolo.
Que una wallet siga enviando transacciones después de una actualización es una evidencia útil de compatibilidad. La prueba más sólida es si Dusk puede cambiar la representación subyacente mientras preserva la misma semántica de la transacción por encima de ella.
Yo evaluaría esa abstracción por cuánto de la complejidad del versionado necesitan conocer las aplicaciones.
La pregunta es si Dusk ha separado verdaderamente lo que significa una transacción de la forma en que el libro mayor la almacena, o si simplemente trasladó la carga del manejo de versiones a otro lugar de la pila.
Estoy observando cómo se mantiene esa frontera a través de futuros cambios de formato y la reejecución histórica.
#dusk $DUSK @Dusk