Optimasi Paralel EVM: Meningkatkan Kinerja Pemrosesan Transaksi
Seperti yang kita ketahui, EVM adalah mesin eksekusi inti Ethereum yang bertanggung jawab untuk menjalankan kontrak pintar. Untuk memastikan konsistensi hasil eksekusi kontrak di berbagai node, EVM menggunakan teknologi mesin virtual untuk mencapai kompatibilitas lintas platform.
Kontrak pintar saat dideploy ke blockchain, akan pertama-tama dikompilasi menjadi bytecode EVM. EVM saat mengeksekusi kontrak, akan membaca bytecode ini secara berurutan, setiap instruksi memiliki biaya Gas yang sesuai. EVM akan melacak konsumsi Gas selama proses eksekusi instruksi, jumlah konsumsi tergantung pada kompleksitas operasi.
EVM tradisional memproses transaksi dengan cara serial, di mana semua transaksi dijalankan dalam satu antrean. Desain ini sederhana dan mudah dirawat, tetapi seiring dengan meningkatnya jumlah pengguna, tuntutan terhadap TPS dan throughput semakin tinggi, dan batasan kinerja dari eksekusi serial semakin terlihat, terutama di Layer 2.
Selain EVM, komponen inti lain yang terkait dengan eksekusi transaksi dalam go-ethereum adalah stateDB, yang digunakan untuk mengelola status akun dan penyimpanan data. Setiap kali EVM mengeksekusi transaksi, data dalam stateDB akan berubah, dan akhirnya mencerminkan dalam pohon status global.
Dalam mode serial, transaksi harus dieksekusi dalam urutan antrean. Jika ada transaksi kontrak kompleks yang memakan waktu lama, transaksi lainnya hanya bisa menunggu, tidak dapat memanfaatkan sumber daya perangkat keras secara penuh, efisiensinya sangat terbatas.
Untuk mengatasi masalah ini, industri telah mengusulkan solusi optimasi paralel multithreading untuk EVM. Solusi ini dapat meningkatkan efisiensi beberapa kali lipat dengan membuka beberapa thread untuk memproses banyak transaksi secara bersamaan. Namun, eksekusi paralel menghadapi tantangan konflik status, sehingga perlu mengambil langkah-langkah yang sesuai.
Beberapa proyek memiliki pendekatan untuk mengoptimalkan paralel EVM: mengalokasikan satu basis data status sementara untuk setiap thread (pending-stateDB). Saat thread mengeksekusi transaksi, perubahan status disimpan sementara di pending-stateDB, dan tidak langsung mengubah global stateDB. Setelah semua transaksi selesai dieksekusi, perubahan dari pending-stateDB akan disinkronkan ke global stateDB.
Rencana ini juga mengoptimalkan operasi baca dan tulis: saat membaca, pertama-tama memeriksa pending-stateDB, jika tidak ada, baru membaca global stateDB; operasi tulis dicatat di pending-stateDB, dan setelah eksekusi selesai, akan digabungkan ke global stateDB.
Untuk menangani konflik status, skema ini memperkenalkan mekanisme deteksi konflik. Memantau kumpulan baca/tulis dari transaksi yang berbeda, dan ketika menemukan konflik, transaksi terkait akan ditandai untuk dieksekusi ulang.
Optimisasi paralel multithreading secara signifikan meningkatkan kinerja EVM, terutama saat menangani kontrak pintar yang kompleks. Penelitian menunjukkan bahwa, pada beban kerja dengan konflik rendah, TPS dapat meningkat 3-5 kali; pada beban konflik tinggi, secara teoritis dapat mencapai 60 kali.
Skema optimisasi paralel ini mewujudkan paralelisasi transaksi secara besar-besaran sambil menjaga konsistensi status melalui perpustakaan status sementara dan deteksi konflik, yang meletakkan dasar penting untuk pengembangan Rollup Ethereum. Di masa depan, kinerja juga dapat ditingkatkan lebih lanjut dari sisi optimasi efisiensi penyimpanan, penanganan skenario konflik tinggi, dan percepatan GPU.
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.
11 Suka
Hadiah
11
6
Bagikan
Komentar
0/400
¯\_(ツ)_/¯
· 14jam yang lalu
Pengguna akhirnya tidak perlu menunggu sampai kiamat.
Lihat AsliBalas0
ReverseTradingGuru
· 14jam yang lalu
Akhirnya ada yang keras.
Lihat AsliBalas0
TxFailed
· 14jam yang lalu
psa: belajar tentang parallel evm dengan cara yang mahal... rip 2.3 eth saya
Lihat AsliBalas0
rugpull_survivor
· 14jam yang lalu
Dengar-dengar bisa lebih cepat 60 kali? Apakah bisa menurunkan biaya gas?
Lihat AsliBalas0
SilentAlpha
· 14jam yang lalu
60 kali, ini pasti akan menghasilkan banyak keuntungan!
Lihat AsliBalas0
LiquiditySurfer
· 15jam yang lalu
Martini sudah mencapai titik terendah, akhirnya tidak perlu menunggu biaya gas lagi.
Optimisasi paralel EVM Meningkatkan kinerja pemrosesan transaksi Ethereum hingga 60 kali lipat
Optimasi Paralel EVM: Meningkatkan Kinerja Pemrosesan Transaksi
Seperti yang kita ketahui, EVM adalah mesin eksekusi inti Ethereum yang bertanggung jawab untuk menjalankan kontrak pintar. Untuk memastikan konsistensi hasil eksekusi kontrak di berbagai node, EVM menggunakan teknologi mesin virtual untuk mencapai kompatibilitas lintas platform.
Kontrak pintar saat dideploy ke blockchain, akan pertama-tama dikompilasi menjadi bytecode EVM. EVM saat mengeksekusi kontrak, akan membaca bytecode ini secara berurutan, setiap instruksi memiliki biaya Gas yang sesuai. EVM akan melacak konsumsi Gas selama proses eksekusi instruksi, jumlah konsumsi tergantung pada kompleksitas operasi.
EVM tradisional memproses transaksi dengan cara serial, di mana semua transaksi dijalankan dalam satu antrean. Desain ini sederhana dan mudah dirawat, tetapi seiring dengan meningkatnya jumlah pengguna, tuntutan terhadap TPS dan throughput semakin tinggi, dan batasan kinerja dari eksekusi serial semakin terlihat, terutama di Layer 2.
Selain EVM, komponen inti lain yang terkait dengan eksekusi transaksi dalam go-ethereum adalah stateDB, yang digunakan untuk mengelola status akun dan penyimpanan data. Setiap kali EVM mengeksekusi transaksi, data dalam stateDB akan berubah, dan akhirnya mencerminkan dalam pohon status global.
Dalam mode serial, transaksi harus dieksekusi dalam urutan antrean. Jika ada transaksi kontrak kompleks yang memakan waktu lama, transaksi lainnya hanya bisa menunggu, tidak dapat memanfaatkan sumber daya perangkat keras secara penuh, efisiensinya sangat terbatas.
Untuk mengatasi masalah ini, industri telah mengusulkan solusi optimasi paralel multithreading untuk EVM. Solusi ini dapat meningkatkan efisiensi beberapa kali lipat dengan membuka beberapa thread untuk memproses banyak transaksi secara bersamaan. Namun, eksekusi paralel menghadapi tantangan konflik status, sehingga perlu mengambil langkah-langkah yang sesuai.
Beberapa proyek memiliki pendekatan untuk mengoptimalkan paralel EVM: mengalokasikan satu basis data status sementara untuk setiap thread (pending-stateDB). Saat thread mengeksekusi transaksi, perubahan status disimpan sementara di pending-stateDB, dan tidak langsung mengubah global stateDB. Setelah semua transaksi selesai dieksekusi, perubahan dari pending-stateDB akan disinkronkan ke global stateDB.
Rencana ini juga mengoptimalkan operasi baca dan tulis: saat membaca, pertama-tama memeriksa pending-stateDB, jika tidak ada, baru membaca global stateDB; operasi tulis dicatat di pending-stateDB, dan setelah eksekusi selesai, akan digabungkan ke global stateDB.
Untuk menangani konflik status, skema ini memperkenalkan mekanisme deteksi konflik. Memantau kumpulan baca/tulis dari transaksi yang berbeda, dan ketika menemukan konflik, transaksi terkait akan ditandai untuk dieksekusi ulang.
Optimisasi paralel multithreading secara signifikan meningkatkan kinerja EVM, terutama saat menangani kontrak pintar yang kompleks. Penelitian menunjukkan bahwa, pada beban kerja dengan konflik rendah, TPS dapat meningkat 3-5 kali; pada beban konflik tinggi, secara teoritis dapat mencapai 60 kali.
Skema optimisasi paralel ini mewujudkan paralelisasi transaksi secara besar-besaran sambil menjaga konsistensi status melalui perpustakaan status sementara dan deteksi konflik, yang meletakkan dasar penting untuk pengembangan Rollup Ethereum. Di masa depan, kinerja juga dapat ditingkatkan lebih lanjut dari sisi optimasi efisiensi penyimpanan, penanganan skenario konflik tinggi, dan percepatan GPU.