亚洲AV乱码久久精品蜜桃,www青青草影院,五月天最新官网,日本一区二区三区影片

  • 元宇宙:本站分享元宇宙相關(guān)資訊,資訊僅代表作者觀點(diǎn)與平臺(tái)立場(chǎng)無(wú)關(guān),僅供參考.

從Reddio看并行EVM的優(yōu)化之路

  • 2024年10月29日 17:53

作者:霧月,極客web3

眾所周知,EVM的定位是Ethereum的“執(zhí)行引擎”和“智能合約執(zhí)行環(huán)境”,可以說(shuō)是Ethereum最重要的核心組件之一。公鏈?zhǔn)且粋(gè)包含成千上萬(wàn)Node的開(kāi)放性網(wǎng)絡(luò),不同Node的硬件參數(shù)相差甚大,若想讓智能合約在多個(gè)Node上都跑出相同結(jié)果,滿足“一致性”,要設(shè)法在不同設(shè)備上都搭建出相同的環(huán)境,而虛擬機(jī)可以實(shí)現(xiàn)這個(gè)效果。

Ethereum的虛擬機(jī)EVM能在不同操作系統(tǒng)(如Windows、Linux、macOS)和設(shè)備上以相同的方式來(lái)運(yùn)行智能合約,這種跨平臺(tái)兼容性確保每個(gè)Node運(yùn)行合約后,都能得到一致的結(jié)果。最典型的例子就是Java虛擬機(jī)JVM。

Sequencer作為L(zhǎng)ayer2的關(guān)鍵組件,以單個(gè)服務(wù)器的形式承接所有運(yùn)算任務(wù),如果與Sequencer配合的外部模塊的效率都足夠高,則最終的瓶頸將取決于Sequencer本身的效率,此時(shí)串行執(zhí)行將成為巨大的阻礙。

opBNB團(tuán)隊(duì)曾通過(guò)對(duì)DA層和數(shù)據(jù)讀寫(xiě)模塊進(jìn)行極致優(yōu)化,Sequencer每秒最多可執(zhí)行約2000多筆ERC-20轉(zhuǎn)賬。這個(gè)數(shù)字看起來(lái)很高,但如果要處理的交易比ERC-20轉(zhuǎn)賬復(fù)雜很多,TPS數(shù)值必然會(huì)大打折扣。所以說(shuō),交易處理的并行化將是未來(lái)的必然趨勢(shì)。

下面我們將從更具體的細(xì)節(jié)入手,為大家詳細(xì)解釋傳統(tǒng)EVM的局限性,以及并行EVM的優(yōu)勢(shì)。

Ethereum交易執(zhí)行的兩大核心組件

在代碼模塊層面,除EVM外,go-ethereum中與交易執(zhí)行相關(guān)的另一核心組件是stateDB,用于管理Ethereum中的賬戶狀態(tài)和數(shù)據(jù)存儲(chǔ)。Ethereum采用名為MerklePatriciaTrie的樹(shù)狀結(jié)構(gòu)來(lái)充當(dāng)數(shù)據(jù)庫(kù)索引(目錄),EVM每一次交易執(zhí)行都會(huì)變更stateDB中存放的某些數(shù)據(jù),這些變更最終會(huì)反映在MerklePatriciaTrie(后面簡(jiǎn)稱全局狀態(tài)樹(shù))中。

我們從代碼角度大致看下EVM和stateDB是如何協(xié)作執(zhí)行交易的:

1.processBlock()函數(shù)會(huì)調(diào)用Process()函數(shù)處理一個(gè)區(qū)塊中包含的交易;

processBlock()函數(shù)調(diào)用writeBlockWithState()函數(shù),再調(diào)用statedb.Commit()函數(shù),提交狀態(tài)變更結(jié)果。

1.多線程并行執(zhí)行交易:Reddio設(shè)置多個(gè)線程同時(shí)處理不同的交易,線程之間互不干擾。這可以幾倍速提升交易處理速度。

2.為每個(gè)線程分配臨時(shí)狀態(tài)數(shù)據(jù)庫(kù):Reddio為每個(gè)線程都分配一個(gè)獨(dú)立的臨時(shí)狀態(tài)數(shù)據(jù)庫(kù)(pending-stateDB)。各個(gè)線程在執(zhí)行交易時(shí),不會(huì)直接修改全局的stateDB,而是將狀態(tài)變化結(jié)果暫時(shí)記錄在pending-stateDB中。

3.同步狀態(tài)變更:在一個(gè)區(qū)塊內(nèi)的所有交易都執(zhí)行完畢后,EVM會(huì)將每個(gè)pending-stateDB中記錄的狀態(tài)變更結(jié)果依次同步到全局stateDB中。如果不同交易在執(zhí)行過(guò)程中沒(méi)有發(fā)生狀態(tài)沖突,就可以將pending-stateDB中的記錄順利合并到全局stateDB中。

