Eu fico pensando sobre dois tipos de transação que a Dusk introduziu em Rusk: CanonicalTransaction e LedgerTransaction.
Eles representam camadas diferentes da mesma transação. CanonicalTransaction é a forma com a qual a Rusk trabalha de maneira lógica, enquanto LedgerTransaction envolve essa transação na representação do ledger exigida por uma versão específica do protocolo. A tensão é que a Dusk quer que esses formatos de armazenamento evoluam sem forçar que o significado de uma transação evolua junto com eles — uma propriedade importante conforme buscamos levar os mercados financeiros onchain com instituições licenciadas pela UE. O que eu ainda não sei é se essa separação realmente manterá as mudanças de versão contidas dentro da Rusk, ou se mudanças de formato ainda vão se espalhar para carteiras, aplicações e pela reexecução histórica.
Os detalhes que valem a pena observar são como a Dusk normaliza transações recebidas, seleciona a representação correta do ledger e interpreta transações mais antigas após atualizações de protocolo.
Uma carteira continuar enviando transações após uma atualização é uma evidência útil de compatibilidade. O teste mais forte é se a Dusk consegue alterar a representação por baixo enquanto preserva a mesma semântica da transação acima.
Eu avaliaria essa abstração pelo quanto da complexidade de versionamento as aplicações precisam saber.
A questão é se a Dusk realmente separou o que uma transação significa de como o ledger a armazena, ou se apenas moveu a carga do tratamento de versões para outro lugar na pilha.
Estou observando como essa fronteira se sustenta diante de futuras mudanças de formato e pela reexecução histórica.
#dusk $DUSK @Dusk
Eles representam camadas diferentes da mesma transação. CanonicalTransaction é a forma com a qual a Rusk trabalha de maneira lógica, enquanto LedgerTransaction envolve essa transação na representação do ledger exigida por uma versão específica do protocolo. A tensão é que a Dusk quer que esses formatos de armazenamento evoluam sem forçar que o significado de uma transação evolua junto com eles — uma propriedade importante conforme buscamos levar os mercados financeiros onchain com instituições licenciadas pela UE. O que eu ainda não sei é se essa separação realmente manterá as mudanças de versão contidas dentro da Rusk, ou se mudanças de formato ainda vão se espalhar para carteiras, aplicações e pela reexecução histórica.
Os detalhes que valem a pena observar são como a Dusk normaliza transações recebidas, seleciona a representação correta do ledger e interpreta transações mais antigas após atualizações de protocolo.
Uma carteira continuar enviando transações após uma atualização é uma evidência útil de compatibilidade. O teste mais forte é se a Dusk consegue alterar a representação por baixo enquanto preserva a mesma semântica da transação acima.
Eu avaliaria essa abstração pelo quanto da complexidade de versionamento as aplicações precisam saber.
A questão é se a Dusk realmente separou o que uma transação significa de como o ledger a armazena, ou se apenas moveu a carga do tratamento de versões para outro lugar na pilha.
Estou observando como essa fronteira se sustenta diante de futuras mudanças de formato e pela reexecução histórica.
#dusk $DUSK @Dusk