-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Description
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.