datastore: domain put, delete, get latest from kvdb #2614
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implementation of DomainPutQuery, DomainDeleteQuery, DomainGetLatestQuery - an equivalent of SharedDomains DomainPut, DomainDel, DomainGet (GetLatest - getLatestFromDb code path). The CAPI execution will be based on the LocalState class which runs these direct datastore queries.
In Erigon DomainPut is based on SharedDomains.domains (Go map) and domainBufferedWriter-s (ETL collector that is eventually flushed into mdbx tables). In Silkworm it is based on RWTxnManaged which will be created from an in-memory mdbx DB shared between Erigon and Silkworm via the CAPI. The mdbx schema is the same as for Erigon3 state mdbx tables. DomainDeleteQuery is just a DomainPutQuery with an empty bytes value.
Refactorings:
Future work: