Kerangka Shoal: Bagaimana mengurangi keterlambatan Bullshark di Aptos?
Ringkasan
Aptos labs telah menyelesaikan dua masalah terbuka penting dalam DAG BFT, secara signifikan mengurangi latensi, dan untuk pertama kalinya menghilangkan kebutuhan untuk penangguhan dalam protokol praktis yang deterministik. Secara keseluruhan, dalam keadaan tanpa kesalahan, latensi Bullshark meningkat sebesar 40%, dan dalam keadaan dengan kesalahan meningkat sebesar 80%.
Shoal adalah sebuah kerangka kerja yang meningkatkan setiap protokol konsensus berbasis Narwhal ( seperti DAG-Rider, Tusk, Bullshark ) melalui pemrosesan pipeline dan mekanisme reputasi pemimpin. Pipeline mengurangi latensi pengurutan DAG dengan memperkenalkan titik jangkar di setiap putaran, sementara reputasi pemimpin lebih lanjut memperbaiki masalah latensi dengan memastikan titik jangkar terkait dengan node validasi tercepat. Selain itu, reputasi pemimpin memungkinkan Shoal untuk memanfaatkan konstruksi DAG asinkron untuk menghilangkan timeouts di semua skenario. Ini memungkinkan Shoal untuk memberikan atribut yang kami sebut sebagai respons universal, yang mencakup respons optimis yang biasanya diperlukan.
Teknologi ini sangat sederhana, melibatkan menjalankan beberapa instance dari protokol dasar satu per satu secara berurutan. Oleh karena itu, ketika diinstansiasi dengan Bullshark, kita mendapatkan sekelompok "ikan hiu" yang sedang melakukan perlombaan estafet.
Motivasi
Dalam mengejar kinerja tinggi jaringan blockchain, orang-orang selalu memperhatikan pengurangan kompleksitas komunikasi. Namun, pendekatan ini tidak membawa peningkatan throughput yang signifikan. Misalnya, Hotstuff yang diimplementasikan dalam versi awal Diem hanya mencapai 3500 TPS, jauh di bawah target 100k+ TPS.
Terobosan terbaru berasal dari pemahaman bahwa penyebaran data adalah hambatan utama berdasarkan protokol pemimpin, yang dapat mengambil manfaat dari paralelisasi. Sistem Narwhal memisahkan penyebaran data dari logika konsensus inti, mengusulkan arsitektur di mana semua validator secara bersamaan menyebarkan data, sementara komponen konsensus hanya mengurutkan sejumlah kecil metadata. Makalah Narwhal melaporkan throughput 160.000 TPS.
Quorum Store yang diperkenalkan sebelumnya adalah salah satu implementasi dari Narwhal, yang memisahkan penyebaran data dari konsensus, digunakan untuk memperluas protokol konsensus saat ini, Jolteon. Jolteon adalah protokol berbasis pemimpin yang menggabungkan jalur cepat linier Tendermint dan perubahan pandangan gaya PBFT, dapat mengurangi penundaan Hotstuff sebesar 33%. Namun, protokol konsensus berbasis pemimpin tidak dapat sepenuhnya memanfaatkan potensi throughput Narwhal. Meskipun memisahkan penyebaran data dari konsensus, tetapi dengan meningkatnya throughput, pemimpin Hotstuff/Jolteon tetap terbatas.
Oleh karena itu, diputuskan untuk menerapkan Bullshark di atas Narwhal DAG, yang merupakan protokol konsensus dengan nol biaya komunikasi. Sayangnya, dibandingkan dengan Jolteon, struktur DAG yang mendukung Bullshark dengan throughput tinggi membawa biaya latensi sebesar 50%.
Artikel ini menjelaskan bagaimana Shoal secara signifikan mengurangi latensi Bullshark.
Latar Belakang DAG-BFT
Setiap simpul dalam Narwhal DAG terkait dengan suatu putaran. Untuk memasuki putaran ke-r, seorang validator harus terlebih dahulu memperoleh n-f simpul yang termasuk dalam putaran ke-r-1. Setiap validator dapat menyiarkan satu simpul per putaran, dan setiap simpul setidaknya merujuk pada n-f simpul dari putaran sebelumnya. Karena asinkronitas jaringan, validator yang berbeda mungkin mengamati pandangan lokal DAG yang berbeda pada titik waktu mana pun.
Salah satu atribut kunci dari DAG adalah tidak ambigu: jika dua node validasi memiliki simpul v yang sama dalam pandangan lokal DAG mereka, maka mereka memiliki sejarah kausal v yang sepenuhnya sama.
Urutan Umum
Dapat mencapai konsensus tentang urutan total semua simpul dalam DAG tanpa biaya komunikasi tambahan. Untuk ini, validator dalam DAG-Rider, Tusk, dan Bullshark menginterpretasikan struktur DAG sebagai protokol konsensus, di mana simpul mewakili proposal dan tepi mewakili suara.
Meskipun logika interseksi kelompok pada struktur DAG berbeda, semua protokol konsensus berbasis Narwhal yang ada memiliki struktur berikut:
Titik jangkar yang dijadwalkan: Setiap beberapa putaran akan ada seorang pemimpin yang ditentukan sebelumnya, puncak pemimpin tersebut disebut titik jangkar;
Titik urut: Validator secara independen namun pasti memutuskan urutan titik mana yang akan dipesan dan titik mana yang akan dilewati;
Urutan Riwayat Kausal: Validator memproses daftar titik jangkar terurut satu per satu, mengurutkan semua simpul tidak terurut sebelumnya dalam riwayat kausal setiap titik jangkar.
Kunci untuk memenuhi keamanan adalah memastikan bahwa dalam langkah (2), semua node verifikasi yang jujur membuat daftar titik jangkar yang terurut berbagi awalan yang sama. Di Shoal, kami membuat pengamatan berikut tentang semua protokol di atas:
Semua validator setuju pada titik jangkar terurut pertama.
Penundaan Bullshark
Keterlambatan Bullshark tergantung pada jumlah putaran antara titik jangkar terurut dalam DAG. Meskipun versi sinkron Bullshark yang paling praktis memiliki keterlambatan yang lebih baik dibandingkan versi asinkron, namun masih jauh dari yang terbaik.
Pertanyaan 1: Rata-rata keterlambatan blok. Dalam Bullshark, setiap putaran genap memiliki satu titik jangkar, sementara setiap putaran ganjil puncaknya diartikan sebagai suara. Dalam kasus umum, dibutuhkan dua putaran DAG untuk mengurutkan titik jangkar, namun, puncak dalam sejarah kausal titik jangkar membutuhkan lebih banyak putaran untuk menunggu titik jangkar diurutkan. Dalam kasus umum, puncak dalam putaran ganjil membutuhkan tiga putaran, sementara puncak bukan jangkar dalam putaran genap membutuhkan empat putaran.
Pertanyaan 2: Keterlambatan kasus kegagalan. Analisis keterlambatan di atas berlaku untuk situasi tanpa kegagalan, di sisi lain, jika pemimpin dalam satu putaran tidak cukup cepat dalam menyiarkan titik jangkar, maka titik jangkar tidak dapat diurutkan ( sehingga dilewati ), sehingga semua simpul yang belum diurutkan dalam beberapa putaran sebelumnya harus menunggu titik jangkar berikutnya diurutkan. Ini akan secara signifikan mengurangi kinerja jaringan replikasi geografis, terutama karena Bullshark menggunakan waktu tunggu untuk menunggu pemimpin.
Kerangka Shoal
Shoal telah meningkatkan Bullshark( atau protokol BFT berbasis Narwhal lainnya) melalui pemrosesan jalur aliran, memungkinkan adanya satu jangkar di setiap putaran, dan mengurangi latensi semua simpul non-jangkar dalam DAG menjadi tiga putaran. Shoal juga memperkenalkan mekanisme reputasi pemimpin tanpa biaya dalam DAG, yang membuat pemilihan lebih condong kepada pemimpin yang cepat.
Tantangan
Dalam konteks protokol DAG, pemrosesan pipeline dan reputasi pemimpin dianggap sebagai masalah yang sulit, alasannya adalah sebagai berikut:
Upaya pemrosesan jalur sebelumnya mencoba mengubah logika inti Bullshark, tetapi pada dasarnya tampaknya tidak mungkin.
Reputasi pemimpin diperkenalkan dalam DiemBFT dan resmi dalam Carousel, berdasarkan kinerja masa lalu validator untuk memilih pemimpin masa depan secara dinamis dalam (Bullshark, ide dari jangkar ). Meskipun terdapat perbedaan dalam identitas pemimpin tidak melanggar keamanan dalam protokol ini, dalam Bullshark, hal ini dapat mengakibatkan urutan yang sangat berbeda, yang mengarah pada inti masalah, yaitu pemilihan jangkar putaran secara dinamis dan deterministik diperlukan untuk menyelesaikan konsensus, dan validator perlu mencapai kesepakatan tentang sejarah terurut untuk memilih jangkar masa depan.
Sebagai bukti tingkat kesulitan masalah, kami mencatat bahwa implementasi Bullshark, termasuk yang saat ini ada di lingkungan produksi, tidak mendukung fitur-fitur ini.
Protokol
Meskipun ada tantangan di atas, solusi tersembunyi dalam kesederhanaan.
Di Shoal, kami bergantung pada kemampuan untuk melakukan komputasi lokal di atas DAG, dan mewujudkan kemampuan untuk menyimpan dan menginterpretasikan kembali informasi dari beberapa putaran sebelumnya. Dengan semua validator yang setuju pada wawasan inti dari titik jangkar berurutan pertama, Shoal secara berurutan menggabungkan beberapa instance Bullshark untuk memprosesnya secara pipelining, sehingga ( titik jangkar berurutan pertama adalah titik peralihan untuk instance, dan ) sejarah kausal dari titik jangkar digunakan untuk menghitung reputasi pemimpin.
Pengolahan Jalur Produksi
V yang memetakan putaran ke pemimpin. Shoal menjalankan instance Bullshark satu per satu, sehingga untuk setiap instance, jangkar ditentukan sebelumnya oleh pemetaan F. Setiap instance memesan sebuah jangkar, yang akan memicu peralihan ke instance berikutnya.
Pada awalnya, Shoal meluncurkan instansi pertama Bullshark pada putaran pertama DAG dan menjalankannya hingga titik jangkar terurut pertama ditentukan, seperti pada putaran r. Semua validator menyetujui titik jangkar ini. Oleh karena itu, semua validator dapat dengan pasti setuju untuk menafsirkan kembali DAG mulai dari putaran r+1. Shoal hanya meluncurkan instansi Bullshark baru pada putaran r+1.
Dalam skenario terbaik, ini memungkinkan Shoal untuk memesan satu jangkar di setiap putaran. Titik jangkar putaran pertama diurutkan berdasarkan contoh pertama. Kemudian, Shoal memulai contoh baru pada putaran kedua, yang memiliki titik jangkar sendiri, yang diurutkan oleh contoh tersebut, lalu, contoh baru lainnya memesan titik jangkar pada putaran ketiga, dan proses tersebut berlanjut.
Reputasi Pemimpin
Selama periode pengurutan Bullshark, keterlambatan akan meningkat saat melewati titik jangkar. Dalam kasus ini, teknik pemrosesan jalur tidak ada gunanya, karena instance baru tidak dapat dimulai sebelum instance sebelumnya memesan titik jangkar. Shoal memastikan bahwa pemimpin yang sesuai tidak mungkin dipilih di masa depan untuk menangani titik jangkar yang hilang dengan memberikan skor kepada setiap node validasi berdasarkan sejarah aktivitas terbaru masing-masing node validasi menggunakan mekanisme reputasi. Validator yang merespons dan berpartisipasi dalam protokol akan mendapatkan skor tinggi, sebaliknya, node validasi akan diberikan skor rendah, karena mungkin mengalami keruntuhan, lambat, atau berbuat jahat.
Konsepnya adalah untuk secara deterministik menghitung ulang pemetaan F yang sudah ditentukan dari putaran ke pemimpin setiap kali pembaruan skor, dengan kecenderungan kepada pemimpin yang memiliki skor lebih tinggi. Agar validator dapat mencapai konsensus pada pemetaan baru, mereka harus mencapai konsensus pada skor, sehingga mencapai konsensus pada sejarah yang digunakan untuk menurunkan skor.
Dalam Shoal, pemrosesan alur kerja dan reputasi pemimpin dapat secara alami terintegrasi, karena keduanya menggunakan teknologi inti yang sama, yaitu menafsirkan ulang DAG setelah mencapai konsensus pada titik jangkar berurutan pertama.
Sebenarnya, satu-satunya perbedaan adalah, setelah mengurutkan titik jangkar pada putaran ke-r, validator hanya perlu menghitung pemetaan baru F' mulai dari putaran ke-(r+1) berdasarkan sejarah kausal dari titik jangkar yang terurut pada putaran ke-r. Kemudian, node validator mulai dari putaran ke-(r+1) menggunakan fungsi pemilihan titik jangkar yang diperbarui F' untuk menjalankan instansi baru Bullshark.
Tidak ada lagi waktu habis
Timeout memainkan peran penting dalam semua implementasi BFT deterministik berbasis pemimpin. Namun, kompleksitas yang mereka perkenalkan meningkatkan jumlah status internal yang perlu dikelola dan dipantau, yang menambah kompleksitas proses debugging, dan memerlukan lebih banyak teknik observabilitas.
Timeout juga akan secara signifikan meningkatkan latensi, karena sangat penting untuk mengkonfigurasi mereka dengan tepat, dan biasanya perlu disesuaikan secara dinamis, karena sangat bergantung pada lingkungan ( jaringan ). Sebelum beralih ke pemimpin berikutnya, protokol akan membayar penalti latensi penuh untuk pemimpin yang mengalami kegagalan. Oleh karena itu, pengaturan timeout tidak boleh terlalu konservatif, tetapi jika waktu timeout terlalu pendek, protokol mungkin akan melewatkan pemimpin yang baik. Misalnya, kami mengamati bahwa, dalam kondisi beban tinggi, pemimpin di Jolteon/Hotstuff tidak dapat menangani beban, dan mereka mengalami timeout sebelum mendorong kemajuan.
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
21 Suka
Hadiah
21
9
Bagikan
Komentar
0/400
RektCoaster
· 21jam yang lalu
latensi turun begitu banyak? bull ah
Lihat AsliBalas0
Degen4Breakfast
· 08-02 20:25
Lupakan saja, menjadi jangkar tidak perlu repot-repot seperti ini.
Lihat AsliBalas0
SatoshiLegend
· 08-02 17:14
Optimasi DAG memang baik, tetapi tidak mengubah niat awal agar dapat mencapai jalan. Di bawah kode sumber tidak ada rahasia.
Lihat AsliBalas0
NonFungibleDegen
· 08-01 16:37
bullish af di aptos rn... 80% lebih cepat? mungkin tidak ada ser
Kerangka Shoal secara signifikan meningkatkan kinerja Bullshark di rantai Aptos dengan mengurangi latensi hingga 80%
Kerangka Shoal: Bagaimana mengurangi keterlambatan Bullshark di Aptos?
Ringkasan
Aptos labs telah menyelesaikan dua masalah terbuka penting dalam DAG BFT, secara signifikan mengurangi latensi, dan untuk pertama kalinya menghilangkan kebutuhan untuk penangguhan dalam protokol praktis yang deterministik. Secara keseluruhan, dalam keadaan tanpa kesalahan, latensi Bullshark meningkat sebesar 40%, dan dalam keadaan dengan kesalahan meningkat sebesar 80%.
Shoal adalah sebuah kerangka kerja yang meningkatkan setiap protokol konsensus berbasis Narwhal ( seperti DAG-Rider, Tusk, Bullshark ) melalui pemrosesan pipeline dan mekanisme reputasi pemimpin. Pipeline mengurangi latensi pengurutan DAG dengan memperkenalkan titik jangkar di setiap putaran, sementara reputasi pemimpin lebih lanjut memperbaiki masalah latensi dengan memastikan titik jangkar terkait dengan node validasi tercepat. Selain itu, reputasi pemimpin memungkinkan Shoal untuk memanfaatkan konstruksi DAG asinkron untuk menghilangkan timeouts di semua skenario. Ini memungkinkan Shoal untuk memberikan atribut yang kami sebut sebagai respons universal, yang mencakup respons optimis yang biasanya diperlukan.
Teknologi ini sangat sederhana, melibatkan menjalankan beberapa instance dari protokol dasar satu per satu secara berurutan. Oleh karena itu, ketika diinstansiasi dengan Bullshark, kita mendapatkan sekelompok "ikan hiu" yang sedang melakukan perlombaan estafet.
Motivasi
Dalam mengejar kinerja tinggi jaringan blockchain, orang-orang selalu memperhatikan pengurangan kompleksitas komunikasi. Namun, pendekatan ini tidak membawa peningkatan throughput yang signifikan. Misalnya, Hotstuff yang diimplementasikan dalam versi awal Diem hanya mencapai 3500 TPS, jauh di bawah target 100k+ TPS.
Terobosan terbaru berasal dari pemahaman bahwa penyebaran data adalah hambatan utama berdasarkan protokol pemimpin, yang dapat mengambil manfaat dari paralelisasi. Sistem Narwhal memisahkan penyebaran data dari logika konsensus inti, mengusulkan arsitektur di mana semua validator secara bersamaan menyebarkan data, sementara komponen konsensus hanya mengurutkan sejumlah kecil metadata. Makalah Narwhal melaporkan throughput 160.000 TPS.
Quorum Store yang diperkenalkan sebelumnya adalah salah satu implementasi dari Narwhal, yang memisahkan penyebaran data dari konsensus, digunakan untuk memperluas protokol konsensus saat ini, Jolteon. Jolteon adalah protokol berbasis pemimpin yang menggabungkan jalur cepat linier Tendermint dan perubahan pandangan gaya PBFT, dapat mengurangi penundaan Hotstuff sebesar 33%. Namun, protokol konsensus berbasis pemimpin tidak dapat sepenuhnya memanfaatkan potensi throughput Narwhal. Meskipun memisahkan penyebaran data dari konsensus, tetapi dengan meningkatnya throughput, pemimpin Hotstuff/Jolteon tetap terbatas.
Oleh karena itu, diputuskan untuk menerapkan Bullshark di atas Narwhal DAG, yang merupakan protokol konsensus dengan nol biaya komunikasi. Sayangnya, dibandingkan dengan Jolteon, struktur DAG yang mendukung Bullshark dengan throughput tinggi membawa biaya latensi sebesar 50%.
Artikel ini menjelaskan bagaimana Shoal secara signifikan mengurangi latensi Bullshark.
Latar Belakang DAG-BFT
Setiap simpul dalam Narwhal DAG terkait dengan suatu putaran. Untuk memasuki putaran ke-r, seorang validator harus terlebih dahulu memperoleh n-f simpul yang termasuk dalam putaran ke-r-1. Setiap validator dapat menyiarkan satu simpul per putaran, dan setiap simpul setidaknya merujuk pada n-f simpul dari putaran sebelumnya. Karena asinkronitas jaringan, validator yang berbeda mungkin mengamati pandangan lokal DAG yang berbeda pada titik waktu mana pun.
Salah satu atribut kunci dari DAG adalah tidak ambigu: jika dua node validasi memiliki simpul v yang sama dalam pandangan lokal DAG mereka, maka mereka memiliki sejarah kausal v yang sepenuhnya sama.
Urutan Umum
Dapat mencapai konsensus tentang urutan total semua simpul dalam DAG tanpa biaya komunikasi tambahan. Untuk ini, validator dalam DAG-Rider, Tusk, dan Bullshark menginterpretasikan struktur DAG sebagai protokol konsensus, di mana simpul mewakili proposal dan tepi mewakili suara.
Meskipun logika interseksi kelompok pada struktur DAG berbeda, semua protokol konsensus berbasis Narwhal yang ada memiliki struktur berikut:
Titik jangkar yang dijadwalkan: Setiap beberapa putaran akan ada seorang pemimpin yang ditentukan sebelumnya, puncak pemimpin tersebut disebut titik jangkar;
Titik urut: Validator secara independen namun pasti memutuskan urutan titik mana yang akan dipesan dan titik mana yang akan dilewati;
Urutan Riwayat Kausal: Validator memproses daftar titik jangkar terurut satu per satu, mengurutkan semua simpul tidak terurut sebelumnya dalam riwayat kausal setiap titik jangkar.
Kunci untuk memenuhi keamanan adalah memastikan bahwa dalam langkah (2), semua node verifikasi yang jujur membuat daftar titik jangkar yang terurut berbagi awalan yang sama. Di Shoal, kami membuat pengamatan berikut tentang semua protokol di atas:
Semua validator setuju pada titik jangkar terurut pertama.
Penundaan Bullshark
Keterlambatan Bullshark tergantung pada jumlah putaran antara titik jangkar terurut dalam DAG. Meskipun versi sinkron Bullshark yang paling praktis memiliki keterlambatan yang lebih baik dibandingkan versi asinkron, namun masih jauh dari yang terbaik.
Pertanyaan 1: Rata-rata keterlambatan blok. Dalam Bullshark, setiap putaran genap memiliki satu titik jangkar, sementara setiap putaran ganjil puncaknya diartikan sebagai suara. Dalam kasus umum, dibutuhkan dua putaran DAG untuk mengurutkan titik jangkar, namun, puncak dalam sejarah kausal titik jangkar membutuhkan lebih banyak putaran untuk menunggu titik jangkar diurutkan. Dalam kasus umum, puncak dalam putaran ganjil membutuhkan tiga putaran, sementara puncak bukan jangkar dalam putaran genap membutuhkan empat putaran.
Pertanyaan 2: Keterlambatan kasus kegagalan. Analisis keterlambatan di atas berlaku untuk situasi tanpa kegagalan, di sisi lain, jika pemimpin dalam satu putaran tidak cukup cepat dalam menyiarkan titik jangkar, maka titik jangkar tidak dapat diurutkan ( sehingga dilewati ), sehingga semua simpul yang belum diurutkan dalam beberapa putaran sebelumnya harus menunggu titik jangkar berikutnya diurutkan. Ini akan secara signifikan mengurangi kinerja jaringan replikasi geografis, terutama karena Bullshark menggunakan waktu tunggu untuk menunggu pemimpin.
Kerangka Shoal
Shoal telah meningkatkan Bullshark( atau protokol BFT berbasis Narwhal lainnya) melalui pemrosesan jalur aliran, memungkinkan adanya satu jangkar di setiap putaran, dan mengurangi latensi semua simpul non-jangkar dalam DAG menjadi tiga putaran. Shoal juga memperkenalkan mekanisme reputasi pemimpin tanpa biaya dalam DAG, yang membuat pemilihan lebih condong kepada pemimpin yang cepat.
Tantangan
Dalam konteks protokol DAG, pemrosesan pipeline dan reputasi pemimpin dianggap sebagai masalah yang sulit, alasannya adalah sebagai berikut:
Upaya pemrosesan jalur sebelumnya mencoba mengubah logika inti Bullshark, tetapi pada dasarnya tampaknya tidak mungkin.
Reputasi pemimpin diperkenalkan dalam DiemBFT dan resmi dalam Carousel, berdasarkan kinerja masa lalu validator untuk memilih pemimpin masa depan secara dinamis dalam (Bullshark, ide dari jangkar ). Meskipun terdapat perbedaan dalam identitas pemimpin tidak melanggar keamanan dalam protokol ini, dalam Bullshark, hal ini dapat mengakibatkan urutan yang sangat berbeda, yang mengarah pada inti masalah, yaitu pemilihan jangkar putaran secara dinamis dan deterministik diperlukan untuk menyelesaikan konsensus, dan validator perlu mencapai kesepakatan tentang sejarah terurut untuk memilih jangkar masa depan.
Sebagai bukti tingkat kesulitan masalah, kami mencatat bahwa implementasi Bullshark, termasuk yang saat ini ada di lingkungan produksi, tidak mendukung fitur-fitur ini.
Protokol
Meskipun ada tantangan di atas, solusi tersembunyi dalam kesederhanaan.
Di Shoal, kami bergantung pada kemampuan untuk melakukan komputasi lokal di atas DAG, dan mewujudkan kemampuan untuk menyimpan dan menginterpretasikan kembali informasi dari beberapa putaran sebelumnya. Dengan semua validator yang setuju pada wawasan inti dari titik jangkar berurutan pertama, Shoal secara berurutan menggabungkan beberapa instance Bullshark untuk memprosesnya secara pipelining, sehingga ( titik jangkar berurutan pertama adalah titik peralihan untuk instance, dan ) sejarah kausal dari titik jangkar digunakan untuk menghitung reputasi pemimpin.
Pengolahan Jalur Produksi
V yang memetakan putaran ke pemimpin. Shoal menjalankan instance Bullshark satu per satu, sehingga untuk setiap instance, jangkar ditentukan sebelumnya oleh pemetaan F. Setiap instance memesan sebuah jangkar, yang akan memicu peralihan ke instance berikutnya.
Pada awalnya, Shoal meluncurkan instansi pertama Bullshark pada putaran pertama DAG dan menjalankannya hingga titik jangkar terurut pertama ditentukan, seperti pada putaran r. Semua validator menyetujui titik jangkar ini. Oleh karena itu, semua validator dapat dengan pasti setuju untuk menafsirkan kembali DAG mulai dari putaran r+1. Shoal hanya meluncurkan instansi Bullshark baru pada putaran r+1.
Dalam skenario terbaik, ini memungkinkan Shoal untuk memesan satu jangkar di setiap putaran. Titik jangkar putaran pertama diurutkan berdasarkan contoh pertama. Kemudian, Shoal memulai contoh baru pada putaran kedua, yang memiliki titik jangkar sendiri, yang diurutkan oleh contoh tersebut, lalu, contoh baru lainnya memesan titik jangkar pada putaran ketiga, dan proses tersebut berlanjut.
Reputasi Pemimpin
Selama periode pengurutan Bullshark, keterlambatan akan meningkat saat melewati titik jangkar. Dalam kasus ini, teknik pemrosesan jalur tidak ada gunanya, karena instance baru tidak dapat dimulai sebelum instance sebelumnya memesan titik jangkar. Shoal memastikan bahwa pemimpin yang sesuai tidak mungkin dipilih di masa depan untuk menangani titik jangkar yang hilang dengan memberikan skor kepada setiap node validasi berdasarkan sejarah aktivitas terbaru masing-masing node validasi menggunakan mekanisme reputasi. Validator yang merespons dan berpartisipasi dalam protokol akan mendapatkan skor tinggi, sebaliknya, node validasi akan diberikan skor rendah, karena mungkin mengalami keruntuhan, lambat, atau berbuat jahat.
Konsepnya adalah untuk secara deterministik menghitung ulang pemetaan F yang sudah ditentukan dari putaran ke pemimpin setiap kali pembaruan skor, dengan kecenderungan kepada pemimpin yang memiliki skor lebih tinggi. Agar validator dapat mencapai konsensus pada pemetaan baru, mereka harus mencapai konsensus pada skor, sehingga mencapai konsensus pada sejarah yang digunakan untuk menurunkan skor.
Dalam Shoal, pemrosesan alur kerja dan reputasi pemimpin dapat secara alami terintegrasi, karena keduanya menggunakan teknologi inti yang sama, yaitu menafsirkan ulang DAG setelah mencapai konsensus pada titik jangkar berurutan pertama.
Sebenarnya, satu-satunya perbedaan adalah, setelah mengurutkan titik jangkar pada putaran ke-r, validator hanya perlu menghitung pemetaan baru F' mulai dari putaran ke-(r+1) berdasarkan sejarah kausal dari titik jangkar yang terurut pada putaran ke-r. Kemudian, node validator mulai dari putaran ke-(r+1) menggunakan fungsi pemilihan titik jangkar yang diperbarui F' untuk menjalankan instansi baru Bullshark.
Tidak ada lagi waktu habis
Timeout memainkan peran penting dalam semua implementasi BFT deterministik berbasis pemimpin. Namun, kompleksitas yang mereka perkenalkan meningkatkan jumlah status internal yang perlu dikelola dan dipantau, yang menambah kompleksitas proses debugging, dan memerlukan lebih banyak teknik observabilitas.
Timeout juga akan secara signifikan meningkatkan latensi, karena sangat penting untuk mengkonfigurasi mereka dengan tepat, dan biasanya perlu disesuaikan secara dinamis, karena sangat bergantung pada lingkungan ( jaringan ). Sebelum beralih ke pemimpin berikutnya, protokol akan membayar penalti latensi penuh untuk pemimpin yang mengalami kegagalan. Oleh karena itu, pengaturan timeout tidak boleh terlalu konservatif, tetapi jika waktu timeout terlalu pendek, protokol mungkin akan melewatkan pemimpin yang baik. Misalnya, kami mengamati bahwa, dalam kondisi beban tinggi, pemimpin di Jolteon/Hotstuff tidak dapat menangani beban, dan mereka mengalami timeout sebelum mendorong kemajuan.