EVM Paralel Optimizasyonu: İşlem İşleme Performansını Artırma
Herkesin bildiği gibi, EVM, akıllı sözleşmelerin çalışmasından sorumlu olan Ethereum'un temel yürütme motorudur. Farklı düğümlerde sözleşme yürütme sonuçlarının tutarlılığını sağlamak için, EVM sanal makine teknolojisini kullanarak platformlar arası uyumluluk sağlamıştır.
Akıllı sözleşmeler zincire dağıtıldığında, önce EVM bayt koduna derlenir. EVM, sözleşmeyi yürütürken bu bayt kodunu sırayla okur, her talimatın belirli bir Gas maliyeti vardır. EVM, talimat yürütme sürecindeki 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ütür. Bu tasarım basit ve bakım açısından kolaydır, ancak kullanıcı sayısı arttıkça TPS ve işleme hacmi talepleri yükselir, seri yürütmenin performans dar boğazları giderek daha belirgin hale gelir, özellikle Layer 2'de daha da belirgindir.
EVM dışında, go-ethereum'daki işlem yürütme ile ilgili bir diğer temel bileşen stateDB'dir; bu, hesap durumunu ve veri depolamasını yönetmek için kullanılır. EVM her işlem gerçekleştirdiğinde stateDB'deki verileri değiştirir ve bu değişiklikler nihayetinde küresel durum ağacında yansıtılır.
Seri modda, işlemler sıralı olarak yürütülmelidir. Eğer zaman alıcı karmaşık sözleşme işlemleri meydana gelirse, diğer işlemler sadece beklemek zorunda kalır ve donanım kaynaklarından tam olarak yararlanamaz, verimlilik büyük ölçüde kısıtlanır.
Bu sorunu çözmek için endüstri, EVM'nin çoklu iş parçacığı paralel optimizasyon çözümünü önerdi. Bu çözüm, birden fazla işlemi aynı anda işlemek için birden fazla iş parçacığı açarak verimliliği birkaç kat artırabilir. Ancak, paralel yürütme, durum çakışması gibi zorluklarla karşılaşmaktadır ve uygun önlemlerin alınması gerekmektedir.
Bazı projelerin EVM paralel optimizasyonu için yaklaşımları şunlardır: Her bir iş parçacığına geçici bir durum veritabanı (pending-stateDB) tahsis etmek. İş parçacığı işlem gerçekleştirdiğinde, durum değişikliklerini doğrudan global stateDB'yi değiştirmek yerine pending-stateDB'de geçici olarak saklar. Tüm işlemler tamamlandıktan sonra, pending-stateDB'deki değişiklikler global stateDB'ye senkronize edilir.
Bu çözüm, okuma ve yazma işlemlerini de optimize etmiştir: Okuma sırasında önce pending-stateDB kontrol edilir, eğer yoksa global stateDB'den okunur; yazma işlemi ise pending-stateDB'ye kaydedilir, tamamlandıktan sonra global stateDB'ye birleştirilir.
Durum çatışmalarını işlemek için, plan çatışma tespit mekanizmasını tanıttı. Farklı işlemlerin okuma-yazma kümesini izleyerek, çatışma tespit edildiğinde ilgili işlemler yeniden yürütülmesi gerekenler olarak işaretlenecektir.
Çoklu iş parçacığı paralel optimizasyonu, özellikle karmaşık akıllı sözleşmeler işlenirken EVM performansını önemli ölçüde artırdı. Araştırmalar, düşük çakışma yüklerinde TPS'nin 3-5 kat artırılabileceğini; yüksek çakışma yüklerinde ise teorik olarak 60 katına kadar çıkabileceğini göstermektedir.
Bu paralel optimizasyon çözümü, geçici durum deposu ve çakışma tespiti aracılığıyla, durum tutarlılığını garanti ederken işlemlerin büyük ölçekli paralelleşmesini sağlar ve Ethereum Rollup'unun gelişimi için önemli bir temel oluşturur. Gelecekte depolama verimliliği optimizasyonu, yüksek çakışma senaryolarının işlenmesi, GPU hızlandırması gibi alanlarda performans daha da artırılabilir.
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.
11 Likes
Reward
11
6
Share
Comment
0/400
¯\_(ツ)_/¯
· 20h ago
Kullanıcılar nihayet sonsuz bir bekleyişe katlanmak zorunda kalmayacaklar.
View OriginalReply0
ReverseTradingGuru
· 20h ago
Sonunda biraz sert bir şeyler yaptık.
View OriginalReply0
TxFailed
· 20h ago
psa: paralel evm hakkında pahalı bir yol öğrenmiş oldum... rip 2.3 eth
View OriginalReply0
rugpull_survivor
· 20h ago
60 kat hızlı olduğu söyleniyor? gas ücretini düşürebilir mi?
View OriginalReply0
SilentAlpha
· 20h ago
60 kat. Bu, kazanç sağlamaz mı?
View OriginalReply0
LiquiditySurfer
· 20h ago
Martini dip yaptı, sonunda gas ücreti beklemek zorunda değiliz.
EVM paralel optimizasyonu, Ethereum işlem işleme performansını en fazla 60 kat artırır.
EVM Paralel Optimizasyonu: İşlem İşleme Performansını Artırma
Herkesin bildiği gibi, EVM, akıllı sözleşmelerin çalışmasından sorumlu olan Ethereum'un temel yürütme motorudur. Farklı düğümlerde sözleşme yürütme sonuçlarının tutarlılığını sağlamak için, EVM sanal makine teknolojisini kullanarak platformlar arası uyumluluk sağlamıştır.
Akıllı sözleşmeler zincire dağıtıldığında, önce EVM bayt koduna derlenir. EVM, sözleşmeyi yürütürken bu bayt kodunu sırayla okur, her talimatın belirli bir Gas maliyeti vardır. EVM, talimat yürütme sürecindeki 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ütür. Bu tasarım basit ve bakım açısından kolaydır, ancak kullanıcı sayısı arttıkça TPS ve işleme hacmi talepleri yükselir, seri yürütmenin performans dar boğazları giderek daha belirgin hale gelir, özellikle Layer 2'de daha da belirgindir.
EVM dışında, go-ethereum'daki işlem yürütme ile ilgili bir diğer temel bileşen stateDB'dir; bu, hesap durumunu ve veri depolamasını yönetmek için kullanılır. EVM her işlem gerçekleştirdiğinde stateDB'deki verileri değiştirir ve bu değişiklikler nihayetinde küresel durum ağacında yansıtılır.
Seri modda, işlemler sıralı olarak yürütülmelidir. Eğer zaman alıcı karmaşık sözleşme işlemleri meydana gelirse, diğer işlemler sadece beklemek zorunda kalır ve donanım kaynaklarından tam olarak yararlanamaz, verimlilik büyük ölçüde kısıtlanır.
Bu sorunu çözmek için endüstri, EVM'nin çoklu iş parçacığı paralel optimizasyon çözümünü önerdi. Bu çözüm, birden fazla işlemi aynı anda işlemek için birden fazla iş parçacığı açarak verimliliği birkaç kat artırabilir. Ancak, paralel yürütme, durum çakışması gibi zorluklarla karşılaşmaktadır ve uygun önlemlerin alınması gerekmektedir.
Bazı projelerin EVM paralel optimizasyonu için yaklaşımları şunlardır: Her bir iş parçacığına geçici bir durum veritabanı (pending-stateDB) tahsis etmek. İş parçacığı işlem gerçekleştirdiğinde, durum değişikliklerini doğrudan global stateDB'yi değiştirmek yerine pending-stateDB'de geçici olarak saklar. Tüm işlemler tamamlandıktan sonra, pending-stateDB'deki değişiklikler global stateDB'ye senkronize edilir.
Bu çözüm, okuma ve yazma işlemlerini de optimize etmiştir: Okuma sırasında önce pending-stateDB kontrol edilir, eğer yoksa global stateDB'den okunur; yazma işlemi ise pending-stateDB'ye kaydedilir, tamamlandıktan sonra global stateDB'ye birleştirilir.
Durum çatışmalarını işlemek için, plan çatışma tespit mekanizmasını tanıttı. Farklı işlemlerin okuma-yazma kümesini izleyerek, çatışma tespit edildiğinde ilgili işlemler yeniden yürütülmesi gerekenler olarak işaretlenecektir.
Çoklu iş parçacığı paralel optimizasyonu, özellikle karmaşık akıllı sözleşmeler işlenirken EVM performansını önemli ölçüde artırdı. Araştırmalar, düşük çakışma yüklerinde TPS'nin 3-5 kat artırılabileceğini; yüksek çakışma yüklerinde ise teorik olarak 60 katına kadar çıkabileceğini göstermektedir.
Bu paralel optimizasyon çözümü, geçici durum deposu ve çakışma tespiti aracılığıyla, durum tutarlılığını garanti ederken işlemlerin büyük ölçekli paralelleşmesini sağlar ve Ethereum Rollup'unun gelişimi için önemli bir temel oluşturur. Gelecekte depolama verimliliği optimizasyonu, yüksek çakışma senaryolarının işlenmesi, GPU hızlandırması gibi alanlarda performans daha da artırılabilir.