Web3js
為什麼交易收據不包括轉移的乙太幣的價值?
我正在編寫一些邏輯來辨識乙太坊交易中使用的貨幣,並且想知道以下內容:
web3.eth.getTransaction
返回一個value
欄位,該欄位指示在 Wei 中傳輸的值。但是我使用的是收據,並且
web3.eth.getTransactionReceipt
不包括轉移的價值,這似乎有點不直覺。為什麼會這樣?
收據基本上是為了證明日誌和事件,而不是交易的細節。
在https://blog.ethereum.org/2015/11/15/merkling-in-ethereum Vitalik Buterin 給出了一個使用收據的例子,以及其他可以用 Merkle 證明回答的例子:
- 該交易是否包含在特定區塊中?
- 告訴我該地址在過去 30 天內發出的所有 X 類事件實例(例如,達到其目標的眾籌合約)
- 我賬戶的目前餘額是多少?
- 這個賬戶存在嗎?
- 假裝在這個合約上執行這個交易。輸出會是什麼?
第一個由事務樹處理;第三個和第四個由狀態樹處理,第二個由接收樹處理。前四個計算起來相當簡單。伺服器簡單地找到對象,獲取 Merkle 分支(從對像到樹根的雜湊列表)並用分支回复輕客戶端。
有關的: