Na noite passada, abri um contrato do DuskVM a partir de @DuskFoundation e percebi dois arquivos WASM construídos a partir da mesma fonte. Um roda on-chain, o outro off-chain. Eu parei por aí: será que um contrato realmente precisa de dois WASMs, ou isso é apenas adicionando complexidade?

Investigando a interface, encontrei argbuf: 64 KB. A interface é bem enxuta: bytes entram no buffer, um u32 informa ao contrato quanto ler, e a saída volta pelo mesmo caminho.

Então os dois WASMs começaram a fazer sentido. O Contract WASM executa a lógica. O Data-driver WASM traduz os dados: JSON de carteiras, exploradores ou frontends é codificado em um formato que o contrato entende; em seguida, o resultado é decodificado de volta.

O custo-benefício é claro: os desenvolvedores precisam entender mais uma fronteira—o que roda on-chain e o que fica fora—para lidar com a tradução. Abri a documentação porque 64 KB chamou minha atenção. Acabei lembrando dos dois arquivos em vez disso. Um executa. Um traduz. Mesma fonte, trabalhos diferentes.

@Dusk_Foundation $CYS $ACE $DUSK #dusk
Dois WASMs de uma única fonte, bom design ou complexidade extra?
Smart separation
75%
Extra complexity
0%
Depends on the use case
25%
Need to dig deeper
0%
4 Votos • Votação encerrada