#dusk $DUSK
Hoje continuo acompanhando a atualização Boreas do @Dusk , e o que mais me preocupa não é a aposentadoria do Phoenix, nem o fato de agora haver mais algumas fork rules.
É uma questão mais profunda:
Depois da atualização do protocolo, por que uma transação antiga ainda consegue manter o mesmo significado o tempo todo?
Isso soa como algo óbvio.
Mas, depois de um hard fork, os nós já estão rodando as novas regras, enquanto nos blocos históricos ainda ficam a transaction da versão antiga, o verifier antigo e as execution semantics antigas.
Se hoje os nós usarem este conjunto atual de regras para reinterpretar bytes antigos, o replay histórico pode dar problema.
Por isso, desta vez a Boreas deixou os limites de versão do transaction handling muito mais claros.
O live ingress segue as regras do protocolo atual.
Os envelopes antigos podem ser identificados e normalizados na entrada.
Antes de entrar no ledger, eles ainda se transformam em canonical transaction.
E os blocos históricos continuam a ser decodificados e reproduzidos de acordo com as regras da época em que foram criados.
Acho que o que realmente importa aqui não é a “padronização de formato”.
É que:
Além do conteúdo, uma transação também pertence a uma era específica do protocolo.
Aegis segue as regras do Aegis.
Boreas segue as regras do Boreas.
Um hard fork pode mudar o futuro, mas não pode simplesmente reinterpretar o passado.
É por isso que, quando olho para upgrades de blockchain agora, não me prendo tanto apenas ao que foi “adicionado”.
O que mais me interessa é:
Depois que a nova versão entra em produção, os nós de hoje ainda conseguem entender com precisão o que realmente aconteceu naquela cadeia há alguns anos.
Para uma rede que quer construir uma infra de mercado regulado, esse tipo de continuidade histórica é algo bem fundamental.
A conta pode ser atualizada.
O passado dentro da conta não pode acompanhar a atualização.
Hoje continuo acompanhando a atualização Boreas do @Dusk , e o que mais me preocupa não é a aposentadoria do Phoenix, nem o fato de agora haver mais algumas fork rules.
É uma questão mais profunda:
Depois da atualização do protocolo, por que uma transação antiga ainda consegue manter o mesmo significado o tempo todo?
Isso soa como algo óbvio.
Mas, depois de um hard fork, os nós já estão rodando as novas regras, enquanto nos blocos históricos ainda ficam a transaction da versão antiga, o verifier antigo e as execution semantics antigas.
Se hoje os nós usarem este conjunto atual de regras para reinterpretar bytes antigos, o replay histórico pode dar problema.
Por isso, desta vez a Boreas deixou os limites de versão do transaction handling muito mais claros.
O live ingress segue as regras do protocolo atual.
Os envelopes antigos podem ser identificados e normalizados na entrada.
Antes de entrar no ledger, eles ainda se transformam em canonical transaction.
E os blocos históricos continuam a ser decodificados e reproduzidos de acordo com as regras da época em que foram criados.
Acho que o que realmente importa aqui não é a “padronização de formato”.
É que:
Além do conteúdo, uma transação também pertence a uma era específica do protocolo.
Aegis segue as regras do Aegis.
Boreas segue as regras do Boreas.
Um hard fork pode mudar o futuro, mas não pode simplesmente reinterpretar o passado.
É por isso que, quando olho para upgrades de blockchain agora, não me prendo tanto apenas ao que foi “adicionado”.
O que mais me interessa é:
Depois que a nova versão entra em produção, os nós de hoje ainda conseguem entender com precisão o que realmente aconteceu naquela cadeia há alguns anos.
Para uma rede que quer construir uma infra de mercado regulado, esse tipo de continuidade histórica é algo bem fundamental.
A conta pode ser atualizada.
O passado dentro da conta não pode acompanhar a atualização.