Clients
不改變狀態的智能合約功能是如何執行的?
我有幾個關於非狀態改變智能合約功能的問題。
假設我有一個智能合約部署了一個函式,該函式接受輸入“num”並返回值 10 * num。我認為這會消耗汽油,但這個功能是如何執行的?它是由像geth這樣的節點/客戶端執行的嗎?
狀態沒有改變,但區塊鏈上是否有該交易的記錄?
訪問區塊鏈功能有兩種方式:呼叫和交易。呼叫僅訪問您使用的節點,根本不諮詢區塊鏈本身。也沒有狀態變化。交易可以改變狀態並記錄到實際的區塊鏈中。
因此,如果您查詢 a
view
orpure
函式,它是對您的節點的本地呼叫,您會立即獲得結果。請注意,也可以在交易中使用此類功能,但即使它不會改變狀態,它也會消耗氣體。