graphprotocol / graphprotocol/graph-node

[Bug] `net_version` change error when switching from `RPC` provider to a Firehose provider

オープン
#4,582 コメント 5 件 リアクション 0 件 担当者 0 名 GitHub で見る

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

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

説明

Bug report

Steps:

  1. Fresh graph-node start from fresh database with config below. This creates a chain for mainnet with net_version: 1 in the database.

    [general]
    
    [store]
    [store.primary]
    connection = "postgresql://graph-node:let-me-in@localhost:5432/graph-node"
    weight = 1
    pool_size = 10
    
    [chains]
    ingestor = "block_ingestor_node"
    [chains.mainnet]
    shard = "primary"
    protocol = "ethereum"
    provider = [
      { label = "peering", url = "$RPC_NODE", features = [ "archive", "traces" ] },
    ]
    
    [deployment]
    [[deployment.rule]]
    shard = "primary"
    indexers = [ "default" ]
    
  2. Stop graph-node instance.

  3. Start it back with a Firehose only provider

    [general]
    
    [store]
    [store.primary]
    connection = "postgresql://graph-node:let-me-in@localhost:5432/graph-node"
    weight = 1
    pool_size = 10
    
    [chains]
    ingestor = "block_ingestor_node"
    [chains.mainnet]
    shard = "primary"
    protocol = "ethereum"
    provider = [
      { label = "firehose", details = { type = "firehose", url = "$FIREHOSE_ENDPOINT", token = "$STREAMING_FAST_API_TOKEN", features = [ "compression", "filters" ] }},
    ]
    
    [deployment]
    [[deployment.rule]]
    shard = "primary"
    indexers = [ "default" ]
    

Yields error message Apr 27 16:03:14.931 ERRO the net version for chain mainnet has changed from 1 to 0 since the last time we ran, component: BlockStore.

Weirdly, the network seems to still be configured correctly, so maybe it's more a warning or maybe we should just ignore net_version and keep only genesis_hash check.

Relevant log output

No response

IPFS hash

No response

Subgraph name or link to explorer

No response

Some information to help us out
  • Tick this box if this bug is caused by a regression found in the latest release.
  • Tick this box if this bug is specific to the hosted service.
  • I have searched the issue tracker to make sure this issue is not a duplicate.
OS information

macOS

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

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

はじめの一歩

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

調査の方向性

チェーンプロバイダーを変更したときに保存済みの net_version を比較する BlockStore のロジックから始め、2つの設定例を使って失敗を再現します。プロバイダーの切り替えで既存のネットワークIDを保持すべきか、警告を報告すべきかを判断し、その後、既存のチェーン設定チェックに照らして結果の動作を検証します。

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

評価

技術スタック
postgresql, rust
領域
backend, blockchain, databases
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
35/100

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

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