Kontrak DuskVM dapat bertahan dari failover node sementara aplikasi saya tiba-tiba lupa cara berbicara dengannya.
Penyebabnya berada di luar rantai (off-chain). Forge membangun dua artefak WASM dari sumber yang sama: kontrak yang berjalan di DuskVM dan sebuah data driver yang menangani JSON yang dapat dibaca hingga encoding serta decoding dengan rkyv. Driver itu tidak dideploy sebagai bagian dari kontrak on-chain.
Jika saya ingin Rusk memanfaatkan rute kontrak JSON untuk melakukan translasi itu, pemilik kontrak mendaftarkan driver tersebut ke node itu.
Jadi saya bisa deploy sekali, uji terhadap Node A, lihat panggilan yang rapi dan dapat dibaca, lalu failover ke Node B dan masuk ke kondisi yang aneh. Kontraknya ada. Rantaian (chain) sehat. Namun driver_available bisa saja bernilai false, sehingga aplikasi kehilangan permukaan decoding yang menjadi tempat ia dibangun.
Itulah jebakan produksi bagi saya. Konsensus tidak gagal. Kontrak tidak gagal. Failover saya mengubah dependensi off-chain yang saya anggap seolah ikut terbawa bersama kontrak.
Saya akan menjadikan ketersediaan driver sebagai bagian dari kesiapan node (node readiness) dan memverifikasikannya di setiap endpoint Rusk sebelum trafik sampai ke sana.
Di DuskVM, kontrak dapat bertahan dari failover sementara translatortnya tidak.
#dusk $DUSK @Dusk
Penyebabnya berada di luar rantai (off-chain). Forge membangun dua artefak WASM dari sumber yang sama: kontrak yang berjalan di DuskVM dan sebuah data driver yang menangani JSON yang dapat dibaca hingga encoding serta decoding dengan rkyv. Driver itu tidak dideploy sebagai bagian dari kontrak on-chain.
Jika saya ingin Rusk memanfaatkan rute kontrak JSON untuk melakukan translasi itu, pemilik kontrak mendaftarkan driver tersebut ke node itu.
Jadi saya bisa deploy sekali, uji terhadap Node A, lihat panggilan yang rapi dan dapat dibaca, lalu failover ke Node B dan masuk ke kondisi yang aneh. Kontraknya ada. Rantaian (chain) sehat. Namun driver_available bisa saja bernilai false, sehingga aplikasi kehilangan permukaan decoding yang menjadi tempat ia dibangun.
Itulah jebakan produksi bagi saya. Konsensus tidak gagal. Kontrak tidak gagal. Failover saya mengubah dependensi off-chain yang saya anggap seolah ikut terbawa bersama kontrak.
Saya akan menjadikan ketersediaan driver sebagai bagian dari kesiapan node (node readiness) dan memverifikasikannya di setiap endpoint Rusk sebelum trafik sampai ke sana.
Di DuskVM, kontrak dapat bertahan dari failover sementara translatortnya tidak.
#dusk $DUSK @Dusk


