Repository navigation
[DashVM 5.0-dev] Implement bounded current-state guest reads #4686
Description
Implement bounded current-state guest reads
Parent: #4626 · Complete tracking register
Proposed target: 5.0-dev. This is a workstream tracking issue, not a claim that the release branch exists or the implementation is done. Owner: QuantumExplorer. Dates and effort remain unset.
Scope
Implement typed current-prefix/own-write reads, encoding and cost bounds, dependency capture and adversarial fixtures; preserve no-execution CheckTx and no network preflight.
Specification
DVM-02 · DVM-04 · DVM-06 · DVM-10
The current parent acceptance and module/capability appendices remain authoritative; these DIP drafts add proposed engineering detail without silently approving open allocations.
Completion criteria
Complete every listed task acceptance item, its applicable capability matrix, and the linked specification vectors. Record actual PR/test evidence; drafting is not production completion.
Task acceptance
R09-01
- Specify canonical read requests/declarations and structured errors, then implement the selected wire/context model with signing and decoding coverage; leave exact ABI/version allocations to the central register.
Prerequisites: R08-04.
Dependents: R09-02, R09-03, R09-04, R09-05, R10-01, CAP-05.
Modules: ABI, DPP. Original task context.
R09-02
- Specify read and host-call cost bounds, stored-document/guest-wire limits and memory/copy caps. Integrate full affordability estimates and protocol tables; omit preflight limits and endpoints from 5.0.
Prerequisites: R08-05, R09-01.
Dependents: R09-03, R09-07, R09-09.
Modules: METER, FEES, VERSION. Original task context. Refinements (not extra dependency edges): FIX-06.
R09-03
- Implement host read resolution through existing GroveDB capabilities using current execution state including earlier accepted transitions and same-transition prior effects, with authorization, byte/call limits, deterministic absence/error results and single charging. Keep CheckTx checks structural and non-executing.
Q08 (confirmed): Read current execution state at the transition position in agreed block order, including accepted earlier transitions and own writes. Never expose later or abandoned speculative writes. Parallel execution must match sequential roots, results, fees and receipts; internal retries are not charged.
Prerequisites: R09-01, R09-02, R06-08, R08-01, R08-05.
Dependents: R09-04, R09-05, R09-07, R09-09, R09-08, R10-01, R10-04, R10-05.
Modules: NATIVE, QUERIES, VIEW, AUTH. Original task context. Refinements (not extra dependency edges): FIX-01.
R09-05
- Add typed read constructors, canonical vectors, fixtures and block/batch visibility tests to guest SDK/tooling; use local fixtures for tests and metered cost reports.
Prerequisites: R09-01, R08-07, R09-03, R13-06.
Modules: AUTHOR, HARNESS. Original task context.
R09-06
- Document ordered current-state and same-batch visibility, capabilities, bounds, current-state proof limits and the explicit preflight exclusion.
Prerequisites: R09-05.
Dependents: None recorded.
Modules: DELIVERY, AUTHOR. Original task context.
R09-07
- Test missing values, unauthorized reads, canonical encoding, caps, repeated copies and failed-read charging. Cover visibility of earlier accepted transitions and isolation from later or abandoned speculative transitions, same-transition prior-write visibility, metadata/index updates and cross-architecture roots; do not claim arbitrary transaction reorderings preserve all effects.
Q08 (confirmed): Read current execution state at the transition position in agreed block order, including accepted earlier transitions and own writes. Never expose later or abandoned speculative writes. Parallel execution must match sequential roots, results, fees and receipts; internal retries are not charged.
Prerequisites: R09-03, R09-02.
Dependents: R09-09.
Modules: VIEW, QUERIES, HARNESS, INTEGRATION. Original task context. Refinements (not extra dependency edges): FIX-01.
R09-09
- Add upgrade, adversarial-bound and fuzz coverage for reads and guest encodings: deep/nested schemas, large indexes, absent entries, serializer growth, maximum signed wire size and worst-case repeated copies. Verify actual cost stays within the admitted bound.
Prerequisites: R09-03, R09-02, R09-07, R14-01.
Dependents: None recorded.
Modules: ABI, SER, QUERIES, HARNESS. Original task context.
Coordination and dependencies
Task-level prerequisites above govern order. Workstreams contain multiple stages, so a cross-link is not a claim that the entire other issue must close first. These are Markdown relationships, not native GitHub blocked-by edges. The parent dependency register preserves all 234 links, reasons and explicit/inferred labels.
- R08-04 → R09-01 (inferred): Rebased source dependency; confirm the implementation ordering. Implementation prerequisite inferred from the described interfaces.
- R08-05 → R09-02 (inferred): Rebased source dependency; confirm the implementation ordering. Implementation prerequisite inferred from the described interfaces.
- R06-08 → R09-03 (inferred): Rebased source dependency; confirm the implementation ordering. Footprint resolution builds on the guest ABI and section 6.3 query/proof infrastructure.
- R08-01 → R09-03 (inferred): Rebased source dependency; confirm the implementation ordering. Implementation prerequisite inferred from the described interfaces.
- R08-05 → R09-03 (inferred): Rebased source dependency; confirm the implementation ordering. Implementation prerequisite inferred from the described interfaces.
- R09-01 → R09-04 (inferred): Rebased source dependency; confirm the implementation ordering. Implementation prerequisite inferred from the described interfaces.
- R09-03 → R09-04 (inferred): Rebased source dependency; confirm the implementation ordering. Implementation prerequisite inferred from the described interfaces.
- R08-07 → R09-05 (inferred): Rebased source dependency; confirm the implementation ordering. Implementation prerequisite inferred from the described interfaces.
- R13-06 → R09-05 (inferred): Rebased source dependency; confirm the implementation ordering. Implementation prerequisite inferred from the described interfaces.
- R09-03 → R09-08 (inferred): Rebased source dependency; confirm the implementation ordering. Implementation prerequisite inferred from the described interfaces.
- R09-05 → R09-08 (inferred): Rebased source dependency; confirm the implementation ordering. Implementation prerequisite inferred from the described interfaces.
- R14-01 → R09-09 (inferred): Rebased source dependency; confirm the implementation ordering. Implementation prerequisite inferred from the described interfaces.
- R09-01 → R10-01 (inferred): Rebased source dependency; confirm the implementation ordering. Implementation prerequisite inferred from the described interfaces.
- R09-03 → R10-01 (inferred): Rebased source dependency; confirm the implementation ordering. Implementation prerequisite inferred from the described interfaces.
- R09-03 → R10-04 (inferred): Rebased source dependency; confirm the implementation ordering. Implementation prerequisite inferred from the described interfaces.
- R09-03 → R10-05 (inferred): Rebased source dependency; confirm the implementation ordering. Scheduled calls use the scheduling infrastructure, bounded host reads and the selected existing atomic-effect integration.
- R09-01 → CAP-05 (inferred): Canonical read declarations define typed query requests.
PR and evidence tracking
Create focused PRs against the chosen development branch. Link this issue with Refs #<issue-number> for partial work. Do not use Fixes for the whole workstream until every listed full task and acceptance criterion is complete.
For a PR that completes an entire task, add a standalone line in its actual PR body: Dash-Tasks: <completed task IDs>. Replace the placeholder with only fully completed IDs. Preparation PRs use ordinary references and omit the completion marker for their broader parent tasks. The site reads this marker on PRs in dashpay/platform and dashpay/grovedb: draft = red, ready for review = yellow, merged with no linked open PR = green. Closed-unmerged is not completion. This does not automatically close issue checkboxes and does not prove acceptance tests passed; reviewers must record the evidence.
| Evidence | Link / result |
|---|---|
| Implementation PRs | Pending |
| Canonical vectors and targeted tests | Pending |
| Upgrade/replay/conservation evidence, where applicable | Pending |
| Remaining full-task acceptance | All unchecked above |
Activity