波卡官方發(fā)布 Kusama 與平行鏈網(wǎng)絡(luò)性能報(bào)告!
加入 PolkaWorld 社區(qū),共建 Web 3.0!

本文是波卡的聯(lián)合創(chuàng)始人 Robert Habermeier 剛剛發(fā)布的關(guān)于 Kusama 首批平行鏈的網(wǎng)絡(luò)穩(wěn)定性報(bào)告!
我們的監(jiān)控集中在 4 個(gè)關(guān)鍵領(lǐng)域:
出塊穩(wěn)定性
批準(zhǔn)投票統(tǒng)計(jì)
網(wǎng)絡(luò)連接
網(wǎng)絡(luò)加載
我們從選擇加入的驗(yàn)證人中進(jìn)行了采樣,以通過 Prometheus 和 Grafana 兩個(gè)監(jiān)測(cè)性能的工具來(lái)收集信息,如下圖所示。
出塊穩(wěn)定性
在理想情況下,協(xié)議的當(dāng)前迭代中,每個(gè)平行鏈為每 2 個(gè)中繼鏈塊生成一個(gè)塊。我們可以通過將平行鏈上線期間產(chǎn)生的中繼鏈塊的數(shù)量除以該時(shí)間段產(chǎn)生的平行鏈塊的數(shù)量來(lái)確定每個(gè)平行鏈的出塊率。
下表顯示了截至最近的區(qū)塊編號(hào) (#) 的 6 個(gè)當(dāng)前平行鏈的值。

由于所有這些平行鏈都由相同的驗(yàn)證人集保護(hù)并由隨機(jī)驗(yàn)證人驗(yàn)證,所以驗(yàn)證人向平行鏈提供的服務(wù)應(yīng)該沒有重大差異。
網(wǎng)絡(luò)噪音的影響此時(shí)不值得考慮,因?yàn)樵谶^去的幾天里,平行鏈沒有足夠的時(shí)間反復(fù)暴露于支持驗(yàn)證人的所有可能組合。但是噪音當(dāng)然不能解釋 Shiden(還有 Khala,在較小程度上)與其他平行鏈之間的巨大差異,這些平行鏈主要占據(jù)理想值的 5% 到 10% 之間的范圍。值得注意的是,Statemine 在推出的前幾周經(jīng)歷了一段艱難的時(shí)期,這導(dǎo)致它每分鐘僅產(chǎn)生一次區(qū)塊,并且當(dāng)前的數(shù)據(jù)因最初的問題而有所偏差。
這種差異有兩種可能的解釋。真正的原因可能是兩者之一或兩種都有:
1. 繁重的平行鏈執(zhí)行或數(shù)據(jù)
2. 收集人與驗(yàn)證人的連接性較差
目前,提供給收集人和驗(yàn)證人產(chǎn)生平行鏈塊的時(shí)間窗口非常短,這使得系統(tǒng)脆弱并且在通信中經(jīng)歷短暫的延遲。對(duì)于這兩個(gè)問題,長(zhǎng)期的解決方案是改進(jìn)平行鏈協(xié)議,為下一個(gè)平行鏈區(qū)塊的創(chuàng)建留出更長(zhǎng)的時(shí)間。一個(gè)短期的解決方案是將收集人的地理位置更靠近大部分驗(yàn)證人節(jié)點(diǎn)的位置。然而,這會(huì)造成暫時(shí)的區(qū)域集中風(fēng)險(xiǎn) —— 長(zhǎng)期解決方案可以減輕這種風(fēng)險(xiǎn)。
批準(zhǔn)投票
批準(zhǔn)投票協(xié)議負(fù)責(zé)提供平行鏈的大部分安全性。它與 GRANDPA 的最終性協(xié)議緊密集成。粗略地說,節(jié)點(diǎn)被隨機(jī)選擇來(lái)檢查平行鏈區(qū)塊的有效性。需要一定數(shù)量的節(jié)點(diǎn)來(lái)完成包含候選者的中繼鏈塊,并且宣布他們打算檢查但不跟進(jìn)的“未出現(xiàn)”將被自動(dòng)替換。關(guān)于有效性的爭(zhēng)議升級(jí)到整個(gè)驗(yàn)證人集,導(dǎo)致至少一個(gè)驗(yàn)證人被 Slash 懲罰。
為了對(duì)批準(zhǔn)投票進(jìn)行基準(zhǔn)測(cè)試,我們可以觀察到以下幾點(diǎn):
驗(yàn)證人的 GRANDPA 最終性滯后意見
驗(yàn)證人分配的平均“ 部分(tranche)”(理想情況下 = 0)
驗(yàn)證人分配和批準(zhǔn)的數(shù)量
最終延遲

