View
Solidity 視圖函式響應
查看功能請求的響應是什麼樣的?Validator 是否提供任何證明執行正確完成的證據?
理論上可以證明一個視圖函式的結果在某個塊號的時候是準確的,而不需要執行一個全節點。該技術類似於比特幣的 SPV。
請注意,問題不在於視圖函式程式碼的整個執行,而是獲取和驗證執行視圖函式所需的區塊鏈狀態。獲取並驗證所需狀態後,您可以在本地執行視圖函式以獲取結果。
首先,您需要獲取塊頭,並驗證其雜湊值和工作量證明是否正確。區塊頭包含狀態根雜湊:這是整個區塊鏈狀態的雜湊樹的根的雜湊,包括地址餘額、合約程式碼和合約儲存。
對於視圖函式訪問的每個鏈狀態,您需要通過這些樹獲取並驗證雜湊路徑。
然後您可以在本地執行視圖函式並確定它的值,而不必信任任何人。
不幸的是,我不知道是否有任何庫或 API 可以讓這變得簡單。