Membangun blockchain sebagai satu tumpukan monolitik lebih sederhana untuk dijelaskan dan lebih mudah untuk dirilis. Konsensus, eksekusi, dan penyelesaian semuanya hidup dalam jalur kode yang sama, dan perubahan pada bagian mana pun akan menyentuh semuanya. Dusk Network memilih jalur yang lebih sulit—memisahkan DuskDS, lapisan konsensus dan penyelesaian, dari lingkungan yang benar-benar menjalankan smart contract.
DuskDS menangani Succinct Attestation, finalitas, ketersediaan data, serta model transaksi Moonlight dan Phoenix. DuskDS tidak menjalankan logika aplikasi itu sendiri. Pekerjaan itu menjadi milik DuskVM, sebuah lingkungan berbasis Wasmtime untuk kontrak Rust dan WASM dengan akses langsung ke alat privasi native milik Dusk, atau DuskEVM, sebuah lingkungan eksekusi OP Stack untuk aplikasi Solidity yang menyelesaikan kembali melalui DuskDS dengan DUSK sebagai gas. Rusk, implementasi node, menyatukan semuanya dan menyediakan antarmuka yang benar-benar digunakan oleh wallet dan indexer.
Mengapa repot? Karena jaminan penyelesaian dan pengalaman pengembang berubah dengan kecepatan yang benar-benar berbeda. Institusi yang menerbitkan sekuritas bertoken membutuhkan aturan finalitas dan kontrol akses yang tetap stabil selama bertahun-tahun. Pengembang yang membangun aplikasi membutuhkan tooling yang terus membaik—SDK baru, kompatibilitas EVM yang lebih baik, iterasi yang lebih cepat. Gabungkan dua kebutuhan itu ke dalam satu lapisan, maka Anda bisa membekukan inovasi untuk melindungi stabilitas, atau merusak stabilitas demi mengejar kemudahan bagi pengembang. Memisahkannya memungkinkan DuskDS tetap menjadi “biasa” dan andal sementara DuskVM dan DuskEVM berevolusi di bawahnya, atau di atasnya, tergantung cara Anda memandangnya.
Ini adalah keputusan yang mempertukarkan kesederhanaan jangka pendek dengan fleksibilitas jangka panjang, dan enam tahun dalam proyek ini, saya rasa pertukaran itu mulai memberikan hasil, meskipun pada awalnya arsitektur ini membuatnya lebih sulit dijelaskan kepada pendatang baru. Hal yang masih ingin saya lihat diuji adalah biaya koordinasi ketika DuskDS itu sendiri perlu berubah, karena lapisan penyelesaian yang digunakan bersama oleh dua lingkungan eksekusi tidak bisa berevolusi sebebas masing-masing lingkungan tersebut jika berdiri sendiri, dan batasan itu akan makin terlihat saat kedua lingkungan membawa nilai nyata yang lebih besar#dusk $DUSK @Dusk
DuskDS menangani Succinct Attestation, finalitas, ketersediaan data, serta model transaksi Moonlight dan Phoenix. DuskDS tidak menjalankan logika aplikasi itu sendiri. Pekerjaan itu menjadi milik DuskVM, sebuah lingkungan berbasis Wasmtime untuk kontrak Rust dan WASM dengan akses langsung ke alat privasi native milik Dusk, atau DuskEVM, sebuah lingkungan eksekusi OP Stack untuk aplikasi Solidity yang menyelesaikan kembali melalui DuskDS dengan DUSK sebagai gas. Rusk, implementasi node, menyatukan semuanya dan menyediakan antarmuka yang benar-benar digunakan oleh wallet dan indexer.
Mengapa repot? Karena jaminan penyelesaian dan pengalaman pengembang berubah dengan kecepatan yang benar-benar berbeda. Institusi yang menerbitkan sekuritas bertoken membutuhkan aturan finalitas dan kontrol akses yang tetap stabil selama bertahun-tahun. Pengembang yang membangun aplikasi membutuhkan tooling yang terus membaik—SDK baru, kompatibilitas EVM yang lebih baik, iterasi yang lebih cepat. Gabungkan dua kebutuhan itu ke dalam satu lapisan, maka Anda bisa membekukan inovasi untuk melindungi stabilitas, atau merusak stabilitas demi mengejar kemudahan bagi pengembang. Memisahkannya memungkinkan DuskDS tetap menjadi “biasa” dan andal sementara DuskVM dan DuskEVM berevolusi di bawahnya, atau di atasnya, tergantung cara Anda memandangnya.
Ini adalah keputusan yang mempertukarkan kesederhanaan jangka pendek dengan fleksibilitas jangka panjang, dan enam tahun dalam proyek ini, saya rasa pertukaran itu mulai memberikan hasil, meskipun pada awalnya arsitektur ini membuatnya lebih sulit dijelaskan kepada pendatang baru. Hal yang masih ingin saya lihat diuji adalah biaya koordinasi ketika DuskDS itu sendiri perlu berubah, karena lapisan penyelesaian yang digunakan bersama oleh dua lingkungan eksekusi tidak bisa berevolusi sebebas masing-masing lingkungan tersebut jika berdiri sendiri, dan batasan itu akan makin terlihat saat kedua lingkungan membawa nilai nyata yang lebih besar#dusk $DUSK @Dusk