Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[EPIC] [Dynamic Protocol State | M2] ToDos, suggested revisions and tech debt #5666

Closed
4 of 9 tasks
Tracked by #5291
AlexHentschel opened this issue Apr 12, 2024 · 0 comments · Fixed by #5968
Closed
4 of 9 tasks
Tracked by #5291

[EPIC] [Dynamic Protocol State | M2] ToDos, suggested revisions and tech debt #5666

AlexHentschel opened this issue Apr 12, 2024 · 0 comments · Fixed by #5968
Labels
Epic Improvement Protocol Team: Issues assigned to the Protocol Pillar. S-Consensus Tech Debt

Comments

@AlexHentschel
Copy link
Member

AlexHentschel commented Apr 12, 2024

This issue if for collecting various suggestions, TODOs and tech debt related to the KVStore

High Prio

  • I find it super confusing / misleading that Snapshot.EpochProtocolState().Entry() is defined through the InitialProtocolState interface. The InitialProtocolState is very clear in its documentation that it (quote) "returns constant data for given epoch." Therefore, the only possible conclusion is also that Entry returns the DynamicProtocolState as specified initially by the Epoch Setup and Commit events. However, the implementations always return the DynamicProtocolState as of the specified block. (for further details and discussion, see this comment)

    Suggestions: (discussion April 15th, Yurii, Jordan, Alex)

    • merge InitialProtocolState interface into DynamicProtocolState EpochProtocolState
    • whenever we are referring to Epoch-sub-state, we should explicitly refer to it using "Epoch..."
  • Currently there is nothing guaranteeing that two models with a different version (but otherwise identical contents) will have a different ID. See discussion
    Suggestion: Let modelVersion and modelEncoded be the output of model.VersionedEncode(). Then change ID calculation to use hash(modelVersion || modelEncoded) instead of the default MakeID. Addressed by Include version in kvstore model encoding explicitly #5854

Medium Prio

Low Prio

@AlexHentschel AlexHentschel added Improvement Protocol Team: Issues assigned to the Protocol Pillar. S-Consensus Tech Debt labels Apr 19, 2024
@franklywatson franklywatson added this to the Dynamic Protocol State milestone Apr 26, 2024
@franklywatson franklywatson changed the title [Dynamic Protocol State] ToDos, suggested revisions and tech debt [Dynamic Protocol State] [M2] ToDos, suggested revisions and tech debt Apr 26, 2024
@franklywatson franklywatson changed the title [Dynamic Protocol State] [M2] ToDos, suggested revisions and tech debt [Dynamic Protocol State | M2] ToDos, suggested revisions and tech debt Apr 26, 2024
@franklywatson franklywatson changed the title [Dynamic Protocol State | M2] ToDos, suggested revisions and tech debt [EPIC] [Dynamic Protocol State | M2] ToDos, suggested revisions and tech debt Apr 26, 2024
@franklywatson franklywatson changed the title [EPIC] [Dynamic Protocol State | M2] ToDos, suggested revisions and tech debt [EPIC] [Dynamic Protocol State | M2 & M3] ToDos, suggested revisions and tech debt Apr 26, 2024
@franklywatson franklywatson changed the title [EPIC] [Dynamic Protocol State | M2 & M3] ToDos, suggested revisions and tech debt [EPIC] [Dynamic Protocol State | M2] ToDos, suggested revisions and tech debt May 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic Improvement Protocol Team: Issues assigned to the Protocol Pillar. S-Consensus Tech Debt
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants