JavaScript isn't enabled in your browser, so this file can't be opened. Enable and reload.
1 of 4
07-如何將智慧合約編譯成以太坊虛擬機位元組碼
@hydai
深入淺出 EOF
2 of 4
編譯器=翻譯官
智慧合約是給人閱讀的
以太坊虛擬機位元組碼是給 EVM 閱讀的
跟外交場合一樣,我們需要一位翻譯官,協助將合約翻譯成 EVM 讀得懂的模樣
他就是編譯器
3 of 4
編譯器到底幹了啥?
讀取智慧合約
解析合約並檢查是否有語法問題
轉換成內部的表示方式(IR, Solidity 使用 YUL)
分析 IR 來嘗試最佳化合約,包含但不限於:
移除無用的程式碼
以更低消耗的程式碼替換本來的程式碼
調整順序或者結構來提升效率
輸出成 EVM 位元組碼(Bytecode)、應用二進位介面(Application Binary Interface, ABI)、詮釋資料(Metadata)
4 of 4
怎麼編譯合約?
Solidity,請用 solc
solc contract.sol
各種 IDE 都有整合,請查詢你自己常用的 IDE