EVM optimizasyonu: Çoklu iş parçacığı paralelliği ile işlem işleme verimliliğini artırma

robot
Abstract generation in progress

EVM'nin Paralel Optimizasyon Yolu

Herkes tarafından bilindiği gibi, EVM, Ethereum'un en önemli çekirdek bileşenlerinden biridir ve "işlem motoru" ve "akıllı sözleşme yürütme ortamı" olarak kritik bir rol oynamaktadır. Binlerce düğümden oluşan halka açık zincir ağında, sanal makinenin varlığı, akıllı sözleşmelerin farklı donanım yapılandırmalarındaki düğümlerde aynı şekilde çalışmasını sağlayarak sonuçların tutarlılığını güvence altına alır. Bu çapraz platform uyumluluğu, Java sanal makinesi JVM ile oldukça benzerdir.

Akıllı sözleşmeler zincire eklenmeden önce EVM bayt koduna derlenir. EVM sözleşmeyi yürütürken, bu bayt kodunu sırayla okur, her bir komutun karşılık gelen Gas maliyeti vardır. EVM, komut yürütme sürecindeki Gas tüketimini takip eder, tüketim miktarı işlemin karmaşıklığına bağlıdır.

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

Ethereum'un temel yürütme motoru olarak EVM, işlemleri seri yürütme yöntemiyle işler. Tüm işlemler tek bir kuyrukta sıralanır ve belirlenen sıraya göre ardışık olarak gerçekleştirilir. Bu tasarım basit ve bakımı kolaydır, ancak kullanıcı kitlesinin genişlemesi ve teknolojinin evrilmesiyle birlikte performans darboğazları giderek belirginleşmektedir, özellikle Rollup teknolojisinin olgunlaşmasının ardından, Ethereum'un ikinci katman ağında bu durum daha belirgin hale gelmektedir.

Sequencer, Layer2'nin ana bileşeni olarak, tüm hesaplama görevlerini tek bir sunucu biçiminde üstlenir. Eğer destekleyici dış modüllerin verimliliği yeterince yüksek olursa, nihai darboğaz Sequencer'ın kendisinin verimliliğine bağlı olacaktır ve bu durumda seri yürütme büyük bir engel haline gelecektir.

Bir ekip, DA katmanı ve veri okuma/yazma modülünü son derece optimize ederek Sequencer'ın her saniyede yaklaşık 2000'den fazla ERC-20 transferi gerçekleştirebilmesini sağladı. Bu rakam oldukça yüksek görünse de, karmaşık işlemler için TPS değeri kesinlikle düşecektir. Bu nedenle, işlem işleme paralelleştirmesi gelecekte kaçınılmaz bir trend olacaktır.

Ethereum işlemlerinin yürütülmesindeki iki ana bileşen

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

stateDB, tüm Ethereum hesaplarının durumunu, EOA hesapları ve sözleşme hesapları dahil olmak üzere, korumaktan sorumludur. Saklanan veriler arasında hesap bakiyesi, akıllı sözleşme kodu vb. yer alır. İşlem yürütme sürecinde, stateDB ilgili hesapların verilerini okur ve yazar. İşlem yürütme tamamlandıktan sonra, stateDB yeni durumu kalıcı işleme için alt veritabanına iletmek zorundadır.

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

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

Sıralı yürütme süreci

Ethereum'daki işlem türleri EOA transferleri ve sözleşme işlemleri olarak ikiye ayrılır. EOA transferleri en basit işlem türüdür, yani normal hesaplar arasında ETH transferi yapılır, sözleşme çağrısı içermez, işleme hızı çok hızlıdır ve gas ücreti oldukça düşüktür.

Sözleşme ticareti, akıllı sözleşmelerin çağrılması ve yürütülmesi ile ilgilidir. EVM, sözleşme ticaretini işlerken, akıllı sözleşme içindeki bayt kodu talimatlarını satır satır yorumlayıp yürütmek zorundadır. Sözleşme mantığı ne kadar karmaşık olursa, ilgili talimat sayısı o kadar fazla olur ve tüketilen kaynak da o kadar artar.

Örneğin, ERC-20 transferlerinin işlenme süresi, EOA transferlerinin yaklaşık 2 katıdır; daha karmaşık akıllı sözleşmeler, örneğin bir DEX'teki işlem operasyonları, EOA transferlerinin on katından fazla sürebilir. Bunun nedeni, DeFi protokollerinin işlem sırasında likidite havuzlarını, fiyat hesaplamalarını, token değişimlerini gibi karmaşık mantıkları ele alması ve çok karmaşık hesaplamalar yapması gerekmektedir.

Seri yürütme modunda, EVM ile stateDB'nin işbirliği süreci şu şekildedir:

  1. Blok içindeki işlemler sırasıyla tek tek işlenir, her işlem belirli bir eylemi gerçekleştirmek için bağımsız bir örnek ile yürütülür.
  2. Her işlem farklı bir EVM örneği kullanmasına rağmen, tüm işlemler aynı durum veritabanı stateDB'yi paylaşır.
  3. İşlem yürütme sürecinde, EVM sürekli olarak stateDB ile etkileşimde bulunmalı, ilgili verileri okumalı ve değiştirilen verileri stateDB'ye yazmalıdır.
  4. Tüm işlemler tamamlandıktan sonra, stateDB'deki veriler küresel durum ağacına gönderilecek ve yeni bir durum kökü oluşturulacaktır.

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

EVM'nin seri yürütme modundaki darboğazlar belirgindir: işlemler sıralı olarak yürütülmek zorundadır; eğer uzun süren bir akıllı sözleşme işlemi olursa, diğer işlemler sadece beklemek zorundadır ve donanım kaynakları tam olarak kullanılamaz, verimlilik büyük ölçüde sınırlıdır.

