以太坊知识教程------智能合约(1)基本概念
生活随笔
收集整理的這篇文章主要介紹了
以太坊知识教程------智能合约(1)基本概念
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.智能合約的定義
- 智能合約是一段 EVM 可執行的代碼
- 智能合約的信息都被附在“交易”中,以交易的形式發布到網絡中
- 合約發布之后用戶會得到一個合約地址,相當于合約對象的指針
- 當網絡中的用戶調用這個智能合約時,可以直接給這個合約地址發送“交易”,并聲明本次調用的函數名稱和參數,使得智能合約執行對應的邏輯 。
- 無論發布還是調用智能合約,因此以太坊網絡中的節點接收到這些交易后,其中的 EVM 會執行對應的合約代碼 ,合約的內容和狀態也就實現了全網一致
2. 智能合約的特點
- 創建合約交易的 Payload 被當作 EVM 宇節碼執行,輸出作為合約代碼被永久存儲。這意味著為了創建一個合約,不需要向合約發送真正的合約代碼,而是發送能夠返回真正代碼的代碼 。
- 一個合約也可以通過一個特殊的指令來創建其他合約(不是簡單地向零地址發起調用 )。創建合約的調用跟普通的消息調用的區別在于, Payload 數據執行的結果被存儲為合約代碼,調用者(創建者)在棧上可以得到新合約的地址。
3. 智能合約的過程
3.1. 合約原始代碼
3.2. 合約的創建
Bob(用戶A) 將一個包含智能合約信息的交易發送到以太坊網絡
3.3 產生合約地址
節點的 EVM 執行這個交易并生成對應的合約實例, 得到合約地址"0x6f8ae93 ”發送給用戶A.
智能合約賬戶的地址是由發送者的地址( address )和交易隨機數( nonce )作為輸入,通過加密算法生成的、交易確認后智能合約的地址返回給發送者。
3.4. 合約的調用
a. Bob 以交易的形式在“ To”字段填上 SimpleStorage 合約的地址, 在“Data ” 字段填上調用的方法( set)和參數(“Hello ”)
b. 節點收到這條交易后,當 Alice 查看這個合約的變量時,就會發現這個合約中 storedData 變量的值變成了“ Hello"。
c. 所有節點都如alice一樣通過 EVM 執行對應的操作,并通過共識機制實現以太坊網絡上合約狀態的改變 ,每個節點都可以在本地保存一份完整的數據
總結
以上是生活随笔為你收集整理的以太坊知识教程------智能合约(1)基本概念的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 以太坊知识教程------交易
- 下一篇: 以太坊知识教程------智能合约(2)