-
Ethan Reesor authored
Closes AC-1508. Gets Tendermint state sync (sync via snapshot) working. - Updates SaveSnapshot to save **everything**. We can figure out what the minimum set of records is later. - Adds a daemon subcommand to enable state sync, which requires setting a trusted height and snapshot hash. - Adds an analyzer to prevent accidentally committing enabled debug flags, e.g. `const debugFoo = true`. - Adds a debug tool to list snapshots and dump the records in a snapshot. - Consolidates various debug tools into a single tool as subcommands. ## Review Checklist **If any item is not complete, the merge request is not ready to be reviewed and must be marked `Draft:`.** - [x] The merge request title is in the format `<change type>(<change scope>): <short description> [<task id>]` - For example, `feat(cli): add QR code generation [AC-123]` - For details, see [CONTRIBUTING.md](/CONTRIBUTING.md) - [x] The description includes `Closes <jira task ID>` (or rarely `Updates <jira task ID>`) - [~] The change is fully validated by tests that are run during CI - In most cases this means a test in "validate.sh" - In some cases, a Go test may be acceptable - Validation is not applicable to things like documentation updates - Purely UI/UX changes can be manually validated, such as changes to human-readable output - For all other changes, automated validation tests are an absolute requirement unless a maintainer specifically explains why they are not in a comment on this merge request - [x] The change is marked with one of the validation labels - ~"validation::ci/cd" for changes validated by CI tests - ~"validation::manual" for changes validated by hand - ~"validation::deferred" for changes validated by a follow up merge request - ~"validation::not applicable" for changes where validation is not applicable ## Merge Checklist - [ ] CI is passing - [ ] Merge conflicts are resolved - [ ] All discussions are resolved Related to AC-1508
c0b946b0