Optimisasi paralel EVM: Meningkatkan efisiensi pemrosesan transaksi Ethereum sebesar 5-60 kali

robot
Pembuatan abstrak sedang berlangsung

Optimisasi Paralelisasi EVM: Meningkatkan Efisiensi Pemrosesan Transaksi Ethereum

EVM sebagai mesin eksekusi inti Ethereum, memiliki posisi sebagai "lingkungan eksekusi kontrak pintar". Untuk memastikan bahwa kontrak pintar menghasilkan hasil yang konsisten di berbagai node, EVM menyediakan lingkungan mesin virtual lintas platform, mirip dengan mesin virtual Java JVM.

Kontrak pintar akan dikompilasi menjadi bytecode EVM dan disimpan di blockchain saat diterapkan. EVM membaca bytecode tersebut secara berurutan saat mengeksekusi kontrak, di mana setiap instruksi memiliki biaya Gas yang sesuai. EVM akan melacak konsumsi Gas selama proses eksekusi instruksi, dan jumlah konsumsi tergantung pada kompleksitas operasi.

Menggunakan Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

EVM tradisional memproses transaksi secara serial, dengan semua transaksi dieksekusi dalam urutan yang ditentukan di dalam satu antrean. Desain ini sederhana dan mudah untuk dikelola, tetapi seiring dengan peningkatan jumlah pengguna dan penerapan teknologi Rollup, kendala kinerja dari eksekusi serial semakin terlihat.

Dalam arsitektur Rollup, Sequencer sebagai komponen kunci Layer2 menjalankan semua tugas komputasi. Jika modul eksternal lainnya cukup efisien, eksekusi serial Sequencer itu sendiri akan menjadi hambatan terbesar. Beberapa tim telah mengoptimalkan secara ekstrem sehingga Sequencer dapat melakukan lebih dari 2000 transaksi ERC-20 per detik, tetapi untuk transaksi yang lebih kompleks, TPS masih akan menurun secara signifikan. Oleh karena itu, paralelisasi pemrosesan transaksi menjadi tren perkembangan di masa depan.

Selain EVM, komponen inti lainnya yang terkait dengan eksekusi transaksi dalam go-ethereum adalah stateDB, yang digunakan untuk mengelola status akun dan penyimpanan data. Ethereum menggunakan struktur pohon Merkle Patricia Trie sebagai indeks basis data, setiap eksekusi transaksi di EVM akan mengubah data dalam stateDB, yang akhirnya tercermin dalam pohon status global.

stateDB bertanggung jawab untuk memelihara semua status akun Ethereum, termasuk saldo akun, kode kontrak pintar, dll. Selama proses eksekusi transaksi, stateDB akan membaca dan menulis data akun yang sesuai, dan setelah eksekusi selesai, status baru akan disimpan ke dalam basis data tingkat bawah.

EVM dan stateDB bekerja sama untuk membangun lingkungan eksekusi transaksi Ethereum. EVM bertanggung jawab untuk menafsirkan eksekusi instruksi kontrak pintar, mengubah status blockchain berdasarkan hasil perhitungan, sementara stateDB berfungsi sebagai penyimpanan status global, mengelola semua perubahan status akun dan kontrak.

Dengan Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Dalam mode eksekusi serial, transaksi dalam satu blok akan diproses satu per satu sesuai urutan. Setiap transaksi menggunakan instansi EVM yang independen, tetapi semua transaksi berbagi stateDB yang sama. EVM perlu terus-menerus berinteraksi dengan stateDB selama proses eksekusi, membaca data terkait dan menulis kembali hasil perubahan.

Setelah semua transaksi dalam blok dieksekusi, data dalam stateDB akan diserahkan ke pohon status global, menghasilkan akar status baru. Bottleneck utama dari mode serial ini adalah transaksi harus dieksekusi dalam antrean, sehingga tidak dapat memanfaatkan sumber daya perangkat keras secara maksimal, terutama ketika menghadapi transaksi kontrak pintar yang kompleks, efisiensinya menjadi rendah.

