BitXHub是趣鏈科技自主研發的跨鏈技術平臺,提供基于異構聯盟鏈間的賬本互操作解決方案。為保證BitXHub跨鏈平臺在日常迭代過程中的功能符合用戶需求,并盡可能多的把問題在發布或交付之前發現并改正,Premo測試工具應運而生。Premo主要基于BitXHub自身的gosdk實現,具有易于擴展和維護的特點。本文主要圍繞功能測試、性能測試以及自動化測試三個方面來概述Premo的測試框架。
Premo測試框架如下圖所示。基于測試的內容主要分為「功能測試」和「性能測試」。功能測試主要基于testing和testify實現整體測試框架,基于gosdk實現和BitXHub跨鏈平臺的通信和調用;性能測試主要是在gosdk的基礎上通過協程實現。Premo在功能測試的基礎上又進一步實現了持續集成測試,持續集成測試部分主要借助GitHubActions實現。
功能測試模塊主要依托于BitXHub項目自身的gosdk,testify開源庫和testing庫實現。功能測試模塊根據測試的功能點分為多個測試文件,每一個測試文件內的測試用例都包含于一個測試套件中,在日常測試可以基于你所需要測試的功能點來運行不同的套件,如下圖所示。例如model1001_chain_test.go內的所有測試用例都包含在model1這個套件中,如果需要運行chain相關的測試用例只需運行model1的套件即可。
新火科技中期業績財報:實現營收25.06億港元,凈虧損2.32億港元:6月1日消息,港股新火科技發布了截止到 2023 年 3 月 31 日的中期業績財報。報告期內,公司實現營收 25.06 億港元,較 2022 年的 3.52 億港元同比增長 612.3%。其中虛擬資產交易及借貸貢獻 23.86 億港元,占比高達 95.21%。業績高速增長背后,虧損也在進一步擴大。報告期內凈利潤為虧損 2.32 億港元,2022 年同期虧損為 0.49 億港元。此外,新火科技先后撤銷了在新加坡、中國香港的牌照申請,理由是因業務重心和規劃調整。[2023/6/1 11:52:16]
▲并行化測試
隨著項目的不斷擴展,測試用例的數目也在不斷增加,回歸全量測試用例所消耗的時間也越來越長,順序測試的方法在快速迭代的版本開發中顯得越來越低效。采用并行化測試可以有效解決這個問題,然而這又會引入一個新的問題,也就是測試用例之間的耦合性。很多用例在串行測試的過程中不會暴露問題,一旦進行并行化測試就會出現并發上的問題。
比特幣內存池已接近1GB,但并非因Ordinals銘文導致:3月24日消息,據Glassnode數據顯示,比特幣內存池容量已接近1 GB,數據顯示當前有超過6萬筆交易未確認,不過出現這種情況可能不是因為Ordinals銘文導致,分析認為本次比特幣內存池容量擴大很可能由現貨交易驅動。(cryptoslate)[2023/3/24 13:24:17]
以BitXHub跨鏈平臺為例,BitXHub跨鏈平臺在接收跨鏈交易的過程中會根據賬戶地址維護一個nonce值用于實現跨鏈交易的有序性,每收到一筆交易nonce值就會增加1,如果收到的nonce值小于預期的nonce值,BitXHub跨鏈平臺就會丟掉這筆交易,反之,如果大于預期的nonce,BitXHub跨鏈平臺就會暫存這筆交易,直至nonce達到預期。這就會要求我們在并行化測試的用例中人為的去維護這個nonce值。因此,并行化測試中很重要的一點就是需要維護用例之間的相對獨立性,如何維護用例的相對獨立性則需要根據項目自身因地制宜。
衡量一個跨鏈服務系統是否可靠穩定很重要的一點便是跨鏈自身的性能指標。Premo根據上述需求,基于BitXHub自身的gosdk實現了一套完整的性能測試方案用于檢驗BitXHub跨鏈平臺的性能是否滿足需求。Premo中進行的性能測試主要是壓力測試,通過向BitXHub跨鏈平臺發送大量的跨鏈交易來驗證BitXHub處理跨鏈交易的性能。整體性能測試主要分3個步驟進行,分別是應用鏈準備、發送跨鏈交易和統計TPS。
AnetaBTC在Cardano網絡上推出首個比特幣封裝資產cBTC:金色財經報道,Cardano網絡實現了一個重要的里程碑。AnetaBTC表示,它已經成功地在該網絡上鑄造了cBTC(一種封裝比特幣),標志著Cardano生態系統向前邁出了一大步。據悉,AnetaBTC是第一個在Cardano實現這一功能的項目。
CBTC是Cardano上的一種比特幣資產,類似于ETH上的封裝比特幣wBTC,但沒有中心化托管人。封裝資產有助于橋接來自其他生態系統的流動性,而在Cardano上的封裝比特幣可能有助于釋放比特幣市場的流動性。
在鑄造cBTC時,用戶將自己的ADA地址添加到BTC TX元數據中,存入BTC,然后由AnetaBTC進行處理和確認。cBTC被鑄造,然后發送到用戶的Cardano錢包。(U.Today)[2023/3/5 12:43:36]
▲應用鏈準備
在發送跨鏈交易前,需要預先根據不同的交易類型注冊一定數量的應用鏈到中繼鏈,以便后續Premo通過SDK使用這些應用鏈的身份向中繼鏈發送跨鏈交易。應用鏈注冊成功后還需要部署相應的驗證規則,用于中繼鏈驗證交易的有效性。
多重簽名初創公司Den完成280萬美元融資:金色財經報道,多重簽名初創公司Den完成280萬美元融資,IDEO CoLab Ventures領投,參投方包括Gnosis、Lemniscap和Spice Capital,個人投資者包括前Coinbase首席技術官Balaji Srinivasan和來自Not Boring Capital的Packy McCormick等。本輪融資將用于開發多簽錢包,Den的創始人為ConstitutionDAO核心成員Jonah Erlich和Ittai Svidler。[2023/2/22 12:23:31]
▲發送跨鏈交易
根據預先設定的TPS和應用鏈數量可以計算出一條應用鏈在一秒內需要向BitXHub跨鏈平臺發送的跨鏈交易數量。預先設定的交易類型可以構造出對應的交易體。注意由于跨鏈交易的有序性要求,我們需要在交易體中維護每一條跨鏈交易的nonce值。同時為了更加均勻的發送跨鏈交易,每隔50ms,Premo就會發送部分跨鏈交易到BitXHub跨鏈平臺上,例如Premo需要模擬20條應用鏈每秒總共發送2000條跨鏈交易,那么每條應用鏈需要在1秒內發送100條跨鏈交易,每50ms每條應用鏈就會發送5條跨鏈交易。
比特幣“極度恐慌”時期已持續70天,創歷史最高記錄:7月16日消息,截至7月15日,比特幣“恐慌和貪婪”指數(Fear & Greed)處于“極度恐慌”已持續達70天,創歷史最高記錄。鏈上分析平臺LookIntoBitcoin創建者Philip Swift在社交媒體上表示,本次熊市的“極度恐慌”時間跨度超過了2018年比特幣熊市和2020年3月市場崩盤。(Cointelegraph)
此前消息,今日比特幣“恐慌和貪婪”指數為21,等級仍為極度恐慌。[2022/7/16 2:17:09]
▲統計TPS
統計TPS是通過訂閱BitXHub跨鏈平臺的區塊事件實現。訂閱區塊事件后,BitXHub跨鏈平臺每出一個塊就會推送到Premo中,Premo通過統計區塊內的交易數量來計算TPS,每筆交易的延時=收到區塊的時間搓-交易的時間搓。Premo根據上述信息每秒打印TPS和交易的平均延時。
自動化測試主要實現的功能是在任意一個分支提PR到master分支或者release*分支時,完成全量功能測試用例的測試,同時根據測試結果生成相應的測試報告,并將測試報告發布到服務器,通過郵箱的形式通知PR的提交者。
▲Make命令
Premo將功能測試加入make命令中,通過make命令就能進行全量的功能測試。同時make命令根據測試的結果生成相應的測試報告。
▲GitHubActions
GitHubActions是GitHub的持續集成服務。在任意一個分支提PR到master分支或者release*分支時會觸發對應的action,action將根據目的分支名拉取對應的Premo分支進行功能測試,同時將成的測試報告發布到指定的服務器上,并將測試報告的連接通過郵件的形式發送給PR的提交者。
▲allure-server
GitHub上開源的AllureReportServer,支持通過GitHubActions的方式發布測試報告,并且allure-server支持docker。
「上述需要進行的工作較多,我們可以一點一點解析」
根據PR觸發action:
具體參考githubactions的官方文檔Eventsthattriggerworkflows相關章節;
根據目的分支功能測試:
在action中我們可以獲取目的分支名,Premo的測試用例是根據BitXHub跨鏈平臺的版本維護的,所以只需根據目的分支名拉取Premo進行功能測試即可;
發布測試報告:
發布測試報告主要通過allure-server進行,allure-server在上文已經提過。需要注意的一點是allure-server對應的服務器的地址不能暴露,否則會給服務器帶來不穩定因素,通過倉庫中設置來可以解決這個問題;
郵箱通知:
郵件通知在GitHubActions中較為常見,使用對應的action即可。需要注意是由于使用的SMTP的形式所以郵箱的賬號和密碼不能公開。通過倉庫中設置可以解決這個問題。在郵箱通知的過程中需要知道目的郵箱的賬目密碼,同時還需要郵箱開啟SMTP服務,這種情況下在action中配置PR提交者的郵箱變的不可取。
一個合適的解決方式是:通過郵箱自身的收發信規則。以騰訊企業郵箱為例,郵箱支持根據郵件的內容進行自動轉發。我們只需要在郵件中攜帶提交者的github的名稱,收發信規則根據名稱過濾,將郵件自動轉發給PR提交者。通過上述方式在action中不需要根據不同的PR提交者指定不同的郵箱地址,只需要將郵件發送給"中轉站"即可。
完成上述工作后,只需要根據BitXHub的分支維護Premo功能測試用例即可完成相應的自動化測試。具體流程如下圖所示:
本文介紹了BitXHub官方測試框架Premo的基本設計原理和測試模塊,及功能測試和性能測試的重要實現方法。通過GithubActions的編排,Premo可以較好地對BitXHub的功能模塊實現自動化并行測試,并及時反饋測試結果。
如想進一步了解Premo測試框架的詳細實現,可訪問項目地址或聯系小助手桔子加入技術交流群,獲取更多資料。
地址:https://github.com/meshplus/premo
作者簡介
祝煒潔趣鏈科技數據網格實驗室BitXHub團隊
金州勇士隊控球后衛斯蒂芬·庫里向他的1550萬推特粉絲尋求如何開始使用Crypto的建議。“剛開始玩Crypto游戲…你們有什么建議嗎?”到目前為止,庫里的這條推文已經獲得了超過6.7萬條贊,8.
1900/1/1 0:00:00據經濟觀察報9月12日報道,近日,在2021中國數字金融論壇上,中國人民銀行數字貨幣研究所與北京豐臺麗澤金融商務區共同設立的國家數字金融技術檢測中心正式揭牌.
1900/1/1 0:00:00根據富達數字資產公司2021年機構投資者數字資產研究的新見解,大多數美國和歐洲機構投資者(84%)有興趣購買持有數字資產的機構投資產品,而在美國,投資者更喜歡通過傳統金融公司獲取這些產品.
1900/1/1 0:00:00大多數人都不會注意到數字世界里的身份問題,直到他們的身份被盜了。身份數據是用戶在特定網站創建的憑據,網站會將用戶發布的內容鏈接到用戶名,這樣就構建出了一個數字身份.
1900/1/1 0:00:00巴比特訊,9月7日,據DappRadar數據顯示,交易總額超過1億美元的NFT收藏品系列已達15個.
1900/1/1 0:00:00據路透社10月1日消息,美聯儲很快將發布一份備受期待的報告,探討采用數字美元的可能性,但由于理事和其他決策者在這個問題上存在分歧,而且此事對金融行業關系重大,美聯儲可能會謹慎行事.
1900/1/1 0:00:00