pocket icon indicating copy to clipboard operation
pocket copied to clipboard

[WIP] Block by Block Synchronous Sate Sync

Open Olshansk opened this issue 1 year ago • 6 comments

Description

Summary generated by Reviewpad on 07 Aug 23 18:22 UTC

This pull request includes changes in multiple files. Here is a summary of the modifications:

  • The "consensus_module's state synchronization" file was completely deleted.
  • The "bus_module.go" file added a new type and a new method.
  • The "state_machine/module.go" file had comments added and a line modified.
  • The "state_machine/fsm.go" file had comments added and new states added.
  • The "hotstuff.proto" file added a comment related to a circular dependency.
  • The "charts/pocket/README.md" file added a new configuration option.
  • The "PROTOCOL_STATE_SYNC.md" file had several updates to the content.
  • The "hotstuff_leader.go" file had modifications in various functions.
  • The "actor.go" file had changes related to the Output Address design.
  • The "events.proto" file added two new messages.
  • The "consensus_module.go" file had several changes and suggestions in the code.
  • The "state_sync_handler.go" file had modifications in two functions.
  • The "types.go" file added a new function.
  • The "config.validator1.json" file had changes in the "servicer" and "ibc" sections.
  • The "charts/pocket/values.yaml" file added a new key-value pair.
  • The "p2p/utils_test.go" file had a constant commented as technical debt.
  • The "defaults.go" file added a new constant.
  • The "events.go" file had updates in comments.
  • The "Tiltfile" had changes in the dependencies list.
  • The "consensus/state_sync/helpers.go" file had changes in three functions.
  • The "event_handler.go" file had a comment removed.
  • The "block.proto" file had modifications in the "BlockHeader" message.

Please review these changes and let me know if you need further assistance.

Issue

Fixes #579

Type of change

Please mark the relevant option(s):

  • [ ] New feature, functionality or library
  • [ ] Bug fix
  • [ ] Code health or cleanup
  • [ ] Major breaking change
  • [ ] Documentation
  • [ ] Other

List of changes

What is this PR in its current form?

  • Basic synchronous block-by-block state sync
  • Not the perfect/cleanest code, but something that's somewhat understandable
  • Some code cleanup related to consensus tended to along the way

What is this PR NOT intended to be

  • Fully asynchronous background state sync
  • State sync independent of FSM
  • Any sort of optimization in state sync

Blockers / further improvements needed in this PR

  • Tickets to track future work (tech debt, improvements, cleanup, optimizations)
  • An E2E test as part of this PR
  • A video showing that it works on localnet

Testing

  • [x] make develop_test; if any code changes were made
  • [x] make test_e2e on k8s LocalNet; if any code changes were made
  • [ ] e2e-devnet-test passes tests on DevNet; if any code was changed
  • [ ] Docker Compose LocalNet; if any major functionality was changed or introduced
  • [ ] k8s LocalNet; if any infrastructure or configuration changes were made

Required Checklist

  • [ ] I have performed a self-review of my own code
  • [ ] I have commented my code, particularly in hard-to-understand areas
  • [ ] I have added, or updated, godoc format comments on touched members (see: tip.golang.org/doc/comment)
  • [ ] I have tested my changes using the available tooling
  • [ ] I have updated the corresponding CHANGELOG

If Applicable Checklist

  • [ ] I have updated the corresponding README(s); local and/or global
  • [ ] I have added tests that prove my fix is effective or that my feature works
  • [ ] I have added, or updated, mermaid.js diagrams in the corresponding README(s)
  • [ ] I have added, or updated, documentation and mermaid.js diagrams in shared/docs/* if I updated shared/*README(s)

Olshansk avatar Jun 08 '23 19:06 Olshansk