上圖顯示了對(duì)數(shù)標(biāo)度(logarithmic scale),應(yīng)該落后于中繼鏈最終確定性的區(qū)塊數(shù)量的最大和平均意見。每個(gè)驗(yàn)證人都有自己的意見,基于驗(yàn)證人對(duì)中繼鏈引用的每個(gè)平行鏈塊的批準(zhǔn)狀態(tài)的看法。
大多數(shù)情況下,這是在 2 到 5 之間。然而,它偶爾會(huì)跳到 50。這些事件有點(diǎn)令人震驚 —— 50 塊有一個(gè)故障保護(hù),很明顯,每隔幾周就會(huì)被擊中一次。
目前正在調(diào)查這些最終失速事件。我們將提出治理解決方案,以在 Polkadot 平行鏈發(fā)布之前解決這個(gè)問題。
平均 Tranche

每個(gè)驗(yàn)證人在技術(shù)上都被分配來(lái)檢查每個(gè)平行鏈塊。唯一的問題是什么時(shí)候 —— 通常只有第 0 批驗(yàn)證人被實(shí)際征召進(jìn)行檢查,并且只有在第 0 批驗(yàn)證人未能出現(xiàn)時(shí)才會(huì)出現(xiàn)后續(xù)的一批。
上圖表明,除了最終失速事件外,第 50 和第 95 個(gè)百分位數(shù)分配的部分通常為 0。
分配和批準(zhǔn)

該圖展示了驗(yàn)證人在網(wǎng)絡(luò)上的分配如何轉(zhuǎn)化為相應(yīng)的批準(zhǔn)投票。我們可以看到所有分配都被轉(zhuǎn)換為批準(zhǔn),盡管其中大多數(shù)報(bào)告為過時(shí)。該數(shù)據(jù)與報(bào)告的最終延遲不一致,因?yàn)椤斑^時(shí)”批準(zhǔn)是那些在最終確定后變得無(wú)關(guān)緊要的批準(zhǔn)。
幾乎根據(jù)定義,大多數(shù)批準(zhǔn)不應(yīng)該是陳舊的,因?yàn)樗鼈兪紫仁亲罱K確定所必需的。此類別有可能被節(jié)點(diǎn)或 Grafana(一個(gè)性能監(jiān)測(cè)工具)誤報(bào)。在 Rococo,相應(yīng)的圖表顯示了分配和成功批準(zhǔn)的近乎 1:1 的映射。
網(wǎng)絡(luò)連接

在 Kusama 上,有 900 個(gè)驗(yàn)證人,每個(gè) session 中隨機(jī)選擇 200 個(gè)參與平行鏈共識(shí)。每個(gè)當(dāng)前驗(yàn)證人都旨在連接到當(dāng)前活躍驗(yàn)證人集中的驗(yàn)證人以及最后 6 個(gè) session。
有許多驗(yàn)證人有大約 200 個(gè)連接,這是因?yàn)樗鼈兪桥f驗(yàn)證人集的一部分。作為當(dāng)前驗(yàn)證人集的一部分的驗(yàn)證人應(yīng)該會(huì)遇到更高連接性的峰值。我們可以看到,在很大程度上,我們?cè)诰W(wǎng)絡(luò)中檢查的驗(yàn)證人是過度連接的,并且連接到驗(yàn)證對(duì)等集上的其他 899 個(gè)驗(yàn)證人中的大多數(shù)。這對(duì)正確性沒有問題,但確實(shí)為提高效率提供了機(jī)會(huì)。
一些驗(yàn)證人連接不足,并沒有像應(yīng)有的那樣插入到傳播網(wǎng)絡(luò)。盡管如此,沒有一個(gè)驗(yàn)證人的連接數(shù)少于 100,因此信息應(yīng)該被驗(yàn)證人傳播,盡管要經(jīng)過更多的跳躍。
某些請(qǐng)求需要點(diǎn)對(duì)點(diǎn)通信,因此,所有驗(yàn)證人都必須可以通過已發(fā)布的節(jié)點(diǎn)地址公開訪問。節(jié)點(diǎn)軟件自動(dòng)執(zhí)行此功能,但節(jié)點(diǎn)運(yùn)營(yíng)商負(fù)責(zé)確保節(jié)點(diǎn)可訪問。

該圖顯示了每秒發(fā)出的塊請(qǐng)求數(shù),以及不同類型的失敗數(shù)。這里的請(qǐng)求類型并不重要,關(guān)鍵是“撥號(hào)失敗”失?。ㄏ聢D中的黃線)幾乎正好是請(qǐng)求數(shù)量的 10%。這表明 10% 的驗(yàn)證人在其發(fā)布的地址上無(wú)法訪問。
加載 (CPU & 網(wǎng)絡(luò))

