Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracking: State management service. #136

Closed
hdevalence opened this issue Dec 5, 2019 · 5 comments
Closed

Tracking: State management service. #136

hdevalence opened this issue Dec 5, 2019 · 5 comments
Assignees
Labels
C-research Category: Engineering notes in support of design choices

Comments

@hdevalence
Copy link
Contributor

hdevalence commented Dec 5, 2019

We should start a sketch of a state storage service, as in https://github.com/ZcashFoundation/zebra/blob/main/design/design.md#zebra-storage

Of the two points in that document, the first, storage of raw blocks, is much simpler than storage of other (processed, ingested) data. So we could start just by having a Service for raw block data, backed by RocksDB. This exercises setting up a database and providing an interface for it, but leaves all of the data modeling questions for later.

Edit: I think that a better approach is to start defining request/response pairs for queries from the rest of the node to the storage service, and implement those initially with an in-memory implementation with no persistence. This lets us refine what kinds of queries we want to make before committing to storage, and the initial implementation can later evolve into a test harness, allowing us to write tests about how functions behave with respect to particular chain state.

@hdevalence
Copy link
Contributor Author

hdevalence commented Dec 5, 2019

Blocked on #138

Edit: I think this is not the best approach, see above.

@dconnolly dconnolly changed the title First sketch of storage service. State management service. Apr 9, 2020
@dconnolly dconnolly added E-med C-research Category: Engineering notes in support of design choices labels Apr 9, 2020
@dconnolly
Copy link
Contributor

Use a HashMap or something similar as a skeleton for storing chain state, to start.

@hdevalence
Copy link
Contributor Author

#349 should be closed out before starting this.

@hdevalence
Copy link
Contributor Author

I think a good first step towards all of the required scaffolding would be to be able to store and retrieve blocks by hash.

@dconnolly dconnolly changed the title State management service. Tracking: State management service. Jun 4, 2020
@dconnolly
Copy link
Contributor

Closed by at least #473

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-research Category: Engineering notes in support of design choices
Projects
None yet
Development

No branches or pull requests

3 participants