-
Notifications
You must be signed in to change notification settings - Fork 787
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Confirm delta #2884
Confirm delta #2884
Conversation
…e::delta. Using online_weight_minimum directly can cause quorum requirements to be unnecessarily high as the online_weight_minimum is approached. Replacing references to online_weight_minimum with node:delta and adding tests to ensure rollbacks and confirmation is done precisely on the correct conditions.
…e::delta. Using online_weight_minimum directly can cause quorum requirements to be unnecessarily high as actual online vote weight approaches online_weight_minimum. Replacing references to online_weight_minimum with node:delta and adding tests to ensure rollbacks and confirmation is done precisely on the correct conditions.
Spots that might also need a change (or at least can be optimized) as part of this:
|
…ferences to delta (), which already considers the online_weight_minimum.
This handles the case where online weight is reduced and approaches the minimum, but what happens in the opposite scenario where a large rep comes back online or a large pending balance is received? The peers_stake would increase immediately but online_weight is trended over 2 weeks so there would be a lag before delta is updated to account for the new weight. Should delta be the greater of 50% of online weight or 50% of peers stake to account for the rapid increase in peers weight? As the weight is reduced delta would slowly go down, but it would respond more dramatically to a rapid increase in weight since peers weight is real-time. Alternatively modify the online weight process to move up quickly if the weight is increased but down slowly over 2 weeks if it decreases. |
… components directly.
Moving delta on to online_reps class so all network weight calculations are done in one place.
# Conflicts: # nano/core_test/confirmation_height.cpp # nano/node/active_transactions.cpp
@Srayman Added some new changes to address this issue. |
# Conflicts: # nano/node/election.hpp # nano/node/online_reps.cpp # nano/node/online_reps.hpp
# Conflicts: # nano/node/election.hpp # nano/node/vote_processor.cpp
Generating timestamp within mutex to avoid issues of delays. Removing reference to unused header.
PR nanocurrency#2884 was originally intended to include changes to the default quorum value from 50% to 67%. This update includes this change. Previously the online weight minimum of 60M was being applied as the floor for the number of votes required for quorum, but this caused the actual quorum % required to increase as online weight dropped towards that minimum 60M instead of staying consistent. With nanocurrency#2884 the quorum % is consistent regardless of online weight and thus the more online weight there is, the higher the vote amounts required. In order to provide similar security on the network prior to nanocurrency#2884, this update sets a 67% default value for quorum. Given current online weight of 92M on the main network, this 67% requirements equates to ~61.6M votes required, just above the previous 60M, so little impact to confirmation times is expected.
commit f4f487e Author: Sergey Kroshnin <sergiysw@gmail.com> Date: Wed Nov 18 01:39:51 2020 +0300 Remove inline variable from cpp file commit 9a37835 Author: Sergey Kroshnin <sergiysw@gmail.com> Date: Tue Nov 17 20:25:34 2020 +0300 Update online_weight_quorum default to 67 PR #2884 was originally intended to include changes to the default quorum value from 50% to 67%. This update includes this change. Previously the online weight minimum of 60M was being applied as the floor for the number of votes required for quorum, but this caused the actual quorum % required to increase as online weight dropped towards that minimum 60M instead of staying consistent. With #2884 the quorum % is consistent regardless of online weight and thus the more online weight there is, the higher the vote amounts required. In order to provide similar security on the network prior to #2884, this update sets a 67% default value for quorum. Given current online weight of 92M on the main network, this 67% requirements equates to ~61.6M votes required, just above the previous 60M, so little impact to confirmation times is expected.
* Update online_weight_quorum default to 67 PR #2884 was originally intended to include changes to the default quorum value from 50% to 67%. This update includes this change. Previously the online weight minimum of 60M was being applied as the floor for the number of votes required for quorum, but this caused the actual quorum % required to increase as online weight dropped towards that minimum 60M instead of staying consistent. With #2884 the quorum % is consistent regardless of online weight and thus the more online weight there is, the higher the vote amounts required. In order to provide similar security on the network prior to #2884, this update sets a 67% default value for quorum. Given current online weight of 92M on the main network, this 67% requirements equates to ~61.6M votes required, just above the previous 60M, so little impact to confirmation times is expected. * Remove inline variable from cpp file
online_weight_minimum is already considered in the calculation of node::delta. Using online_weight_minimum directly can cause quorum requirements to be unnecessarily high as actual online vote weight approaches online_weight_minimum.
Replacing references to online_weight_minimum with node:delta and adding tests to ensure rollbacks and confirmation is done precisely on the correct conditions.