Go-Ethereum

有什麼方法可以在專用網路上禁用合約創建?

  • February 9, 2022

我想將私有乙太坊鏈用於特定目的。

我希望使用者能夠執行我創建或初始化區塊鏈的合約,但我不希望使用者能夠創建新合約。

有沒有辦法通過設置或簡單的原始碼編輯(特別是在 geth 中)來做到這一點?

只要我提供給無法接受新契約的使用者的節點就足夠了。

引用自黃皮書:

有兩種類型的交易:導致消息呼叫的交易和導致使用相關程式碼創建新帳戶的交易(非正式地稱為“契約創建”)。兩種類型都指定了許多公共欄位 (…)

帶有合約創建的交易有一個不為空的特定欄位“init:”。挖礦節點可以在該條件下過濾交易。

或者,正如 Roland Kofler 所建議的那樣,您可以將操作碼 CREATE 的 gas 成本指定為非常高,從而不允許您的可憐的使用者為此付費。這可能是最直接的解決方案。您還可以讓您的礦工將 gaslimit 設置為低於 CREATE 的成本,這樣您仍然可以通過探勘更大的區塊來創建

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