Skip to content

Save, reload and replay of in-memory chain for ForkedChain #2888

@jangko

Description

@jangko

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions