Optimalisasi Paralel EVM: Kunci untuk Meningkatkan Kinerja Blockchain
EVM sebagai mesin eksekusi inti Ethereum, telah menggunakan metode serial untuk memproses transaksi. Meskipun metode ini sederhana dan mudah dipelihara, dengan berkembangnya jumlah pengguna dan kemajuan teknologi, hambatan kinerjanya semakin jelas. Terutama di era aplikasi luas teknologi Rollup saat ini, eksekusi serial EVM telah menjadi faktor penting yang membatasi perkembangan jaringan lapisan kedua.
Sequencer sebagai komponen inti Layer2, mengambil semua tugas komputasi dalam bentuk server tunggal. Ketika modul lain cukup efisien, kapasitas pemrosesan Sequencer sendiri menjadi bottleneck akhir. Beberapa tim telah mengoptimalkan lapisan DA dan modul baca/tulis data, sehingga Sequencer dapat melakukan sekitar 2000 transaksi ERC-20 per detik. Angka ini tampaknya tidak rendah, tetapi ketika dihadapkan dengan transaksi yang lebih kompleks, TPS pasti akan mengalami penurunan yang signifikan. Oleh karena itu, paralelisasi pemrosesan transaksi menjadi tren perkembangan yang tak terhindarkan di masa depan.
Dalam struktur kode Ethereum, selain EVM, stateDB juga merupakan komponen inti yang terkait erat dengan eksekusi transaksi. Ia bertanggung jawab untuk mengelola status akun dan penyimpanan data di Ethereum. Setiap kali EVM mengeksekusi transaksi, ia akan mengubah beberapa data dalam stateDB, dan perubahan ini akhirnya tercermin dalam pohon status global.
stateDB terutama memelihara status semua akun Ethereum, termasuk akun biasa dan akun kontrak, menyimpan saldo akun, kode kontrak pintar, dan informasi lainnya. Selama proses eksekusi transaksi, stateDB membaca dan menulis data akun yang relevan, dan setelah eksekusi selesai, status baru diserahkan ke database bawah untuk disimpan secara permanen.
Dalam mode eksekusi serial tradisional, transaksi dalam satu blok diproses satu per satu sesuai urutan. Setiap transaksi memiliki instansi EVM independen yang melakukan operasi spesifik, tetapi semua transaksi berbagi stateDB yang sama. EVM perlu sering berinteraksi dengan stateDB selama eksekusi, membaca dan menulis data yang relevan.
Kekurangan dari mode eksekusi serial ini sangat jelas: transaksi harus antre untuk dieksekusi, jika ada transaksi kontrak kompleks yang memakan waktu lama, transaksi selanjutnya hanya bisa menunggu dengan terpaksa, tidak dapat memanfaatkan sumber daya perangkat keras secara maksimal, yang secara serius membatasi efisiensi pemrosesan.
Untuk mengatasi kendala ini, industri telah mengusulkan solusi optimasi paralel multithreading EVM. Gagasan inti adalah membuka beberapa thread untuk memproses banyak transaksi secara bersamaan, secara signifikan meningkatkan efisiensi. Namun, tantangan utama yang dihadapi oleh eksekusi paralel adalah bagaimana menangani masalah konflik status.
Pendekatan optimasi paralel EVM dari suatu proyek patut diperhatikan. Mereka mengalokasikan satu transaksi dan satu basis data status sementara (pending-stateDB) untuk setiap thread. Langkah-langkahnya adalah sebagai berikut:
Eksekusi transaksi secara paralel dengan multi-threading, setiap thread tidak saling mengganggu.
Setiap thread memiliki pending-stateDB yang independen, saat eksekusi transaksi tidak langsung mengubah global stateDB, melainkan menyimpan perubahan status sementara di pending-stateDB.
Setelah semua transaksi di dalam blok dieksekusi, EVM akan menyinkronkan perubahan status dari masing-masing pending-stateDB ke global stateDB.
Proyek ini juga telah mengoptimalkan operasi baca dan tulis:
Saat melakukan operasi baca, EVM terlebih dahulu memeriksa ReadSet dari Pending-state. Jika data yang diperlukan tersedia, langsung dibaca dari pending-stateDB; jika tidak, dibaca dari stateDB global blok sebelumnya untuk status historis.
Operasi penulisan tidak ditulis langsung ke stateDB global, tetapi terlebih dahulu dicatat ke WriteSet Pending-state. Setelah eksekusi transaksi selesai, akan dilakukan deteksi konflik sebelum mencoba menggabungkan ke stateDB global.
Untuk mengatasi masalah konflik status, proyek ini memperkenalkan mekanisme deteksi konflik:
Selama proses eksekusi, memantau ReadSet dan WriteSet dari berbagai transaksi, dan menganggap sebagai konflik jika beberapa transaksi membaca dan menulis item status yang sama.
Tandai transaksi konflik sebagai perlu dieksekusi ulang.
Setelah semua transaksi dieksekusi, beberapa catatan perubahan pending-stateDB digabungkan ke dalam global stateDB. Setelah penggabungan berhasil, status akhir diserahkan ke pohon status global, menghasilkan akar status baru.
Optimisasi paralel multithreading secara signifikan meningkatkan kinerja, terutama saat menangani transaksi kontrak pintar yang kompleks. Penelitian menunjukkan bahwa, pada beban kerja dengan konflik rendah, TPS dari pengujian benchmark meningkat 3-5 kali dibandingkan dengan eksekusi serial tradisional. Pada beban kerja dengan konflik tinggi, secara teori, dengan menerapkan semua metode optimisasi dapat mencapai peningkatan hingga 60 kali.
Solusi optimasi paralel multi-thread EVM ini, dengan mengalokasikan pustaka status sementara untuk setiap transaksi dan menjalankan eksekusi secara paralel di berbagai thread, secara signifikan meningkatkan kemampuan pemrosesan transaksi EVM. Dengan mengoptimalkan operasi baca-tulis dan memperkenalkan mekanisme deteksi konflik, solusi ini mencapai paralelisasi transaksi dalam skala besar sambil menjaga konsistensi status, secara efektif mengatasi bottleneck kinerja dari model eksekusi serial tradisional. Ini meletakkan dasar yang penting untuk perluasan masa depan ekosistem Ethereum.
Arah penelitian di masa depan mungkin mencakup pengoptimalan efisiensi penyimpanan lebih lanjut, perbaikan solusi penanganan dalam situasi konflik tinggi, serta eksplorasi penggunaan GPU untuk pengoptimalan. Kemajuan ini akan memberikan dorongan baru untuk perkembangan berkelanjutan teknologi Blockchain.
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.
14 Suka
Hadiah
14
7
Posting ulang
Bagikan
Komentar
0/400
MEVVictimAlliance
· 11jam yang lalu
Kepala saya mulai pusing karena thread yang bersamaan ini.
Lihat AsliBalas0
MelonField
· 11jam yang lalu
Masih membicarakan evm, terlihat tidak baik.
Lihat AsliBalas0
MetaDreamer
· 11jam yang lalu
Peningkatan kinerja 60 kali lipat? gm kembali harus memulai satu pekerjaan.
Lihat AsliBalas0
TestnetScholar
· 11jam yang lalu
Kartu ini, segera optimalkan ya
Lihat AsliBalas0
faded_wojak.eth
· 11jam yang lalu
Karla paralel To da moon ah
Lihat AsliBalas0
BugBountyHunter
· 11jam yang lalu
Jika terjebak, harus dilakukan secara paralel dan berkompetisi!
Lihat AsliBalas0
DefiPlaybook
· 11jam yang lalu
Tenggorokan ini tidak hanya menunggu untuk dicabut? Robot yang melarikan diri sangat senang.
Optimasi paralel EVM: Teknologi kunci untuk meningkatkan performa Blockchain hingga 60 kali lipat
Optimalisasi Paralel EVM: Kunci untuk Meningkatkan Kinerja Blockchain
EVM sebagai mesin eksekusi inti Ethereum, telah menggunakan metode serial untuk memproses transaksi. Meskipun metode ini sederhana dan mudah dipelihara, dengan berkembangnya jumlah pengguna dan kemajuan teknologi, hambatan kinerjanya semakin jelas. Terutama di era aplikasi luas teknologi Rollup saat ini, eksekusi serial EVM telah menjadi faktor penting yang membatasi perkembangan jaringan lapisan kedua.
Sequencer sebagai komponen inti Layer2, mengambil semua tugas komputasi dalam bentuk server tunggal. Ketika modul lain cukup efisien, kapasitas pemrosesan Sequencer sendiri menjadi bottleneck akhir. Beberapa tim telah mengoptimalkan lapisan DA dan modul baca/tulis data, sehingga Sequencer dapat melakukan sekitar 2000 transaksi ERC-20 per detik. Angka ini tampaknya tidak rendah, tetapi ketika dihadapkan dengan transaksi yang lebih kompleks, TPS pasti akan mengalami penurunan yang signifikan. Oleh karena itu, paralelisasi pemrosesan transaksi menjadi tren perkembangan yang tak terhindarkan di masa depan.
Dalam struktur kode Ethereum, selain EVM, stateDB juga merupakan komponen inti yang terkait erat dengan eksekusi transaksi. Ia bertanggung jawab untuk mengelola status akun dan penyimpanan data di Ethereum. Setiap kali EVM mengeksekusi transaksi, ia akan mengubah beberapa data dalam stateDB, dan perubahan ini akhirnya tercermin dalam pohon status global.
stateDB terutama memelihara status semua akun Ethereum, termasuk akun biasa dan akun kontrak, menyimpan saldo akun, kode kontrak pintar, dan informasi lainnya. Selama proses eksekusi transaksi, stateDB membaca dan menulis data akun yang relevan, dan setelah eksekusi selesai, status baru diserahkan ke database bawah untuk disimpan secara permanen.
Dalam mode eksekusi serial tradisional, transaksi dalam satu blok diproses satu per satu sesuai urutan. Setiap transaksi memiliki instansi EVM independen yang melakukan operasi spesifik, tetapi semua transaksi berbagi stateDB yang sama. EVM perlu sering berinteraksi dengan stateDB selama eksekusi, membaca dan menulis data yang relevan.
Kekurangan dari mode eksekusi serial ini sangat jelas: transaksi harus antre untuk dieksekusi, jika ada transaksi kontrak kompleks yang memakan waktu lama, transaksi selanjutnya hanya bisa menunggu dengan terpaksa, tidak dapat memanfaatkan sumber daya perangkat keras secara maksimal, yang secara serius membatasi efisiensi pemrosesan.
Untuk mengatasi kendala ini, industri telah mengusulkan solusi optimasi paralel multithreading EVM. Gagasan inti adalah membuka beberapa thread untuk memproses banyak transaksi secara bersamaan, secara signifikan meningkatkan efisiensi. Namun, tantangan utama yang dihadapi oleh eksekusi paralel adalah bagaimana menangani masalah konflik status.
Pendekatan optimasi paralel EVM dari suatu proyek patut diperhatikan. Mereka mengalokasikan satu transaksi dan satu basis data status sementara (pending-stateDB) untuk setiap thread. Langkah-langkahnya adalah sebagai berikut:
Eksekusi transaksi secara paralel dengan multi-threading, setiap thread tidak saling mengganggu.
Setiap thread memiliki pending-stateDB yang independen, saat eksekusi transaksi tidak langsung mengubah global stateDB, melainkan menyimpan perubahan status sementara di pending-stateDB.
Setelah semua transaksi di dalam blok dieksekusi, EVM akan menyinkronkan perubahan status dari masing-masing pending-stateDB ke global stateDB.
Proyek ini juga telah mengoptimalkan operasi baca dan tulis:
Saat melakukan operasi baca, EVM terlebih dahulu memeriksa ReadSet dari Pending-state. Jika data yang diperlukan tersedia, langsung dibaca dari pending-stateDB; jika tidak, dibaca dari stateDB global blok sebelumnya untuk status historis.
Operasi penulisan tidak ditulis langsung ke stateDB global, tetapi terlebih dahulu dicatat ke WriteSet Pending-state. Setelah eksekusi transaksi selesai, akan dilakukan deteksi konflik sebelum mencoba menggabungkan ke stateDB global.
Untuk mengatasi masalah konflik status, proyek ini memperkenalkan mekanisme deteksi konflik:
Selama proses eksekusi, memantau ReadSet dan WriteSet dari berbagai transaksi, dan menganggap sebagai konflik jika beberapa transaksi membaca dan menulis item status yang sama.
Tandai transaksi konflik sebagai perlu dieksekusi ulang.
Setelah semua transaksi dieksekusi, beberapa catatan perubahan pending-stateDB digabungkan ke dalam global stateDB. Setelah penggabungan berhasil, status akhir diserahkan ke pohon status global, menghasilkan akar status baru.
Optimisasi paralel multithreading secara signifikan meningkatkan kinerja, terutama saat menangani transaksi kontrak pintar yang kompleks. Penelitian menunjukkan bahwa, pada beban kerja dengan konflik rendah, TPS dari pengujian benchmark meningkat 3-5 kali dibandingkan dengan eksekusi serial tradisional. Pada beban kerja dengan konflik tinggi, secara teori, dengan menerapkan semua metode optimisasi dapat mencapai peningkatan hingga 60 kali.
Solusi optimasi paralel multi-thread EVM ini, dengan mengalokasikan pustaka status sementara untuk setiap transaksi dan menjalankan eksekusi secara paralel di berbagai thread, secara signifikan meningkatkan kemampuan pemrosesan transaksi EVM. Dengan mengoptimalkan operasi baca-tulis dan memperkenalkan mekanisme deteksi konflik, solusi ini mencapai paralelisasi transaksi dalam skala besar sambil menjaga konsistensi status, secara efektif mengatasi bottleneck kinerja dari model eksekusi serial tradisional. Ini meletakkan dasar yang penting untuk perluasan masa depan ekosistem Ethereum.
Arah penelitian di masa depan mungkin mencakup pengoptimalan efisiensi penyimpanan lebih lanjut, perbaikan solusi penanganan dalam situasi konflik tinggi, serta eksplorasi penggunaan GPU untuk pengoptimalan. Kemajuan ini akan memberikan dorongan baru untuk perkembangan berkelanjutan teknologi Blockchain.