Prysm是優秀的ETH2.0的實現,也是目前Medalla測試網上運行最多的實現。Prysm采用BeaconChainNodeValidatorNode的架構,前者負責同步區塊數據,后者負責簽名出塊和見證。由于ValidatorNode可同時負載多個驗證人,為了對其可負載驗證人數量以及相關驗證人部署步驟有一個定性和定量的認知,我們特安排此次測試。??
測試結論
我們復刻了Medalla測試網,搭建HashQuark自己的ETH2.0BeaconChain,進行了兩輪測試,一共14個測試用例,跑了數十萬計Validator。Prsym的實現非常優秀,對于擁用少量ETH想參與以太坊Staking的普通用戶而言,一臺4核8G的云服務器就能夠平穩地運行BeaconChainNode和Validator,但運行過程中遇到的技術問題都不是非技術人員的普通用戶能解決的。
對于運行上萬個Validator的專業化PoS礦池,需要更高的配置才能保證超高出塊率。出塊率會隨著Validator數量的增加而減少。
我們接下來會在公開測試網Medalla進行下一輪測試,以更貼近主網環境,目前我們已經在Medalla正常運行了近3000個Validator,占整個網絡的5%。
測試環境
我們采用geth來搭建私有ETH1.0網絡,與公開測試網Rinkeby或goerli一樣,采用『clique』proof-of-authority算法,因為其相比PoW對資源需求更少。Prysm采用測試時的最新的release版本。
某巨鯨從幣安和Coinbase提出9900枚ETH并質押入Lido:金色財經報道,據Spot On Chain發布數據表示,某巨鯨從幣安和Coinbase提出9900枚ETH并質押入Lido。[2023/7/7 22:24:18]
以下測試采用的云主機部署,我們選取通用型N機型,CPU平臺為Intel/Broadwell。系統采用Ubuntu18.04.2LTS。geth版本為1.9.19-stable,Prysm版本為v1.0.0-alpha.24。
第一階段初步嘗試
測試方案
我們先從不同數量的驗證人對服務器資源的壓力進行簡單測試以獲得基本認知。
采用最基礎的兩臺ETH1.0節點兩臺ETH2.0BeaconChainNode兩臺ValidatorNode架構搭建私網作為起始嘗試方案。網絡穩定運行一天為觀察的時間段。
測試用例
下表為我們進行測試的概覽:
表1
測試指標
測試過程中我們收集了各個實例服務器的CPU、內存、磁盤IO、網絡帶寬IO等指標。??
測試過程
在測試1中,2核4G的BeaconChainNode內存階段性上升,在運行約6小時后,內存使用率達到100%,導致進程出現內存不足錯誤被迫停止,同時CPU使用率也逐步提高。如下圖所示:??
GOFi投資者起訴韓國金管局主席等人,指控他們拖延Gopax經營者變更程序:6月29日消息,韓國加密交易所Gopax旗下理財產品GOFi的投資者和法定代表人已向該國金融服務委員會主席以及金融監管局主席以及金融服務委員會金融情報室(FIU)院長提起訴訟,指控其遲遲未接受Gopax經營者變更報告,導致GOFi無法重新開放提款,并要求他們賠償5000萬韓元的損失。
3月7日,Gopax向金融情報機構提交了一份關于注冊高管和業務運營商變更的報告,在完成該變更后,幣安才能完成對Gopax的收購。訴訟稱,根據現行法律,當局必須在45天內通報變更報告受理結果,但當局并未這樣做,投資者因此蒙受損失,他們“正在審查超出依法合法審查范圍的其他部分”。[2023/6/29 22:08:10]
圖1??
圖2
之后,我們提升了BeaconChainNode的配置為4核8G。
在實例2-5中,依次提升驗證者數量1k-10k來觀察服務器CPU、內存、磁盤IO、帶寬等指標數據,均無壓力,也沒有異常。
之后我們在不同地區部署ETH2.0節點,來觀察不同地區的網絡互聯情況是否會對各指標產生較大影響,實驗結果均無異常。
測試小結
根據私網測試情況來看,BeaconChainNode建議4核8G配置,Validator節點2核4G的配置夠用,但是在導入key文件時會占用1核CPU,該CPU占用率為100%,穩妥起見,建議4C6G的配置。??
灰度報告:即使美聯儲本月加息25%,加密貨幣價格仍可能上漲:金色財經報道,灰度最新研究報告表示,聯邦公開市場委員會在4月份沒有召開會議,并將于5月3日再次召開會議,以確定是否實施25個基點的加息,市場目前認為這一結果的可能性為80%。雖然加息歷來不利于風險資產價格,但如果聯邦公開市場委員會的決定符合市場預期,加密貨幣價格可能會受益。
灰度還表示,雖然未來發展對比特幣價格的確切影響仍不確定,但額外加息和通脹率下降(從 2 月的 6% 降至 3 月的 5%)等因素與未來比特幣的看漲情況非常吻合。
此外,第一共和國 (FRC)、硅谷銀行 (SVB)、銀門銀行 (SI) 和簽名銀行 (SBNY) 的失敗表明,投資者在經濟不確定時期繼續表現出對加密貨幣的興趣。[2023/5/2 14:38:05]
圖3
第二階段對比測試
測試方案?
第一階段主要測試了不同數量的驗證人對于服務器資源的壓力,此外,驗證者的出塊和見證也是也是對于驗證人很重要的指標。為此我們進行了對比測試。在同一個網絡中,將不同數量的驗證人部署在不同的地區來進行對比測試。
測試指標?
測試過程中我們將收集各個實例服務器的CPU、內存、磁盤IO、網絡帶寬IO、應出的塊數、實際出塊數、應該見證的塊數、實際見證的塊數等指標。
測試用例?
以下為我們的測試用例:??
安全團隊:Deviants項目Discord服務器遭到攻擊:金色財經報道,據CertiK監測,Deviants項目Discord服務器遭到攻擊。請社區用戶在服務器修復之前不要點擊任何鏈接或聲明消息。[2023/1/4 9:51:28]
表2??
ETH1.0網絡由三臺2核4G云服務器組成,兩臺位于香港,一臺位于圣保羅。出塊時間設置為15s。
我們分別在香港、新加坡、洛杉磯、法蘭克福、圣保羅、倫敦六個地區部署了BeaconChainNode和ValidatorNode。各個地區的BeaconChainNode和ValidatorNode通過內網連接。配置和相應的驗證人數量如上圖。
實例1和實例2都是1k驗證人,區別在于ValidatorNode的配置,用于對比不同配置的驗證人數量對指標的影響。
實例3,4,5,6增加了驗證人數量。鑒于實際情況下我們不太可能將超過10k的驗證人置于單臺機器上,因此我們將測試數量停在了20k。
各個地區的BeaconChainNode與其余node相連。
測試網參數選擇?
我們先在ETH1.0網絡上部署了deposit合約,生成所需數量的驗證人密鑰后,批量發送了存款交易。Prysm啟動時修改了以下參數:
MinGenesisActiveValidatorCount設置為8192,由于我們的測試中包含了40k驗證人,所以能夠滿足;
美SEC對DAO組織American CryptoFed提起行政訴訟:金色財經報道,美國證券交易委員會(SEC)宣布已開始對總部位于懷俄明州的去中心化自治組織(DAO)American Crypto Fed提起行政訴訟,以確定是否應發出停止令,要求對方暫停注冊其Ducat和Locke代幣的發售和銷售。
SEC認為,American CryptoFed去年提交的S-1表格注冊聲明沒有包括有關公司業務、管理和財務狀況的必要信息。該機構還表示,該聲明包含“具有重大誤導性的陳述和遺漏,包括關于代幣是否為證券的不一致陳述。”[2022/11/19 13:23:55]
Eth1FollowDistance設置為20,也就是ETH1.0網絡上的存款合約在5分鐘后會被ETH2.0網絡監測到;
SecondsPerETH1Block設置為15,這與ETH1.0網絡每個塊時間設置的一致;
MinGenesisTime設置為1599811200,也就是說最早在2020-09-11T16:00:0008:00啟動。
實際上,由于我們事先發送了所有的存款交易,滿足最早啟動時間設置的最小驗證人數量,整個ETH2.0網絡在1599811207(2020-09-11T16:00:0708:00)啟動。
數據統計和測試結果?
我們額外部署了一個BeaconChainNode來連接到ETH2.0私有網絡,來查詢數據。加上--slots-per-archive-point=1的參數來持久化存儲每個區塊的數據,從而加快查詢速度。加上--rpc-max-page-size=1000的參數,使得我們每次可以查詢更多的數據,從而減少請求次數加快總體速度。
我們選取了網絡相對穩定的一段時間,從75epoch到1200epoch采樣,獲取這段時間內處于不同實例中驗證者的出塊和見證的數據加以分析,得出如下結果:
所有驗證人都成功出塊,無漏塊情況;
不同地區的驗證者見證情況略有差異:
表3??
這里我們定義見證率為在一段時間內被包含的見證數除以被分配到見證數。不難看出,總體來說,隨著驗證人數量的上升,見證率會下降。但在實例3中,雖然驗證人只有2k,但見證率卻比6k甚至10k的見證率都要低。
為了探究導致實例3總體見證率異常的原因,我們統計每個實例里驗證者的見證率加以分析,看是否由于個別驗證者出了問題拉低總體比例。
我們將每個驗證者比例按照范圍劃分,得到以下數據:??
表4
由于各個實例驗證人數量不同,換算成比例會更加直觀:?
?表5
可以看到,實例3中大多數驗證人的見證率都不高,這也意味著實例3應該出了問題。
為此,我們檢查了實例3的日志,發現BeaconChainNode與其它節點以及ETH1.0的連接并不穩定,猜測是由此導致了見證率的異常,有待后續檢驗。
服務器壓力?
在本輪測試中,我們觀察到如下表的性能指標數據:??
-BeaconChainNode
實例1-5中,BeaconChainNode的CPU使用率在5%-10%之間,實例6的BeaconChainNode的CPU使用率約為12%。內存方面呈現平穩增加,在12%-17%之間,磁盤IO與帶寬無明顯差異。
-ValidatorNode
隨著驗證者數量的增加,ValidatorNode的各項指標均平穩增多,可以看到,磁盤IO與帶寬基本上正比于驗證者的數量。
此外,生成驗證者密鑰文件方面,我們采用的是一個推薦的python命令后工具(https://github.com/ethereum/eth2.0-deposit-cli),該工具生成密鑰的效率相對不高,在多核的機器上只占用1核,生成2000個密鑰對需要2.5小時左右。另一方面,ValidatorNode導入密鑰對也是單核執行,導入2000個密鑰對的時間大約為40分鐘。
測試小結?
通過本輪測試,我們在私有網絡中觀察到,驗證人數量的增加會影響節點上所有驗證人的出塊率,對于單個驗證人來說,在最好的情況和最壞的情況下,平均每天少見證約10個塊。出塊方面在我們的測試中并未發現不同。內存與磁盤IO的使用率相對于CPU和帶寬,更加明顯地隨著驗證人數量的增加而提升。
后續測試方案和待優化步驟
在本輪測試中,以下幾方面占據較多的準備時間:
驗證者密鑰對生成
部署deposit合約
ValidatorNode導入密鑰對
在后續方案中,計劃對上述步驟采取優化,提高測試效率。
此外,在后續測試計劃中,考慮到不同地區的網絡之間的穩定性及其對驗證人指標的影響,可以考慮以下幾點改進:
在同一地區增加多個測試實例,來對比是否為地區造成的差異;
部署多個ETH1.0節點,使BeaconChainNode能夠暢通連接ETH1.0網絡,減少造成的影響;
增加單獨同一地區對比測試,增加驗證者數量,控制變量,單純比較驗證者數量的影響。
在統計數據方面,考慮增加更多維度,如考慮到見證被包含的距離等,可參考這篇關于見證效率的文章。
測試問題匯總
GRPC數據量超過默認大小
當增加到近4k驗證人時,ValidatorNode會報錯grpc獲取的消息大小5350532(5M)超過最大值4194304。??
圖4?
解決方案:啟動ValidatorNode時通過--grpc-max-msg-size參數將grpc允許的消息大小適量調大。
Beaconchainnode無法同步
進行第一輪測試時,在網絡中只存在兩個BeaconChainNode的情況下,容易出現兩個節點之間無法同步區塊的問題,兩個節點都不認為對方是合適的peers。如下圖所示:
?圖5??
解決方案:我們目前采用清除節點的數據重新同步來解決。測試中我們發現,隨著BeaconChain節點的數量增多,該問題便不再發生。
存款金額誤報不夠
如發生下述計算activeEpoch過大或存款金額不夠而實際已夠的情況,則表示Prysm實現存在問題,參考這個issue(https://security.feishu.cn),該問題已在編寫本報告的最新版本修復。
圖6
原文來源:王澤樞,HashQuark社區?
尊敬的虎符用戶: 虎符將于2020年9月28日20:00(UTC8)重磅上線RFUEL/USDT和RFUEL/ETH交易對。充值已開啟,提現將于9月29日15:00(UTC8)開啟.
1900/1/1 0:00:00為回饋用戶長期的關注與支持,霍比特交易所將于9月28日20:00上線“UNI挖礦14日定期”Staking產品.
1900/1/1 0:00:00幣圈是什么意思?所謂的幣圈,即數字貨幣玩家天然形成的圈子。幣圈不大,但是人數也不算少,而且在人群中基本上屬于小眾異類,但林林總總算是一個圈子,賺錢的人不多,形形色色的賺錢方式也都被迅速地拷貝過來.
1900/1/1 0:00:00上證報中國證券網訊在過去,“區塊鏈”一詞與“比特幣”聯系緊密,事實上,區塊鏈本質上是一種由多方共同維護,使用密碼學保證傳輸和訪問安全,能夠實現數據一致存儲、難以篡改、防止抵賴的記賬技術.
1900/1/1 0:00:00尊敬的用戶: 幣虎合約將于2020年9月29日18:00上線ENJUSDT永續合約,并開通逐倉/全倉1-50倍杠桿,邀您體驗!截止目前.
1900/1/1 0:00:00尊敬的OKEx用戶: OKEx上線8X8Protocol(EXE),具體時間如下:1.EXE充值:10月13日15:00(HKT)2.EXE/USDT、EXE/BTC的市場交易:10月14日15.
1900/1/1 0:00:00