Closed poplexity closed 1 week ago
Situations for consideration, the latter being the one of concern especially with millions of blocks:
Consensus starts up, execution client has 0 blocks, consensus starts syncing from block 0. It needs genesis block info but can start that sync without issue.
Consensus starts up, execution client has finalized up to block 50, consensus does not know if the current hash of block 50 on execution client is valid unless consensus client resyncs blocks 0-50 as it would've in above situation.
Integrate telos-translator-rs instead of current arrow file reader.
Possibly will require https://github.com/telosnetwork/telos-translator-rs more thought is needed around how the consensus client will know the correct block hashes on startup.
Should consensus store block hashes locally as it syncs blocks? Should it keep the last N hashes or all hashes it syncs?
Should it just consult the execution node and trust it's most recent final block (assuming that final block hash was set by the consensus client, this is same thing as consensus client storing the hashes itself, the execution client is the persistence layer for consensus client).