erigontech / erigontech/erigon

Implement Blocks domain/Forkable and add it to SharedMemBatch

Open
#18,494 2 comments 0 reactions 0 assignees View on GitHub
headliner tech debt reduction
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.