Paralelisasi EVM: Terobosan untuk Meningkatkan Kinerja Ethereum

robot
Pembuatan abstrak sedang berlangsung

EVM Paralelisasi: Kunci untuk Mengatasi Hambatan Performa Ethereum

EVM sebagai mesin eksekusi Ethereum dan lingkungan operasi kontrak pintar adalah salah satu komponen terpenting. Untuk memastikan bahwa kontrak pintar menghasilkan hasil yang sama di berbagai node dan memenuhi persyaratan konsistensi, teknologi mesin virtual menjadi pilihan terbaik. EVM dapat menjalankan kontrak pintar dengan cara yang sama di berbagai sistem operasi dan perangkat, yang menjamin kompatibilitas lintas platform.

Kontrak pintar akan dikompilasi menjadi kode byte EVM sebelum diunggah ke blockchain. Saat EVM mengeksekusi kontrak, ia membaca kode byte ini secara urut, dan setiap instruksi memiliki biaya Gas yang sesuai. EVM akan melacak konsumsi Gas selama proses eksekusi setiap instruksi, dan jumlah yang dikonsumsi tergantung pada kompleksitas operasi.

Sebagai mesin eksekusi inti, EVM memproses transaksi secara serial, semua transaksi mengantri dalam satu antrean dan dieksekusi sesuai urutan yang ditentukan. Desain ini sederhana dan mudah dikelola, tetapi seiring dengan semakin besarnya kelompok pengguna dan perkembangan teknologi, hambatan kinerjanya semakin terlihat, terutama dalam Layer2.

Untuk komponen kunci Layer2, Sequencer, jika modul pendukung memiliki efisiensi yang cukup tinggi, maka akhirnya bottleneck akan bergantung pada efisiensi Sequencer itu sendiri. Beberapa tim telah mengoptimalkan secara ekstrem, sehingga Sequencer dapat mengeksekusi sekitar 2000 lebih transaksi ERC-20 per detik. Namun, untuk transaksi yang lebih kompleks, TPS pasti akan turun secara signifikan. Oleh karena itu, paralelisasi pemrosesan transaksi menjadi tren yang tak terhindarkan di masa depan.

Dengan Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Komponen inti dari eksekusi transaksi Ethereum

Selain EVM, komponen inti lain yang terkait erat dengan eksekusi transaksi adalah stateDB, yang digunakan untuk mengelola status akun dan penyimpanan data di Ethereum. Ethereum menggunakan struktur pohon Merkle Patricia Trie sebagai indeks basis data. Setiap kali eksekusi transaksi dilakukan, beberapa data dalam stateDB akan berubah, dan perubahan ini akhirnya tercermin dalam pohon status global.

stateDB bertanggung jawab untuk memelihara semua status akun Ethereum, termasuk akun EOA dan akun kontrak, menyimpan saldo akun, kode kontrak pintar, dan data lainnya. Selama proses eksekusi transaksi, stateDB akan membaca dan menulis data akun yang bersangkutan. Setelah eksekusi transaksi selesai, stateDB akan mengirimkan status baru ke database dasar untuk dilakukan penyimpanan secara permanen.

Secara keseluruhan, EVM bertanggung jawab untuk menginterpretasikan dan mengeksekusi instruksi kontrak pintar, mengubah status blockchain berdasarkan hasil perhitungan, sementara stateDB berfungsi sebagai penyimpanan status global, mengelola semua perubahan status akun dan kontrak. Keduanya berkolaborasi membangun lingkungan eksekusi transaksi Ethereum.

Mengambil Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Keterbatasan Eksekusi Serial

Transaksi di Ethereum dibagi menjadi dua kategori: transfer EOA dan transaksi kontrak. Transfer EOA adalah jenis transaksi yang paling sederhana, dengan kecepatan pemrosesan yang cepat dan biaya gas yang rendah. Sementara itu, transaksi kontrak melibatkan pemanggilan dan pelaksanaan kontrak pintar, di mana EVM perlu mengeksekusi dan menafsirkan instruksi bytecode dalam kontrak satu per satu, yang meningkatkan kompleksitas dan konsumsi sumber daya.

Dalam mode eksekusi serial, transaksi dalam blok diproses satu per satu sesuai urutan. Setiap transaksi memiliki instans EVM yang independen, tetapi semua transaksi berbagi stateDB yang sama. EVM perlu terus berinteraksi dengan stateDB selama proses eksekusi, membaca data dan menulis kembali hasil yang telah diubah.

Bottleneck dari mode eksekusi serial ini jelas: transaksi harus dieksekusi dalam antrean, jika ada transaksi kontrak pintar yang memakan waktu lama, transaksi lainnya hanya bisa menunggu, tidak dapat memanfaatkan sumber daya perangkat keras secara maksimal, efisiensi menjadi sangat terbatas.

Mengambil Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Optimalisasi Paralel Multithreading EVM

