買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > BNB價格 > Info

COM:使用 Multicall 加速 DeFi 查詢調用_CON

Author:

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

譯文出自:登鏈翻譯計劃

譯者:翻譯小組

校對:Tiny熊

背景介紹

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

什么是Multicall?

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

用測試了解運作方式

薩爾瓦多總統:使用 Chivo 錢包支付汽油費用的公民將獲得折扣:金色財經報道,繼薩爾瓦多總統 Nayib Bukele上周在本周五透露了這座火山驅動的比特幣采礦設施之后,Bukele向他的 Twitter粉絲介紹了政府已頒布的兩項積極實施措施。首先,Bukele 解釋說,他簽署了一項法令,授權設立一個基金來穩定薩爾瓦多的天然氣價格。他指出,天然氣價格預計會上漲,但他的法令阻止了上漲。在這些聲明之后,Bukele 然后詳細說明 Chivo 比特幣錢包用戶在加滿油時將能夠獲得每加侖汽油折扣。這個新折扣的指導方針不是很明確,但 Bukele 表示,如果客戶使用 Chivo 錢包應用程序支付,該國一些最大的加油站公司將把每加侖汽油的價格降低 0.20 美元。[2021/10/4 17:22:49]

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

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

創建項目

安裝依賴

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

calculatetime.js

調用合約

常規循環調用

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

聲音 | BM 發推:EOSIO 使用 WABT WASM 引擎速度快 2 倍:據 IMEOS 報道,BM 發推表示,EOSIO 使用 WABT WASM 引擎,速度會快 2 倍。

新 WebAssembly 解釋器 WABT 是在這次EOSIO 1.3.0 更新中提到的,與當前使用的 binaryen 相比,速度將快 2 倍。而此次版本更新將包含把 WABT 完全接入到 EOSIO 區塊鏈中,允許節點利用事務處理降低成本。[2018/9/21]

上面實例化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函數,并進行網絡調用。

EOS憲法鼓勵代幣使用 促進活躍度提升:據bitcoinist消息,根據EOS“憲法”第十七條規定:在會員簽署的最后一筆交易被納入區塊鏈3年后,會員將自動解除本組織規定的所有可撤銷義務。如果一個賬號3年不活躍,則可能會被拍賣,并通過取消發行量來將收益分配給所有會員。據悉,這一規則可能是為了刺激EOS的使用和活躍,但也將長期投資者排除在外。[2018/6/18]

對比分析結果

要查看是否確實有重大改進,只需要對比兩個調用消耗的時間。

傳統循環方法消耗的時間:

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:ALLCALCONCOMminifootball幣怎么樣memecalfethicalsiliconpoliceMyPoints E-Commerce

BNB價格
HBT:霍比特關于上線ADAUSDT、ZECUSDT和XMRUSDT永續合約的公告_hbc幣最新價格

尊敬的社區用戶: 霍比特交易所USDT永續合約板塊將于2021年1月13日16:00上線ADAUSDT、ZECUSDT和XMRUSDT永續合約,您可以通過網頁或者App進行交易.

1900/1/1 0:00:00
DOT:深度解析波卡平行鏈插槽拍賣 對DOT和生態意味著什么?_AIN

2020年12月23日,波卡聯合創始人Robert在PolkaWorld官方發文宣布,波卡專用的平行鏈測試網RococoV1已經啟動并運行,允許社區平行鏈通過cumulus連接到中繼鏈.

1900/1/1 0:00:00
COIN:【韭菜必看】灰度讓你系好安全帶,它來救市了!_Davecoin

1、老鷹觀點 遲來的回調終于在昨天來了,老鷹原本以為觸及到4萬關口位置就會發生,結果走到了41900后穩了兩天才來,從41900高點到目前最低的30408,1萬2千刀的回踩.

1900/1/1 0:00:00
比特幣:比特幣大回調,一天暴跌1萬美金,但我依舊覺得它比黃金更像黃金_ALK

?今天大盤經過了一場血洗,比特幣現在差不多要跌破30000美金了,一天的跌幅一萬多美金,可謂慘不忍睹,截止到下午兩點,就有20多萬人直接爆倉,爆倉金額達到了140億,所以我一直勸大家別碰合約.

1900/1/1 0:00:00
WIT:Twitter 首席執行官:比特幣這種不受單一個人或實體控制的模式正是互聯網所期望的_SHIWBAWITCH TOKEN

鏈聞消息,Twitter首席執行官JackDorsey發推回應Twitter此前宣布永久封禁特朗普賬號一事稱,「這對Twitter來說是正確的決定,盡管我們可能違背了言論自由,但我們將進行反思.

1900/1/1 0:00:00
覓新|Mars:第一個基于以太坊的標準化算力協議

《覓新》是金色財經推出的一檔區塊鏈項目觀察類項目,覆蓋行業各領域項目發展情況,具體設計到項目概況、技術進展、募資情況等,力圖為您呈現熱門新潮的項目合輯.

1900/1/1 0:00:00
ads