Menggunakan Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Untuk meningkatkan efisiensi pemrosesan transaksi, beberapa proyek mulai mencoba optimasi paralel multithreading EVM. Ini mirip dengan bank yang membuka beberapa loket untuk melayani pelanggan secara bersamaan, yang dapat meningkatkan kecepatan pemrosesan beberapa kali lipat, tetapi perlu menyelesaikan masalah konflik status yang mungkin muncul.

Sebuah proyek ZKRollup memiliki pemikiran optimasi paralel untuk EVM dengan cara mengalokasikan satu basis data status sementara untuk setiap thread (pending-stateDB). Implementasi spesifiknya meliputi:

  1. Eksekusi transaksi secara paralel dengan multithreading, saling tidak mengganggu.

  2. Setiap thread memiliki pending-stateDB yang independen, perubahan status dicatat di sini saat eksekusi transaksi.

  3. Setelah semua transaksi selesai, perubahan dalam pending-stateDB akan disinkronkan ke global stateDB.

Dengan Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Sistem ini mengoptimalkan operasi baca dan tulis:

  • Saat melakukan operasi baca, periksa terlebih dahulu ReadSet dari pending-stateDB. Jika data yang diperlukan ada, baca langsung; jika tidak, ambil status historis dari global stateDB.

  • Operasi tulis tidak ditulis langsung ke stateDB global, tetapi terlebih dahulu dicatat ke dalam WriteSet pending-stateDB.

Dengan Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Untuk menangani konflik status, mekanisme deteksi konflik diperkenalkan:

  • Memantau ReadSet dan WriteSet dari transaksi yang berbeda, menemukan beberapa transaksi yang membaca dan menulis item status yang sama dianggap sebagai konflik.

  • Transaksi konflik akan ditandai sebagai perlu dieksekusi ulang.

Menggunakan Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Setelah semua transaksi dieksekusi, catatan perubahan dari beberapa pending-stateDB akan digabungkan ke dalam global stateDB, dan setelah berhasil akan diserahkan ke global state tree serta menghasilkan akar status baru.

Penelitian menunjukkan bahwa dalam beban kerja dengan konflik rendah, TPS EVM paralel meningkat 3-5 kali dibandingkan dengan eksekusi serial tradisional. Dalam beban kerja dengan konflik tinggi, secara teori dapat mencapai peningkatan hingga 60 kali.

Menggunakan Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Skema optimasi paralel multithreading ini, melalui pustaka status sementara dan pelaksanaan paralel, secara signifikan meningkatkan kemampuan pemrosesan transaksi EVM. Mengoptimalkan operasi baca/tulis dan memperkenalkan mekanisme deteksi konflik, memungkinkan paralelisasi transaksi dalam skala besar sambil menjamin konsistensi status, menyelesaikan hambatan kinerja dari eksekusi serial, dan meletakkan dasar untuk perkembangan masa depan Ethereum Rollup.

Dengan Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Dengan Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Dengan Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Menggunakan Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

ETH-0.02%
Lihat Asli
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.
  • Hadiah
  • 5
  • Bagikan
Komentar
0/400
AirdropHunterZhangvip
· 07-29 02:07
Tidak akan lagi, setiap hari 60 kali, tortilla masih dengan harga ini.
Lihat AsliBalas0
GateUser-afe07a92vip
· 07-28 22:11
Hanya sedikit peningkatan TPS saja.
Lihat AsliBalas0
ZKProofEnthusiastvip
· 07-28 22:09
Master chef tps secepat ini masih bisa on-chain privasi?
Lihat AsliBalas0
¯\_(ツ)_/¯vip
· 07-28 21:56
Teruskan penambangan, itu yang saya inginkan.
Lihat AsliBalas0
GateUser-aa7df71evip
· 07-28 21:48
masukkan posisi ya saudara-saudara TPS big pump akan datang
Lihat AsliBalas0
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)