時(shí)間:2023-08-01|瀏覽:6745
新版specs-actors設(shè)計(jì)顯著提升了性能,所以能縮短區(qū)塊驗(yàn)證時(shí)間。來自lotus、venus和forest的核心開發(fā)者在短短幾周之內(nèi)共同開發(fā)并發(fā)布了這一升級(jí)。分布在不同時(shí)區(qū)的節(jié)點(diǎn)運(yùn)營(yíng)方也積極響應(yīng),快速地將這些性能改進(jìn)部署到全網(wǎng)。
對(duì)所有區(qū)塊鏈項(xiàng)目來說,確保驗(yàn)證一個(gè)區(qū)塊所需的時(shí)間小于產(chǎn)生區(qū)塊的時(shí)間是很重要的。在Filecoin網(wǎng)絡(luò)中,每30秒出塊,所以驗(yàn)證區(qū)塊耗時(shí)要遠(yuǎn)遠(yuǎn)小于30秒。當(dāng)然,驗(yàn)證區(qū)塊的耗時(shí)取決于多個(gè)因素:節(jié)點(diǎn)的硬件規(guī)格、鏈上數(shù)據(jù)的大小、節(jié)點(diǎn)上運(yùn)行的其他程序等。
在v12升級(jí)之前,按運(yùn)行質(zhì)量排中間的節(jié)點(diǎn)運(yùn)行平穩(wěn),區(qū)塊驗(yàn)證時(shí)間遠(yuǎn)低于30秒。但是,較慢的節(jié)點(diǎn),保存鏈上完整歷史的(因此有很大的數(shù)據(jù)庫(kù))節(jié)點(diǎn)驗(yàn)證區(qū)塊耗時(shí)較高。這些節(jié)點(diǎn)在驗(yàn)證較慢時(shí)會(huì)有無法同步的風(fēng)險(xiǎn)。盡管大多數(shù)礦工有著高性能硬件和較小的數(shù)據(jù)庫(kù),不會(huì)受此影響。但包括交易所和存檔節(jié)點(diǎn),有出現(xiàn)運(yùn)行太慢和偶發(fā)的同步問題,這對(duì)全網(wǎng)健康狀況有負(fù)面影響。
同步緩慢的原因之一在于,actors代碼處理新礦工時(shí),效率不高。在過去的幾個(gè)月里,網(wǎng)絡(luò)中有好幾波垃圾信息在鏈上創(chuàng)建了礦工,即創(chuàng)建了大量空礦工條目。這為顯著改進(jìn)性能提供了一個(gè)簡(jiǎn)單的方法,即減少處理空礦工的耗時(shí),就能加快區(qū)塊驗(yàn)證。在v12版的網(wǎng)絡(luò)中加入這一改進(jìn),了解更多加FILkefu,也及時(shí)確保虛增礦工的垃圾信息不會(huì)成為針對(duì)網(wǎng)絡(luò)中較慢節(jié)點(diǎn)的攻擊方式。
為了理解v12中引入的性能改進(jìn),我們需要了解一些系統(tǒng)細(xì)節(jié)。位于f03地址的Filecoincronactor是網(wǎng)絡(luò)定時(shí)在每個(gè)區(qū)塊運(yùn)行的系統(tǒng)actor。它負(fù)責(zé)狀態(tài)轉(zhuǎn)換,讓Filecoin網(wǎng)絡(luò)得以平穩(wěn)正確運(yùn)轉(zhuǎn)。cronactor會(huì)每60個(gè)區(qū)塊(30分鐘)處理礦工actor,以驗(yàn)證礦工是否正確證明其負(fù)責(zé)的扇區(qū)存儲(chǔ)部分。正是通過cronactor的運(yùn)轉(zhuǎn),才確保Filecoin協(xié)議的核心:整個(gè)網(wǎng)絡(luò)每24小時(shí)遍及一次所有在Filecoin上的存儲(chǔ),自動(dòng)發(fā)現(xiàn)并懲罰丟失或損壞數(shù)據(jù)的情況。
在網(wǎng)絡(luò)v12之前,cronactor會(huì)對(duì)每一個(gè)礦工actor處理。Filecoinv12做了改進(jìn),cronactor只對(duì)有需要的礦工actor處理。只有當(dāng)?shù)V工在證明存儲(chǔ)時(shí)才需要這樣的cron處理。
具體說,符合如下標(biāo)準(zhǔn)之一的礦工則需要每60個(gè)區(qū)塊的cron處理: 1)有活動(dòng)的PreCommit; 2)有活動(dòng)的扇區(qū); 3)在待解鎖的區(qū)塊獎(jiǎng)勵(lì)分配表中有未解鎖的獎(jiǎng)勵(lì)。
如果一個(gè)礦工不滿足上述標(biāo)準(zhǔn)的任何一項(xiàng),在一次cron中則沒有需要的處理,完全可以跳過。特別的是,新創(chuàng)建的礦工無需cron處理,只有第一次向網(wǎng)絡(luò)承諾存儲(chǔ)后,才對(duì)其進(jìn)行處理。
在此優(yōu)化生效之后,了解更多加FILkefu,F(xiàn)ilecoin網(wǎng)絡(luò)每60個(gè)區(qū)塊需要處理的礦工從37.5萬減少至2000多。這使區(qū)塊的平均同步速度近乎翻倍,每日狀態(tài)快照減少20GB以上,幾乎翻倍的提升!節(jié)點(diǎn)運(yùn)營(yíng)方已能看到平均及最大區(qū)塊同步時(shí)間的顯著下降。大型存檔節(jié)點(diǎn)同步失敗的情況幾乎完全消除了。
熱點(diǎn):lc虛擬幣 以太坊升級(jí) 元宇宙升級(jí) 比特幣驗(yàn)證 NFT驗(yàn)證