Jalan Paralelisasi EVM: Dari Eksekusi Serial ke Multithreading
Seperti yang kita ketahui, EVM adalah mesin eksekusi inti Ethereum yang bertanggung jawab atas pelaksanaan kontrak pintar. Untuk memastikan bahwa kontrak pintar di berbagai node menghasilkan hasil eksekusi yang sama, EVM menyediakan lingkungan virtual yang seragam, mirip dengan Java Virtual Machine (JVM).
Kontrak pintar, saat dikerahkan ke blockchain, akan terlebih dahulu 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 saat setiap instruksi dieksekusi, jumlah konsumsi tergantung pada kompleksitas operasi.
EVM tradisional memproses transaksi secara serial, di mana semua transaksi mengantri dalam satu antrean untuk dieksekusi secara berurutan. Desain ini sederhana dan mudah dipelihara, tetapi seiring pertumbuhan jumlah pengguna dan peningkatan permintaan TPS, bottleneck kinerja dari eksekusi serial semakin terlihat, terutama dalam solusi Layer 2.
Selain EVM, komponen inti lain dalam eksekusi transaksi Ethereum adalah stateDB, yang digunakan untuk mengelola status akun dan penyimpanan data. Setiap kali EVM mengeksekusi transaksi, data dalam stateDB akan diperbarui, dan perubahan ini akhirnya tercermin dalam pohon status global.
Dalam mode eksekusi serial, proses kolaborasi EVM dan stateDB untuk memproses transaksi adalah sebagai berikut:
Transaksi dalam satu blok diproses secara berurutan.
Setiap transaksi menggunakan instance EVM yang independen, tetapi berbagi stateDB yang sama
Selama proses eksekusi EVM terus berinteraksi dengan stateDB, membaca dan menulis data.
Setelah semua transaksi diproses, perubahan di stateDB akan diserahkan ke pohon status global.
Masalah utama dari mode serial ini adalah, transaksi kontrak pintar yang kompleks dapat menghalangi transaksi lainnya, sehingga tidak dapat memanfaatkan sumber daya perangkat keras secara maksimal.
Untuk mengatasi masalah ini, beberapa proyek mulai mengeksplorasi solusi optimasi paralel EVM. Sebagai contoh proyek Layer 2 tertentu, inti pemikirannya adalah untuk memberikan setiap thread sebuah basis data status sementara (pending-stateDB):
Eksekusi perdagangan yang berbeda secara paralel dengan multithreading
Setiap thread menggunakan pending-stateDB yang independen untuk mencatat perubahan status
Setelah semua transaksi dieksekusi, perubahan di pending-stateDB akan disinkronkan ke global stateDB.
Proposal ini melakukan penanganan khusus untuk operasi baca-tulis:
Operasi baca pertama-tama memeriksa pending-stateDB, jika tidak ada data maka membaca global stateDB
Operasi penulisan disimpan sementara di pending-stateDB, tidak langsung mengubah global stateDB
Untuk menghindari konflik status, skema ini memperkenalkan mekanisme deteksi konflik:
Memantau apakah ada tumpang tindih antara kumpulan baca dan tulis dari transaksi yang berbeda
Tandai transaksi terkait yang perlu dieksekusi ulang saat konflik ditemukan
Akhirnya, gabungkan beberapa perubahan pending-stateDB ke dalam global stateDB untuk menghasilkan akar status baru.
Skema optimasi paralel ini dapat meningkatkan TPS 3-5 kali lipat pada beban kerja dengan konflik rendah. Dalam situasi konflik tinggi, secara teori dapat mencapai peningkatan 60 kali lipat.
Secara keseluruhan, paralelisasi EVM adalah arah penting untuk meningkatkan kinerja Ethereum dan Layer 2-nya. Melalui teknologi eksekusi paralel multi-thread dan pustaka status sementara, kapasitas pemrosesan transaksi dapat ditingkatkan secara signifikan dengan tetap menjaga konsistensi. Di masa depan, EVM juga dapat ditingkatkan kinerjanya melalui optimasi efisiensi penyimpanan lebih lanjut, perbaikan strategi penanganan konflik, dan metode lainnya.
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.
8 Suka
Hadiah
8
5
Bagikan
Komentar
0/400
FlatTax
· 07-24 20:11
60 kali? Tidak ada pajak untuk berbicara besar
Lihat AsliBalas0
FastLeaver
· 07-22 02:02
Bagus, bisa meningkatkan TPS hingga 60 kali lipat.
Lihat AsliBalas0
NftDeepBreather
· 07-22 00:27
Setelah itu, BTC kembali sebagai raja.
Lihat AsliBalas0
CounterIndicator
· 07-22 00:11
bullish adalah puncak, turun adalah dasar
Lihat AsliBalas0
SerumDegen
· 07-22 00:10
hanya copium lain untuk pump eth sejujurnya... tampilkan saya angka tps yang sebenarnya terlebih dahulu
Terobosan paralelisasi EVM: Eksekusi multi-thread meningkatkan kemampuan pemrosesan transaksi
Jalan Paralelisasi EVM: Dari Eksekusi Serial ke Multithreading
Seperti yang kita ketahui, EVM adalah mesin eksekusi inti Ethereum yang bertanggung jawab atas pelaksanaan kontrak pintar. Untuk memastikan bahwa kontrak pintar di berbagai node menghasilkan hasil eksekusi yang sama, EVM menyediakan lingkungan virtual yang seragam, mirip dengan Java Virtual Machine (JVM).
Kontrak pintar, saat dikerahkan ke blockchain, akan terlebih dahulu 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 saat setiap instruksi dieksekusi, jumlah konsumsi tergantung pada kompleksitas operasi.
EVM tradisional memproses transaksi secara serial, di mana semua transaksi mengantri dalam satu antrean untuk dieksekusi secara berurutan. Desain ini sederhana dan mudah dipelihara, tetapi seiring pertumbuhan jumlah pengguna dan peningkatan permintaan TPS, bottleneck kinerja dari eksekusi serial semakin terlihat, terutama dalam solusi Layer 2.
Selain EVM, komponen inti lain dalam eksekusi transaksi Ethereum adalah stateDB, yang digunakan untuk mengelola status akun dan penyimpanan data. Setiap kali EVM mengeksekusi transaksi, data dalam stateDB akan diperbarui, dan perubahan ini akhirnya tercermin dalam pohon status global.
Dalam mode eksekusi serial, proses kolaborasi EVM dan stateDB untuk memproses transaksi adalah sebagai berikut:
Masalah utama dari mode serial ini adalah, transaksi kontrak pintar yang kompleks dapat menghalangi transaksi lainnya, sehingga tidak dapat memanfaatkan sumber daya perangkat keras secara maksimal.
Untuk mengatasi masalah ini, beberapa proyek mulai mengeksplorasi solusi optimasi paralel EVM. Sebagai contoh proyek Layer 2 tertentu, inti pemikirannya adalah untuk memberikan setiap thread sebuah basis data status sementara (pending-stateDB):
Proposal ini melakukan penanganan khusus untuk operasi baca-tulis:
Untuk menghindari konflik status, skema ini memperkenalkan mekanisme deteksi konflik:
Akhirnya, gabungkan beberapa perubahan pending-stateDB ke dalam global stateDB untuk menghasilkan akar status baru.
Skema optimasi paralel ini dapat meningkatkan TPS 3-5 kali lipat pada beban kerja dengan konflik rendah. Dalam situasi konflik tinggi, secara teori dapat mencapai peningkatan 60 kali lipat.
Secara keseluruhan, paralelisasi EVM adalah arah penting untuk meningkatkan kinerja Ethereum dan Layer 2-nya. Melalui teknologi eksekusi paralel multi-thread dan pustaka status sementara, kapasitas pemrosesan transaksi dapat ditingkatkan secara signifikan dengan tetap menjaga konsistensi. Di masa depan, EVM juga dapat ditingkatkan kinerjanya melalui optimasi efisiensi penyimpanan lebih lanjut, perbaikan strategi penanganan konflik, dan metode lainnya.