Commit 3bac0a4
committed
Merge #6729: feat: prohibit new legacy scheme masternodes, restrict ProTx version changes with
af10784 doc: add release notes for version restrictions (Kittywhiskers Van Gogh)
991f14d evo: prohibit new legacy scheme masternode registrations (Kittywhiskers Van Gogh)
abf96b5 evo: prohibit extended address versioning on unsupported transactions (Kittywhiskers Van Gogh)
de7f928 evo: prohibit upgrading from LegacyBLS to ExtAddr support directly (Kittywhiskers Van Gogh)
e430e6e evo: prohibit any ProTx with legacy BLS version after basic BLS upgrade (Kittywhiskers Van Gogh)
dc687a9 rpc: constrain ProTx version for ProUpRevTx based on legacy status (Kittywhiskers Van Gogh)
23c5152 trivial: use consistent variable name, use brackets (Kittywhiskers Van Gogh)
Pull request description:
## Additional Information
* Depends on dashpay/dash#6665
* Depends on dashpay/dash#6723
* Please refer to comments from [dash#6665](dashpay/dash#6665) for prior discussion on the contents of the pull request ([comment](dashpay/dash#6665 (comment)), [comment](dashpay/dash#6665 (comment)), [comment](dashpay/dash#6665 (comment)))
* Complementing the deprecation in [dash#6723](dashpay/dash#6723), after `DEPLOYMENT_V23` is activated
* Registration of **new** masternodes (i.e. `ProRegTx`) with the legacy scheme (`LegacyBLS`) will no longer be allowed. Existing masternodes are not affected and can continue to operate and participate.
* Masternodes that are already using the basic scheme (`BasicBLS`) or higher may no longer **downgrade** to the legacy scheme.
* Additional guardrails have been introduced to complement [dash#6665](dashpay/dash#6665), which reserves a new version for extended addresses (`ExtAddr`), affecting `ProRegTx` and `ProUpServTx`, applicable after `DEPLOYMENT_V23` is activated
* Masternodes **must** migrate to the basic scheme (`BasicBLS`) _before_ attempting to utilize extended addresses (`ExtAddr`), legacy scheme nodes may not attempt a direct upgrade.
* Special transactions other than `ProRegTx` or `ProUpServTx` may not bear the version reserved for extended addresses (`ExtAddr`). Note that `IsVersionChangeValid()` does not extend to `ProRegTx` as it _creates_ a new entry and therefore doesn't have a masternode state version to compare against (i.e. there's no version to _change_), so the restriction in `IsVersionChangeValid()` only _de facto_ applies to `ProUpServTx`.
* Future version updates must be conscious of updates to the masternode state ([source](https://github.com/dashpay/dash/blob/d9f52acecb94d57be91b5e17d478d5c909df3633/src/evo/deterministicmns.cpp#L887-L888)), example code for what changes may be required are available [here](dashpay/dash#6665 (comment)).
## Breaking Changes
* `protx revoke` will no longer default to using the highest possible version of `ProUpRevTx` and will now _clamp_ the version to `LegacyBLS` if the masternode uses the legacy scheme.
## Checklist
- [x] I have performed a self-review of my own code
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)**
- [x] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_
ACKs for top commit:
PastaPastaPasta:
utACK af10784
UdjinM6:
utACK af10784
Tree-SHA512: fe788c33397f9e351377777946d5c0498569f68f22d308cce03f903fb3e149bd594ce2caafc50fd62611029563e2841bc42151579b21ba42fdf87cbf7762f716DEPLOYMENT_V23
File tree
3 files changed
+79
-7
lines changed- doc
- src
- evo
- rpc
3 files changed
+79
-7
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
957 | 957 | | |
958 | 958 | | |
959 | 959 | | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
| 984 | + | |
| 985 | + | |
| 986 | + | |
| 987 | + | |
| 988 | + | |
| 989 | + | |
| 990 | + | |
| 991 | + | |
| 992 | + | |
| 993 | + | |
| 994 | + | |
960 | 995 | | |
961 | 996 | | |
962 | 997 | | |
| |||
965 | 1000 | | |
966 | 1001 | | |
967 | 1002 | | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
968 | 1010 | | |
969 | 1011 | | |
970 | 1012 | | |
| |||
1099 | 1141 | | |
1100 | 1142 | | |
1101 | 1143 | | |
1102 | | - | |
1103 | | - | |
| 1144 | + | |
| 1145 | + | |
1104 | 1146 | | |
1105 | 1147 | | |
1106 | 1148 | | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
| 1153 | + | |
1107 | 1154 | | |
1108 | 1155 | | |
1109 | 1156 | | |
| |||
1124 | 1171 | | |
1125 | 1172 | | |
1126 | 1173 | | |
1127 | | - | |
| 1174 | + | |
1128 | 1175 | | |
1129 | 1176 | | |
1130 | 1177 | | |
| |||
1138 | 1185 | | |
1139 | 1186 | | |
1140 | 1187 | | |
1141 | | - | |
| 1188 | + | |
1142 | 1189 | | |
1143 | 1190 | | |
1144 | 1191 | | |
| |||
1166 | 1213 | | |
1167 | 1214 | | |
1168 | 1215 | | |
| 1216 | + | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
1169 | 1221 | | |
1170 | 1222 | | |
1171 | 1223 | | |
| |||
1221 | 1273 | | |
1222 | 1274 | | |
1223 | 1275 | | |
1224 | | - | |
| 1276 | + | |
1225 | 1277 | | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
| 1281 | + | |
| 1282 | + | |
| 1283 | + | |
1226 | 1284 | | |
1227 | 1285 | | |
1228 | 1286 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1269 | 1269 | | |
1270 | 1270 | | |
1271 | 1271 | | |
1272 | | - | |
1273 | | - | |
1274 | 1272 | | |
| 1273 | + | |
1275 | 1274 | | |
1276 | 1275 | | |
1277 | 1276 | | |
1278 | 1277 | | |
1279 | 1278 | | |
| 1279 | + | |
| 1280 | + | |
| 1281 | + | |
1280 | 1282 | | |
1281 | 1283 | | |
1282 | 1284 | | |
| |||
0 commit comments