consenus: Implement LLMQ_100_67 quorums#3844
Conversation
10b9db5 to
9ec9dbe
Compare
9ec9dbe to
0e0305b
Compare
|
See suggestions-3844 for some renaming ideas. Feel free to pick only what you like 😄 It's nothing which would hold me up giving an utACK. My thoughts about the |
|
Picked some of your suggestions. How about de92158 instead of the rest of them? |
xdustinface
left a comment
There was a problem hiding this comment.
How about de92158 instead of the rest of them?
Okay yeah agree, the term "new" might make sense there if we add another LLMQ at some point :D
There is one thing though where im not totally sure about yet: Will things work well if we have all members of 100 member LLMQs connected (Spork21 is currently active for this new LLMQ Type)?
@codablock You might have tested that? Can you share your thoughts here also?
| .keepOldConnections = 25, | ||
| .recoveryMembers = 50, |
There was a problem hiding this comment.
We need a bit more thought about these values and figuring out what a good value is
There was a problem hiding this comment.
Per https://github.com/dashpay/dash/blob/master/src/consensus/params.h#L119-L121, keepOldConnections has to be 25 (or more).
…uce GetLLMQParams Signed-off-by: pasta <pasta@dashboost.org>
|
Just talked with @QuantumExplorer, due to modifications he is making in tenderdash, there is no longer a need for a high minimum size of 90 (no longer using a dynamic threshold), so I propose we drop that to 80. |
Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
|
What is the behavior of this quorum in regards to Concentrated Recovery? |
|
There are no changes in |
|
It wasn't mentioned in the original issue... I'm not sure if it's a good idea or not. I guess it would depend on if concentrated recovery / MNs could handle another massive hunk of connections... |
Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
PastaPastaPasta
left a comment
There was a problem hiding this comment.
LGTM, utACK, at this point waiting on tests
Current `develop` tests fail. This was basically introduced by dashpay#3844 but it didn't come up before dashpay#3853 because the `v17` fork wasn't activated in `feature_llmq_dkgerrors.py`. After dashpay#3853 `dip0008` activation takes [200 blocks](dashpay@b95cf01#diff-4a04bc0b355c780033960e8c261ee9b6d3c452897e1dcd88a15d272512266c76R539) which was normally activated after [10 blocks](dashpay@b95cf01#diff-b92fa0fafafa27172736ebc88f9f9b658b1160caca512a318eefb7d93d22bf3cL18) in `feature_llmq_dkgerrors.py`. Now with the 200 blocks `v17` gets activated during test which then leads to MN1, MN2 banning MN0 because it lies in DKG of `LLMQ_TEST` and `LLMQ_TEST_V17`. There are other ways to solve it, like enabling `dip0008` earlier or enable `v17` later but IMO its anyway better to restrict `ShouldSimulateError` to only trigger for `LLMQ_TEST`.
…3871) * llmq: Restrict `ShouldSimulateError` to trigger for LLMQ_TEST only Current `develop` tests fail. This was basically introduced by #3844 but it didn't come up before #3853 because the `v17` fork wasn't activated in `feature_llmq_dkgerrors.py`. After #3853 `dip0008` activation takes [200 blocks](b95cf01#diff-4a04bc0b355c780033960e8c261ee9b6d3c452897e1dcd88a15d272512266c76R539) which was normally activated after [10 blocks](b95cf01#diff-b92fa0fafafa27172736ebc88f9f9b658b1160caca512a318eefb7d93d22bf3cL18) in `feature_llmq_dkgerrors.py`. Now with the 200 blocks `v17` gets activated during test which then leads to MN1, MN2 banning MN0 because it lies in DKG of `LLMQ_TEST` and `LLMQ_TEST_V17`. There are other ways to solve it, like enabling `dip0008` earlier or enable `v17` later but IMO its anyway better to restrict `ShouldSimulateError` to only trigger for `LLMQ_TEST`. * Revert "llmq: Restrict `ShouldSimulateError` to trigger for LLMQ_TEST only" This reverts commit ec42d86. * llmq: Restrict `ShouldSimulateError` to trigger for LLMQ_TEST only (alternative) Move ShouldSimulateError into CDKGSession Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
* Add LLMQ_100_67 quorums * Re-use DEPLOYMENT_V17 bit to activate LLMQ_100_67 quorums * Add LLMQ_TEST_NEW quorum and test its activation * Tweak mine_quorum to work correctly with multiple quorum types And to avoid a potentialy endless "while" loop * llmq: Rename IsQuorumTypeEnabledAtBlock -> IsQuorumTypeEnabled * chainparams|test: Rename llmq_test_new -> llmq_test_v17 * chainparams|consensus|llmq: Rename LLMQ_TEST_NEW -> LLMQ_TEST_V17 * Tweak few strings and the name of the test * llmq: Make GetEnabledQuorumTypes return a vector of LLMQTypes, introduce GetLLMQParams Signed-off-by: pasta <pasta@dashboost.org> * Tweak minSize Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com> * Exclude LLMQ_100_67 from Concentrated Recovery * Update test/functional/feature_new_quorum_type_activation.py Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com> Co-authored-by: xdustinface <xdustinfacex@gmail.com> Co-authored-by: pasta <pasta@dashboost.org> Co-authored-by: PastaPastaPasta <6443210+PastaPastaPasta@users.noreply.github.com>
…ashpay#3871) * llmq: Restrict `ShouldSimulateError` to trigger for LLMQ_TEST only Current `develop` tests fail. This was basically introduced by dashpay#3844 but it didn't come up before dashpay#3853 because the `v17` fork wasn't activated in `feature_llmq_dkgerrors.py`. After dashpay#3853 `dip0008` activation takes [200 blocks](dashpay@b95cf01#diff-4a04bc0b355c780033960e8c261ee9b6d3c452897e1dcd88a15d272512266c76R539) which was normally activated after [10 blocks](dashpay@b95cf01#diff-b92fa0fafafa27172736ebc88f9f9b658b1160caca512a318eefb7d93d22bf3cL18) in `feature_llmq_dkgerrors.py`. Now with the 200 blocks `v17` gets activated during test which then leads to MN1, MN2 banning MN0 because it lies in DKG of `LLMQ_TEST` and `LLMQ_TEST_V17`. There are other ways to solve it, like enabling `dip0008` earlier or enable `v17` later but IMO its anyway better to restrict `ShouldSimulateError` to only trigger for `LLMQ_TEST`. * Revert "llmq: Restrict `ShouldSimulateError` to trigger for LLMQ_TEST only" This reverts commit ec42d86. * llmq: Restrict `ShouldSimulateError` to trigger for LLMQ_TEST only (alternative) Move ShouldSimulateError into CDKGSession Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
Implements #3729
Re-uses DEPLOYMENT_V17 as an activation mechanism.