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

Intial bip34 like for versioning #3578

Conversation

Leo-Besancon
Copy link
Collaborator

  • document all added functions
  • try in sandbox /simulation/labnet
  • unit tests on the added/changed features
    • make tests compile
    • make tests pass
  • add logs allowing easy debugging in case the changes caused problems
  • if the API has changed, update the API specification

@Leo-Besancon
Copy link
Collaborator Author

Some notes:

  • How and when do we "refuse" a block?

    • When the block version is not "compatible" with our "active version"
    • See the consensus' code, e.g. in massa-consensus-worker / src / controller.rs:
    fn mark_invalid_block(&self, block_id: BlockId, header: SecureShare<BlockHeader, BlockId>) { ... }
  • Within a block, do we need an "announced version" AND an "active version"?

    • Otherwise, we could have a blockV1 that announce version 3, a blockV2 that announce version 3, and the two blocks are not compatible.
    • It's the main idea behind the "1" "1/2" "2" graph.
  • What do we do in case the maximal clique changes?

    • We may need to keep track of versions in an HashMap<BlockId, u32> instead of a VecDeque in order to quickly roll back the computations?
    • See how the candidate / final states are made.
    • Or do we only consider finalized blocks?
  • Do we need to customize N/T for each proposal?

    • Currently, it's just a const. If we need to customize it for each version, it would impact the struct used to keep track of the announced versions
  • How do we handle failed proposals?

  • Do we change the parents draws to prefer parents announcing the same version?
    -Probably a good idea!

@Leo-Besancon Leo-Besancon force-pushed the intial_bip34_like_for_versioning branch from 986d0c6 to daf367d Compare February 22, 2023 11:30
@Leo-Besancon Leo-Besancon changed the base branch from testnet_20 to test/versioning_test_transition_fsm_1 February 22, 2023 11:31
@sydhds sydhds force-pushed the test/versioning_test_transition_fsm_1 branch from 1615a9f to 152f1ed Compare February 24, 2023 09:20
@Leo-Besancon
Copy link
Collaborator Author

This PR is outdated, the follow-up is at #3664

@Leo-Besancon Leo-Besancon deleted the intial_bip34_like_for_versioning branch April 6, 2023 09:48
@Leo-Besancon Leo-Besancon restored the intial_bip34_like_for_versioning branch April 7, 2023 08:59
@AurelienFT AurelienFT deleted the intial_bip34_like_for_versioning branch May 29, 2023 08:15
@AurelienFT AurelienFT restored the intial_bip34_like_for_versioning branch May 29, 2023 08:15
@AurelienFT AurelienFT deleted the intial_bip34_like_for_versioning branch May 29, 2023 09:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants