Make ChainStore agnostic to block serialization format
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- rust
- Ambito
- blockchain
Direzione di ricerca
Inizia esaminando ChainStore.blocks e ChainStore.ancestor_block, insieme alle assunzioni individuate nei PR #2886 e #2998. Segui il modo in cui questi metodi deserializzano i blocchi serializzati e il modo in cui la object safety vincola l'API. Il lavoro è completato quando i chiamanti forniscono istruzioni di deserializzazione, la gestione delle ricevute delle transazioni rimane appropriata e i formati di blocco non Ethereum possono essere riletti nella propria serializzazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
PR #2886 and #2998 still leave some assumptions about how blocks are serialized and deserialized in the ChainStore. In particular, they assume that the serialization follows the form of an EthereumBlock. That can cause issues for other chains if they store blocks with a different serialization format and try to read them, assuming they get their own serialization back.
A more robust fix would parametrize ChainStore.blocks and ChainStore,ancestor_block (the only methods that read the serialized data from the chain store and now return a json::Value) so that the caller passes in instructions on how to deserialize instead of leaving it up to the store. That is not entirely trivial because
- the current code does not read transaction receipts in
ChainStore.blockswhich helps reduce the data that needs to be deserialized. ChainStoreneeds to be object safe, soblocksandancestor_blockcan't be parametrized on some sort ofFromChainStoreDatatrait
- Lingua principale
- Rust
- Stelle
- 3.2k
- Fork
- 1.1k
- Merge medio
- 4g 1h
- PR unite (30g)
- 1
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di graphprotocol/graph-node
-
current: include emits an all-null bucket for dimensionless aggregations, nulling the whole response Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
graphprotocol/graph-node#6719 ·
-
RUSTSEC-2026-0194: Quadratic run time when checking a start tag for duplicate attribute names Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
graphprotocol/graph-node#6673 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
graphprotocol/graph-node#6650 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
graphprotocol/graph-node#6722 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
graphprotocol/graph-node#6721 ·
Tutte le issue di graphprotocol/graph-node
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
kwakseongjae/auto-hwp#319 ·
-
area:cli bug filter-quality good first issue priority:medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
bevyengine/bevy#25861 ·
-
comp-datalake
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
ClickHouse/ClickHouse#121222 ·
-
enhancement remote
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100