erigontech / erigontech/erigon
Implement Blocks domain/Forkable and add it to SharedMemBatch
- Dominant language
- Go
- Stars
- 3.6k
- Forks
- 1.5k
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 455
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.
Contributor guide
Assessment
This issue has not been assessed yet.