Reddio對(duì)讀寫(xiě)操作的處理方式進(jìn)行了優(yōu)化,以確保交易能夠正確訪問(wèn)狀態(tài)數(shù)據(jù)并避免沖突。

·讀操作:當(dāng)一個(gè)交易需要讀取狀態(tài)時(shí),EVM會(huì)首先檢查Pending-state的ReadSet。如果ReadSet顯示存在所需數(shù)據(jù),EVM就直接從pending-stateDB中讀數(shù)據(jù)。如果ReadSet中沒(méi)有找到對(duì)應(yīng)的key-value(鍵值對(duì)),就從上一個(gè)區(qū)塊對(duì)應(yīng)的全局stateDB中讀取歷史狀態(tài)數(shù)據(jù)。

·沖突檢測(cè):在交易執(zhí)行過(guò)程中,EVM會(huì)監(jiān)測(cè)不同交易的ReadSet和WriteSet。如果發(fā)現(xiàn)多個(gè)交易嘗試讀寫(xiě)相同的狀態(tài)項(xiàng),則視為發(fā)生沖突。

·沖突處理:當(dāng)檢測(cè)到?jīng)_突時(shí),沖突交易將被標(biāo)記為需要重新執(zhí)行。

在所有交易都執(zhí)行完成后,多個(gè)pending-stateDB中的變更記錄會(huì)被合并到全局stateDB中。如果合并成功,EVM會(huì)將最終狀態(tài)提交到全局狀態(tài)樹(shù)中,并生成新的狀態(tài)根。

多線程并行優(yōu)化對(duì)性能的提升是顯而易見(jiàn)的,特別是應(yīng)對(duì)復(fù)雜智能合約交易時(shí)。

根據(jù)并行EVM的研究顯示,在低沖突工作負(fù)載(交易池中較少矛盾的或者占用相同資源的交易)中,基準(zhǔn)測(cè)試的TPS相比傳統(tǒng)的串行執(zhí)行,提升了3~5倍左右。在高沖突工作負(fù)載中,理論上如果將所有優(yōu)化手段都用上甚至可以達(dá)到60倍。

總結(jié)

Reddio的EVM多線程并行優(yōu)化方案,通過(guò)為每個(gè)交易分配臨時(shí)狀態(tài)庫(kù),并在不同線程中并行執(zhí)行交易,顯著提高了EVM的交易處理能力。通過(guò)優(yōu)化讀寫(xiě)操作和引入沖突檢測(cè)機(jī)制,EVM系公鏈能夠在保證狀態(tài)一致性的前提下,實(shí)現(xiàn)交易的大規(guī)模并行化,解決了傳統(tǒng)串行執(zhí)行模式帶來(lái)的性能瓶頸。這為EthereumRollup未來(lái)的發(fā)展奠定了重要基礎(chǔ)。

后續(xù)我們會(huì)進(jìn)一步深入分析Reddio的實(shí)現(xiàn)細(xì)節(jié),如如何進(jìn)一步從優(yōu)化存儲(chǔ)效率提升效率,沖突高發(fā)時(shí)的優(yōu)化方案,以及如何借助GPU做優(yōu)化等等內(nèi)容。

Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM

国产又色又爽又黄剌激视频| 丶四虎永遠免費| 超碰saoporen| 四虎影院精品在线观看| 国产综合干| 一级生性活片全黄在线观看| A级欧美影视| 亚洲永久无码永久在线观看软件 | 无码专区视频在线| 东京热AVxXXX| 欧洲老熟妇色| 国产精品综合网在线观看| 色也色在线观看| 亚洲2020天天堂在线观看| 亚洲第一AV无码专区| 蜜桃福利久久精品| 一区二区三区精品亚洲制服| 中文字幕黄色片| 三A黄视频| 久久精品海外免费视频| 曰本无码一区免费视频| www.久久.cn| 日韩欧美大陆| 超碰97人妻免费| 中文字幕天无码久久精品视频免费 | 亚洲AV自拍久| 香港三级日本三级人妻999| 大香网伊人久久综合网2018| 亚洲成国产人片| 欧美亚洲日韩在线精品国产综合 | 爆乳3在线观看| 91在线在线啪永久地址| 国产成人综合亚洲专| 人妻无码ΑV中文字幕久久琪琪布| 又爽又水又粗精品一区二区| 蜜桃无码有码一区二区三区| 五月六月婷婷网| 日日噜噜夜夜狠狠视频免费| 沈阳少妇高潮喷水| 欧美999久久久| 禁片免费观看网站大全|