Solidity

一份契約能有多大?

  • March 23, 2020

我想弄清楚契約有多大?有可能有10k個功能嗎?一百萬?更多的?

對函式的主體大小有任何限制嗎?

更大的合約是否需要部署更多的gas?

大契約比小契約慢嗎?

Solidity 合約被編譯為 EVM 字節碼。合約字節碼每字節碼花費 200 gas,並且由於現在塊 gas 限制為 800 萬,理論上你可以獲得約 40,000(因為部署/tx 數據有額外的)字節合約部署。不過,您不太可能創建這種大小的合約,因為塊通常已經沒有那麼多額外空間。關於執行速度,這完全取決於您的實現。

編輯:正如@Ismael 所指出的,實際上每筆交易有 32kb 的限制,如此所述。該頁面還說,合約大小也有 24576 字節的限制,所以我更正了!合約字節限制的 EIP 可以在這裡找到。

編輯 2:如果您正在尋找合約大小限制的正式解釋,請查看黃皮書的定義 97 :

黃皮書定義 97

即最終正文程式碼的輸出大小不得大於 24576 字節。

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