以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads
首頁 > 幣安幣 > Info

TPS:理解以太坊上的事件日志

Author:

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

譯文出自:登鏈翻譯計劃

譯者:Tiny熊

序言:先閱讀一下以太坊虛擬機,可能會有所幫助,在本文中,我會跳過基礎知識直接研究。

在傳統編程中,應用程序經常使用日志來捕獲和描述特定時刻的情況。這些日志通常用于調試應用程序,檢測特定事件或將日志中發生的事情通知查看者。事實證明,在編寫智能合約或與智能合約進行交互時,日志也非常有用!那么以太坊是如何做的呢?

以太坊上的日志

EVM當前有5個操作碼用于觸發事件日志:LOG0,LOG1_,LOG2,_LOG3和LOG4。

這些操作碼可用于創建“日志記錄”。日志記錄就是用于描述智能合約中的事件,例如代幣轉移、所有權變更等。

以太坊黃皮書-拜占庭版本69351d5(2018-12-10)

每個日志記錄都包含“主題(topics)”和“數據”。主題是32字節(256位)的“詞”,用于描述事件中發生的事情。不同的操作碼(LOG0…LOG4)來描述需要包含在日志記錄中的主題數。例如,“LOG1”包括“一個主題”,而“LOG4”包括“四個主題”。因此,單個日志記錄中可以包含的最大主題數是四個。

美聯儲梅斯特:美聯儲對通貨膨脹“持續性和幅度”的理解是錯誤的:9月30日消息,美聯儲梅斯特:美聯儲對通貨膨脹“持續性和幅度”的理解是錯誤的。(金十)[2022/9/30 6:03:02]

以太坊日志記錄中的主題

日志記錄的第一部分由一組主題組成。這些主題用于描述事件。第一個主題通常為事件名稱及其參數類型(uint256,string等)簽名(keccak256哈希)。一個例外是觸發“匿名事件”沒有事件簽名。由于主題只能容納32個字節的數據,因此無法將數組或字符串等的內容用作主題。而是應將其作為數據包括在日志記錄中,而不是作為主題。如果要嘗試包含大于32個字節的主題,則該主題需要被hash計算。因此,僅當你知道原始輸入時,才可以知道此哈希表示的內容。

總之,主題應該僅用于需要搜索查詢(例如:地址)的數據。可以將主題視為事件的索引鍵,它們都映射到相同的值,接下來將討論。

以太坊日志記錄中的數據

日志記錄的第二部分包含額外的數據。主題和數據在一起組成日志記錄,主題和數據每自有其優點和缺點。例如,主題是可搜索的,但數據卻不能。而數據比主題“便宜得多”。此外,盡管主題最多有4個,但數據卻沒有限制,這意味著它可以包括大量或復雜數據,例如數組或字符串。因此,事件數據(如果有)可以視為_值_。

孫正義:比特幣難以理解 但數字貨幣很有用:11月20日消息,軟銀集團總裁孫正義在紐約時報峰會上表示,比特幣是“難以理解的”。孫正義表示其此前已經投資了2億美元,這是他個人資產的1%。但自從投資比特幣后,他稱,看到比特幣的價格每天每五分鐘波動一次,這使他無法專注于自己的業務。而停止對比特幣的投資,他“變得更好了”。他還表示,“我發現數字貨幣很有用,但我不知道它們是什么數字貨幣或它們產生于什么因素。”2019年4月消息,軟銀集團創始人孫正義在比特幣上損失了1.3億美元。(JP.Cointelegraph)[2020/11/20 21:28:21]

讓我們看一些示例,看看主題,數據和日志記錄是如何使用的。

觸發事件

以下實現了ERC20的代幣合約,使用了Transfer事件:

由于這不是匿名事件,因此第一個主題將包括事件簽名:

現在,讓我們看一下此Solidity事件的參數(from_,to,_value):

