譯文出自:登鏈翻譯計劃
譯者:翻譯小組
校對:Tiny熊
背景介紹
有時,從區塊鏈獲取數據的成本可能會非常高,不管是從請求花費的時間還是從發送的請求數量上來說,都是這樣。如果我們想同時獲取大量數據,用來在儀表板上顯示或進行分析,我們必須調用合約的不同函數或者用不同參數調用相同函數,這些都可能會導致查詢時間很長。另外,當我們使用像Infura這樣的節點提供商,也很容易達到發送請求數量的限額。
什么是Multicall?
Multicall是一個npm軟件包,可將多個HTTP調用分為一個組。用這個方式,之前想從_n_個不同的請求中獲取的數據,現在可以在發送HTTP請求之前對它們進行分組,然后進發送一個請求,從而縮短了請求響應時間,并降低了eth_call調用的次數。
用測試了解運作方式
Alchemy Pay已支持全球用戶使用 Apple Pay購買加密貨幣:1月18日消息,加密支付服務商Alchemy Pay目前已支持Apple Pay支付渠道,允許合作企業增加ApplePay支付方式,全球用戶可以通過Alchemy Pay使用Apple Pay支付方式購買加密貨幣。企業通過API可快速集成Alchemy Pay的Ramp支付解決方案。
金色財經此前報道,1月16日,Visa將Alchemy Pay列為官方服務提供商。[2023/1/18 11:18:17]
為了了解這種機制的工作原理以及相對于傳統方法是否確實有所改進,我們將通過一個對比測試來驗證。分別在不使用Multicall和使用Multicall的情況下,對每個函數調用_n_次,然后分析結果。為此,我們通過調用函數getAccountLiquidity來查詢Compound協議。我們將使用1,000個不同的地址來獲取所有地址的信息。
Web3 平臺 MRHB 使用 4EVERLAND 的云計算解決方案:金色財經報道,去中心化金融平臺MRHB DeFi已經通過Web3云計算平臺4EVERLAND將他們的mrhb.network網站轉移到世界計算機區塊鏈ICP(互聯網計算機協議)的去中心化基礎設施上。
4EVERLAND的去中心化云計算平臺通過整合存儲、計算和網絡核心能力,幫助用戶從Web 2.0平穩過渡到Web 3.0。此外,4EVERLAND有一個專門的IC網關,為通過4EVERLAND部署的ICP項目提供全球加速,實現從部署到訪問的分散體驗。[2023/1/17 11:15:25]
創建項目
安裝依賴
為了進行測試,先創建一個Node項目,并將安裝依賴項:ethers
calculatetime.js
調用合約
常規循環調用
知名導演 Spike Lee:使用 NFT 資助電影將“為電影制作帶來更多民主”:6月22日消息,知名導演Spike Lee在NFT NYC大會上發言表示,使用NFT資助電影將“為電影制作帶來更多民主”。然而,Lee也承認NFT投資的風險性,稱“無論你做什么,你都必須做研究。”此外,Lee還暗示將“很快”推出一個新的NFT項目。不過,當一位聽眾問到他是否會用NFT銷售來資助自己的項目時,Lee回答道:“也許在未來,但不是現在。”斯派克·李(Spike Lee)是美國電影制作人、導演、編劇兼演員。2015年8月,他獲得了第88屆奧斯卡終身成就獎。2019年2月25日,又憑借《黑色黨徒》獲得第91屆美國奧斯卡金像獎最佳改編劇本。(The Block)[2022/6/22 4:44:18]
先使用傳統方法進行測試,我們將遍歷1,000個的地址數組(在map循環中),逐個獲取每個查詢的結果,執行方法如下:
constgetLiquidity=()=>{constcompoundContract=newethers.Contract(compound.comptroller.address,compound.comptroller.abi,provider)returnPromise.all(accounts.map(account=>{letdatatry{data=compoundContract.getAccountLiquidity(account.id。catch(error){console.log(`Errorgettingthedata${error}`。returndata})。
Yuga Labs 新項目 Otherside 宣布拍賣將使用 Apecoin 支付:金色財經消息,Yuga Labs 將于北京時間5月1日零點推出的元宇宙土地項目 Otherside 在推特上宣布,Otherside拍賣將使用ApeCoin來支付,Mint 將采用荷蘭式拍賣方式,因此 ApeCoin 的價格會隨著時間的推移而下降。荷蘭拍賣的起拍價將于本周晚些時候公布。BAYC 和 MAYC 持有者可在拍賣后的 21 天內申領 NFT。此外,此次拍賣獲得的 ApeCoin 都將被鎖定一年,這意味著持有者在 ApeCoin DAO 中沒有投票資格。[2022/4/26 5:11:30]
上面實例化compoundcomptroller合約,并在每個地址上調用流動性函數。
使用Multicall調用
使用Multicall調用時,調用函數必須稍作更改,形式如下:
constgetLiquidity=async()=>{constethcallProvider=newProvider(provider);awaitethcallProvider.init();constcompoundContract=newContract(compound.comptroller.address,compound.comptroller.abi,)constcontractCalls=accounts.map(account=>compoundContract.getAccountLiquidity(account.id))constresults=awaitethcallProvider.all(contractCalls);returnresults}
聲音 | Bitfury Russia總經理:加密貨幣有助于監控國有資產使用 避免公款盜用:據俄羅斯衛星通訊社消息,礦業巨頭Bitfury Group俄羅斯分公司總經理德米特里·烏法耶夫在東方經濟論壇期間對媒體表示,加密貨幣有助于監控國有資產使用,避免公款盜用。他指出,\"有別于無現金支付,使用加密貨幣能跟蹤觀察各種代幣,相應地你可以清楚地判斷,如果撥了一筆資金,這筆錢具體花在了哪。在這方面加密貨幣的主要優點是可以用來監管資金的分配。\"[2018/9/13]
利用Multicall包中的Provider和Contract類。首先,初始化provider,并傳遞web3、合約地址及其合約ABI。
創建完成后,執行則和之前類似。在map里,調用帳戶流動性函數。但是現在它不會發送到網絡,而是將它們分組到一個數組中。創建此數組后,將調用創建好的MulticallProvider的all函數,并進行網絡調用。
對比分析結果
要查看是否確實有重大改進,只需要對比兩個調用消耗的時間。
傳統循環方法消耗的時間:
Timetoprocessinmilliseconds:124653Timetoprocessinseconds:124.653Numberofentriesintheresult:1000
使用Multicall調用
Timetoprocessinmilliseconds:9591Timetoprocessinseconds:9.591Numberofentriesintheresult:1000
結論
通過結果對比,發現使用Multicall調用時間的減少是非常可觀的,從124秒減少到9.5,花費的時間減少大約十倍。
另外,如果比較eth_callRPC調用的數量,同樣是非常明顯的減少,從一千個減少到只有一個。
因此,如果我們依賴第三方的節點提供商,而在該提供商中對API的調用是有限額,則這一點也同樣重要。
本翻譯由CellNetwork贊助支持。
來源:https://medium.com/better-programming/speed-up-your-defi-queries-using-multicall-d4cf652d8ab6
參考資料
登鏈翻譯計劃:https://github.com/lbc-team/Pioneer
翻譯小組:https://learnblockchain.cn/people/412
Tiny熊:https://learnblockchain.cn/people/15
Infura:https://infura.io/
Multicall:https://github.com/cavanmflynn/ethers-multicall#readme
ethers.js:https://docs.ethers.io/v5/
money-legos:https://money-legos.studydefi.com/#/
CellNetwork:https://www.cellnetwork.io/?utm_souce=learnblockchain
免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。
本文來源于非小號媒體平臺:
登鏈社區
現已在非小號資訊平臺發布105篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/9579148.html
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
幣安為何推出第三條鏈?這對BNB意味著什么?
2020年,由于COVID-19蔓延引發的經濟危機,導致世界金融體系面臨的問題越來越多。大國當局實行量化寬鬆的貨幣政策,導致貨幣價值下降,公眾對貨幣失去信心.
1900/1/1 0:00:00某君炒幣,一驚一乍。5分鐘前,大呼市場崩盤,區塊鏈殺人。5分鐘后,市場上漲2%,驚呼剛才沒抄底,大腿拍斷,狗莊騙他下車。昨夜大呼狗莊套我,難受難受。今早漲回了一點,心里嘖嘖,問題不大.
1900/1/1 0:00:00原文標題:《JenniferJiang:OCC放寬穩定幣支付網絡為銀行「永遠在線」開綠燈|云圖思潮》1月4日,美國貨幣監理署的第1174號解釋性信函發布,制定了道路規則.
1900/1/1 0:00:00昨天市場整體上還是以震蕩為主,根據當前的位置,主要是震蕩偏弱。昨天開盤后先行進行探底,首次探底位置是33700美元附近,隨后便開始反彈,最高時反彈至36600美元上方,接近3000美元的反彈幅度.
1900/1/1 0:00:00根據澳大利亞投資銀行麥格理的最新研究報告,如果像比特幣這樣的私人加密貨幣在電子商務中變得根深蒂固,美聯儲和歐洲中央銀行等央行就有可能失去數字貨幣競爭.
1900/1/1 0:00:00行情觀點:小時級別來看,大餅午夜24:00跌破下軌支撐觸底30408一線反彈震蕩上升,早間7時遇阻35628.3一線回調,二次觸底反彈,一路震蕩走高,K線連續6連陽.
1900/1/1 0:00:00