-
Notifications
You must be signed in to change notification settings - Fork 100
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
[dBFT CONSENSUS]: dBFT 3.0 with double speakers model #680
Conversation
Compiling but still need some checks. |
Nice work @vncoelho , a very hot start for middle december 🔥 |
[MethodImpl(MethodImplOptions.AggressiveInlining)] | ||
public byte GetFallbackPrimaryIndex(byte viewNumber) | ||
{ | ||
int p = ((int)Block[0].Index - viewNumber + 1) % Validators.Length; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will be changed to another formula that is more efficient.
It is described on the .pdf specification https://github.com/NeoResearch/dbft3-specification/blob/master/docs/dBFT3.0_Specification.pdf
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@igormcoelho, we still need to double check the new formula.
I dont think we are going to add this. As far as I can see, will take years as we still have many issues to fix in the core. But i will keep this. |
It will be implemented someday. This enables good possibilities for decentralization, and we have strong mathematical proofs on its functioning published in two papers. |
I know you are working on it, so i will keep it. The reason it will not be added is not because its not good, just because we are slow to fix the core. |
Better than keep is...review and test. |
AI Reviewer error
|
body: '{"comments":[{"body":"Consider adding error handling for the `git submodule update --init --recursive` command to catch and handle any potential failures.","path":"scripts/load_submodule.sh","line":10},{"body":"It might be more informative to provide a success message that includes the names of the submodules that were updated.","path":"scripts/load_submodule.sh","line":12}],"event":"COMMENT"}', |
Green again with last commit, @superboyiii already checked and NGD team, specially @ZhangTao1596, co-authored the implementation. @roman-khimov @AnnaShaleva , from your side, I also expect a review. But keep in mind you need also to update the neo-go client to be compatible with it. |
I think we've discussed this in neo-project/neo#2029 already, my main points are mostly the same:
For the overall project we have far more important problems to solve now I think (like state, for example), I'd try concentrating on them first and delivering optimizations like this one afterwards.
We can't, we don't have resources for that. What also worries me now is that this intersects with the Bane consensus work. It also changes the protocol and it has a priority now because there we have a problem that can't be fixed otherwise. So realistically I don't think we could get to this earlier than Bane is released. And then we'd like to have a single dBFT implementation, not two-three versions of it. |
@roman-khimov, I do not agree with almost all these points. First, we have two papers published with simulation of this environment discretized in an Mixed Integer Linear Programming Model that was tested for dBFT 2.0 as well. The last time I reviewed the TLA+ you mentioned there were errors on its logic, do you remember that we reviewed it? Later, the benefits in governance have been made clear already. Finally, something that is missing in this PR is the UTs that were removed when dBFT was migrated to plugin. |
Repository moved to neo, please re-open there |
close neo-project/neo#2029
First version of dBFT 3.0 enclosing part of NeoResearch's researching on consensus improvements.
@igormcoelho
Merry X-mas! 🗡️