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
Optimizing consensus syncing time #268
Optimizing consensus syncing time #268
Conversation
Merging with Neo Master
It's a nice idea @vncoelho . If the average time is taken from the last few blocks, it's possible to create a self-adjustable system that will keep achieving 15 seconds on average, even when transaction demands vary. |
This can be dangerous because shortening the timeout time can lead to frequent view changing that might destroy the entire network. |
These guys like to play with fire 🗡️ ehauehauehauuhea @erikzhang, you are completely right. EHauheuahea However, we see some light! 🥇 We think that several times the consensus nodes are The strategy could be to increase the time for But, perhaps, we could also generalize and adjust the On the other hand, we already tested it with blocktimes even set to 5 seconds and the results were not bad. We have no hurry with this...Let's move step by step. |
@igormcoelho, yes, maa broda. For example, with |
Merging Master
- Microsoft.AspNetCore.ResponseCompression v2.1.1 - Microsoft.AspNetCore.Server.Kestrel v2.1.1 - Microsoft.AspNetCore.Server.Kestrel.Https v2.1.1 - Microsoft.EntityFrameworkCore.Sqlite v2.1.1 - Microsoft.Extensions.Configuration.Json v2.1.1
…ensus-syncing-time
Starting to check this fine-tunning for Neo 3.0 |
I tried to manage to clear everything, but github suggest me to create a new Pull Request to be more clear. |
Hey @erikzhang,
We are currently discussing (@igormcoelho) about simple adjustment that can help the Blockchain to carve 15s, without changing the structure of the consensus neither modifying the variable that guides the desired block time.
I will open this PR in order to promote a better environment for us to discuss these minor changes.
In fact, we are dealing with something very simple.
The idea is basically to advance the Speaker
OnTimeout
timer in something around 3-6 seconds, calling "send prepare request" a little before 15 seconds.While it implies less time for accepting transactions, we are also discussing a simple Average time calculator, which could use the average value taken by the
FillContext();
call and predicts the "optimal" time for broadcasting aPrepare Request
call.What do you think about it?