Untuk mengatasi batasan eksekusi serial, industri telah mengusulkan solusi optimasi paralel multithreading untuk EVM. Solusi ini mirip dengan bank yang memiliki banyak loket yang melayani secara bersamaan, sehingga dapat memproses beberapa transaksi sekaligus dan secara signifikan meningkatkan efisiensi. Namun, tantangan utama yang dihadapi dalam eksekusi paralel adalah masalah konflik status, yang memerlukan langkah-langkah khusus untuk menanganinya.

Pemikiran optimasi paralel EVM untuk proyek tertentu adalah sebagai berikut:

  1. Atur beberapa thread untuk memproses transaksi yang berbeda secara bersamaan, thread tidak saling mengganggu.

  2. Alokasikan database status sementara yang independen (pending-stateDB) untuk setiap thread. Ketika setiap thread menjalankan transaksi, perubahan status dicatat sementara di pending-stateDB, bukan langsung mengubah stateDB global.

  3. Setelah semua transaksi dalam blok dieksekusi, perubahan status di masing-masing pending-stateDB akan disinkronkan secara berurutan ke global stateDB. Jika tidak ada konflik, catatan dapat digabungkan dengan lancar.

Dengan Reddio sebagai contoh, menjelaskan jalan optimisasi EVM paralel

Rencana ini mengoptimalkan operasi baca dan tulis:

  • Operasi baca: pertama periksa ReadSet dalam status Pending, jika ada data yang diperlukan langsung baca; jika tidak, baca status historis dari stateDB global blok sebelumnya.

  • Operasi tulis: Semua modifikasi terlebih dahulu dicatat ke WriteSet dalam Pending-state, dan setelah transaksi selesai dieksekusi, akan dicoba untuk digabungkan ke stateDB global.

Dengan Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Untuk mengatasi masalah konflik status, mekanisme deteksi konflik diperkenalkan:

  • Memantau ReadSet dan WriteSet dari berbagai transaksi, menganggap beberapa transaksi yang mencoba membaca dan menulis item status yang sama sebagai konflik.
  • Tandai transaksi konflik sebagai perlu dieksekusi ulang.

Menggunakan Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Setelah semua eksekusi transaksi selesai, catatan perubahan dari beberapa pending-stateDB digabungkan ke dalam global stateDB. Setelah penggabungan berhasil, status akhir diserahkan ke pohon status global, menghasilkan root status baru.

Mengambil Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Penelitian menunjukkan bahwa dalam beban kerja dengan konflik rendah, TPS yang dieksekusi secara paralel meningkat 3-5 kali dibandingkan dengan eksekusi serial tradisional. Dalam beban kerja dengan konflik tinggi, secara teoretis setelah dioptimalkan sepenuhnya, bahkan dapat mencapai peningkatan 60 kali.

Dengan Reddio sebagai contoh, menjelaskan jalan optimisasi EVM paralel

Mengambil Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Ringkasan

Solusi optimisasi paralel multithreading EVM secara signifikan meningkatkan kapasitas pemrosesan transaksi dengan mengalokasikan perpustakaan status sementara untuk setiap transaksi dan mengeksekusi transaksi secara paralel di berbagai thread. Dengan mengoptimalkan operasi baca-tulis dan memperkenalkan mekanisme deteksi konflik, solusi ini mencapai paralelisasi transaksi dalam skala besar dengan menjamin konsistensi status, menyelesaikan titik kemacetan kinerja dari mode eksekusi serial tradisional. Ini meletakkan dasar yang penting untuk pengembangan masa depan Rollup Ethereum.

Di masa depan, masih bisa dieksplorasi lebih lanjut bagaimana mengoptimalkan efisiensi penyimpanan, menghadapi situasi konflik tinggi, serta melakukan optimasi dengan GPU, untuk lebih meningkatkan kinerja EVM.

Menggunakan Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Menggunakan Reddio sebagai contoh, menjelaskan jalan optimasi EVM paralel

Lihat Asli
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.
  • Hadiah
  • 6
  • Bagikan
Komentar
0/400
down_only_larryvip
· 7jam yang lalu
naik lah Vitalik Buterin akhirnya tercerahkan
Lihat AsliBalas0
BlockTalkvip
· 7jam yang lalu
Terserah mau lihat atau tidak, yang penting tps-nya naik.
Lihat AsliBalas0
LiquidityOraclevip
· 7jam yang lalu
Lagi-lagi membuat masalah
Lihat AsliBalas0
All-InQueenvip
· 7jam yang lalu
Artinya transfernya jadi lebih cepat?
Lihat AsliBalas0
ProveMyZKvip
· 7jam yang lalu
Optimisasi kinerja ini adalah untuk pemain kelas atas.
Lihat AsliBalas0
SmartContractPlumbervip
· 7jam yang lalu
Langsung melihat risiko skalabilitas, desain mekanisme penguncian terlalu naif.
Lihat AsliBalas0
  • Sematkan
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)