graphprotocol / graphprotocol/graph-node
[Bug] Graph-node save incorrect block cache during reorgs
還沒有人認領這個 Issue。
- 主要語言
- Rust
- 星號
- 3.2k
- 分支
- 1.1k
- 平均合併
- 4 天 1 小時
- 30 天內合併 PR
- 1
描述
Bug report
In case reorg happend and graph-node has seen it we would have 2 entries in the cache table:
Example for reorg on ethereum mainnet on block 17820205 with depth=1
graph=# select hash, number, parent_hash from chain1.blocks where number=17820205 (https://etherscan.io/block/17820205/f)
hash | number | parent_hash
--------------------------------------------------------------------+----------+--------------------------------------------------------------------
\xdcb02b80a71bb335a8247298cfde2af9f589b491a1eb794a88fa377fb00e6fb8 | 17820205 | \x9432a65af5ecd186859c22bf4d809561aaa4daf3bf8101fccb3f228e34b64756
\xc0455fae763cd8d53bc294cbd32225f207dee56cb396aee84eaaa5011513731a | 17820205 | \x9432a65af5ecd186859c22bf4d809561aaa4daf3bf8101fccb3f228e34b64756
(2 rows)
graph=# select hash, number, parent_hash from chain1.blocks where number=17820206;
hash | number | parent_hash
--------------------------------------------------------------------+----------+--------------------------------------------------------------------
\x409c0bb686a5fac90e706a556d02cf99122b49c683374c82341cccc836807964 | 17820206 | \xc0455fae763cd8d53bc294cbd32225f207dee56cb396aee84eaaa5011513731a
(1 row)
graph=# select hash, number, parent_hash from chain1.blocks where number=17820204;
hash | number | parent_hash
--------------------------------------------------------------------+----------+--------------------------------------------------------------------
\x9432a65af5ecd186859c22bf4d809561aaa4daf3bf8101fccb3f228e34b64756 | 17820204 | \x737d8549261f685b18b6c6f2dac460c6dfc4b88bf16b03d2a813ed51f9c08c40
(1 row)
From our experience that sometimes cause errors in subgraphs, because the subgraph takes incorrect data from the cache (This need confirming)
We had a problem when the subgraph was stuck until we remove duplicates from the cache.
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
None
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
研究方向
首先,針對 17820204–17820206 區塊處所述的重組,在 chain1.blocks 快取上重現回報的 SQL 查詢。追蹤重組區塊的儲存與選取方式,然後驗證重複的區塊項目是否會導致 subgraph 使用錯誤的資料或陷入停滯。完成的標準是透過回歸測試或有文件記錄的重現,確認或否定快取行為。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- postgresql, rust
- 領域
- blockchain, databases
- Issue 類型
- 缺陷
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 活躍度
- 停滯
- 描述清晰度
- 需要釐清
- 新手友好度
- 35/100