以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > ETH > Info

使用 Multicall 加速 DeFi 查詢調用_ALL:CON

Author:

Time:1900/1/1 0:00:00

譯文出自:登鏈翻譯計劃

譯者:翻譯小組

校對:Tiny熊

背景介紹

有時,從區塊鏈獲取數據的成本可能會非常高,不管是從請求花費的時間還是從發送的請求數量上來說,都是這樣。如果我們想同時獲取大量數據,用來在儀表板上顯示或進行分析,我們必須調用合約的不同函數或者用不同參數調用相同函數,這些都可能會導致查詢時間很長。另外,當我們使用像Infura這樣的節點提供商,也很容易達到發送請求數量的限額。

什么是Multicall?

Multicall是一個npm軟件包,可將多個HTTP調用分為一個組。用這個方式,之前想從_n_個不同的請求中獲取的數據,現在可以在發送HTTP請求之前對它們進行分組,然后進發送一個請求,從而縮短了請求響應時間,并降低了eth_call調用的次數。

用測試了解運作方式

世界經濟論壇發起聯盟以使用 web3、區塊鏈來采取積極的氣候行動:金色財經報道,世界經濟論壇正在啟動一項新的公私合作伙伴關系,以利用 web3 技術更好地支持積極的氣候成果,因為人們對區塊鏈技術對環境的影響的認識正在升溫。?這家總部位于瑞士的非政府組織周三在美國舉行的一次小組討論中宣布了加密可持續發展聯盟,該聯盟由可持續發展與 web3、加密和區塊鏈技術交叉領域的 30 個合作伙伴組成。[2022/9/23 7:17:04]

為了了解這種機制的工作原理以及相對于傳統方法是否確實有所改進,我們將通過一個對比測試來驗證。分別在不使用Multicall和使用Multicall的情況下,對每個函數調用_n_次,然后分析結果。為此,我們通過調用函數getAccountLiquidity來查詢Compound協議。我們將使用1,000個不同的地址來獲取所有地址的信息。

創建項目

安裝依賴

知名導演 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]

為了進行測試,先創建一個Node項目,并將安裝依賴項:ethers

calculatetime.js

調用合約

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]

常規循環調用

先使用傳統方法進行測試,我們將遍歷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})。

Augur 將通過使用 DXdao 結構引入 AugurDAO:11月19日消息,去中心化預測市場協議 Augur 宣布將引入 AugurDAO,不過會與管理著預測市場 Omen 的去中心化自治組織 DXdao 合作,并使用 DXdao 結構來構建 AugurDAO,但治理將由 REPv2 持有者推動。Augur 計劃于 2021 年 11 月底對支持 DAO 投票的智能合約進行審計,目前還在開發中。

之后,DXdao 論壇將提出一項提案來討論 DXdao 對 AugurDAO 的支持和合作關系細節。此外,Augur Discord目前已完全由社區志愿者運營。[2021/11/19 6:59:26]

上面實例化compoundcomptroller合約,并在每個地址上調用流動性函數。

使用Multicall調用

使用Multicall調用時,調用函數必須稍作更改,形式如下:

動態 | 三星 S10 用戶將可通過 Enjin 錢包使用 Bancor 網絡:據 EOS GO 消息,由于三星與 Enjin 有合作伙伴關系,三星 S10 手機現在有內置的區塊鏈硬件錢包,因此 4100 萬 S10 用戶能夠通過智能手機保持資產安全并通過 Bancor 接入進行交易,所有 S10 用戶都可以使用 Bancor 網絡。[2019/3/19]

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}

利用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意味著什么?

Tags:ALLCONCALCOMAlmira WalletCircular EconomyRoboCallsWHALECOM

ETH
關于ZT創新板即將上線COMBO的公告_COM:HTT

尊敬的ZT用戶:ZT創新板即將上線COMBO,并開啟COMBO/USDT交易對。具體上線時間如下:充值:已開啟;交易:2021年1月12日23:10; COMBO Furucombo是為最終用戶.

1900/1/1 0:00:00
【CCR】全體主流幣震蕩行情,DOT獨秀拉盤_比特幣:AIN

點擊上方"藍字"關注作者哦~本文章介紹今天幣圈整體行情以及幣圈相關熱門資訊為你篩選幣圈最重要的信息 話不多說直入主題吧~ 牛氣沖天,祝福大家在新的一年,身體健康,萬事如意.

1900/1/1 0:00:00
幣圈小蝶:炒幣風險大但收益高,該不該炒幣?_INB:OIN

?炒幣風險大但收益高,該不該炒幣?對于炒幣來說,能夠發財的只有兩種情況:第一、運氣足夠好,資金足夠大,踏上了一波主升浪,發財;第二、就是直接是莊家,坐莊這個幣種.

1900/1/1 0:00:00
1.12 BTC午間簡評_LOR:VAL

行情觀點:小時級別來看,大餅午夜24:00跌破下軌支撐觸底30408一線反彈震蕩上升,早間7時遇阻35628.3一線回調,二次觸底反彈,一路震蕩走高,K線連續6連陽.

1900/1/1 0:00:00
1.14早行情:灰度歸來 比特幣上漲近10%_BTC:閃電比特幣Lbtc價格

昨天行情整體上分為幾個階段,一是早上開盤后繼續下探引起市場恐慌,但隨后便開始上漲,到了下午乃至晚上原本應該最活躍的時候選擇了震蕩,到了半夜兩點的時候,方才快速拉盤.

1900/1/1 0:00:00
Vitalik Buterin:社交恢復錢包 Rollup 是更好的錢包方案_TAL:ITA

VitalikButerin認為,社交恢復錢包比傳統錢包更安全,而遷移到Rollup方案可有效解決其依賴中心化中繼器和高交易費用問題.

1900/1/1 0:00:00
ads