Kerangka Shoal: Meningkatkan Penundaan Bullshark di Aptos
Aptos Labs baru-baru ini menyelesaikan dua masalah terbuka penting dalam DAG BFT, secara signifikan mengurangi latensi, dan untuk pertama kalinya menghilangkan kebutuhan akan jeda dalam protokol nyata yang deterministik. Secara keseluruhan, latensi Bullshark meningkat 40% dalam situasi tanpa kesalahan, dan meningkat 80% dalam situasi dengan kesalahan.
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 pengurutan DAG dengan memperkenalkan sebuah titik jangkar di setiap putaran, sedangkan reputasi pemimpin lebih lanjut memperbaiki latensi dengan memastikan titik jangkar terkait dengan node verifikasi tercepat. Selain itu, reputasi pemimpin memungkinkan Shoal memanfaatkan konstruksi DAG asinkron untuk menghilangkan semua skenario timeout. Ini memungkinkan Shoal untuk memberikan atribut yang kami sebut sebagai respons universal, yang mencakup respons optimis yang biasanya diperlukan.
Secara teknis, Shoal menjalankan beberapa instance dari protokol dasar secara berurutan. Jadi ketika menggunakan Bullshark untuk menginstansiasi, kita mendapatkan sekelompok "ikan hiu" yang sedang melakukan 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.
Peningkatan terbaru berasal dari pemahaman bahwa penyebaran data merupakan kendala utama yang didasarkan pada protokol pemimpin, dan dapat diuntungkan dari paralelisasi. Sistem Narwhal memisahkan penyebaran data dari logika konsensus, 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.
Sebelumnya kami memperkenalkan Quorum Store, yaitu implementasi Narwhal, yang memisahkan penyebaran data dari konsensus, serta bagaimana menggunakannya untuk memperluas protokol konsensus saat ini, Jolteon. Jolteon adalah protokol berbasis pemimpin yang menggabungkan jalur cepat linier Tendermint dan perubahan pandangan gaya PBFT, yang dapat mengurangi latensi Hotstuff sebesar 33%. Namun, protokol konsensus berbasis pemimpin jelas tidak dapat memanfaatkan potensi throughput Narwhal secara maksimal. Meskipun penyebaran data dipisahkan dari konsensus, dengan meningkatnya throughput, pemimpin Hotstuff/Jolteon tetap terbatasi.
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 memperkenalkan bagaimana Shoal secara signifikan mengurangi latensi Bullshark.
Latar Belakang DAG-BFT
Setiap simpul dalam Narwhal DAG terkait dengan satu 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 setidaknya mengacu pada 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 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.
Pengantar
Dapat mencapai konsensus mengenai urutan total semua simpul dalam DAG tanpa biaya komunikasi tambahan. Untuk itu, 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 ditentukan: Setiap beberapa putaran ( seperti dua putaran dalam Bullshark ) akan ada seorang pemimpin yang telah ditentukan sebelumnya, puncak pemimpin disebut titik jangkar;
Titik jangkar urutan: validator secara independen tetapi dengan kepastian menentukan urutan titik jangkar mana yang dipilih dan mana yang dilewati;
Urutan sejarah kausal: validator memproses daftar titik jangkar yang terurut satu per satu, untuk setiap titik jangkar, mengurutkan semua simpul tidak terurut sebelumnya dalam sejarah kausalnya menggunakan aturan deterministik.
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 terhadap semua protokol di atas:
Semua validator setuju pada titik jangkar terurut pertama.
Bullshark Delay
Penundaan Bullshark tergantung pada jumlah putaran antara titik jangkar terurut dalam DAG. Meskipun versi sinkron Bullshark yang paling praktis memiliki penundaan yang lebih baik dibandingkan dengan versi asinkron, namun masih jauh dari yang terbaik.
Pertanyaan 1: Rata-rata keterlambatan blok. Dalam Bullshark, setiap putaran genap memiliki satu titik jangkar, dan setiap puncak putaran ganjil diartikan sebagai suara. Dalam situasi 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 situasi umum, puncak dalam putaran ganjil memerlukan tiga putaran, sementara puncak non-jangkar dalam putaran genap memerlukan empat putaran.
Pertanyaan 2: Keterlambatan Kasus Kerusakan. Analisis keterlambatan di atas berlaku untuk situasi tanpa kerusakan, di sisi lain, jika pemimpin dalam satu putaran tidak dapat menyebarkan titik jangkar dengan cukup cepat, maka titik jangkar tidak dapat diurutkan ( sehingga dilewati ), sehingga semua simpul yang tidak terurut dari 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 pemimpin.
Kerangka Shoal
Shoal telah menyelesaikan dua masalah keterlambatan ini, dengan meningkatkan Bullshark( atau protokol BFT berbasis Narwhal lainnya) melalui pipeline, memungkinkan adanya satu titik jangkar setiap putaran, dan mengurangi keterlambatan semua simpul non-jangkar dalam DAG menjadi tiga putaran. Shoal juga memperkenalkan mekanisme reputasi pemimpin tanpa biaya dalam DAG, yang membuat pemilihan condong ke pemimpin yang cepat.
Tantangan
Dalam konteks protokol DAG, masalah jalur dan reputasi pemimpin dianggap sulit, karena alasan berikut:
Sebelumnya, jalur produksi berusaha untuk mengubah logika inti Bullshark, tetapi ini sepertinya pada dasarnya tidak mungkin.
Reputasi pemimpin diperkenalkan dalam DiemBFT dan dikukuhkan dalam Carousel, berdasarkan pemilihan dinamis pemimpin masa depan berdasarkan kinerja masa lalu validator ( ide jangkar di Bullshark ). Meskipun ada perbedaan dalam identitas pemimpin tidak melanggar keamanan dalam protokol ini, di Bullshark, hal itu dapat menyebabkan urutan yang sangat berbeda, yang mengarah pada inti masalah, yaitu pemilihan jangkar roda 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 implementasi yang saat ini ada di lingkungan produksi, tidak mendukung fitur-fitur ini.
Protokol
Meskipun ada tantangan di atas, fakta membuktikan bahwa solusi tersembunyi dalam kesederhanaan.
Di Shoal, kami bergantung pada kemampuan untuk melakukan perhitungan lokal di atas DAG, dan telah merealisasikan kemampuan untuk menyimpan dan menginterpretasi ulang informasi dari beberapa putaran sebelumnya. Dengan semua validator yang setuju pada wawasan inti dari titik jangkar terurut pertama, Shoal menggabungkan beberapa instance Bullshark secara berurutan untuk memprosesnya secara pipeline, menjadikan ( sebagai titik transisi instance dari titik jangkar terurut pertama, 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 mengurutkan satu jangkar, yang akan memicu peralihan ke instance berikutnya.
Pada awalnya, Shoal meluncurkan instance pertama Bullshark dalam putaran pertama DAG dan menjalankannya sampai titik jangkar terurut pertama ditentukan, misalnya pada putaran ke-r. Semua validator setuju dengan titik jangkar ini. Oleh karena itu, semua validator dapat dengan pasti sepakat untuk menafsirkan ulang DAG mulai dari putaran ke-r+1. Shoal hanya meluncurkan instance Bullshark baru pada putaran ke-r+1.
Dalam skenario terbaik, ini memungkinkan Shoal untuk mengurutkan satu jangkar di setiap putaran. Jangkar putaran pertama diurutkan berdasarkan contoh pertama. Kemudian, Shoal memulai contoh baru di putaran kedua, yang memiliki jangkar itu sendiri, jangkar yang diurutkan oleh contoh tersebut, kemudian, contoh baru lainnya mengurutkan jangkar di putaran ketiga, dan proses ini berlanjut.
Reputasi Pemimpin
Selama periode pengurutan Bullshark, melewati titik jangkar akan meningkatkan latensi. Dalam hal ini, teknologi pipeline tidak dapat berfungsi, karena instance baru tidak dapat diluncurkan sebelum titik jangkar dari instance sebelumnya diurutkan. 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 validasi berdasarkan sejarah aktivitas terbaru setiap 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 kegagalan, lambat, atau berperilaku jahat.
Konsepnya adalah untuk menghitung kembali pemetaan F yang telah ditentukan dari putaran ke pemimpin secara deterministik setiap kali skor diperbarui, yang menguntungkan pemimpin dengan skor lebih tinggi. Agar para validator dapat mencapai konsensus pada pemetaan baru, mereka harus mencapai kesepakatan pada skor, sehingga mencapai kesepakatan pada sejarah yang digunakan untuk menghasilkan skor.
Di Shoal, jalur dan reputasi pemimpin dapat secara alami digabungkan, 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 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, simpul validator mulai menggunakan fungsi pemilihan titik jangkar yang diperbarui F' untuk menjalankan instance baru Bullshark mulai dari putaran ke-(r+1).
Tidak ada lebih banyak 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 menambah kompleksitas proses debugging, dan membutuhkan lebih banyak teknik observabilitas.
Timeout juga akan secara signifikan meningkatkan latensi, karena sangat penting untuk mengkonfigurasinya dengan tepat, dan biasanya memerlukan penyesuaian dinamis, karena sangat bergantung pada lingkungan ( jaringan ). Sebelum berpindah ke pemimpin berikutnya, protokol akan membayar penalti latensi timeout penuh untuk pemimpin yang bermasalah. 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 situasi beban tinggi, pemimpin di Jolteon/Hotstuff tidak dapat mengatasi beban, dan waktu timeout telah habis sebelum mereka mendorong kemajuan.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
16 Suka
Hadiah
16
4
Bagikan
Komentar
0/400
DeFiChef
· 4jam yang lalu
Peningkatan kinerja 40% ini wangi sekali.
Lihat AsliBalas0
TokenEconomist
· 07-02 09:36
sebenarnya, arsitektur shoal adalah karya agung teori permainan. anggap saja seperti keseimbangan nash di mana validator mengoptimalkan untuk reputasi = f(kecepatan, keandalan)...
Lihat AsliBalas0
WhaleSurfer
· 07-02 09:33
bull bull bull berhasil melewati batas!
Lihat AsliBalas0
TokenSleuth
· 07-02 09:24
Aptos ini optimalkan bull ya latensi turun begitu banyak
Kerangka Shoal secara signifikan menurunkan keterlambatan Bullshark di Aptos, pipeline dan mekanisme reputasi meningkatkan kinerja secara signifikan.
Kerangka Shoal: Meningkatkan Penundaan Bullshark di Aptos
Aptos Labs baru-baru ini menyelesaikan dua masalah terbuka penting dalam DAG BFT, secara signifikan mengurangi latensi, dan untuk pertama kalinya menghilangkan kebutuhan akan jeda dalam protokol nyata yang deterministik. Secara keseluruhan, latensi Bullshark meningkat 40% dalam situasi tanpa kesalahan, dan meningkat 80% dalam situasi dengan kesalahan.
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 pengurutan DAG dengan memperkenalkan sebuah titik jangkar di setiap putaran, sedangkan reputasi pemimpin lebih lanjut memperbaiki latensi dengan memastikan titik jangkar terkait dengan node verifikasi tercepat. Selain itu, reputasi pemimpin memungkinkan Shoal memanfaatkan konstruksi DAG asinkron untuk menghilangkan semua skenario timeout. Ini memungkinkan Shoal untuk memberikan atribut yang kami sebut sebagai respons universal, yang mencakup respons optimis yang biasanya diperlukan.
Secara teknis, Shoal menjalankan beberapa instance dari protokol dasar secara berurutan. Jadi ketika menggunakan Bullshark untuk menginstansiasi, kita mendapatkan sekelompok "ikan hiu" yang sedang melakukan 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.
Peningkatan terbaru berasal dari pemahaman bahwa penyebaran data merupakan kendala utama yang didasarkan pada protokol pemimpin, dan dapat diuntungkan dari paralelisasi. Sistem Narwhal memisahkan penyebaran data dari logika konsensus, 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.
Sebelumnya kami memperkenalkan Quorum Store, yaitu implementasi Narwhal, yang memisahkan penyebaran data dari konsensus, serta bagaimana menggunakannya untuk memperluas protokol konsensus saat ini, Jolteon. Jolteon adalah protokol berbasis pemimpin yang menggabungkan jalur cepat linier Tendermint dan perubahan pandangan gaya PBFT, yang dapat mengurangi latensi Hotstuff sebesar 33%. Namun, protokol konsensus berbasis pemimpin jelas tidak dapat memanfaatkan potensi throughput Narwhal secara maksimal. Meskipun penyebaran data dipisahkan dari konsensus, dengan meningkatnya throughput, pemimpin Hotstuff/Jolteon tetap terbatasi.
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 memperkenalkan bagaimana Shoal secara signifikan mengurangi latensi Bullshark.
Latar Belakang DAG-BFT
Setiap simpul dalam Narwhal DAG terkait dengan satu 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 setidaknya mengacu pada 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 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.
Pengantar
Dapat mencapai konsensus mengenai urutan total semua simpul dalam DAG tanpa biaya komunikasi tambahan. Untuk itu, 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 ditentukan: Setiap beberapa putaran ( seperti dua putaran dalam Bullshark ) akan ada seorang pemimpin yang telah ditentukan sebelumnya, puncak pemimpin disebut titik jangkar;
Titik jangkar urutan: validator secara independen tetapi dengan kepastian menentukan urutan titik jangkar mana yang dipilih dan mana yang dilewati;
Urutan sejarah kausal: validator memproses daftar titik jangkar yang terurut satu per satu, untuk setiap titik jangkar, mengurutkan semua simpul tidak terurut sebelumnya dalam sejarah kausalnya menggunakan aturan deterministik.
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 terhadap semua protokol di atas:
Semua validator setuju pada titik jangkar terurut pertama.
Bullshark Delay
Penundaan Bullshark tergantung pada jumlah putaran antara titik jangkar terurut dalam DAG. Meskipun versi sinkron Bullshark yang paling praktis memiliki penundaan yang lebih baik dibandingkan dengan versi asinkron, namun masih jauh dari yang terbaik.
Pertanyaan 1: Rata-rata keterlambatan blok. Dalam Bullshark, setiap putaran genap memiliki satu titik jangkar, dan setiap puncak putaran ganjil diartikan sebagai suara. Dalam situasi 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 situasi umum, puncak dalam putaran ganjil memerlukan tiga putaran, sementara puncak non-jangkar dalam putaran genap memerlukan empat putaran.
Pertanyaan 2: Keterlambatan Kasus Kerusakan. Analisis keterlambatan di atas berlaku untuk situasi tanpa kerusakan, di sisi lain, jika pemimpin dalam satu putaran tidak dapat menyebarkan titik jangkar dengan cukup cepat, maka titik jangkar tidak dapat diurutkan ( sehingga dilewati ), sehingga semua simpul yang tidak terurut dari 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 pemimpin.
Kerangka Shoal
Shoal telah menyelesaikan dua masalah keterlambatan ini, dengan meningkatkan Bullshark( atau protokol BFT berbasis Narwhal lainnya) melalui pipeline, memungkinkan adanya satu titik jangkar setiap putaran, dan mengurangi keterlambatan semua simpul non-jangkar dalam DAG menjadi tiga putaran. Shoal juga memperkenalkan mekanisme reputasi pemimpin tanpa biaya dalam DAG, yang membuat pemilihan condong ke pemimpin yang cepat.
Tantangan
Dalam konteks protokol DAG, masalah jalur dan reputasi pemimpin dianggap sulit, karena alasan berikut:
Sebelumnya, jalur produksi berusaha untuk mengubah logika inti Bullshark, tetapi ini sepertinya pada dasarnya tidak mungkin.
Reputasi pemimpin diperkenalkan dalam DiemBFT dan dikukuhkan dalam Carousel, berdasarkan pemilihan dinamis pemimpin masa depan berdasarkan kinerja masa lalu validator ( ide jangkar di Bullshark ). Meskipun ada perbedaan dalam identitas pemimpin tidak melanggar keamanan dalam protokol ini, di Bullshark, hal itu dapat menyebabkan urutan yang sangat berbeda, yang mengarah pada inti masalah, yaitu pemilihan jangkar roda 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 implementasi yang saat ini ada di lingkungan produksi, tidak mendukung fitur-fitur ini.
Protokol
Meskipun ada tantangan di atas, fakta membuktikan bahwa solusi tersembunyi dalam kesederhanaan.
Di Shoal, kami bergantung pada kemampuan untuk melakukan perhitungan lokal di atas DAG, dan telah merealisasikan kemampuan untuk menyimpan dan menginterpretasi ulang informasi dari beberapa putaran sebelumnya. Dengan semua validator yang setuju pada wawasan inti dari titik jangkar terurut pertama, Shoal menggabungkan beberapa instance Bullshark secara berurutan untuk memprosesnya secara pipeline, menjadikan ( sebagai titik transisi instance dari titik jangkar terurut pertama, 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 mengurutkan satu jangkar, yang akan memicu peralihan ke instance berikutnya.
Pada awalnya, Shoal meluncurkan instance pertama Bullshark dalam putaran pertama DAG dan menjalankannya sampai titik jangkar terurut pertama ditentukan, misalnya pada putaran ke-r. Semua validator setuju dengan titik jangkar ini. Oleh karena itu, semua validator dapat dengan pasti sepakat untuk menafsirkan ulang DAG mulai dari putaran ke-r+1. Shoal hanya meluncurkan instance Bullshark baru pada putaran ke-r+1.
Dalam skenario terbaik, ini memungkinkan Shoal untuk mengurutkan satu jangkar di setiap putaran. Jangkar putaran pertama diurutkan berdasarkan contoh pertama. Kemudian, Shoal memulai contoh baru di putaran kedua, yang memiliki jangkar itu sendiri, jangkar yang diurutkan oleh contoh tersebut, kemudian, contoh baru lainnya mengurutkan jangkar di putaran ketiga, dan proses ini berlanjut.
Reputasi Pemimpin
Selama periode pengurutan Bullshark, melewati titik jangkar akan meningkatkan latensi. Dalam hal ini, teknologi pipeline tidak dapat berfungsi, karena instance baru tidak dapat diluncurkan sebelum titik jangkar dari instance sebelumnya diurutkan. 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 validasi berdasarkan sejarah aktivitas terbaru setiap 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 kegagalan, lambat, atau berperilaku jahat.
Konsepnya adalah untuk menghitung kembali pemetaan F yang telah ditentukan dari putaran ke pemimpin secara deterministik setiap kali skor diperbarui, yang menguntungkan pemimpin dengan skor lebih tinggi. Agar para validator dapat mencapai konsensus pada pemetaan baru, mereka harus mencapai kesepakatan pada skor, sehingga mencapai kesepakatan pada sejarah yang digunakan untuk menghasilkan skor.
Di Shoal, jalur dan reputasi pemimpin dapat secara alami digabungkan, 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 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, simpul validator mulai menggunakan fungsi pemilihan titik jangkar yang diperbarui F' untuk menjalankan instance baru Bullshark mulai dari putaran ke-(r+1).
Tidak ada lebih banyak 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 menambah kompleksitas proses debugging, dan membutuhkan lebih banyak teknik observabilitas.
Timeout juga akan secara signifikan meningkatkan latensi, karena sangat penting untuk mengkonfigurasinya dengan tepat, dan biasanya memerlukan penyesuaian dinamis, karena sangat bergantung pada lingkungan ( jaringan ). Sebelum berpindah ke pemimpin berikutnya, protokol akan membayar penalti latensi timeout penuh untuk pemimpin yang bermasalah. 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 situasi beban tinggi, pemimpin di Jolteon/Hotstuff tidak dapat mengatasi beban, dan waktu timeout telah habis sebelum mereka mendorong kemajuan.
Sayangnya, berdasarkan kepemimpinan