paritytech / paritytech/try-runtime-cli
No digest item for a custom consensus engine
Nessuno ha ancora preso questa issue.
- Lingua principale
- Rust
- Stelle
- 25
- Fork
- 29
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Hello! I work on a Substrate-based chain with a custom consensus engine and as suggested in https://github.com/paritytech/try-runtime-cli/blob/b45be7dfce89fd881be27171d3ea114ef19d832c/core/src/common/empty_block/inherents/providers.rs#L96-L98 reporting a case when SmartInherentProvider doesn't work for me.
Currently, providers.rs only accounts for BABE and AURA when constructing the digest for the empty block. In my case for QF Network's blockchain node QuantumFusion-network/qf-solochain we are developing a custom consensus engine called SPIN with its own engine ID SPIN_ENGINE_ID. Because of this there is no slot with the expected engine ID in the empty block and the slot number validation fails during try-runtime usage.
It is easy to add custom engine ID in a fork project like:
// core/src/common/empty_block/inherents/providers.rs#L128
let digest = vec![
DigestItem::PreRuntime(
BABE_ENGINE_ID,
PreDigest::SecondaryPlain(SecondaryPlainPreDigest {
slot,
authority_index: 0,
})
.encode(),
),
DigestItem::PreRuntime(AURA_ENGINE_ID, slot.encode()),
DigestItem::PreRuntime(*b"spin", slot.encode()),
];
But perhaps there are some recommendations on how to properly support custom engine IDs in the digest? Thank you.
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.
Direzione di ricerca
Inizia in core/src/common/empty_block/inherents/providers.rs, in particolare con SmartInherentProvider e la costruzione del digest intorno alle righe 129-140. Esamina come vengono gestiti BABE e AURA e il percorso di validazione a cui si fa riferimento; il lavoro è completato quando è stato stabilito e testato un modo supportato per consentire a ID di motori di consenso personalizzati come SPIN di fornire l’elemento digest previsto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- blockchain
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100