此圖顯示驗(yàn)證人在內(nèi)核中的 CPU 使用率。大多數(shù)驗(yàn)證人都在 1.5-2 core 利用率范圍內(nèi)。我們目前的建議是讓驗(yàn)證人使用 4 核 CPU 運(yùn)行,因此 CPU 利用率在預(yù)期范圍內(nèi)。

此圖按任務(wù)顯示 CPU 使用情況細(xì)分。前 3 個(gè)任務(wù)支配 CPU 使用率,降序是“l(fā)ibp2p-node”、“network-worker”和“grandpa-voter”任務(wù)。這些任務(wù)主要與網(wǎng)絡(luò)相關(guān),這表明網(wǎng)絡(luò)利用率的優(yōu)化將大大降低節(jié)點(diǎn)的 CPU 利用率。

節(jié)點(diǎn)使用的大部分用于傳播的流量發(fā)生在 /polkadot/validation/1 網(wǎng)絡(luò)協(xié)議上。這會(huì)匯總節(jié)點(diǎn)之間的所有信息,并占網(wǎng)絡(luò)流量的很大一部分。該圖顯示,總體而言,驗(yàn)證人的平均網(wǎng)絡(luò)帶寬非常穩(wěn)定的在 400-500KB/s 之間,“輸入”帶寬略大于“輸出”帶寬。

節(jié)點(diǎn)使用的大部分請(qǐng)求/響應(yīng)帶寬都在塊分布協(xié)議中。有 200 個(gè)驗(yàn)證人和 1MB 的最大 PoV 大小,塊的峰值約為 15KB。在這些平均請(qǐng)求/響應(yīng)速率下,這意味著大約 307KB/s 的輸入和 138KB/s 的輸出帶寬。然而,目前 PoV 非常小,因?yàn)槠叫墟溸€沒有接近峰值交易量。
建議
總體來(lái)說,網(wǎng)絡(luò)運(yùn)行平穩(wěn)。盡管平均對(duì)等點(diǎn)數(shù)和網(wǎng)絡(luò)帶寬在整個(gè)網(wǎng)絡(luò)中看起來(lái)是一致的,但仍有一些異常節(jié)點(diǎn)過度連接并經(jīng)受了更高級(jí)別的網(wǎng)絡(luò)帶寬。
在目前的環(huán)境下看,強(qiáng)大的 4 核 CPU 和 64GB 內(nèi)存以及快速的互聯(lián)網(wǎng)連接的長(zhǎng)期推薦已經(jīng)綽綽有余。當(dāng)前的帶寬使用似乎在 8-16Mbps 的范圍內(nèi),因此一個(gè)典型的 100Mbps 數(shù)據(jù)中心連接足以維持最后 5 個(gè)。
唯一的主要問題是網(wǎng)絡(luò)遇到的不常見的區(qū)塊最終性的停頓(finality stalls)。這些停頓被故障保護(hù)裝置捕獲,因此沒有造成太大損害,但我們正在調(diào)查根本原因,會(huì)在 Polkadot 啟動(dòng)平行鏈之前提出解決方案。
原文鏈接:https://polkadot.network/network-stability-report-kusama-with-parachains/
翻譯:波卡第一中文社區(qū)
直播預(yù)告:
本周四(8 月 19 日)晚 7 點(diǎn),PolkaWorld 視頻號(hào)直播準(zhǔn)時(shí)開播,本期邀請(qǐng)到了 Astar 中國(guó)區(qū)代表 sms 為大家講解 Shiden 平行鏈上線后的進(jìn)展。點(diǎn)擊下方按鈕立即預(yù)約。
歡迎學(xué)習(xí) Substrate:
https://substrate.dev/
關(guān)注 Substrate 進(jìn)展:
https://github.com/paritytech/substrate
關(guān)注 Polkadot 進(jìn)展:
https://github.com/paritytech/polkadot

更多內(nèi)容:
Rob Habermeier:波卡能為 DeFi 世界帶來(lái)哪些開拓性創(chuàng)新?
波卡聯(lián)合創(chuàng)始人 Rob:波卡生態(tài)還在發(fā)展早期,“平行鏈季” 是一個(gè)開始
W3F Grant 更新:申請(qǐng)指南、評(píng)審標(biāo)準(zhǔn)、金額等級(jí)...
掃碼關(guān)注公眾號(hào),回復(fù) “1” 加入波卡群
關(guān)注 PolkaWorld
發(fā)現(xiàn) Web 3.0 時(shí)代新機(jī)遇
點(diǎn)個(gè) “在看” 再走吧!
