Saya menelusuri kembali dokumentasi Dusk tadi malam, dan bagian mode darurat membuat saya melihat konsensus dengan cara yang sedikit berbeda.
Awalnya, saya mengira mekanisme darurat hanyalah cadangan ketika validator tidak aktif. Tapi detailnya lebih menarik.
Dusk menggunakan komite validasi dan ratifikasi, dengan provisioner yang dipilih secara acak memberikan suara untuk memutuskan apakah blok yang diajukan valid dan apakah hasil tersebut harus diterima. Kuorum memerlukan ambang batas yang berbeda tergantung pada suara, termasuk supermajority 2/3 untuk suara Valid.
Apa yang terjadi ketika jaringan tidak bisa mencapai kuorum itu?
Setelah 16 kali iterasi gagal, menurut dokumentasi, protokol masuk ke mode darurat. Alih-alih melakukan timeout dan menyerah, iterasi dapat tetap terbuka sampai sebuah kandidat memperoleh dukungan yang cukup. Beberapa iterasi dapat berjalan sekaligus, yang meningkatkan peluang menghasilkan blok, tetapi juga menciptakan kemungkinan terjadinya fork.
Saya merasa komprominya menarik.
Jika beberapa blok kandidat mencapai konsensus, protokol menyelesaikan fork dengan memilih kandidat dari iterasi terendah. Saya penasaran bagaimana perilakunya saat terjadi kemacetan jaringan yang berkepanjangan atau isolasi parsial, terutama ketika bagian-bagian berbeda dari jaringan melihat pesan pada waktu yang berbeda.
Fallback terakhir bahkan lebih tidak biasa. Jika iterasi terakhir gagal, provisioner yang memegang mayoritas dari total aset dapat meminta blok darurat. Blok tersebut tidak berisi transaksi dan memungkinkan jaringan beralih ke putaran berikutnya.
Hal ini memunculkan pertanyaan bagi saya seputar tata kelola dan desentralisasi.
Apakah mewajibkan mayoritas aset untuk blok darurat menciptakan mekanisme keselamatan yang berguna, atau justru bisa menjadi titik pengaruh ketika terjadi kegagalan jaringan yang serius?
Dan seberapa tangguh sistem ketika komunikasi sangat terganggu tetapi komite-komite berbeda tetap beroperasi?
Saya masih menggali skenario tepi, tetapi inilah bagian-bagian dari desain konsensus yang paling layak untuk saya pahami.
@Dusk $DUSK #dusk
#dusk $DUSK @Dusk
Awalnya, saya mengira mekanisme darurat hanyalah cadangan ketika validator tidak aktif. Tapi detailnya lebih menarik.
Dusk menggunakan komite validasi dan ratifikasi, dengan provisioner yang dipilih secara acak memberikan suara untuk memutuskan apakah blok yang diajukan valid dan apakah hasil tersebut harus diterima. Kuorum memerlukan ambang batas yang berbeda tergantung pada suara, termasuk supermajority 2/3 untuk suara Valid.
Apa yang terjadi ketika jaringan tidak bisa mencapai kuorum itu?
Setelah 16 kali iterasi gagal, menurut dokumentasi, protokol masuk ke mode darurat. Alih-alih melakukan timeout dan menyerah, iterasi dapat tetap terbuka sampai sebuah kandidat memperoleh dukungan yang cukup. Beberapa iterasi dapat berjalan sekaligus, yang meningkatkan peluang menghasilkan blok, tetapi juga menciptakan kemungkinan terjadinya fork.
Saya merasa komprominya menarik.
Jika beberapa blok kandidat mencapai konsensus, protokol menyelesaikan fork dengan memilih kandidat dari iterasi terendah. Saya penasaran bagaimana perilakunya saat terjadi kemacetan jaringan yang berkepanjangan atau isolasi parsial, terutama ketika bagian-bagian berbeda dari jaringan melihat pesan pada waktu yang berbeda.
Fallback terakhir bahkan lebih tidak biasa. Jika iterasi terakhir gagal, provisioner yang memegang mayoritas dari total aset dapat meminta blok darurat. Blok tersebut tidak berisi transaksi dan memungkinkan jaringan beralih ke putaran berikutnya.
Hal ini memunculkan pertanyaan bagi saya seputar tata kelola dan desentralisasi.
Apakah mewajibkan mayoritas aset untuk blok darurat menciptakan mekanisme keselamatan yang berguna, atau justru bisa menjadi titik pengaruh ketika terjadi kegagalan jaringan yang serius?
Dan seberapa tangguh sistem ketika komunikasi sangat terganggu tetapi komite-komite berbeda tetap beroperasi?
Saya masih menggali skenario tepi, tetapi inilah bagian-bagian dari desain konsensus yang paling layak untuk saya pahami.
@Dusk $DUSK #dusk
#dusk $DUSK @Dusk

