Go-Ethereum

如何刪除/增加 geth 的 evm 的執行超時?

  • February 28, 2022

我正在使用乙太坊虛擬機進行一些基準測試。我的契約只有一個計算素數直到 100k 的函式。但是,我無法得到我的結果,因為 geth 中的執行時間限制為 5 秒。當我嘗試執行呼叫時,我收到以下錯誤:

{"jsonrpc":"2.0","id":68,"error":{"code":-32000,"message":"execution aborted (timeout = 5s)"}}

氣體限制在這裡不是問題,我將它(在創世塊中)增加到足夠大的值,這樣它就不會影響執行。我使用以下命令初始化了 geth:

geth --datadir=./data/ --networkid 68 --rpc.gascap 100000000000 --http --allow-insecure-unlock console

我認為問題可能出在他們的 VM 上,因此我嘗試使用 –vm-evm 選項使用名為evmone的不同 EVM 實例,但它沒有任何幫助。此外,geth 不提供任何命令行選項來設置超時。雖然有 –metric 選項,但我認為它們沒有任何關係。

我只需要將超時限制增加到足夠大的值即可執行我的實驗。我希望這個限制不是硬編碼的,並且有一些解決方案。

你能幫我嗎?

遇到同樣的問題。查看程式碼,似乎有一個硬編碼的超時時間為 5 秒。

您可以使用 –rpc.evmtimeout 標誌執行 geth 來更改 5s 超時。如果將其設置為 0 ,則超時將是無限的。查看 geth –help 了解更多資訊。

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