由于前兩個參數聲明為indexed,因此被視為主題。最后一個參數沒有indexed,它將作為數據(而不是單獨的主題)。這意味著我們可以進行這樣的搜索:查找所有從地址0x0000...到地址0x0000…的轉賬日志,或者是“所有轉賬到地址0x0000…的日志”,但沒法搜索“轉賬金額為x的轉賬。我們知道了此事件將具有3個主題,這意味著此日志記錄操作將使用LOG3操作碼。

分析 | 未來穩定幣可以存在于后端,消費者可能并不完全理解:Stellar發展基金會伙伴關系主任Lisa Nestor近日表示,從消費者的角度來看,電子貨幣和穩定幣已經成為可比較的產品,具有可用于交易的金融價值,并便于向其他實體付款。我們只是剛剛開始看到通證化貨幣和穩定幣將為世界帶來什么,未來穩定幣可以存在于后端,消費者可能并不完全理解。但是他們的金融資產將在后端進行通證化,經營交易的支付處理機構和金融機構將在結算和處理匯款方面獲得重大優勢。(AMBCrypto)[2019/8/28]

現在,我們只需要了解如何包含數據(即最后的參數)即可。LOG3需要5個參數:

LOG3(memoryStart,memoryLength,topic1,topic2,topic3)

通過以下方式從內存中讀取事件數據:

memory

幸運的是,像Solidity,Vyper或Bamboo這樣的高級智能合約程序設計語言將為我們處理將事件數據寫入內存的過程,我們可以在觸發日志時直接將數據作為參數傳遞。

動態 | 新韓銀行與Ground X、Hexlant簽訂協議 向企業提供基于區塊鏈的密鑰管理解決方案:8月14日,韓國新韓銀行宣布已與Kakao的子公司Ground X和區塊鏈技術實驗室Hexlant簽訂業務協議,旨在向企業提供基于區塊鏈的密鑰管理解決方案(PKMS)。[2019/8/14]

檢索事件日志

通過使用web3JavaScript庫,可用于與本地或遠程以太坊節點進行交互,我們能夠訂閱新的事件日志:

每當發生新的SAI代幣轉賬時,此代碼都會通知我們,接收到事件通知,這對很多應用程序都很有用。例如,一旦你在以太坊地址上收到代幣,錢包界面就可以提醒你。

日志的gas成本

根據黃皮書、日志的基礎成本是375gas。另外每個的主題需要額外支付375gas的費用。最后,每個字節的數據需要8個gas。

這實際上是很便宜!可以計算一下一個ERC-20代幣轉移事件的成本。首先,基本成本為375gas。其次,“轉移”事件包含3個主題,這是另外的375_3=1125gas。最后,我們為所包含的每個數據字節添加8gas。由于數據僅包含ERC-20轉賬的數量,最大為32字節,因此用于記錄日志數據所需的最大gas量為8_32=256gas。這總計要花費1756gas的總gas成本。作為對比參考,標準的以太幣(非代幣)轉賬要花費21000gas,是事件成本的十倍以上了!

工信部于佳寧:深入理解區塊鏈,要從兩個層次來看:近日,工業和信息化部信息中心工業經濟研究所所長,中國計算機學會區塊鏈專委會委員于佳寧在接受《人民創投·區塊鏈》采訪時表示,區塊鏈有兩個層次的含義:第一個層次強調技術層面創新,是一種分布式、不可篡改的數據庫技術。這項新技術有力擴展了數據庫技術的使用場景和應用范圍,使得數據庫技術在“弱信任”的環境中也可以應用。第二個層次強調模式層面的創新,實際上是一種新型獨立數字資產載體,可以助力實現資產的數字化。[2018/5/23]

如果我們假設gas價格為1gwei,那么操作的總成本將為1756gwei,相當于0.000001756ETH。如果以太坊的當前價格在200美元左右,那么總計為$0.0003512。請記住,這是在全球范圍內將數據永久存儲的費用。

聲明:這只是日志記錄操作本身的成本。任何以太坊交易至少需要21000gas,并且交易的輸入數據每字節最多花費16gas。通常,要轉賬和日志記錄ERC-20代幣,費用在40,000–60,000gas。

