-
Notifications
You must be signed in to change notification settings - Fork 148
Description
A segment of chain being processed by ForkedChain is not written to the database if the base is not moved forward. Finalized blocks that still in memory will be lost if the client restarted.
Find a way to serialize this in-memory stuff to database. But care must be taken to allow block import via rlp and era file still works.
The serialized stuff also self purging, only need stuff is in database. expired stuff should gone automatically.
If the base is newer or the block number of base is greater than smallest finalized block number, the loader can decide to replay only relevant finalized blocks or discard the entire serialized things.
What about segment from Finalized Head to Canonical Head? They will not serialized and not saved to database.
Next time the client load the serialized data from database, the Canonical Head is equal to Finalized Head.
What if in memory chain Finalized Head is equals to Base Head, we can remove the serialized stuff from database or still serialized it but no replay will occur by the loader.