🔍 Di Balik @Rayls Axyl: Apa yang Terjadi Saat Komputasi State Root Paralel Gagal?

Eksekusi paralel dapat meningkatkan kinerja, tetapi apa yang terjadi jika komputasi state root paralel gagal saat pembuatan blok?

Saya menelusuri kode eksekusi Rayls Axyl dan menemukan tiga jalur berbeda untuk menghitung state root.

⚡ 1. Komputasi sparse

Axyl memulai komputasi sparse trie saat transaksi EVM sedang dieksekusi. Dengan begitu, kedua operasi dapat berlangsung secara bersamaan. Jika komputasi paralel berhasil, Axyl menggunakan state root dan pembaruan trie yang dihasilkan.

🔄 2. Fallback serial

Jika komputasi paralel menghasilkan error, Axyl mencoba menghitung state root kembali menggunakan metode serial. Kode tersebut juga mengubah panic dalam operasi sparse root yang dilindungi menjadi hasil error, sehingga pemanggil dapat masuk ke cabang fallback.

🛠️ 3. Komputasi serial langsung

Jika tugas paralel tidak dapat disiapkan, Axyl menempuh jalur yang berbeda. Karena fungsi sparse root tidak tersedia, state root dihitung langsung menggunakan metode serial.

Temuan utamanya adalah kegagalan penyiapan tugas dan kegagalan komputasi ditangani melalui cabang yang berbeda, meskipun keduanya dapat berujung pada komputasi state root secara serial.

Setelah memilih state root, Axyl meneruskannya ke proses perakitan blok. Kode tersebut juga mencatat jalur komputasi yang dipilih dalam log.

Satu batasan pentingnya: fallback tidak menjamin pemulihan dari setiap kegagalan. Jika perhitungan serial juga menghasilkan error, error tersebut diteruskan alih-alih diabaikan begitu saja.

Detail implementasi ini menunjukkan bagaimana Axyl menghubungkan komputasi paralel, penanganan error, pemulihan serial, dan pembuatan blok.