Skip to content

[Utility][Persistence][Consensus] Implement SavePoints & Rollbacks #562

@deblasis

Description

@deblasis

Objective

This issue is going to be an "umbrella" ticket/epic used to wrap and link all the intermediate steps/deliverables that are necessary to build Savepoints and Rollbacks as highlighted in the Design Document - Issue #493

Origin Document

This is the result of R&D work on #508 which was essentially asking the assignee to build savepoints and rollbacks, just with a different wording thanks to a more "practical" problem to solve.

Goals

  • Implement an abstraction that can contain the operations performed on the various persistence datastores (as described in the design document) and apply/rollback them atomically
  • Implement a way to serialize and deserialize the whole persistence state so that's possible to create snapshots and rehydrate them
  • Implement the Moonshot parts of the design document (perhaps out-of-scope for now? I won't include the deliverables below but please let me know if I should)
  • Ensure that the state of the modules is restored in case of a rollback

Deliverable

Non-goals / Non-deliverables

  • Changes in logic with particular focus to Consensus

General issue deliverables

  • Update the appropriate CHANGELOG(s)
  • Update any relevant local/global README(s)
  • Update relevant source code tree explanations
  • Add or update any relevant or supporting mermaid diagrams

Testing Methodology

  • Task specific tests or benchmarks: make ...
  • New tests or benchmarks: make ...
  • All tests: make test_all
  • LocalNet: verify a LocalNet is still functioning correctly by following the instructions at docs/development/README.md

Creator: @deblasis
Co-Owners: @Olshansk

Metadata

Metadata

Assignees

Labels

consensusConsensus specific changescoreCore infrastructure - protocol relatedpersistencePersistence specific changesutilityUtility specific changes

Type

No type

Projects

Status

In Review

Relationships

None yet

Development

No branches or pull requests

Issue actions