Kerangka Shoal: Mengurangi latensi Bullshark di Aptos secara signifikan
Ringkasan
Aptos labs menyelesaikan dua masalah terbuka penting dalam DAG BFT, secara signifikan mengurangi latensi, dan untuk pertama kalinya menghilangkan kebutuhan akan timeout dalam protokol nyata deterministik. Secara keseluruhan, dalam kondisi tanpa kegagalan, latensi Bullshark meningkat sebesar 40%, dan dalam kondisi kegagalan meningkat sebesar 80%.
Shoal adalah kerangka kerja yang meningkatkan protokol konsensus berbasis Narwhal melalui pipelining dan reputasi pemimpin. Pipelining mengurangi latensi pengurutan DAG dengan memperkenalkan sebuah titik jangkar pada setiap putaran, sedangkan reputasi pemimpin lebih lanjut memperbaiki masalah latensi dengan memastikan bahwa titik jangkar terkait dengan node validasi tercepat. Selain itu, reputasi pemimpin memungkinkan Shoal memanfaatkan konstruksi DAG asinkron untuk menghilangkan timeout dalam semua skenario. Ini memungkinkan Shoal untuk memberikan atribut respons yang universal, termasuk respons optimis yang biasanya diperlukan.
Teknologi ini sangat sederhana, melibatkan menjalankan beberapa instance dari protokol dasar secara berurutan. Oleh karena itu, ketika diinstansiasi dengan Bullshark, kita mendapatkan sekelompok "ikan hiu" yang sedang melakukan balapan estafet.
Motivasi
Dalam mengejar kinerja tinggi jaringan blockchain, orang selalu fokus pada pengurangan kompleksitas komunikasi. Namun, pendekatan ini tidak membawa peningkatan signifikan dalam throughput. 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 kendala utama yang berbasis pada protokol pemimpin, yang dapat diuntungkan dari paralelisasi. Sistem Narwhal memisahkan penyebaran data dari logika konsensus, mengusulkan suatu arsitektur di mana semua validator menyebarkan data secara bersamaan, dan komponen konsensus hanya mengurutkan sejumlah kecil metadata. Makalah Narwhal melaporkan throughput sebesar 160.000 TPS.
Sebelumnya kami memperkenalkan Quorum Store, implementasi Narwhal kami memisahkan penyebaran data dari konsensus, serta bagaimana menggunakannya untuk memperluas protokol konsensus saat ini Jolteon. Jolteon adalah protokol berbasis pemimpin yang menggabungkan jalur cepat linear dari Tendermint dan perubahan pandangan gaya PBFT, mengurangi latensi Hotstuff sebesar 33%. Namun, protokol konsensus berbasis pemimpin tidak dapat memanfaatkan potensi throughput Narwhal secara maksimal. Meskipun penyebaran data dipisahkan dari konsensus, seiring meningkatnya throughput, pemimpin Hotstuff/Jolteon tetap terbatas.
Oleh karena itu, kami memutuskan untuk menerapkan Bullshark di atas Narwhal DAG, sebuah protokol konsensus tanpa biaya komunikasi. Sayangnya, dibandingkan dengan Jolteon, struktur DAG yang mendukung Bullshark dengan throughput tinggi membawa biaya latensi sebesar 50%.
Artikel ini menjelaskan bagaimana Shoal dapat secara signifikan mengurangi latensi Bullshark.
Latar Belakang DAG-BFT
Setiap simpul dalam Narwhal DAG terkait dengan suatu putaran. Untuk memasuki putaran ke-r, validator harus terlebih dahulu mendapatkan n-f simpul yang termasuk dalam putaran ke-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 melihat pandangan lokal DAG yang berbeda pada waktu yang berbeda.
Salah satu atribut kunci DAG tidak ambigu: jika dua node validasi memiliki vertex v yang sama dalam pandangan lokal DAG mereka, maka mereka memiliki sejarah kausal v yang sepenuhnya sama.
Pendahuluan
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 ada pemimpin yang ditentukan sebelumnya, puncak pemimpin disebut titik jangkar;
Pesanan anchor: validator secara independen tetapi deterministik memutuskan anchor mana yang dipesan dan mana yang dilewati;
Memesan sejarah kausal: validator memproses daftar titik jangkar yang terurut satu per satu, dan mengurutkan semua simpul tak terurut sebelumnya dalam sejarah kausal setiap titik jangkar.
Kunci untuk memenuhi keamanan adalah memastikan bahwa pada langkah (2), semua node validasi yang jujur membuat daftar titik jangkar yang terurut, sehingga semua daftar berbagi awalan yang sama. Di Shoal, kami membuat pengamatan berikut mengenai semua protokol di atas:
Semua validator setuju dengan titik jangkar terurut pertama.
Bullshark latensi
Latensi Bullshark tergantung pada jumlah putaran antara titik jangkar terurut di dalam DAG. Meskipun versi sinkron Bullshark yang paling praktis memiliki latensi yang lebih baik dibandingkan dengan versi asinkron, namun itu jauh dari yang terbaik.
Pertanyaan 1: Rata-rata latensi blok. Di Bullshark, setiap putaran genap memiliki titik jangkar, sementara setiap puncak putaran ganjil diinterpretasikan sebagai suara. Dalam kasus umum, dibutuhkan dua putaran DAG untuk mengurutkan titik jangkar, namun, puncak dalam sejarah kausal titik jangkar memerlukan lebih banyak putaran untuk menunggu titik jangkar diurutkan. Dalam kasus umum, puncak dalam putaran ganjil memerlukan tiga putaran, sedangkan puncak bukan jangkar dalam putaran genap memerlukan empat putaran.
Masalah 2: Kasus kegagalan latensi, analisis latensi di atas berlaku untuk situasi tanpa kegagalan, di sisi lain, jika pemimpin dalam satu putaran tidak cukup cepat untuk menyiarkan titik jangkar, maka titik jangkar tidak dapat diurutkan ( sehingga dilewati ), sehingga semua simpul yang tidak terurut dalam beberapa putaran sebelumnya harus menunggu titik jangkar berikutnya diurutkan. Ini akan secara signifikan mengurangi kinerja jaringan replikasi geografis, terutama karena waktu tunggu Bullshark digunakan untuk menunggu pemimpin.
Kerangka Shoal
Shoal menyelesaikan dua masalah latensi ini, dengan meningkatkan Bullshark( atau protokol BFT berbasis Narwhal lainnya) melalui pipeline, memungkinkan adanya satu titik acuan dalam setiap putaran, dan mengurangi latensi semua simpul non-referensi dalam DAG menjadi tiga putaran. Shoal juga memperkenalkan mekanisme reputasi pemimpin tanpa biaya dalam DAG, yang membuat pemilihan lebih cenderung kepada pemimpin yang cepat.
Tantangan
Dalam konteks protokol DAG, pipeline dan reputasi pemimpin dianggap sebagai masalah yang sulit, alasannya adalah sebagai berikut:
Upaya sebelumnya untuk memodifikasi logika inti Bullshark tampaknya pada dasarnya tidak mungkin.
Reputasi pemimpin diperkenalkan dalam DiemBFT dan dipformalkan dalam Carousel, yang merupakan pemilihan pemimpin masa depan secara dinamis berdasarkan kinerja validator di masa lalu, ide tentang jangkar di Bullshark. Meskipun ada perbedaan dalam identitas pemimpin tidak melanggar keamanan dalam protokol ini, di Bullshark, hal itu dapat menyebabkan urutan yang sama sekali 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 di 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, seperti pepatah yang mengatakan, terbukti bahwa solusi tersembunyi di balik kesederhanaan.
Di Shoal, kami mengandalkan kemampuan untuk melakukan perhitungan 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 urutan pertama, Shoal menggabungkan beberapa instance Bullshark secara berurutan untuk memprosesnya dalam aliran, menjadikan ( titik peralihan 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 sebuah jangkar, yang akan memicu perpindahan ke instance berikutnya.
Pada awalnya, Shoal meluncurkan instance pertama Bullshark di putaran pertama DAG dan menjalankannya sampai titik jangkar terurut pertama ditentukan, seperti di putaran r. Semua validator setuju dengan titik jangkar ini. Oleh karena itu, semua validator dapat dengan pasti setuju untuk menafsirkan kembali 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 untuk putaran pertama diurutkan berdasarkan instansi pertama. Kemudian, Shoal memulai instansi baru di putaran kedua, yang memiliki titik jangkar sendiri, yang diurutkan oleh instansi tersebut, kemudian, instansi baru lainnya memesan titik jangkar di putaran ketiga, dan proses tersebut berlanjut.
Reputasi Pemimpin
Selama pengurutan Bullshark, melewati titik jangkar akan meningkatkan latensi. Dalam kasus ini, teknik pipeline tidak dapat membantu, karena tidak mungkin memulai instance baru sebelum titik jangkar dipesan oleh instance sebelumnya. Shoal memastikan bahwa pemimpin yang sesuai untuk menangani titik jangkar yang hilang kemungkinan besar tidak akan dipilih di masa depan dengan memberikan skor kepada setiap node validator berdasarkan sejarah aktivitas terbaru mereka melalui mekanisme reputasi. Validator yang merespons dan berpartisipasi dalam protokol akan mendapatkan skor tinggi, sedangkan node validator lainnya akan diberikan skor rendah, karena mereka mungkin mengalami kerusakan, lambat, atau berperilaku jahat.
Ide ini adalah untuk secara deterministik menghitung kembali pemetaan F yang telah ditentukan dari putaran ke pemimpin setiap kali skor diperbarui, dengan kecenderungan kepada pemimpin yang memiliki skor lebih tinggi. Agar para validator mencapai konsensus pada pemetaan baru, mereka harus mencapai kesepakatan pada skor, sehingga dapat mencapai kesepakatan pada sejarah yang digunakan untuk menghasilkan skor.
Dalam Shoal, pipeline dan reputasi pemimpin dapat bergabung secara alami, karena keduanya menggunakan teknologi inti yang sama, yaitu menafsirkan kembali DAG setelah mencapai konsensus pada titik jangkar terurut pertama.
Sebenarnya, satu-satunya perbedaan adalah, setelah mengurutkan titik jangkar di putaran ke-r, validator hanya perlu menghitung pemetaan baru F' berdasarkan sejarah kausal titik jangkar yang terurut di putaran ke-r mulai dari putaran ke-r+1. 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
Keterlambatan memainkan peran yang sangat penting dalam semua implementasi BFT sinkron 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.
Keterlambatan juga akan meningkat secara signifikan, karena sangat penting untuk mengkonfigurasinya dengan benar, dan sering kali perlu disesuaikan secara dinamis, karena sangat bergantung pada lingkungan ( jaringan ). Sebelum beralih ke pemimpin berikutnya, protokol akan membayar penalti keterlambatan penuh untuk pemimpin yang mengalami kegagalan. Oleh karena itu, pengaturan keterlambatan tidak boleh terlalu konservatif, tetapi jika waktu keterlambatan terlalu singkat, protokol mungkin akan melewatkan pemimpin yang baik. Misalnya, kami mengamati bahwa, dalam kondisi beban tinggi, pemimpin di Jolteon/Hotstuff kewalahan, dan waktu keterlambatan telah habis sebelum mereka 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.
6 Suka
Hadiah
6
5
Bagikan
Komentar
0/400
SchrodingersFOMO
· 9jam yang lalu
latensi turun sebanyak ini bull bull
Lihat AsliBalas0
SchroedingerMiner
· 10jam yang lalu
Kecepatan ini naik lebih cepat daripada suhu Rig Penambangan di rumah saya.
Lihat AsliBalas0
MEVSandwich
· 08-03 18:14
latensi turun begitu banyak, merasa akan To da moon
Lihat AsliBalas0
MetaMisfit
· 08-03 17:54
Menunggu aptos untuk terbang tinggi... sedang menantikan
Kerangka Shoal secara signifikan meningkatkan kinerja Bullshark di Aptos dengan latensi yang turun 40%-80%
Kerangka Shoal: Mengurangi latensi Bullshark di Aptos secara signifikan
Ringkasan
Aptos labs menyelesaikan dua masalah terbuka penting dalam DAG BFT, secara signifikan mengurangi latensi, dan untuk pertama kalinya menghilangkan kebutuhan akan timeout dalam protokol nyata deterministik. Secara keseluruhan, dalam kondisi tanpa kegagalan, latensi Bullshark meningkat sebesar 40%, dan dalam kondisi kegagalan meningkat sebesar 80%.
Shoal adalah kerangka kerja yang meningkatkan protokol konsensus berbasis Narwhal melalui pipelining dan reputasi pemimpin. Pipelining mengurangi latensi pengurutan DAG dengan memperkenalkan sebuah titik jangkar pada setiap putaran, sedangkan reputasi pemimpin lebih lanjut memperbaiki masalah latensi dengan memastikan bahwa titik jangkar terkait dengan node validasi tercepat. Selain itu, reputasi pemimpin memungkinkan Shoal memanfaatkan konstruksi DAG asinkron untuk menghilangkan timeout dalam semua skenario. Ini memungkinkan Shoal untuk memberikan atribut respons yang universal, termasuk respons optimis yang biasanya diperlukan.
Teknologi ini sangat sederhana, melibatkan menjalankan beberapa instance dari protokol dasar secara berurutan. Oleh karena itu, ketika diinstansiasi dengan Bullshark, kita mendapatkan sekelompok "ikan hiu" yang sedang melakukan balapan estafet.
Motivasi
Dalam mengejar kinerja tinggi jaringan blockchain, orang selalu fokus pada pengurangan kompleksitas komunikasi. Namun, pendekatan ini tidak membawa peningkatan signifikan dalam throughput. 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 kendala utama yang berbasis pada protokol pemimpin, yang dapat diuntungkan dari paralelisasi. Sistem Narwhal memisahkan penyebaran data dari logika konsensus, mengusulkan suatu arsitektur di mana semua validator menyebarkan data secara bersamaan, dan komponen konsensus hanya mengurutkan sejumlah kecil metadata. Makalah Narwhal melaporkan throughput sebesar 160.000 TPS.
Sebelumnya kami memperkenalkan Quorum Store, implementasi Narwhal kami memisahkan penyebaran data dari konsensus, serta bagaimana menggunakannya untuk memperluas protokol konsensus saat ini Jolteon. Jolteon adalah protokol berbasis pemimpin yang menggabungkan jalur cepat linear dari Tendermint dan perubahan pandangan gaya PBFT, mengurangi latensi Hotstuff sebesar 33%. Namun, protokol konsensus berbasis pemimpin tidak dapat memanfaatkan potensi throughput Narwhal secara maksimal. Meskipun penyebaran data dipisahkan dari konsensus, seiring meningkatnya throughput, pemimpin Hotstuff/Jolteon tetap terbatas.
Oleh karena itu, kami memutuskan untuk menerapkan Bullshark di atas Narwhal DAG, sebuah protokol konsensus tanpa biaya komunikasi. Sayangnya, dibandingkan dengan Jolteon, struktur DAG yang mendukung Bullshark dengan throughput tinggi membawa biaya latensi sebesar 50%.
Artikel ini menjelaskan bagaimana Shoal dapat secara signifikan mengurangi latensi Bullshark.
Latar Belakang DAG-BFT
Setiap simpul dalam Narwhal DAG terkait dengan suatu putaran. Untuk memasuki putaran ke-r, validator harus terlebih dahulu mendapatkan n-f simpul yang termasuk dalam putaran ke-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 melihat pandangan lokal DAG yang berbeda pada waktu yang berbeda.
Salah satu atribut kunci DAG tidak ambigu: jika dua node validasi memiliki vertex v yang sama dalam pandangan lokal DAG mereka, maka mereka memiliki sejarah kausal v yang sepenuhnya sama.
Pendahuluan
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 ada pemimpin yang ditentukan sebelumnya, puncak pemimpin disebut titik jangkar;
Pesanan anchor: validator secara independen tetapi deterministik memutuskan anchor mana yang dipesan dan mana yang dilewati;
Memesan sejarah kausal: validator memproses daftar titik jangkar yang terurut satu per satu, dan mengurutkan semua simpul tak terurut sebelumnya dalam sejarah kausal setiap titik jangkar.
Kunci untuk memenuhi keamanan adalah memastikan bahwa pada langkah (2), semua node validasi yang jujur membuat daftar titik jangkar yang terurut, sehingga semua daftar berbagi awalan yang sama. Di Shoal, kami membuat pengamatan berikut mengenai semua protokol di atas:
Semua validator setuju dengan titik jangkar terurut pertama.
Bullshark latensi
Latensi Bullshark tergantung pada jumlah putaran antara titik jangkar terurut di dalam DAG. Meskipun versi sinkron Bullshark yang paling praktis memiliki latensi yang lebih baik dibandingkan dengan versi asinkron, namun itu jauh dari yang terbaik.
Pertanyaan 1: Rata-rata latensi blok. Di Bullshark, setiap putaran genap memiliki titik jangkar, sementara setiap puncak putaran ganjil diinterpretasikan sebagai suara. Dalam kasus umum, dibutuhkan dua putaran DAG untuk mengurutkan titik jangkar, namun, puncak dalam sejarah kausal titik jangkar memerlukan lebih banyak putaran untuk menunggu titik jangkar diurutkan. Dalam kasus umum, puncak dalam putaran ganjil memerlukan tiga putaran, sedangkan puncak bukan jangkar dalam putaran genap memerlukan empat putaran.
Masalah 2: Kasus kegagalan latensi, analisis latensi di atas berlaku untuk situasi tanpa kegagalan, di sisi lain, jika pemimpin dalam satu putaran tidak cukup cepat untuk menyiarkan titik jangkar, maka titik jangkar tidak dapat diurutkan ( sehingga dilewati ), sehingga semua simpul yang tidak terurut dalam beberapa putaran sebelumnya harus menunggu titik jangkar berikutnya diurutkan. Ini akan secara signifikan mengurangi kinerja jaringan replikasi geografis, terutama karena waktu tunggu Bullshark digunakan untuk menunggu pemimpin.
Kerangka Shoal
Shoal menyelesaikan dua masalah latensi ini, dengan meningkatkan Bullshark( atau protokol BFT berbasis Narwhal lainnya) melalui pipeline, memungkinkan adanya satu titik acuan dalam setiap putaran, dan mengurangi latensi semua simpul non-referensi dalam DAG menjadi tiga putaran. Shoal juga memperkenalkan mekanisme reputasi pemimpin tanpa biaya dalam DAG, yang membuat pemilihan lebih cenderung kepada pemimpin yang cepat.
Tantangan
Dalam konteks protokol DAG, pipeline dan reputasi pemimpin dianggap sebagai masalah yang sulit, alasannya adalah sebagai berikut:
Upaya sebelumnya untuk memodifikasi logika inti Bullshark tampaknya pada dasarnya tidak mungkin.
Reputasi pemimpin diperkenalkan dalam DiemBFT dan dipformalkan dalam Carousel, yang merupakan pemilihan pemimpin masa depan secara dinamis berdasarkan kinerja validator di masa lalu, ide tentang jangkar di Bullshark. Meskipun ada perbedaan dalam identitas pemimpin tidak melanggar keamanan dalam protokol ini, di Bullshark, hal itu dapat menyebabkan urutan yang sama sekali 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 di 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, seperti pepatah yang mengatakan, terbukti bahwa solusi tersembunyi di balik kesederhanaan.
Di Shoal, kami mengandalkan kemampuan untuk melakukan perhitungan 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 urutan pertama, Shoal menggabungkan beberapa instance Bullshark secara berurutan untuk memprosesnya dalam aliran, menjadikan ( titik peralihan 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 sebuah jangkar, yang akan memicu perpindahan ke instance berikutnya.
Pada awalnya, Shoal meluncurkan instance pertama Bullshark di putaran pertama DAG dan menjalankannya sampai titik jangkar terurut pertama ditentukan, seperti di putaran r. Semua validator setuju dengan titik jangkar ini. Oleh karena itu, semua validator dapat dengan pasti setuju untuk menafsirkan kembali 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 untuk putaran pertama diurutkan berdasarkan instansi pertama. Kemudian, Shoal memulai instansi baru di putaran kedua, yang memiliki titik jangkar sendiri, yang diurutkan oleh instansi tersebut, kemudian, instansi baru lainnya memesan titik jangkar di putaran ketiga, dan proses tersebut berlanjut.
Reputasi Pemimpin
Selama pengurutan Bullshark, melewati titik jangkar akan meningkatkan latensi. Dalam kasus ini, teknik pipeline tidak dapat membantu, karena tidak mungkin memulai instance baru sebelum titik jangkar dipesan oleh instance sebelumnya. Shoal memastikan bahwa pemimpin yang sesuai untuk menangani titik jangkar yang hilang kemungkinan besar tidak akan dipilih di masa depan dengan memberikan skor kepada setiap node validator berdasarkan sejarah aktivitas terbaru mereka melalui mekanisme reputasi. Validator yang merespons dan berpartisipasi dalam protokol akan mendapatkan skor tinggi, sedangkan node validator lainnya akan diberikan skor rendah, karena mereka mungkin mengalami kerusakan, lambat, atau berperilaku jahat.
Ide ini adalah untuk secara deterministik menghitung kembali pemetaan F yang telah ditentukan dari putaran ke pemimpin setiap kali skor diperbarui, dengan kecenderungan kepada pemimpin yang memiliki skor lebih tinggi. Agar para validator mencapai konsensus pada pemetaan baru, mereka harus mencapai kesepakatan pada skor, sehingga dapat mencapai kesepakatan pada sejarah yang digunakan untuk menghasilkan skor.
Dalam Shoal, pipeline dan reputasi pemimpin dapat bergabung secara alami, karena keduanya menggunakan teknologi inti yang sama, yaitu menafsirkan kembali DAG setelah mencapai konsensus pada titik jangkar terurut pertama.
Sebenarnya, satu-satunya perbedaan adalah, setelah mengurutkan titik jangkar di putaran ke-r, validator hanya perlu menghitung pemetaan baru F' berdasarkan sejarah kausal titik jangkar yang terurut di putaran ke-r mulai dari putaran ke-r+1. 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
Keterlambatan memainkan peran yang sangat penting dalam semua implementasi BFT sinkron 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.
Keterlambatan juga akan meningkat secara signifikan, karena sangat penting untuk mengkonfigurasinya dengan benar, dan sering kali perlu disesuaikan secara dinamis, karena sangat bergantung pada lingkungan ( jaringan ). Sebelum beralih ke pemimpin berikutnya, protokol akan membayar penalti keterlambatan penuh untuk pemimpin yang mengalami kegagalan. Oleh karena itu, pengaturan keterlambatan tidak boleh terlalu konservatif, tetapi jika waktu keterlambatan terlalu singkat, protokol mungkin akan melewatkan pemimpin yang baik. Misalnya, kami mengamati bahwa, dalam kondisi beban tinggi, pemimpin di Jolteon/Hotstuff kewalahan, dan waktu keterlambatan telah habis sebelum mereka mendorong kemajuan.
tidak beruntung