Gas-Limit

阻止氣體限制懷疑

  • June 18, 2019

假設我有一個循環。這裡 user 是一個結構,其中 player 是一個地址。

address[] memory addrs = new address[](n);
for(uint i=0;i<n;i++){
addrs[i] = user.player;
}
return addrs;

這是一個視圖功能,所以我知道我不需要付費來執行它。如果 n 的值增加超過一個點,這會失敗嗎?我對氣塊限制感到困惑。

這取決於你如何使用它。

如果您通過節點從後端系統呼叫它,則沒有氣體限制,因為呼叫永遠不會進入塊內。只需對節點進行呼叫,節點就會返回所需的資訊——根本不諮詢區塊鍊網路。所以唯一的限制是你的節點的吞吐量和計算能力。

但是,如果您從非視圖智能合約呼叫這樣的函式,那麼正常的 gas 限制和 gas 支付就到位了。所以,是的,如果你n太大,那麼你會在某個時候達到塊氣體限制和/或交易氣體限制。

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