Skip to content

[DBFT] Optimize dBFT Consensus Timing Mechanism #189

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

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Jim8y
Copy link
Contributor

@Jim8y Jim8y commented Feb 8, 2025

As we plan to reduce the block time in future updates, network latency issues will have a more pronounced impact on block generation speed. This could potentially slow down the block production rate and, consequently, affect the GAS generation rate. Therefore, we need to implement a mechanism to minimize these latency effects and maintain a stable gas generation rate across the network.

Copy link
Contributor

@roman-khimov roman-khimov left a comment

Choose a reason for hiding this comment

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

  1. This has nothing to do with hardforks. At all.
  2. This doesn't make any sense as a NEP to me. dBFT stays the same, timer management is deeply internal to it and 3.7 will be compatible with 3.8 wrt this even if they slightly deviate.
  3. The description is insufficient for any kind of implementation. What is T(n) really? It will be different on different machines. What is Tc, when consensus is considered to be started and when is it considered to be finished wrt dBFT cycle?

@Jim8y
Copy link
Contributor Author

Jim8y commented Feb 9, 2025

  1. This has nothing to do with hardforks. At all.

It needs hardfork to ensure all consensus node works the same.

  1. This doesn't make any sense as a NEP to me. dBFT stays the same, timer management is deeply internal to it and 3.7 will be compatible with 3.8 wrt this even if they slightly deviate.

Its OK if you dont think it should be this way, its not required to merge a draft.

  1. The description is insufficient for any kind of implementation. What is T(n) really? It will be different on different machines. What is Tc, when consensus is considered to be started and when is it considered to be finished wrt dBFT cycle?

I can update for better description.

@Jim8y
Copy link
Contributor Author

Jim8y commented Feb 9, 2025

I am trying to make everything standardized, may make many mistakes, not intentional mistakes, but appologize for those in advance.

I have no idea what should be an NEP, what should not be an NEP, its up to the team to decide and i accept the team decision,

@roman-khimov
Copy link
Contributor

It needs hardfork to ensure all consensus node works the same.

Nope. This adjustment is backwards-compatible, for most networks the difference won't affect correctness.

I am trying to make everything standardized

@Jim8y, don't get me wrong, this is what I totally support and I will help with any protocol formalization efforts. It's just that this particular case is arguable for two reasons: we don't have dBFT NEP and this doesn't change the algorithm itself in any way. It's an implementation detail which has some importance, but maybe not requiring NEP. At the same time, I agree that

its up to the team to decide

And if the majority find this NEP useful then it should be explained in dBFT terms, so that it could be understood and implemented.

@Jim8y Jim8y marked this pull request as draft February 11, 2025 07:30
Copy link
Member

@shargon shargon left a comment

Choose a reason for hiding this comment

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

This is already merged in HF_Echidna should we move on?

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.

3 participants