Kerangka Shoal: Mengurangi latensi Bullshark di Aptos secara signifikan
Aptos Labs baru-baru ini menyelesaikan dua masalah terbuka penting dalam DAG BFT, secara signifikan menurunkan latensi, dan untuk pertama kalinya menghilangkan kebutuhan akan timeout dalam protokol deterministik yang nyata. Secara keseluruhan, dalam kondisi tanpa kesalahan, latensi Bullshark ditingkatkan sebesar 40%, dan dalam kondisi dengan kesalahan ditingkatkan sebesar 80%.
Shoal adalah sebuah kerangka kerja, yang meningkatkan setiap protokol konsensus berbasis Narwhal ( seperti DAG-Rider, Tusk, Bullshark ) melalui pipeline dan reputasi pemimpin. Pipeline mengurangi latensi urutan DAG dengan memperkenalkan sebuah titik jangkar di setiap putaran, sementara reputasi pemimpin lebih lanjut meningkatkan latensi dengan memastikan titik jangkar terhubung dengan node validasi tercepat. Selain itu, reputasi pemimpin memungkinkan Shoal untuk memanfaatkan konstruk DAG asinkron untuk menghilangkan semua skenario timeout. Ini memungkinkan Shoal untuk menyediakan apa yang disebut responsivitas universal, yang mencakup responsivitas optimis yang biasanya diperlukan.
Teknologi ini cukup sederhana, melibatkan menjalankan beberapa instance protokol dasar secara berurutan. Oleh karena itu, ketika diinstansiasi dengan Bullshark, kami mendapatkan sekelompok "ikan hiu" yang sedang melakukan estafet.
Motivasi
Dalam mengejar kinerja tinggi jaringan blockchain, orang-orang selalu memperhatikan Drop kompleksitas komunikasi. Namun, pendekatan ini tidak mengarah pada peningkatan throughput yang signifikan. Misalnya, Hotstuff yang diimplementasikan dalam versi awal Diem hanya mencapai 3500 TPS, jauh di bawah target kami mencapai 100k+ TPS.
Terobosan terbaru berasal dari kesadaran bahwa penyebaran data merupakan kendala utama berdasarkan protokol pemimpin, yang dapat diuntungkan dari paralelisasi. Sistem Narwhal memisahkan penyebaran data dari logika konsensus inti, mengusulkan sebuah arsitektur di mana semua validator menyebarkan data secara bersamaan, komponen konsensus hanya mengurutkan sejumlah kecil metadata. Makalah Narwhal melaporkan throughput 160.000 TPS.
Dalam artikel sebelumnya, kami memperkenalkan Quorum Store. Implementasi Narwhal kami memisahkan penyebaran data dari konsensus, serta bagaimana cara menggunakannya untuk memperluas protokol konsensus saat ini, Jolteon. Jolteon adalah protokol berbasis pemimpin, yang menggabungkan jalur cepat linier Tendermint dan perubahan pandangan gaya PBFT, dapat menurunkan latensi Hotstuff sebesar 33%. Namun, jelas bahwa protokol konsensus berbasis pemimpin tidak dapat memanfaatkan potensi throughput Narwhal secara maksimal. Meskipun penyebaran data dan konsensus dipisahkan, seiring dengan meningkatnya throughput, pemimpin Hotstuff/Jolteon tetap terbatasi.
Oleh karena itu, kami memutuskan untuk menerapkan Bullshark di atas Narwhal DAG, sebuah protokol konsensus dengan biaya komunikasi nol. Sayangnya, dibandingkan dengan Jolteon, struktur DAG yang mendukung Bullshark dengan throughput tinggi membawa biaya latensi 50%.
Artikel ini menjelaskan bagaimana Shoal berhasil melakukan penurunan latensi Bullshark secara signifikan.
Latar Belakang DAG-BFT
Setiap simpul di Narwhal DAG terkait dengan satu putaran. Untuk masuk ke putaran r, validator harus terlebih dahulu memperoleh n-f simpul yang termasuk dalam putaran r-1. Setiap validator dapat menyiarkan satu simpul per putaran, dan setiap simpul harus merujuk setidaknya n-f simpul dari putaran sebelumnya. Karena asinkronisitas jaringan, validator yang berbeda mungkin mengamati pandangan lokal DAG yang berbeda pada titik waktu mana pun.
Salah satu atribut kunci DAG adalah tidak ambigu: jika dua node validasi memiliki simpul v yang sama dalam pandangan lokal DAG mereka, maka mereka memiliki riwayat kausal v yang sepenuhnya sama.
Pengantar
Dapat mencapai konsensus pada urutan total semua simpul di DAG tanpa biaya komunikasi tambahan. Untuk ini, validator di 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 ditetapkan: Setiap beberapa putaran (, misalnya, dalam Bullshark, setiap dua putaran ) akan ada pemimpin yang telah ditentukan sebelumnya, puncak pemimpin tersebut disebut sebagai titik jangkar;
Titik acuan urutan: Validator secara independen namun deterministik memutuskan titik acuan mana yang akan dipesan dan mana yang akan dilewati;
Urutkan sejarah kausal: validator memproses daftar titik jangkar yang terurut satu per satu, untuk setiap titik jangkar, urutkan semua simpul sebelumnya yang tidak terurut dalam sejarah kausalnya melalui beberapa aturan deterministik.
Kunci untuk memenuhi keamanan adalah memastikan bahwa pada langkah (2), semua node validasi yang jujur membuat daftar jangkar terurut, sehingga semua daftar berbagi awalan yang sama. Di Shoal, kami membuat pengamatan berikut tentang semua protokol di atas:
Semua validator setuju pada titik jangkar terurut pertama.
Bullsharklatensi
Latensi Bullshark tergantung pada jumlah putaran antara titik jangkar terurut dalam DAG. Meskipun versi sinkron Bullshark yang paling praktis memiliki latensi yang lebih baik dibandingkan versi asinkron, itu masih jauh dari yang terbaik.
Pertanyaan 1: Rata-rata latensi blok. Di Bullshark, setiap putaran genap memiliki satu anchor, dan setiap puncak putaran ganjil diinterpretasikan sebagai suara. Dalam kasus umum, diperlukan dua putaran DAG untuk mengurutkan anchor, namun, puncak dalam sejarah kausal anchor memerlukan lebih banyak putaran untuk menunggu anchor diurutkan. Dalam kasus umum, puncak di putaran ganjil memerlukan tiga putaran, sedangkan puncak non-anchor di putaran genap memerlukan empat putaran.
Masalah 2: Kasus kegagalan latensi. Analisis latensi di atas berlaku untuk situasi tanpa kegagalan, di sisi lain, jika pemimpin putaran tidak cukup cepat untuk menyiarkan titik jangkar, maka titik jangkar tidak dapat disortir ( sehingga dilewati ), oleh karena itu semua simpul yang tidak terurut di beberapa putaran sebelumnya harus menunggu titik jangkar berikutnya diurutkan. Ini akan secara signifikan menurunkan kinerja jaringan replikasi geografis, terutama karena Bullshark menggunakan waktu tunggu untuk menunggu pemimpin.
Kerangka Shoal
Shoal telah menyelesaikan dua masalah latensi ini, ia memperkuat Bullshark( atau protokol BFT berbasis Narwhal lainnya ) melalui pipeline, memungkinkan adanya satu titik jangkar di setiap putaran, dan mengurangi latensi semua simpul non-jangkar di dalam DAG menjadi tiga putaran. Shoal juga memperkenalkan mekanisme reputasi pemimpin tanpa biaya dalam DAG, yang membuat pemilihan cenderung kepada pemimpin yang cepat.
Tantangan
Dalam konteks protokol DAG, pipa dan reputasi pemimpin dianggap sebagai masalah yang sulit, alasannya adalah sebagai berikut:
Upaya pipeline sebelumnya mencoba untuk memodifikasi logika inti Bullshark, tetapi pada dasarnya tampaknya tidak mungkin.
Reputasi pemimpin diperkenalkan dalam DiemBFT dan diformalisasi dalam Carousel, berdasarkan pemilihan dinamis pemimpin masa depan dari kinerja masa lalu validator dalam (Bullshark yang merupakan jangkar ). Meskipun ada perbedaan pendapat mengenai identitas pemimpin tidak melanggar keamanan dalam protokol tersebut, dalam Bullshark, hal ini dapat menyebabkan urutan yang sangat berbeda, yang mengarah pada inti masalah, yaitu pemilihan jangkar secara dinamis dan deterministik diperlukan untuk menyelesaikan konsensus, dan validator perlu mencapai kesepakatan tentang sejarah terurut untuk memilih jangkar masa depan.
Sebagai bukti 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, ternyata solusinya tersembunyi dalam kesederhanaan.
Di Shoal, kami mengandalkan kemampuan untuk melakukan komputasi lokal di atas DAG, dan mewujudkan kemampuan untuk menyimpan dan menafsirkan kembali informasi dari beberapa putaran sebelumnya. Dengan semua validator setuju pada wawasan inti dari titik jangkar berurutan pertama, Shoal menggabungkan beberapa instance Bullshark secara berurutan untuk memprosesnya, sehingga ( titik jangkar berurutan pertama adalah titik peralihan untuk instance, serta ) sejarah kausal dari titik jangkar digunakan untuk menghitung reputasi pemimpin.
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 satu jangkar, yang akan memicu pergantian ke instance berikutnya.
Pada awalnya, Shoal meluncurkan instance pertama Bullshark di putaran pertama DAG dan menjalankannya sampai titik jangkar berurutan pertama ditentukan, seperti di putaran r. Semua validator setuju dengan titik jangkar ini. Oleh karena itu, semua validator dapat dengan tegas setuju untuk menafsirkan ulang DAG mulai dari putaran r+1. Shoal hanya meluncurkan instance Bullshark baru pada putaran r+1.
Dalam kasus terbaik, ini memungkinkan Shoal untuk memesan satu jangkar di setiap putaran. Titik jangkar putaran pertama diurutkan berdasarkan contoh pertama. Kemudian, Shoal memulai contoh baru di putaran kedua, yang memiliki titik jangkar sendiri, jangkar tersebut diurutkan berdasarkan contoh itu, lalu, contoh baru lainnya memesan titik jangkar di putaran ketiga, dan kemudian proses tersebut berlanjut.
Reputasi Pemimpin
Selama pengurutan Bullshark, melewati titik jangkar akan meningkatkan latensi. Dalam hal ini, teknologi pipeline tidak dapat berfungsi, karena tidak dapat memulai instansi baru sebelum memesan titik jangkar dari instansi sebelumnya. Shoal memastikan bahwa pemimpin yang sesuai akan kurang mungkin terpilih di masa depan untuk menangani titik jangkar yang hilang dengan memberikan skor kepada setiap node validasi berdasarkan sejarah aktivitas terbaru masing-masing node validasi dengan menggunakan mekanisme reputasi. Validator yang merespons dan berpartisipasi dalam protokol akan mendapatkan skor tinggi, jika tidak, node validasi akan diberikan skor rendah, karena mungkin mengalami kegagalan, lambat, atau berbuat jahat.
Konsepnya adalah untuk secara deterministik menghitung ulang pemetaan yang telah ditentukan F dari putaran ke pemimpin setiap kali skor diperbarui, yang berpihak pada pemimpin dengan skor lebih tinggi. Agar para validator dapat mencapai konsensus pada pemetaan baru, mereka harus mencapai kesepakatan pada skor, sehingga mencapai konsensus pada sejarah yang digunakan untuk menurunkan skor.
Di Shoal, jalur alur dan reputasi pemimpin dapat secara alami digabungkan, karena keduanya menggunakan teknologi inti yang sama, yaitu menafsirkan kembali DAG setelah mencapai konsensus pada titik jangkar urutan pertama.
Sebenarnya, satu-satunya perbedaan adalah, setelah mengurutkan titik jangkar dalam putaran ke-r, validator hanya perlu menghitung pemetaan baru F' mulai dari putaran ke-r+1 berdasarkan sejarah kausal titik jangkar yang terurut dalam putaran ke-r. Kemudian, node validator mulai dari putaran ke-r+1 menggunakan fungsi pemilihan titik jangkar yang diperbarui F' untuk menjalankan instance baru Bullshark.
Tidak ada lagi waktu habis
Timeout memainkan peran penting dalam semua implementasi BFT sinkronisasi deterministik berbasis pemimpin. Namun, kompleksitas yang mereka perkenalkan meningkatkan jumlah status internal yang perlu dikelola dan diamati, yang meningkatkan kompleksitas proses debugging, dan memerlukan lebih banyak teknik observabilitas.
Timeout juga dapat secara signifikan meningkatkan latensi, karena penting untuk mengkonfigurasinya dengan benar dan biasanya memerlukan penyesuaian dinamis, karena sangat bergantung pada lingkungan ( jaringan ). Sebelum beralih ke pemimpin berikutnya, protokol akan membayar penalti latensi timeout penuh untuk pemimpin yang mengalami kegagalan. Oleh karena itu, pengaturan timeout tidak boleh terlalu konservatif, tetapi jika waktu timeout terlalu pendek, protokol dapat melewatkan pemimpin yang baik. Misalnya, kami mengamati bahwa, dalam kondisi beban tinggi, Jolteon/
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.
22 Suka
Hadiah
22
5
Bagikan
Komentar
0/400
BlockchainFries
· 07-21 02:44
Tunggu, 40% dan 80%, yakin ini bukan sekadar omong kosong?
Lihat AsliBalas0
YouMustMakeBigMoneyEvery
· 07-20 12:23
还没有 lakukan dorongan yang kuat。太瘟了。突破6元 naikkan posisi
Lihat AsliBalas0
HalfBuddhaMoney
· 07-20 09:59
latensi turun begitu banyak, aptos layak ditunggu!
Lihat AsliBalas0
SleepyArbCat
· 07-20 09:58
Hari sudah hampir terang, aptos akhirnya melakukan dorongan yang kuat, meow... latensi yang lebih rendah bisa membuatku dapat makanan.
Kerangka Shoal Drop latensi Aptos Bullshark 40%-80%
Kerangka Shoal: Mengurangi latensi Bullshark di Aptos secara signifikan
Aptos Labs baru-baru ini menyelesaikan dua masalah terbuka penting dalam DAG BFT, secara signifikan menurunkan latensi, dan untuk pertama kalinya menghilangkan kebutuhan akan timeout dalam protokol deterministik yang nyata. Secara keseluruhan, dalam kondisi tanpa kesalahan, latensi Bullshark ditingkatkan sebesar 40%, dan dalam kondisi dengan kesalahan ditingkatkan sebesar 80%.
Shoal adalah sebuah kerangka kerja, yang meningkatkan setiap protokol konsensus berbasis Narwhal ( seperti DAG-Rider, Tusk, Bullshark ) melalui pipeline dan reputasi pemimpin. Pipeline mengurangi latensi urutan DAG dengan memperkenalkan sebuah titik jangkar di setiap putaran, sementara reputasi pemimpin lebih lanjut meningkatkan latensi dengan memastikan titik jangkar terhubung dengan node validasi tercepat. Selain itu, reputasi pemimpin memungkinkan Shoal untuk memanfaatkan konstruk DAG asinkron untuk menghilangkan semua skenario timeout. Ini memungkinkan Shoal untuk menyediakan apa yang disebut responsivitas universal, yang mencakup responsivitas optimis yang biasanya diperlukan.
Teknologi ini cukup sederhana, melibatkan menjalankan beberapa instance protokol dasar secara berurutan. Oleh karena itu, ketika diinstansiasi dengan Bullshark, kami mendapatkan sekelompok "ikan hiu" yang sedang melakukan estafet.
Motivasi
Dalam mengejar kinerja tinggi jaringan blockchain, orang-orang selalu memperhatikan Drop kompleksitas komunikasi. Namun, pendekatan ini tidak mengarah pada peningkatan throughput yang signifikan. Misalnya, Hotstuff yang diimplementasikan dalam versi awal Diem hanya mencapai 3500 TPS, jauh di bawah target kami mencapai 100k+ TPS.
Terobosan terbaru berasal dari kesadaran bahwa penyebaran data merupakan kendala utama berdasarkan protokol pemimpin, yang dapat diuntungkan dari paralelisasi. Sistem Narwhal memisahkan penyebaran data dari logika konsensus inti, mengusulkan sebuah arsitektur di mana semua validator menyebarkan data secara bersamaan, komponen konsensus hanya mengurutkan sejumlah kecil metadata. Makalah Narwhal melaporkan throughput 160.000 TPS.
Dalam artikel sebelumnya, kami memperkenalkan Quorum Store. Implementasi Narwhal kami memisahkan penyebaran data dari konsensus, serta bagaimana cara menggunakannya untuk memperluas protokol konsensus saat ini, Jolteon. Jolteon adalah protokol berbasis pemimpin, yang menggabungkan jalur cepat linier Tendermint dan perubahan pandangan gaya PBFT, dapat menurunkan latensi Hotstuff sebesar 33%. Namun, jelas bahwa protokol konsensus berbasis pemimpin tidak dapat memanfaatkan potensi throughput Narwhal secara maksimal. Meskipun penyebaran data dan konsensus dipisahkan, seiring dengan meningkatnya throughput, pemimpin Hotstuff/Jolteon tetap terbatasi.
Oleh karena itu, kami memutuskan untuk menerapkan Bullshark di atas Narwhal DAG, sebuah protokol konsensus dengan biaya komunikasi nol. Sayangnya, dibandingkan dengan Jolteon, struktur DAG yang mendukung Bullshark dengan throughput tinggi membawa biaya latensi 50%.
Artikel ini menjelaskan bagaimana Shoal berhasil melakukan penurunan latensi Bullshark secara signifikan.
Latar Belakang DAG-BFT
Setiap simpul di Narwhal DAG terkait dengan satu putaran. Untuk masuk ke putaran r, validator harus terlebih dahulu memperoleh n-f simpul yang termasuk dalam putaran r-1. Setiap validator dapat menyiarkan satu simpul per putaran, dan setiap simpul harus merujuk setidaknya n-f simpul dari putaran sebelumnya. Karena asinkronisitas jaringan, validator yang berbeda mungkin mengamati pandangan lokal DAG yang berbeda pada titik waktu mana pun.
Salah satu atribut kunci DAG adalah tidak ambigu: jika dua node validasi memiliki simpul v yang sama dalam pandangan lokal DAG mereka, maka mereka memiliki riwayat kausal v yang sepenuhnya sama.
Pengantar
Dapat mencapai konsensus pada urutan total semua simpul di DAG tanpa biaya komunikasi tambahan. Untuk ini, validator di 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 ditetapkan: Setiap beberapa putaran (, misalnya, dalam Bullshark, setiap dua putaran ) akan ada pemimpin yang telah ditentukan sebelumnya, puncak pemimpin tersebut disebut sebagai titik jangkar;
Titik acuan urutan: Validator secara independen namun deterministik memutuskan titik acuan mana yang akan dipesan dan mana yang akan dilewati;
Urutkan sejarah kausal: validator memproses daftar titik jangkar yang terurut satu per satu, untuk setiap titik jangkar, urutkan semua simpul sebelumnya yang tidak terurut dalam sejarah kausalnya melalui beberapa aturan deterministik.
Kunci untuk memenuhi keamanan adalah memastikan bahwa pada langkah (2), semua node validasi yang jujur membuat daftar jangkar terurut, sehingga semua daftar berbagi awalan yang sama. Di Shoal, kami membuat pengamatan berikut tentang semua protokol di atas:
Semua validator setuju pada titik jangkar terurut pertama.
Bullsharklatensi
Latensi Bullshark tergantung pada jumlah putaran antara titik jangkar terurut dalam DAG. Meskipun versi sinkron Bullshark yang paling praktis memiliki latensi yang lebih baik dibandingkan versi asinkron, itu masih jauh dari yang terbaik.
Pertanyaan 1: Rata-rata latensi blok. Di Bullshark, setiap putaran genap memiliki satu anchor, dan setiap puncak putaran ganjil diinterpretasikan sebagai suara. Dalam kasus umum, diperlukan dua putaran DAG untuk mengurutkan anchor, namun, puncak dalam sejarah kausal anchor memerlukan lebih banyak putaran untuk menunggu anchor diurutkan. Dalam kasus umum, puncak di putaran ganjil memerlukan tiga putaran, sedangkan puncak non-anchor di putaran genap memerlukan empat putaran.
Masalah 2: Kasus kegagalan latensi. Analisis latensi di atas berlaku untuk situasi tanpa kegagalan, di sisi lain, jika pemimpin putaran tidak cukup cepat untuk menyiarkan titik jangkar, maka titik jangkar tidak dapat disortir ( sehingga dilewati ), oleh karena itu semua simpul yang tidak terurut di beberapa putaran sebelumnya harus menunggu titik jangkar berikutnya diurutkan. Ini akan secara signifikan menurunkan kinerja jaringan replikasi geografis, terutama karena Bullshark menggunakan waktu tunggu untuk menunggu pemimpin.
Kerangka Shoal
Shoal telah menyelesaikan dua masalah latensi ini, ia memperkuat Bullshark( atau protokol BFT berbasis Narwhal lainnya ) melalui pipeline, memungkinkan adanya satu titik jangkar di setiap putaran, dan mengurangi latensi semua simpul non-jangkar di dalam DAG menjadi tiga putaran. Shoal juga memperkenalkan mekanisme reputasi pemimpin tanpa biaya dalam DAG, yang membuat pemilihan cenderung kepada pemimpin yang cepat.
Tantangan
Dalam konteks protokol DAG, pipa dan reputasi pemimpin dianggap sebagai masalah yang sulit, alasannya adalah sebagai berikut:
Upaya pipeline sebelumnya mencoba untuk memodifikasi logika inti Bullshark, tetapi pada dasarnya tampaknya tidak mungkin.
Reputasi pemimpin diperkenalkan dalam DiemBFT dan diformalisasi dalam Carousel, berdasarkan pemilihan dinamis pemimpin masa depan dari kinerja masa lalu validator dalam (Bullshark yang merupakan jangkar ). Meskipun ada perbedaan pendapat mengenai identitas pemimpin tidak melanggar keamanan dalam protokol tersebut, dalam Bullshark, hal ini dapat menyebabkan urutan yang sangat berbeda, yang mengarah pada inti masalah, yaitu pemilihan jangkar secara dinamis dan deterministik diperlukan untuk menyelesaikan konsensus, dan validator perlu mencapai kesepakatan tentang sejarah terurut untuk memilih jangkar masa depan.
Sebagai bukti 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, ternyata solusinya tersembunyi dalam kesederhanaan.
Di Shoal, kami mengandalkan kemampuan untuk melakukan komputasi lokal di atas DAG, dan mewujudkan kemampuan untuk menyimpan dan menafsirkan kembali informasi dari beberapa putaran sebelumnya. Dengan semua validator setuju pada wawasan inti dari titik jangkar berurutan pertama, Shoal menggabungkan beberapa instance Bullshark secara berurutan untuk memprosesnya, sehingga ( titik jangkar berurutan pertama adalah titik peralihan untuk instance, serta ) sejarah kausal dari titik jangkar digunakan untuk menghitung reputasi pemimpin.
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 satu jangkar, yang akan memicu pergantian ke instance berikutnya.
Pada awalnya, Shoal meluncurkan instance pertama Bullshark di putaran pertama DAG dan menjalankannya sampai titik jangkar berurutan pertama ditentukan, seperti di putaran r. Semua validator setuju dengan titik jangkar ini. Oleh karena itu, semua validator dapat dengan tegas setuju untuk menafsirkan ulang DAG mulai dari putaran r+1. Shoal hanya meluncurkan instance Bullshark baru pada putaran r+1.
Dalam kasus terbaik, ini memungkinkan Shoal untuk memesan satu jangkar di setiap putaran. Titik jangkar putaran pertama diurutkan berdasarkan contoh pertama. Kemudian, Shoal memulai contoh baru di putaran kedua, yang memiliki titik jangkar sendiri, jangkar tersebut diurutkan berdasarkan contoh itu, lalu, contoh baru lainnya memesan titik jangkar di putaran ketiga, dan kemudian proses tersebut berlanjut.
Reputasi Pemimpin
Selama pengurutan Bullshark, melewati titik jangkar akan meningkatkan latensi. Dalam hal ini, teknologi pipeline tidak dapat berfungsi, karena tidak dapat memulai instansi baru sebelum memesan titik jangkar dari instansi sebelumnya. Shoal memastikan bahwa pemimpin yang sesuai akan kurang mungkin terpilih di masa depan untuk menangani titik jangkar yang hilang dengan memberikan skor kepada setiap node validasi berdasarkan sejarah aktivitas terbaru masing-masing node validasi dengan menggunakan mekanisme reputasi. Validator yang merespons dan berpartisipasi dalam protokol akan mendapatkan skor tinggi, jika tidak, node validasi akan diberikan skor rendah, karena mungkin mengalami kegagalan, lambat, atau berbuat jahat.
Konsepnya adalah untuk secara deterministik menghitung ulang pemetaan yang telah ditentukan F dari putaran ke pemimpin setiap kali skor diperbarui, yang berpihak pada pemimpin dengan skor lebih tinggi. Agar para validator dapat mencapai konsensus pada pemetaan baru, mereka harus mencapai kesepakatan pada skor, sehingga mencapai konsensus pada sejarah yang digunakan untuk menurunkan skor.
Di Shoal, jalur alur dan reputasi pemimpin dapat secara alami digabungkan, karena keduanya menggunakan teknologi inti yang sama, yaitu menafsirkan kembali DAG setelah mencapai konsensus pada titik jangkar urutan pertama.
Sebenarnya, satu-satunya perbedaan adalah, setelah mengurutkan titik jangkar dalam putaran ke-r, validator hanya perlu menghitung pemetaan baru F' mulai dari putaran ke-r+1 berdasarkan sejarah kausal titik jangkar yang terurut dalam putaran ke-r. Kemudian, node validator mulai dari putaran ke-r+1 menggunakan fungsi pemilihan titik jangkar yang diperbarui F' untuk menjalankan instance baru Bullshark.
Tidak ada lagi waktu habis
Timeout memainkan peran penting dalam semua implementasi BFT sinkronisasi deterministik berbasis pemimpin. Namun, kompleksitas yang mereka perkenalkan meningkatkan jumlah status internal yang perlu dikelola dan diamati, yang meningkatkan kompleksitas proses debugging, dan memerlukan lebih banyak teknik observabilitas.
Timeout juga dapat secara signifikan meningkatkan latensi, karena penting untuk mengkonfigurasinya dengan benar dan biasanya memerlukan penyesuaian dinamis, karena sangat bergantung pada lingkungan ( jaringan ). Sebelum beralih ke pemimpin berikutnya, protokol akan membayar penalti latensi timeout penuh untuk pemimpin yang mengalami kegagalan. Oleh karena itu, pengaturan timeout tidak boleh terlalu konservatif, tetapi jika waktu timeout terlalu pendek, protokol dapat melewatkan pemimpin yang baik. Misalnya, kami mengamati bahwa, dalam kondisi beban tinggi, Jolteon/