EVM'nin Paralelleşme Yolu: Seri İcradan Çoklu İşlemeye
Herkesin bildiği gibi, EVM Ethereum'un temel yürütme motorudur ve akıllı sözleşmelerin çalıştırılmasından sorumludur. Farklı düğümler üzerindeki akıllı sözleşmelerin aynı yürütme sonuçlarını almasını sağlamak için, EVM, Java sanal makinesi JVM'ye benzer, bir birleşik sanal ortam sağlar.
Akıllı sözleşmeler, blok zincirine dağıtıldığında, önce EVM bayt koduna derlenir. EVM, sözleşmeyi çalıştırırken bu bayt kodlarını sırayla okur, her bir komutun karşılık gelen Gas maliyeti vardır. EVM, her bir komutun çalıştırılması sırasında Gas tüketimini takip eder, tüketim miktarı işlemin karmaşıklığına bağlıdır.
Geleneksel EVM, işlemleri seri bir şekilde işleyerek, tüm işlemleri tek bir kuyrukta sırayla yürütmektedir. Bu tasarım basit ve bakımı kolaydır, ancak kullanıcı sayısının artması ve TPS taleplerinin yükselmesi ile birlikte, seri yürütmenin performans darboğazı giderek belirginleşmektedir, özellikle Layer 2 çözümlerinde daha da belirgindir.
EVM dışında, Ethereum işlemlerinin yürütülmesinde bir diğer temel bileşen stateDB'dir; bu, hesap durumlarını ve veri depolamayı yönetmek için kullanılır. EVM, her işlem yürütüldüğünde stateDB'deki verileri günceller ve bu değişiklikler nihayetinde küresel durum ağacında yansıtılır.
Seri yürütme modunda, EVM ve stateDB'nin işlem işleme süreci aşağıdaki gibidir:
Bir blok içindeki işlemler sırayla tek tek işlenir.
Her işlem bağımsız bir EVM örneği kullanır, ancak aynı stateDB'yi paylaşır.
EVM yürütme süreci boyunca sürekli olarak stateDB ile etkileşime girer, veri okur ve yazar.
Tüm işlemler tamamlandıktan sonra, stateDB'deki değişiklikler küresel durum ağacına gönderilecektir.
Bu seri modunun temel sorunu, karmaşık akıllı sözleşme işlemlerinin diğer işlemleri engellemesi ve donanım kaynaklarını tam olarak kullanamamasıdır.
Bu sorunu çözmek için bazı projeler EVM'nin paralel optimizasyon çözümlerini keşfetmeye başladı. Örneğin, bir Layer 2 projesinin temel fikri, her bir iş parçacığına geçici bir durum veritabanı (pending-stateDB) tahsis etmektir:
Farklı işlemleri çoklu iş parçacığı ile paralel yürütme
Her bir iş parçacığı, durum değişikliklerini kaydetmek için bağımsız bir pending-stateDB kullanır.
Tüm işlemler tamamlandığında, pending-stateDB'deki değişiklikler global stateDB'ye senkronize edilecektir.
Bu çözüm, okuma ve yazma işlemleri için özel bir işlem yapmıştır:
Okuma işlemi önce pending-stateDB'yi kontrol eder, eğer veri yoksa global stateDB'den okur.
Yazma işlemi, doğrudan global stateDB'yi değiştirmeden pending-stateDB'de bekletilir.
Durum çatışmalarını önlemek için, bu plan bir çatışma tespiti mekanizması getirmiştir:
Farklı işlemlerin okuma-yazma kümesinin örtüşüp örtüşmediğini izleme
Çatışma tespit edildiğinde ilgili işlemleri yeniden yürütmek için işaretleyin
Son olarak, birden fazla pending-stateDB değişikliğini global stateDB'ye birleştirerek yeni bir durum kökü oluşturun.
Bu paralel optimizasyon çözümü, düşük çakışma yüklerinde TPS'yi 3-5 kat artırabilir. Yüksek çakışma durumlarında, teorik olarak 60 kat artışa ulaşılabilir.
Genel olarak, EVM'nin paralelleştirilmesi, Ethereum ve Layer 2 performansını artırmanın önemli bir yönüdür. Çoklu iş parçacığı paralel yürütme ve geçici durum kütüphaneleri gibi teknolojilerle, tutarlılığı sağlama ön koşuluyla işlem işleme kapasitesi önemli ölçüde artırılabilir. Gelecekte, depolama verimliliğini daha da optimize ederek, çatışma işleme stratejilerini geliştirmek gibi yöntemlerle EVM'nin performansını daha da artırmak mümkün olacaktır.
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.
8 Likes
Reward
8
5
Share
Comment
0/400
FlatTax
· 07-24 20:11
60 kat mı? Boğa gibi övünme.
View OriginalReply0
FastLeaver
· 07-22 02:02
Güzel, TPS'yi 60 katına çıkarabilirsin.
View OriginalReply0
NftDeepBreather
· 07-22 00:27
Sonra BTC krallığına geri döndü
View OriginalReply0
CounterIndicator
· 07-22 00:11
Boğa, zirve; düşüş, dip.
View OriginalReply0
SerumDegen
· 07-22 00:10
gerçekten başka bir copium, eth'i pump'lamak için... önce bana gerçek tps sayılarını göster.
EVM Paralelleştirme Atılımı: Çoklu İş Parçacığı Uygulaması İşlem Gücünü Artırıyor
EVM'nin Paralelleşme Yolu: Seri İcradan Çoklu İşlemeye
Herkesin bildiği gibi, EVM Ethereum'un temel yürütme motorudur ve akıllı sözleşmelerin çalıştırılmasından sorumludur. Farklı düğümler üzerindeki akıllı sözleşmelerin aynı yürütme sonuçlarını almasını sağlamak için, EVM, Java sanal makinesi JVM'ye benzer, bir birleşik sanal ortam sağlar.
Akıllı sözleşmeler, blok zincirine dağıtıldığında, önce EVM bayt koduna derlenir. EVM, sözleşmeyi çalıştırırken bu bayt kodlarını sırayla okur, her bir komutun karşılık gelen Gas maliyeti vardır. EVM, her bir komutun çalıştırılması sırasında Gas tüketimini takip eder, tüketim miktarı işlemin karmaşıklığına bağlıdır.
Geleneksel EVM, işlemleri seri bir şekilde işleyerek, tüm işlemleri tek bir kuyrukta sırayla yürütmektedir. Bu tasarım basit ve bakımı kolaydır, ancak kullanıcı sayısının artması ve TPS taleplerinin yükselmesi ile birlikte, seri yürütmenin performans darboğazı giderek belirginleşmektedir, özellikle Layer 2 çözümlerinde daha da belirgindir.
EVM dışında, Ethereum işlemlerinin yürütülmesinde bir diğer temel bileşen stateDB'dir; bu, hesap durumlarını ve veri depolamayı yönetmek için kullanılır. EVM, her işlem yürütüldüğünde stateDB'deki verileri günceller ve bu değişiklikler nihayetinde küresel durum ağacında yansıtılır.
Seri yürütme modunda, EVM ve stateDB'nin işlem işleme süreci aşağıdaki gibidir:
Bu seri modunun temel sorunu, karmaşık akıllı sözleşme işlemlerinin diğer işlemleri engellemesi ve donanım kaynaklarını tam olarak kullanamamasıdır.
Bu sorunu çözmek için bazı projeler EVM'nin paralel optimizasyon çözümlerini keşfetmeye başladı. Örneğin, bir Layer 2 projesinin temel fikri, her bir iş parçacığına geçici bir durum veritabanı (pending-stateDB) tahsis etmektir:
Bu çözüm, okuma ve yazma işlemleri için özel bir işlem yapmıştır:
Durum çatışmalarını önlemek için, bu plan bir çatışma tespiti mekanizması getirmiştir:
Son olarak, birden fazla pending-stateDB değişikliğini global stateDB'ye birleştirerek yeni bir durum kökü oluşturun.
Bu paralel optimizasyon çözümü, düşük çakışma yüklerinde TPS'yi 3-5 kat artırabilir. Yüksek çakışma durumlarında, teorik olarak 60 kat artışa ulaşılabilir.
Genel olarak, EVM'nin paralelleştirilmesi, Ethereum ve Layer 2 performansını artırmanın önemli bir yönüdür. Çoklu iş parçacığı paralel yürütme ve geçici durum kütüphaneleri gibi teknolojilerle, tutarlılığı sağlama ön koşuluyla işlem işleme kapasitesi önemli ölçüde artırılabilir. Gelecekte, depolama verimliliğini daha da optimize ederek, çatışma işleme stratejilerini geliştirmek gibi yöntemlerle EVM'nin performansını daha da artırmak mümkün olacaktır.