譯文出自:登鏈翻譯計劃
譯者:翻譯小組
校對: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個不同的地址來獲取所有地址的信息。
創建項目
安裝依賴
派盾: OpenSea 網絡釣魚攻擊事件攻擊者使用 Tornado.cash混幣1,100 ETH:2月20日消息,派盾(PeckShield)在社交媒體發布相關交易記錄表示,OpenSea漏洞事件攻擊者已將攻擊所得部分NFT出售獲利后,使用以太坊隱私交易平臺Tornado.cash混幣1,100ETH,價值約290萬美元。
此前報道,OpenSea 疑似遭到網絡釣魚攻擊,大量NFT被竊取并賣出套利。本次攻擊中共有32位用戶簽署了來自攻擊者的惡意交易,導致用戶部分NFT被盜。據統計已經有包括3只Bored Ape、25個NFTWorlds、37個Azuki等近百個NFT遭到被盜, 按照主流資產的地板價計算,黑客至少獲取了416.6 萬美元。[2022/2/21 10:04:35]
為了進行測試,先創建一個Node項目,并將安裝依賴項:ethers
calculatetime.js
聲音 | 前摩根大通高管:DApp應該易于使用 用戶無需擔心技術細節:據CryptoGlobe消息,摩根大通前執行董事Amber Baldet認為,“當人們使用DApp時,應該更多地關注應用程序的功能,而不是它的底層技術。”[2019/4/29]
調用合約
常規循環調用
先使用傳統方法進行測試,我們將遍歷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})。
EOS憲法鼓勵代幣使用 促進活躍度提升:據bitcoinist消息,根據EOS“憲法”第十七條規定:在會員簽署的最后一筆交易被納入區塊鏈3年后,會員將自動解除本組織規定的所有可撤銷義務。如果一個賬號3年不活躍,則可能會被拍賣,并通過取消發行量來將收益分配給所有會員。據悉,這一規則可能是為了刺激EOS的使用和活躍,但也將長期投資者排除在外。[2018/6/18]
上面實例化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}
點點幣軟分叉已激活 激活后將使用 v0.6版協議:點點幣(PPC)軟分叉已激活,激活后將使用 v0.6版協議。[2017/12/20]
利用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年年度數字貨幣反洗錢報告之金融革新玩出花式DeFi攻擊篇DeFi正處于一個紛亂的戰國時代。2020年被稱為“DeFi元年”,全球涌現出上百個DeFi項目展開競爭.
1900/1/1 0:00:00尊敬的用戶: AOFEX理財寶全新上線,首期發售7款幣幣理財產品,包括定期和活期兩種理財類型,將于2021年1月12日12:10正式開啟申購,最低門檻100AQ起投,超高年化收益,穩定靈活投資.
1900/1/1 0:00:00YFHI簡介: YFHI.online是一個去中心化金融(DeFi)平臺,其指在建立在聚合性流動池,形成集群交互式智能聚合器,自動完成流動性挖礦.
1900/1/1 0:00:00大家好,我是加密氣氛組成員佩佩,其實往年這個時候,是應該出一些預測類的內容,我看圈內的主流媒體也都轉載了很多大V的預測,不過在氣氛組待久了,也越來越覺得預測沒有太多的用處.
1900/1/1 0:00:00深圳福田數字人民幣紅包測試活動正在如火如荼地進行,目前深圳全市已有10000商戶門店支持數字人民幣支付.
1900/1/1 0:00:00比特幣顯然是稀缺的,而且隨著時間的推移,它似乎會越來越稀缺。不過,或許是由于目前的牛市行情,比特幣懷疑論者對這兩個觀點的懷疑似乎正在蔓延.
1900/1/1 0:00:00