Contract-Development

當我部署智能合約時,它會創建一個新塊還是當我在智能合約中執行寫入操作時

  • January 22, 2018

我是智能合約和乙太坊開發 DAPPS 的新手。我只是想知道創建塊時的塊以及塊與事務的不同以及創建新塊的方式。當部署契約時,它也是交易嗎?當我在執行更新的智能合約中呼叫函式時,它也是一個交易嗎?

如果是,那麼什麼時候創建塊?

考慮以下智能合約。

contract mortal {
   /* Define variable owner of the type address */
   address owner;

   /* This function is executed at initialization and sets the owner of the contract */
   function mortal() { owner = msg.sender; }

   /* Function to recover the funds on the contract */
   function kill() { if (msg.sender == owner) selfdestruct(owner); }
}

contract greeter is mortal {
   /* Define variable greeting of the type string */
   string greeting;

   /* This runs when the contract is executed */
   function greeter(string _greeting) public {
       greeting = _greeting;
   }

   /* Main function */
   function greet() constant returns (string) {
       return greeting;
   }

   function updateGreet(string _greeting) public payable returns(bool) {
       greeting = _greeting;
       return true;
   } 
}

上述程式碼取自https://ethereum.org/greeter並進行了修改,以便任何人都可以通過呼叫greeter 智能合約中的函式來更新greeting字元串。updateGreeting所以考慮這個智能合約。請幫助我理解這個概念。

- 了解創建區塊的時間以及區塊與交易有何不同以及創建新區塊: 第 3 頁,第 4 部分 區塊、狀態和交易

  • 當部署契約時,它也是交易嗎? 是的
  • 當我在執行更新的智能合約中呼叫函式時,它也是一個交易嗎?

是的。改變 EVM 狀態的功能是“交易”,它需要消耗氣體。不改變 EVM 狀態的函式是“呼叫”,它是免費的。

  • 如果是,那麼什麼時候創建塊? 如果這與上一個問題有關,那麼我強烈建議您閱讀有關該問題的文件。
  • 請幫助我理解這個概念。

什麼概念?這只是非常基本的程式碼。問題在哪裡。

請每個文章問一個問題。此外,您所要求的只是文件中提供的基本內容,您應該在來訪和詢問之前閱讀這些內容。

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