hyperledger / hyperledger/fabric-x-sdk
Design and benchmark Pebble KVS for state store
- Dominant language
- Go
- Stars
- 3
- Forks
- 5
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 9
Description
Pebble KVS is a performant key value store. It's most likely a better fit for the state db.
- We need two query modes: latest version (no block constraint) and historic (latest version where BlockNum ≤ X)
- Read-only snapshot isolation via db.NewSnapshot(): the state may not change during one endorsement. Snapshot = point-in-time, immune to concurrent writes
- Two snapshot types: current (latest) and virtual (pinned to a BlockNum)
- Version semantics are backend-dependent (monotonic for fabric-x or equals BlockNum for fabric). We must learn the version when we read a key.
- Must persist durably and safely (a crash while processing a block must not lead to inconsistent state) - either using transactions or idempotency.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by researching Pebble KVS and mapping its query modes, snapshot isolation, version semantics, and durability options to the requirements in this issue. Done means a benchmarked state-store design that supports current and BlockNum-pinned reads and remains consistent after a crash; the issue does not name files or tests to run.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend, databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100