EVM'nin Çoklu İş Parçacığı Paralel Optimizasyon Planı

Paralel EVM, birden fazla gişesi olan bir bankaya benzer; birden fazla iş parçacığını aynı anda birden fazla işlemi işlemek için açabilir, bu da verimliliğin birkaç kat artmasını sağlar. Ama zorlu olan durum çatışması sorunudur, koordineli bir şekilde ele alınması gerekir.

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

Bir ZKRollup projesinin EVM için paralel optimizasyon yaklaşımı şöyledir:

  1. Çoklu iş parçacığı ile paralel işlem yapmak: Farklı işlemleri aynı anda işlemek için birden fazla iş parçacığı ayarlayın, iş parçacıkları arasında etkileşim yoktur, işlem işleme hızını birkaç kat artırabilir.

  2. Her iş parçacığına geçici durum veritabanı tahsis edin: Her iş parçacığına bağımsız bir geçici durum veritabanı (pending-stateDB) tahsis edilir. İş parçacıkları işlemleri gerçekleştirirken, global stateDB'yi doğrudan değiştirmek yerine, durum değişikliği sonuçlarını geçici olarak pending-stateDB'de kaydeder.

  3. Senkronizasyon Durumu Değişiklikleri: Bir blok içindeki tüm işlemler tamamlandıktan sonra, EVM her bir pending-stateDB'de kaydedilen durum değişikliklerini sırayla global stateDB'ye senkronize eder. Farklı işlemler yürütülürken durum çakışması yaşanmadıysa, pending-stateDB'deki kayıtlar sorunsuz bir şekilde global stateDB'ye birleştirilebilir.

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

Proje, okuma ve yazma işlemlerinin işlenmesini optimize etti, böylece işlemlerin durum verilerine doğru bir şekilde erişmesini ve çakışmaları önlemesini sağladı:

  • Okuma işlemi: İşlem durumu okuma gerektirdiğinde, EVM önce Bekleyen durumun ReadSet'ini kontrol eder. Gerekli veriler mevcutsa, doğrudan pending-stateDB'den okunur. Eğer ReadSet'te karşılık gelen anahtar-değer çifti bulunamazsa, bir önceki bloktaki global stateDB'den tarihsel durum verisi okunur.

  • Yazma işlemleri: Tüm yazma işlemleri doğrudan global stateDB'ye yazılmaz, önce Pending-state'in WriteSet'ine kaydedilir. İşlem tamamlandıktan sonra, çakışma kontrolü ile sonuçları global stateDB'ye birleştirmeyi dener.

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

Durum çatışması sorununu çözmek için çatışma tespiti mekanizması getirildi:

  • Çatışma tespiti: EVM, farklı işlemlerin ReadSet ve WriteSet'ini izler. Eğer birden fazla işlem aynı durum öğesini okumaya veya yazmaya çalışırsa, bu bir çatışma olarak değerlendirilir.
  • Çatışma Yönetimi: Çatışma tespit edildiğinde, çatışma işlemi yeniden yürütülmesi gerekenler olarak işaretlenecektir.

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

Tüm işlemler tamamlandığında, birden fazla pending-stateDB içindeki değişiklik kayıtları global stateDB'ye birleştirilecektir. Birleştirme başarılı olursa, EVM nihai durumu global durum ağacına teslim edecek ve yeni bir durum kökü oluşturacaktır.

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

Çoklu iş parçacığı paralel optimizasyonu, özellikle karmaşık akıllı sözleşme işlemleri söz konusu olduğunda performansı önemli ölçüde artırmaktadır. Araştırmalar, düşük çakışma yüklerinde, geleneksel seri yürütmeye kıyasla, referans testlerinde TPS'nin 3-5 kat arttığını göstermektedir. Yüksek çakışma yüklerinde, teorik olarak tüm optimizasyon yöntemleri kullanıldığında, hatta 60 katına kadar bir artış sağlanabilir.

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

Özet

EVM çoklu iş parçacığı paralel optimizasyon çözümü, her işlem için geçici bir durum kütüphanesi tahsis ederek ve işlemleri farklı iş parçacıklarında paralel olarak gerçekleştirerek EVM'nin işlem işleme kapasitesini önemli ölçüde artırmıştır. Okuma/yazma işlemlerinin optimize edilmesi ve çakışma tespit mekanizmasının getirilmesi sayesinde, EVM tabanlı halka zincirleri, durum tutarlılığını güvence altına alırken, işlemlerin büyük ölçekli paralelleştirilmesini gerçekleştirebilir ve geleneksel seri yürütme modelinin getirdiği performans darboğazını çözebilir. Bu, Ethereum Rollup'ın gelecekteki gelişimi için önemli bir temel oluşturmuştur.

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

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

ETH-1.64%
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
  • 8
  • Repost
  • Share
Comment
0/400
TokenVelocityTraumavip
· 08-02 02:05
Performans darboğazı geliştirilmeli.
View OriginalReply0
ForkPrincevip
· 07-30 22:41
Optimize yükseltmeyi dört gözle bekliyorum.
View OriginalReply0
MEVVictimAlliancevip
· 07-30 14:54
Verimlilik büyük ölçüde arttı
View OriginalReply0
FalseProfitProphetvip
· 07-30 10:43
Paralelleştirme hızlandırma harika.
View OriginalReply0
ShitcoinConnoisseurvip
· 07-30 10:42
Seri performans darboğazı büyük
View OriginalReply0
GasFeeCriervip
· 07-30 10:36
Optimizasyon çok yavaş değil mi?
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)