graphprotocol / graphprotocol/graph-node

Gas errors on the network

オープン
#3,558 コメント 6 件 リアクション 1 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

area/runtime
主要言語
Rust
スター
3.2k
フォーク
1.1k
平均マージ
4日 1時間
マージ済み PR(30日)
1

説明

A number of subgraphs on the network have hit the default gas limit, so indexers must configure a larger one. We should look into these with the purpose of adjusting gas costs that may be overestimated. These subgraphs have been reported as going over the limit:

QmTiKBqwDjDtjAoCNgKLFjyg9UmwyFkVMFRVzBdnFmwYEi, QmayVPFDjZ4PP8rsKiNsZ3bZsqrQo4RTaeMm966wQsjP7R, QmWd8mE5nedM5smvzQhDYmsWEcgiAtdqccdZ2XCsvCdVEK.

The Eden Network (QmWd8mE5nedM5smvzQhDYmsWEcgiAtdqccdZ2XCsvCdVEK, source link case has more details. It fails with:

May 11 12:44:54.957 ERRO Subgraph failed with non-deterministic error: failed to process trigger: block #13807949 (0x0bf6…ac4c), transaction 0229c81e816101dbb7f5ecfb4ea3a0eb2c82083f10123e0a504a1dbd7063eaa1: Gas limit exceeded. Used: 10000016722787	wasm backtrace:	    0: 0x2235 - <unknown>!~lib/@graphprotocol/graph-ts/index/Value#toArray	    1: 0x2891 - <unknown>!src/network/stakeUnstake	    2: 0x271f - <unknown>!src/network/stakeUnstake~anonymous|5	    3: 0x292b - <unknown>!src/network/stake	    4: 0x29d2 - <unknown>!~lib/internal/memory/memcmp	, retry_delay_s: 1800, attempt: 651, sgd: 101, subgraph_id: QmWd8mE5nedM5smvzQhDYmsWEcgiAtdqccdZ2XCsvCdVEK, component: SubgraphInstanceManager
May 11 12:44:54.955 INFO Done processing trigger, gas_used: 0, data_source: EdenNetwork, handler: stake, total_ms: 62643, transaction: 0x0229…eaa1, address: 0x9e33…c453, signature: Stake(indexed address,uint256), block_hash: 0x0bf6b37adec469650eeac0d9dea4add97fcf9acbc37c3412accf40b96399ac4c, block_number: 13807949, sgd: 101, subgraph_id: QmWd8mE5nedM5smvzQhDYmsWEcgiAtdqccdZ2XCsvCdVEK, component: SubgraphInstanceManager

Probably due to iterating over a large collection, the network.stakers array might be as large as 4.5k entries.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

報告されたログにあるガス制限の失敗から始め、packages/subgraph/src/network.ts の116-124行、特に大きな network.stakers コレクションと Eden Network のソースを比較してください。この実行が graph-node でどのように計測されるかを追跡し、報告されたガスコストが過大評価されているかどうかを特定してください。完了の基準は、設定の増加を必要とせずに、影響を受けるサブグラフがデフォルトの制限に達しなくなることです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
rust
領域
backend, blockchain, performance
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。