Apa yang biasanya pertama kali rusak di bawah beban bukanlah throughput, tetapi waktunya. Ketika jaringan menjadi sibuk, blok tidak hanya terisi, tetapi menjadi lebih sulit untuk diprediksi. Transaksi datang, biaya meningkat, validator menyusun ulang, dan jalur dari mengirim transaksi hingga melihatnya dieksekusi menjadi tidak pasti. Saya telah melihat strategi yang terlihat tepat dalam pengujian gagal di produksi hanya karena urutan eksekusi bergeser hanya dalam sepersekian detik. Sebuah likuidasi terlewat karena mendarat satu posisi lebih lambat dari yang diharapkan. Arbitrase multi-langkah menyelesaikan langkah pertama tetapi langkah kedua melihat keadaan yang sedikit berbeda karena transaksi lain masuk di antara. Ini bukan kegagalan dramatis. Ini adalah pergeseran kecil dalam pengurutan yang secara diam-diam mengubah hasil.
Di dalam Fogo, perbedaannya terlihat dalam bagaimana urutan itu ditangani. Sistem ini membuat pilihan yang disengaja tentang penjadwalan deterministik. Transaksi tidak terus-menerus diacak berdasarkan perbedaan biaya kecil setelah mereka memasuki jendela penjadwalan. Mereka ditempatkan ke dalam irisan waktu yang terdefinisi dan diurutkan dengan cara yang dapat diprediksi dalam irisan tersebut. Di bawah lalu lintas berat, pilihan itu menjadi terlihat. Alih-alih melihat pembangun blok terus-menerus menyesuaikan posisi sebagai respons terhadap tekanan biaya, Anda melihat struktur yang lebih tetap. Jika sebuah transaksi memasuki batas penjadwalan yang diberikan tepat waktu, posisinya relatif stabil. Jika tiba terlalu terlambat, tidak bersaing di dalam batas yang sama dengan menawar lebih tinggi. Itu pindah ke yang berikutnya.
Saya melacak strategi multi-transaksi di beberapa blok berturut-turut selama uji kemacetan. Di banyak sistem, bahkan ketika Anda merancang transaksi untuk dieksekusi secara berurutan, selalu ada risiko bahwa transaksi yang tidak terkait akan menyelinap di antara mereka karena urutan tetap cair sampai momen terakhir. Di Fogo, cairan itu berkurang. Begitu transaksi berada di dalam irisan penjadwalan yang sama, ada jauh lebih sedikit pengacakan tengah-jendela. Urutan itu dieksekusi seperti yang dimodelkan dalam batasan itu atau berpindah dengan bersih ke yang berikutnya. Ketidakpastian yang biasanya muncul di bawah tekanan digantikan oleh antrean yang lebih jelas.
Ini menghasilkan jenis pembatasan yang berbeda. Di sebagian besar rantai dengan varians tinggi, jika Anda melihat bahwa Anda akan kehilangan posisi, Anda dapat mencoba untuk meningkatkan biaya Anda dan bergerak maju dalam blok yang sama. Hasilnya tidak pasti, tetapi opsi itu ada. Di Fogo, opsi itu terbatas. Penjadwal memprioritaskan pengurutan yang dapat diprediksi daripada penetapan harga detik terakhir. Begitu batas penjadwalan secara efektif ditentukan, meningkatkan biaya Anda tidak menjamin bahwa Anda akan melompat ke depan dalam irisan itu. Jika Anda melewatkan jendela, Anda menunggu. Sistem ini mengurangi varians waktu, tetapi juga mengurangi kemampuan untuk bereaksi di dalam jendela waktu tersebut.
Lapisan propagasi mendukung struktur ini. Validator berkoordinasi di sekitar interval waktu yang terdefinisi, dan propagasi transaksi disetel untuk berkumpul dalam latensi terbatas sebelum finalisasi. Desain ini tidak bertujuan untuk memaksimalkan fleksibilitas dalam komposisi blok pada saat terakhir yang mungkin. Ini bertujuan untuk memastikan bahwa apa yang dilihat validator cepat dan konsisten. Ketika lalu lintas meningkat, sistem melindungi jaminan waktu tersebut daripada meregangkan untuk menyerap pengurutan yang lebih oportunistik. Hasilnya adalah bahwa di bawah tekanan Anda melihat antrean yang teratur daripada penetapan harga yang kacau.
Saya menguji arbitrase yang sensitif terhadap latensi yang bergantung pada celah waktu kecil antara dua pasar terkait. Di sistem yang lebih elastis, ada momen ketika satu pembaruan status terlihat sementara yang lain sedikit tertinggal. Celah itu dapat menciptakan peluang. Di Fogo, celah-celah itu lebih sempit karena transisi status menyebar dan menyelesaikan dalam amplop waktu yang lebih ketat. Validator mengamati perubahan dalam keselarasan yang lebih dekat. Logika arbitrase dieksekusi dengan benar, tetapi keuntungannya berkurang karena sistem mengurangi ambiguitas yang bergantung pada strategi tersebut. Tidak ada yang mengalami kerusakan. Lingkungan hanya menawarkan asimetri waktu yang lebih sedikit untuk dieksploitasi.
Koordinasi validator di bawah model ini membawa persyaratan nyata. Untuk mempertahankan penjadwalan deterministik dan latensi terbatas, validator perlu kinerja dan konektivitas yang dapat diandalkan. Selama uji stres dengan keterlambatan propagasi kecil antara node yang jauh secara geografis, sistem lebih memilih untuk menunda finalisasi sedikit daripada membiarkan pandangan transaksi yang menyimpang melewati dan menyelesaikan nanti. Konsistensi dipertahankan, tetapi dengan biaya ekspektasi infrastruktur yang lebih ketat. Desain ini mentoleransi varians yang lebih sedikit dalam kinerja validator karena jaminan waktu bergantung pada hal itu.
Satu kondisi batas membuat kompromi menjadi jelas. Sekelompok transaksi yang menargetkan kontrak yang sama tiba di dekat tepi jendela penjadwalan. Beberapa memasuki irisan saat ini. Lainnya, hanya sedikit kemudian, bergulir ke yang berikutnya. Di sistem yang didorong oleh biaya, transaksi yang tertinggal mungkin telah mencoba untuk mengalahkan tawaran dan memaksa pengurutan sebagian dalam blok yang sama. Di Fogo, pemisahan tetap bersih. Penjadwal tidak membuka kembali batas untuk mengakomodasi tawaran yang lebih tinggi. Untuk aplikasi yang mengandalkan urutan yang stabil, prediktabilitas ini menguntungkan. Untuk seorang trader yang mencoba untuk memasukkan diri di depan pesaing pada detik terakhir, peluang itu tidak ada.
Eksekusi determinisme memperluas melalui finalisasi. Karena urutan sangat terkait dengan batas penjadwalan, finalitas berperilaku sebagai kelanjutan dari struktur itu daripada sebagai tahap kedua dari penyaringan probabilistik. Selama lonjakan beban, saya tidak mengamati reorganisasi mikro oportunistik yang digunakan untuk menangkap biaya lebih tinggi dengan mengubah urutan transaksi. Mekanika sistem mengurangi insentif dan ruang untuk perilaku itu. Waktu tetap terkontrol, dan urutan tetap selaras di seluruh validator.
Implikasinya tergantung pada apa yang Anda bangun atau jalankan. Jika aplikasi Anda memerlukan eksekusi multi-langkah yang sangat terkoordinasi, di mana interleaving yang tidak terduga dapat merusak asumsi, kekakuan Fogo menyederhanakan lingkungan. Anda dapat memperkirakan waktu inklusi dengan ketidakpastian yang lebih sempit. Anda kurang terpapar pada pengacakan tiba-tiba yang dipicu oleh tekanan biaya. Namun, jika strategi Anda bergantung pada mengeksploitasi ambiguitas urutan, penetapan harga dinamis, atau ketidakcocokan waktu singkat antara peserta, lingkungan menawarkan fleksibilitas yang lebih sedikit. Mekanisme yang sama yang mengurangi varians juga mengurangi manuver strategis.
Ada gesekan yang jujur dalam desain ini. Penjadwalan deterministik dengan latensi terbatas membutuhkan kinerja validator yang disiplin dan meningkatkan biaya infrastruktur. Alat yang dibangun di sekitar eskalasi biaya elastis harus beradaptasi dengan sistem di mana tawaran terlambat memiliki dampak terbatas dalam batas penjadwalan. Beberapa strategi kehilangan keunggulan bukan karena mereka cacat, tetapi karena lingkungan tidak lagi menghasilkan ketidakkonsistenan waktu yang mereka andalkan.
Apa yang biasanya runtuh di bawah beban adalah prediktabilitas waktu eksekusi. Di Fogo, prediktabilitas itu sebagian besar bertahan. Komprominya adalah bahwa kemampuan untuk membentuk ulang waktu pada detik terakhir menjadi terbatasi secara struktural.