Gas-Limit
阻止氣體限制懷疑
假設我有一個循環。這裡 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
太大,那麼你會在某個時候達到塊氣體限制和/或交易氣體限制。