Segment private state storage

Description

Right now the private state storage stores

1. $privateTxHash_LOGS -> the logs emitted from a contract call
2. $privateTxHash_OUTPUT -> the return value of a contract call
3. $blockhash_$pmtHash_METADATA -> the resulting state root for each transaction in each privacy group

The goal is to use the comlumnar rocksdb approach to segment the private state storage such that each type of value is in its own column.

The benefit of doing this is that it will be a cleaner approach wrt maintainability and it will be more performant.

An alternative approach to consider is to squash the data in an object and have only 1 key for the private state storage. It is possible to derive the private tx hash from the combination of block hash and PMT hash. The resulting key value pair would look like this:

$blockhash_$pmtHash -> {the resulting state root for each transaction in each privacy group, the logs emitted from a contract call, the return value of a contract call}

Status

Assignee

Unassigned

Reporter

Ivaylo Kirilov

Labels

None

Refinement State

Not Started

Scrum Team

Revenant

Priority

P3
Configure