EVM paralel optimizasyonu: Ethereum işlem işleme verimliliğini 5-60 kat artırma

robot
Abstract generation in progress

EVM Paralelleştirme Optimizasyonu: Ethereum İşlem İşleme Verimliliğini Artırma

EVM, Ethereum'un temel yürütme motoru olarak, "akıllı sözleşme yürütme ortamı" olarak tanımlanmaktadır. Akıllı sözleşmelerin farklı düğümler üzerinde tutarlı sonuçlar almasını sağlamak için EVM, Java sanal makinesi JVM'ye benzer, çapraz platform sanal makine ortamı sunmaktadır.

Akıllı sözleşmeler dağıtıldığında EVM bayt koduna derlenir ve zincire kaydedilir. EVM sözleşmeyi çalıştırırken bu bayt kodunu sırayla okur, her bir komutun ilgili Gas maliyeti vardır. EVM, komut yürütme sürecindeki Gas tüketimini izler, tüketim miktarı işlem karmaşıklığına bağlıdır.

Reddio'yu örnek alarak, paralel EVM'nin optimizasyon yolunu açıklama

Geleneksel EVM, işlemleri seri bir şekilde işleyerek, tüm işlemleri tek bir kuyrukta belirli bir sırayla yürütmektedir. Bu tasarım basit ve bakım açısından kolaydır, ancak kullanıcı sayısının artması ve Rollup teknolojisinin uygulanmasıyla, seri yürütmenin performans darboğazı giderek belirginleşmektedir.

Rollup mimarisinde, Sequencer Layer2'nin ana bileşeni olarak tüm hesaplama görevlerini üstlenir. Eğer diğer dış modüllerin verimliliği yeterince yüksekse, Sequencer'ın kendisinin seri yürütülmesi en büyük darboğaz haline gelecektir. Bir ekip, Sequencer'ı her saniyede 2000'den fazla ERC-20 transferi gerçekleştirebilecek şekilde aşırı optimize etti, ancak daha karmaşık işlemler için TPS hala büyük ölçüde düşecektir. Bu nedenle, işlem işleme paralelleşmesi gelecekteki gelişim trendi haline gelmektedir.

EVM dışında, go-ethereum'daki işlem yürütme ile ilgili bir diğer temel bileşen stateDB'dir ve hesap durumunu ve veri depolamasını yönetmek için kullanılır. Ethereum, veritabanı indekslemesi için Merkle Patricia Trie ağaç yapısını kullanır; EVM her işlem yürütmesinde stateDB'deki verileri değiştirir ve bu nihayetinde küresel durum ağacında yansır.

stateDB, tüm Ethereum hesap durumlarını, hesap bakiyeleri, akıllı sözleşme kodları vb. dahil olmak üzere sürdürmekten sorumludur. İşlem yürütme sürecinde, stateDB ilgili hesap verilerine okuma ve yazma işlemleri yapar, işlem tamamlandıktan sonra yeni durumu alt veritabanına kalıcı hale getirmek için gönderir.

EVM ve stateDB, Ethereum'un işlem yürütme ortamını oluşturmak için işbirliği yapar. EVM, akıllı sözleşme talimatlarını yorumlamaktan ve yürütmekten sorumludur; hesaplama sonuçlarına göre blok zinciri durumunu değiştirir, stateDB ise tüm hesapların ve sözleşmelerin durum değişikliklerini yöneten küresel durum deposu olarak işlev görür.

Reddio örneğinde, paralel EVM'nin optimizasyon yolunu açıklama

Seri yürütme modunda, bir blok içindeki işlemler sırayla işlenir. Her işlem bağımsız bir EVM örneği kullanır, ancak tüm işlemler aynı stateDB'yi paylaşır. EVM, yürütme sürecinde sürekli olarak stateDB ile etkileşimde bulunarak ilgili verileri okur ve değişiklik sonuçlarını geri yazar.

Blok içindeki tüm işlemler tamamlandıktan sonra, stateDB'deki veriler küresel durum ağacına gönderilir ve yeni bir durum kökü oluşturulur. Bu seri modunun ana darboğazı, işlemlerin sıraya alınarak gerçekleştirilmesidir; bu da donanım kaynaklarının tam olarak kullanılmasını engeller ve özellikle karmaşık akıllı sözleşme işlemleriyle karşılaşıldığında verimliliği düşürür.

Reddio örneğini kullanarak, paralel EVM'nin optimizasyon yolunu açıklama

İşlem işleme verimliliğini artırmak için bazı projeler EVM'nin çoklu iş parçacığı paralel optimizasyonunu denemeye başladı. Bu, bankaların aynı anda müşterilere hizmet vermek için birden fazla gişe açmasına benzer, işleme hızını birkaç kat artırabilir, ancak ortaya çıkabilecek durum çakışması sorunlarının çözülmesi gerekir.

Bir ZKRollup projesinin EVM için paralel optimizasyon yaklaşımı, her bir iş parçacığına geçici bir durum veritabanı (pending-stateDB) tahsis etmektir. Spesifik uygulama şunları içerir:

  1. Çoklu iş parçacıkları paralel olarak işlem yapar, birbirlerini etkilemez.

  2. Her bir iş parçacığının bağımsız bir pending-stateDB'si vardır, işlem yürütülürken durum değişiklikleri burada kaydedilir.

  3. Tüm işlemler tamamlandıktan sonra, pending-stateDB'deki değişiklikler global stateDB'ye senkronize edilecektir.

Reddio'yu örnek alarak, paralel EVM'in optimizasyon yolunu açıklama

Bu çözüm, okuma ve yazma işlemlerini optimize etti:

  • Okuma işlemi sırasında önce pending-stateDB'nin ReadSet'ini kontrol edin, gerekli veriler varsa doğrudan okuyun, aksi takdirde global stateDB'den geçmiş durumu okuyun.

  • Yazma işlemleri doğrudan global stateDB'ye yazılmaz, önce pending-stateDB'deki WriteSet'e kaydedilir.

Reddio'yu örnek alarak, paralel EVM'nin optimizasyon yolunu açıklama

Durum çakışmalarını işlemek için çakışma tespit mekanizması getirildi:

  • Farklı işlemlerin ReadSet ve WriteSet'ini izleyerek, birden fazla işlemin aynı durum öğelerini okuduğu ve yazdığı tespit edildiğinde çakışma olarak değerlendirilir.

  • Çatışan işlemler yeniden yürütülmesi gerekenler olarak işaretlenecektir.

Reddio örneği ile paralel EVM'nin optimizasyon yolunu açıklama

Tüm işlemler gerçekleştirildikten sonra, birden fazla pending-stateDB değişiklik kaydı global stateDB'ye birleştirilecek, başarılı olduğunda global durum ağacına sunulacak ve yeni durum kökü oluşturulacaktır.

Araştırmalar, düşük çatışma yüklerinde, paralel EVM'nin TPS'sinin geleneksel seri yürütmeye göre 3-5 kat arttığını göstermektedir. Yüksek çatışma yüklerinde ise teorik olarak en yüksek 60 kat artışa ulaşabilir.

Reddio örneğini kullanarak paralel EVM'nin optimizasyon yolunu açıklama

Bu çoklu iş parçacığı paralel optimizasyon çözümü, geçici durum deposu ve paralel yürütme ile EVM'nin işlem işleme kapasitesini önemli ölçüde artırdı. Okuma ve yazma işlemlerinin optimizasyonu ve çakışma tespit mekanizmasının getirilmesi, durum tutarlılığını sağlarken işlemlerin büyük ölçekli paralelleştirilmesini mümkün kıldı, seri yürütmenin performans darboğazını çözdü ve Ethereum Rollup'un gelecekteki gelişimi için bir temel oluşturdu.

Reddio'yu örnek alarak, paralel EVM'nin optimizasyon yolunu açıklamak

Reddio'yu örnek alarak, paralel EVM'nin optimizasyon yolunu açıklama

Reddio örneğini kullanarak paralel EVM'nin optimizasyon yolunu açıklama

Reddio örneği ile, paralel EVM'nin optimizasyon yolunu açıklama

ETH0.45%
View Original
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.
  • Reward
  • 5
  • Share
Comment
0/400
AirdropHunterZhangvip
· 07-29 02:07
Olmadı, her gün 60 kat. Krepi hala bu fiyatta.
View OriginalReply0
GateUser-afe07a92vip
· 07-28 22:11
Sadece TPS biraz arttı.
View OriginalReply0
ZKProofEnthusiastvip
· 07-28 22:09
Usta, tps bu kadar hızlıyken hala on-chain gizlilik mi var?
View OriginalReply0
¯\_(ツ)_/¯vip
· 07-28 21:56
Devam et Mining, böyle olsun.
View OriginalReply0
GateUser-aa7df71evip
· 07-28 21:48
bir pozisyon girin咯兄弟们 TPSbüyük yükseliş要来了
View OriginalReply0
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)