KryptoCamp — Day28~29— solidity — 9
Published in
Mar 16, 2022
經過了前幾天的補足,已經把大部分 solidity 會出現的語法都做了基本的了解,今天來接著針對整個 solidity 寫完後,合約的去向以及運作合理和部署進行理解。
以下內容來自 all in one solidity ,如果希望了解更詳細的內容,請參考該書籍。
智能合約的部署
- 撰寫智能合約。
- 編譯智能合約後程式碼被轉為 bytes code。
- 這些 bytes code 會轉為交易(transaction),並且被打包到區塊中。
- 此智能合約被打包到該區塊之後,整個區塊會對內容進行 hash,我們無法改變這筆交易,也無法改變已經佈署的合約程式碼,因為這樣做會把整個區塊鏈的 hash 破壞掉。
- 我們無法真正刪掉智能合約,但能夠透過「狀態(state)改變」來編輯智能合約或其他資料的狀態。
生命週期
編譯 => 送出交易 => 部署 => 持續互動 => Selfdestruct
摧毀
編譯
編譯後的智能合約會產生兩個檔案:ABI (application binary interface) 與 byte code。
ABI 之前已經寫過相關的說明,可以簡單認為是一個讓外部知道如何用使用這個合約的文件。
bytecode 之於 EVM ,就像是機器語言之於電腦,EVM 是看不懂 solidity 的,它只能看懂被編譯過後的檔案,也就是 bytecode ,被編譯後的 bytecode 可以認為是 solidity 程式碼的一種表現。
函式簽章 (Function Signature)
函式簽名這個詞可能用得不太好,如果直接翻譯 Signature 會得到一個比較能具體描述這個特性的詞,叫做識別標誌。
函式簽名用於描述這個函式該如何使用,而 EVM 利用它來判斷當前調用的是哪一個函式。