Contract-Invocation
乙太坊節點是否發送智能合約處理結果?
智能合約處理如何在 ETH 中準確運作?具體來說,我想知道節點處理了一組智能合約後會發生什麼。
- 一個節點抓取一堆合約和交易,處理合約並驗證交易,解決s PoW。
- 問題來了:智能合約的區塊中包含什麼?例如,如果我有一個智能合約,裡面基本上有一個計數器,並且對該函式的呼叫只是將計數器增加 1。當節點處理這個呼叫時,它在塊中打包了什麼?是在打包電話嗎?執行過程(狀態轉換)的字節碼?它是否包含在實際結果中(合約的最終持久儲存) - 即計數器 = 2?
- 如果結果被打包到塊中,其他節點是否真的關心其他人打包到塊中的實際結果?還是他們只是說“因為我不信任任何人,所以無論如何我都會處理它,誰在乎你得到什麼結果,因為我不信任你”?這就是為什麼人們說最終每個完整節點都會處理每個智能合約呼叫?
希望我的問題很清楚,謝謝!
兩者都有一點。
有人可能會說,主要關注的是消除作為給定塊一部分的交易以及處理這些交易的順序。
這些塊包括導致隱式狀態的交易輸入。狀態的本地儲存是協議本身之外的客戶端關注點。在這裡查看 Malone 的回答,Ethereum Merkle Tree Explanation。
注意塊本身的“狀態根”。這支持計算高效的過程節點可以用來確認他們在任何給定的塊時間獨立計算的整個狀態節點的一致性。換句話說,一個節點可以在任何時間點確認它與狀態的每個細節的一致性。
希望能幫助到你。