View

Solidity 視圖函式響應

  • January 21, 2022

查看功能請求的響應是什麼樣的?Validator 是否提供任何證明執行正確完成的證據?

理論上可以證明一個視圖函式的結果在某個塊號的時候是準確的,而不需要執行一個全節點。該技術類似於比特幣的 SPV。

請注意,問題不在於視圖函式程式碼的整個執行,而是獲取和驗證執行視圖函式所需的區塊鏈狀態。獲取並驗證所需狀態後,您可以在本地執行視圖函式以獲取結果。

首先,您需要獲取塊頭,並驗證其雜湊值和工作量證明是否正確。區塊頭包含狀態根雜湊:這是整個區塊鏈狀態的雜湊樹的根的雜湊,包括地址餘額、合約程式碼和合約儲存。

對於視圖函式訪問的每個鏈狀態,您需要通過這些樹獲取並驗證雜湊路徑。

然後您可以在本地執行視圖函式並確定它的值,而不必信任任何人。

不幸的是,我不知道是否有任何庫或 API 可以讓這變得簡單。

引用自:https://ethereum.stackexchange.com/questions/91903