Pure

乙太坊如何免受糟糕編寫的程式碼的影響?

  • July 29, 2021

我們知道,只有在狀態發生變化時才會支付gas費。

假設我編寫了一個管理大量元素列表的合約,並且我決定實現一個查找方法,該方法簡單地遍歷所有節點,直到找到要返回的節點。

如果列表包含數十億條記錄,則此操作將消耗大量 CPU 時間。

乙太坊如何保護自己免受這種情況的影響?

乙太坊需要為每個操作碼(即組裝主要操作)收費。過時的操作碼價格表。可能會對其進行一些更改,我所知道的最嚴重的肯定是 SLOAD - 從 200 更改為 2100。儘管有一些細微差別。請參閱this以供參考。

當列表中有 10 億條記錄時,交易氣體將不適合區塊,這意味著一旦達到氣體限制,礦工將停止執行它。它會恢復。

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