結論

日志是一種以少量價格將少量數據存儲在以太坊區塊鏈上的優雅方法。具體來說,事件日志有助于讓其他人知道發生了什么事情,而無需他們單獨查詢合約。

參考文獻

Wood,G.(2014)。以太坊:一個安全的去中心化通用交易賬本

以太坊基金會Solidity文檔

Web3文檔

本翻譯由CellNetwork贊助支持。

來源:https://medium.com/mycrypto/understanding-event-logs-on-the-ethereum-blockchain-f4ae7ba50378

參考資料

登鏈翻譯計劃:https://github.com/lbc-team/Pioneer

Tiny熊:https://learnblockchain.cn/people/15

以太坊虛擬機:https://medium.com/mycrypto/the-ethereum-virtual-machine-how-does-it-work-9abac2b7c9e

以太坊黃皮書:https://ethereum.github.io/yellowpaper/paper.pdf

keccak256:https://en.wikipedia.org/wiki/SHA-3

Solidity:https://learnblockchain.cn/docs/solidity/

Vyper:https://github.com/ethereum/vyper

Bamboo:https://github.com/cornellblockchain/bamboo

web3:https://learnblockchain.cn/docs/web3.js/

Wood,G.(2014)。以太坊:一個安全的去中心化通用交易賬本:https://ethereum.github.io/yellowpaper/paper.pdf

以太坊基金會Solidity文檔:https://solidity.readthedocs.io/en/latest/

Web3文檔:https://learnblockchain.cn/docs/web3.js/

CellNetwork:https://www.cellnetwork.io/?utm_souce=learnblockchain

本文來源于非小號媒體平臺:

登鏈社區

現已在非小號資訊平臺發布105篇作品,

非小號開放平臺歡迎幣圈作者入駐

入駐指南:

/apply_guide/

本文網址:

/news/9558537.html

免責聲明:

1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險

2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場

上一篇:

幣安為何推出第三條鏈?這對BNB意味著什么?

Tags:以太坊GASHTTTPS以太坊幣最新價格美元是多少GASC價格CHTT價格tps幣圈

幣安幣
NEX:DigiFinex關于合約系統停服升級的公告

親愛的用戶: 為了提供更好的合約交易體驗,DigiFinex將于2020年12月22日08:30-11:30(GMT8)期間進行合約系統停服升級優化.

1900/1/1 0:00:00
NCE:亞洲區塊鏈速覽:深圳示范區支持數字貨幣研究,幣安推出區域版 Libra 計劃

GlobalCoinResearch每周發布兩次亞洲區塊鏈市場新聞Newsletter,該公司是一家專注于亞洲區塊鏈市場及技術的投研公司.

1900/1/1 0:00:00
API:Chainlink 的勁敵?Pantera 合伙人解讀 API3 運作機制

API3使第三方服務能夠運行自己的預言機,區塊鏈應用能去中心化方式與第三方服務實現互操作性。撰文:PaulVeradittakit,PanteraCapital合伙人近期PanteraCapit.

1900/1/1 0:00:00
MATIC:Matic Network 聯合創始人:剛從噩夢中醒來

幣友們好!在今天的《推特大咖說》第115期中,你將看到:01MaticNetwork聯合創始人兼COO剛從噩夢中醒來,因為有人打電話來求救了。。

1900/1/1 0:00:00
USDT:止盈止損介紹

霍比特現已上線部分幣對的“止盈止損”訂單功能,邀您體驗!“止盈止損”訂單是指,預先設置“觸發價”,“委托價”和“下單數量”,最新價達到觸發價,會按委托價掛單,幫助您保住利潤或減少損失.

1900/1/1 0:00:00
區塊鏈:信貸如何推動加密貨幣市場增長?從八十年代狂熱的日經指數說起

日本市場曾經的增長是通過前所未有的信貸擴張來推動的,而加密貨幣才剛剛嘗到了債務對市場影響的甜頭.

1900/1/1 0:00:00
ads