Skip to content

Implement Blocks domain/Forkable and add it to SharedMemBatch #18494

@mh0lt

Description

@mh0lt

At tthe moment at an applicatoin level there is a big difference in the way that Account State and Block State is updated.

Block State means any update to the auxiliary tables which are used for managing the processing state of the bloch chain. This inclides identifying the head block of the chain, the cannonical block etc.

Account State currently is acccessed via a 'SharedDomains` object (shortly to become ExecutionContext), which consolidated all updated so they can be shared between multiple threads, and then sllows them to be flushed and commited together as a single consistent offline update.

Block State* on the othergand relies on unintermediated access to RawDB tables, which need to be re4ad and written via a direct DB transaction. This means in paracice that the application layer (primarily the execution module) neads to deal simultaniously with two different modes of operation. This makes the code more complex and error prone than it needs to be as it needs to deal with side effects between the two modes of operation.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions