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

feat(drive-abci): support consensus params updates #1713

Draft
wants to merge 57 commits into
base: v1.0-dev
Choose a base branch
from

Conversation

lklimek
Copy link
Contributor

@lklimek lklimek commented Feb 23, 2024

Issue being fixed or feature implemented

For tuning of ABCI consensus params, we need a way to specify consensus params updates in real time, without modifying or even restarting the Drive.

What was done?

Added an option to propose consensus params updates, based on content of some directory on disk.
Added option consensus_params_dir to ABCI configuration.

TODO: Support in ProcessProposal.

How Has This Been Tested?

Not tested yet.

Breaking Changes

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 relevant unit/integration/functional/e2e tests
  • I have added "!" to the title and described breaking changes in the corresponding section if my code contains any
  • I have made corresponding changes to the documentation if needed

For repository code-owners and collaborators only

  • I have assigned this pull request to a milestone

@lklimek lklimek force-pushed the feat/consensus-params-updates branch from 9de809c to b3e2991 Compare February 26, 2024 10:01
/// * `Err(io::Error)` - If there was an error reading the file
///
// TODO: Move this to correct place
pub(super) fn get_consensus_params_update(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to be versioned, and it's own file.

Comment on lines +226 to +230
consensus_param_updates: get_consensus_params_update(
&app.platform().config.abci.consensus_params_dir,
request.height,
)
.map_err(|e| Error::Abci(AbciError::ConsensusParams(e.to_string())))?,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can not work, because it would require the entire network to update on the same block. Something that is possible for a devnet, but not in a real network. Consensus params imo should be versioned, and can only change if the network votes for it in consensus.

@lklimek lklimek force-pushed the feat/consensus-params-updates branch from 736d1d8 to 7167d4e Compare February 27, 2024 08:49
Base automatically changed from feat/drive/read-only-thread to v1.0-dev March 5, 2024 14:30
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.

None yet

3 participants