diff --git a/README.md b/README.md index 75dc9e847a..e259b72518 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Dash Core staging tree 18.0 +Dash Core staging tree =========================== |CI|master|develop| diff --git a/configure.ac b/configure.ac index 1231545a14..ba5c875b78 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ AC_PREREQ([2.69]) define(_CLIENT_VERSION_MAJOR, 20) define(_CLIENT_VERSION_MINOR, 0) -define(_CLIENT_VERSION_BUILD, 3) +define(_CLIENT_VERSION_BUILD, 4) define(_CLIENT_VERSION_RC, 0) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2023) diff --git a/contrib/builder-keys/pasta.pgp b/contrib/builder-keys/pasta.pgp index f53bcec2bf..018162fd70 100644 --- a/contrib/builder-keys/pasta.pgp +++ b/contrib/builder-keys/pasta.pgp @@ -24,29 +24,53 @@ lcEDLINaz1xuHAtAxqTQKMYCP1xtd5rhGOe1FkGfVYEJX97+JgMGa8+2nD5+A6wG 0+JaJllqzfXY1VhNoVmfS/hFPQ+t/84jNSGR5Kn956C5MvTK65VumH+NRE59kpt1 nsIQNKu/v6fZUnbRtCFC05BSwIjoTzFvKXycJkCVjdSYARWkagki4bbFC1WZQuA9 BOF5TOUAYt6zaEBfAJgjeRT71Mr03eNExXaLm9k/hmvapGpmtJQhLY6NKPm/ctyf -IaEz/bkCDQRdVC8lARAAu64IaLWAvMStxVsC/+NnwBBxYPef4Iq5gB5P1NgkmkD+ -tyohWVnzdN/hwVDX3BAXevF8M+y6MouUA9IxJRt2W9PK06ArTdwhFpiam2NAO5OO -UhuJ1F8eAhRQ5VvI8MbVttZKSk3LiCmXGSj5UUXEFKS1B7WztZVwqG6YswoAPwbN -erZuwYbH2gfa9LK+av1cdZ8tnDaVmZWL8z1xSCyfRa/UAtZht/CEoTvAwXJ6CxVU -BngIlqVnK0KvOrNzol2m5x4NgPcdtdDlrTQE+SpqTKjyroRe27D+atiO6pFG/TOT -kx4TWXR07YTeZQJT/fntV409daIxEgShD0md7nJ7rVYy8u+9Z4JLlt2mtnsUKHez -o1Axrlri05cewPVYQLuJND/5e2X9UzSTpY3NubQAtkD1PpM5JeCbslT9PcMnRuUy -dZbhn7ieW0b57uWpOpE11s2eIJ5ixSci4mSJE9kW+IcCic/PPoD1Rh2CvFTBPl/b -sw6Bzw64LMflPjgWkR7NVQb1DETfXo5C2A/QU6Z/o7O4JaAeAoGki/sCmeAi5W+F -1kcjPk/L/TXM6ZccMytVQOECYBOYVUxZ2VbhknKOcSFQcpk8bj2xsD1xX2EYhkXc -CQkvutIgHGz/dt6dtvcaaL85krWD/y8h68TTFjQXK0+g8gcpexfqTMcLnF7pqEEA -EQEAAYkCPAQYAQgAJhYhBClZA2Lsh4qB/TwgK1JSe+2r6HmEBQJdVC8lAhsMBQkD -w8drAAoJEFJSe+2r6HmEDzEP/A8H3JkeSa/03kWvudFloVbGbfvP+XkKvGnAZPGH -z3ne/SV2tcXljNgU15xHvLktI4GluEfJxRPUqvUal1zOR9hqpas0vX8gsf0r0d3o -m2DHCyMY8GscfDF05Y8fqf0nU5/oLDlwwp11IyW8BDLSwwANsTLZ1ysukfYc4hoo -pU71/wdAl85fae7I2QRduImWlMADfUtc9Orfb1tAhPtaCJVZj5vgfUNSZOTUJ73R -GbdL3Z2dc42lO3mRMyDkPdykkq0EgOo6zZLuHZQFhxTzWIWeUT8vWNjpkdTeRHLv -v3cwPRx1k1atrM+pE9YkhCg0EOMTcmN+FMekgnU+ee0cibn5wWOvE05zwRKYROx3 -4va2U6TUU6KkV3fFuq3qqkXaiMFauhI1lSFGgccg7BCNMhbBpOBkfGI3croFGSm2 -pTydJ87/+P9C9ecOZSqCE7Zt5IfDs/xV7DjxBK99Z5+RGxtsIpNlxpsUvlMSsxUN -hOWyiCKr6NIOfOzdLYDkhHcKMqWGmc1zC3HHHuZvX5u6orTyYXWqc8X5p3Kh7Qjf -/ChtN2P6SCOUQquEvpiY5J1TdmQSuoqHzg3ZrN+7EOKdnUH7y1KB7iTvgQ07lcHn -AMbkFDcpQA+tAMd99LVNSXh8urXhJ/AtxaJbNbCSvpkOGB4WHLy/V+JdomFC9Pb3 -oPei -=42dS +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 +u+HE6D2rqvc0CA1wAreY5+lD96PbmOAjnA== +=lPi0 -----END PGP PUBLIC KEY BLOCK----- diff --git a/contrib/builder-keys/udjinm6.pgp b/contrib/builder-keys/udjinm6.pgp index 3a1fdbd461..4deb906cd2 100644 --- a/contrib/builder-keys/udjinm6.pgp +++ b/contrib/builder-keys/udjinm6.pgp @@ -1,5 +1,4 @@ -----BEGIN PGP PUBLIC KEY BLOCK----- -Comment: GPGTools - https://gpgtools.org mQINBFUkMgoBEAD5lFzlr4fIR3CKlsgx1KXLNR+1+IIe3AT8YloMq3rlvylOTgGl j1PTeQL0eHH+fD3ukSHHiZC7FcY2aC3vTPCd16+OO+ii/Nfx6vAyve2RiTA4brKi @@ -24,29 +23,129 @@ yh9Zp89d2J/C+okWdwOU/fvl+vIdXaDudgxXCYEq/xiVpj1mkNFgoPo0Fk3PetFh PI9FwbAL6Izy7lE3CZZ8jCSzC8dvH2tOmc7dn9QMtj+0jvYBxyCAU6EWtfdZodL5 lTt7H1zoggYcvdhNAEYcClunZVyDvd/hwroQxQXy5qkNVXzJOs+emUMQFOMZKX52 eKl52Gp+UV91VAqmlf5N+60G8wDDhsHj62v+G1HtPFNNNZZYIYlbn/jx+AmjVbED -f4cVdhXOw/rUQoAJNrMghUyymBlrWKCg9fRVatVGuQINBFUkMgoBEACigJW8hY3w -TXIj+HOSaGIg7PxjcJgIdfU72SvTw3JiEPIp++mL6cosPTvle3wnchP/Tfj6fJ1T -L/h2ERBNeCrGVWTIYtqC5K7WtTe56sChzXIIdDhPzze8hlJ3avd4awoAzYU6XwQD -G9bQLFZY107ipcSoIPtnm85wkkfVn1O9tNvJDQaDGrNWfqK5F6ZJztgTnFlD/DUo -a6MQXV4NiNpPsPcxjZi61jrCvqaghVmN8RDm8st3uOzHGIgGGF2NyH29kEmmuEcw -0Dve8ikHD1lGG6ZmxAgCKsbGc6P8wgmU8eXNM7D47iqQsWWP6GMfCuaKZtHHXDed -VbDpdmChpqR3fpcsHOobmli/rkhbKXbIWrn4byCWf53grH+z+XWWqIlHfNUbxDGq -LOGSDG+RQWUiqgBcE2wD7t8NFIVtiTwpjTqYRXp0jWwi4898arWf5aTMuu4vsSWO -5L9UTW0l1nWSK9psCzAyfHarWnMAPwNO/Zcv83uoju8jQEkHu/IHe/0QndbTvezy -t8cmi7NpUdXx4fDyszwcRynqC48gjNzR9SRRjrWpxabm8Ac8ldjUoRvFs8JCJk/5 -6C6oTjPwhGPFugnTGm4aE1Iwz0RdfBFZ0pSpFY+5Pidoe7e/z/wspXDIaxda+bVL -OVHuPNtNnWBaDXzbDeG/HY0pNdR4zK8t0QARAQABiQIlBBgBCgAPBQJVJDIKAhsM -BQkHhh+AAAoJEINZK9FADVjZdAYP/1CF9bCRyGTLmKXFGv34hwbKlswS2Uuwyt9K -RJPX6rWmIx9KfGokTc+cnlODyrkKV0bpS9eVScuXlV59Y91EtyCWIQ6y29FW0vw2 -qI4v43gz5wPeIMOFRlutTwnnDodp3PRoWKmjduXokIG/N4ZknJ42AREheEQJFLSG -Yx/jcCVPFMXDXe0UDrqZI+HiagMb2asmDFYAELu/GtBc1zMtJBwvoYt2cQm3AqI6 -S1aQLRVGp3crqdg0cJ1X0+VrjfcWbf8XljK6LuobssaIgEoKR5nNMhbOTYfMwFn2 -4vx6MgQ3ihuOgOLazGB/rSdSXNqx5525rmFInkgPUMfpWqRQqDMJi52Z6itQxlmY -igg7ZyyZOYSKbB7GDevO3cBw6EjwPXlcWp0mb99sjhAQESEXA7bC4YW4dIEE+1zI -shA6M3oA2cO0ee2gTyY4nUDF7QAp0psPV6FANfpDjQ5/hvq+JHWJ+Arj0LszQZEd -VpxkfJjO/+r0KOjQoBeABaEMuPTJmC9qV5bm8BFKNR6kx6ZsExYhkC8d9WGqX+aS -07ElEHpmuuc/bw9y/45HBO8ZijIJZ+zlM6IojCOcjx1WFSEW9eAW+FyF+B6EJbVA -PGrsb1tnDgItwV3m5HoEvNU3yrTPfIgsFFXKPe/BvRLroNNN1493gu8oxKEuroFO -8/LeBIb/ -=q31t +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 +=nhGw -----END PGP PUBLIC KEY BLOCK----- diff --git a/contrib/guix/libexec/build.sh b/contrib/guix/libexec/build.sh index a85d9bc921..0755764869 100644 --- a/contrib/guix/libexec/build.sh +++ b/contrib/guix/libexec/build.sh @@ -237,6 +237,7 @@ mkdir -p "$OUTDIR" CONFIGFLAGS+=" --enable-reduce-exports --disable-bench --disable-gui-tests --disable-fuzz-binary" case "$HOST" in *linux*) CONFIGFLAGS+=" --disable-threadlocal" ;; + *mingw*) CONFIGFLAGS+=" --disable-miner" ;; esac # CFLAGS diff --git a/contrib/windeploy/win-codesign.cert b/contrib/windeploy/win-codesign.cert index d022284b31..b38a7880e9 100644 --- a/contrib/windeploy/win-codesign.cert +++ b/contrib/windeploy/win-codesign.cert @@ -1,82 +1,29 @@ -----BEGIN CERTIFICATE----- -MIIFNTCCBB2gAwIBAgIQC8hE/HYFbdaSbMDoQg3bdDANBgkqhkiG9w0BAQsFADBy -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQg -SUQgQ29kZSBTaWduaW5nIENBMB4XDTIwMDgxMzAwMDAwMFoXDTIzMDgxODEyMDAw -MFowcjELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNj -b3R0c2RhbGUxHTAbBgNVBAoTFERhc2ggQ29yZSBHcm91cCBJbmMuMR0wGwYDVQQD -ExREYXNoIENvcmUgR3JvdXAgSW5jLjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBAJ5yx72CIbnZYYovXBg3YctSF7NEOeWqM6SDnwpLjCMXt8HKdKyte8/r -xxNxkwAvenF34gkzyJD9wRggbrNmtgg/zaT3xa0RUC9y7uxvBRHJ9nSskbRV5Ljp -v+KTBiekJ/M95Xt0rGYLT76OE2QvWv7fS15JJ7h0F+ReFRvUFlj2HqewTCwYqu0c -OIKhHs8I4EEHzMkIfVEEKlzpIfGwndRPmMxrq/6RXpQlrTo9tIA10KiyhQx1sNRu -bkWjXEw1SBK63F4Xj8ZaIdlDj3vwEE16Ltk2Nr+eX68gDwyCe9TQ2D7O4rrFEh8f -nEp7hcY7BoLc95COYKtWhj8mnC0obBECAwEAAaOCAcUwggHBMB8GA1UdIwQYMBaA -FFrEuXsqCqOl6nEDwGD5LfZldQ5YMB0GA1UdDgQWBBRVtnOXT2wps7EH/GWYwlg9 -XLnMxDAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwdwYDVR0f -BHAwbjA1oDOgMYYvaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL3NoYTItYXNzdXJl -ZC1jcy1nMS5jcmwwNaAzoDGGL2h0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEy -LWFzc3VyZWQtY3MtZzEuY3JsMEwGA1UdIARFMEMwNwYJYIZIAYb9bAMBMCowKAYI -KwYBBQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQQB -MIGEBggrBgEFBQcBAQR4MHYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2lj -ZXJ0LmNvbTBOBggrBgEFBQcwAoZCaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29t -L0RpZ2lDZXJ0U0hBMkFzc3VyZWRJRENvZGVTaWduaW5nQ0EuY3J0MAwGA1UdEwEB -/wQCMAAwDQYJKoZIhvcNAQELBQADggEBAJ/3uaSW1E3Cp17UlHk6K9NrSYmq6h4x -0FQYvcPc4lYZincDZKElDkClncYAl+FHVLJ2qBBuBF1PU96/PnG5iwROC707jJEs -p8SlHfMIiiKMq/HIMAekVNBUnbnUxFZJTEX20p9kEIBBu9A1JJ6a1tYtp7fh+INr -lLi3f0P8JNGUgWog+a/n+Icd/3tJ6fsOnrG8jCa11OGjpMegpvPvSh5YzembF0CC -WS6tOu6DbMcceQ6pFniD5MTwiF6Ye6cSLBCwD2SUyzganIZgz5m7XXX/xfjBkLbL -SQw/P5F1pHZCyyY+evH9Fjm7YAqwfpkVMJDp/XMaht2dxuhyCn70wgk= +MIICMjCCAbigAwIBAgIULx0qs9qjM500eqn6THPK0KrYDI4wCgYIKoZIzj0EAwIw +YDELMAkGA1UEBhMCVVMxHTAbBgNVBAoMFERhc2ggQ29yZSBHcm91cCBJbmMuMREw +DwYDVQQDDAhkYXNoLm9yZzEfMB0GCSqGSIb3DQEJARYQaW5mb3NlY0BkYXNoLm9y +ZzAeFw0yNDAxMDkyMjMwMzFaFw0yNzAxMDgyMjMwMzFaMCQxIjAgBgNVBAMMGURh +c2ggQ29yZSBXaW5kb3dzIFNpZ25pbmcwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATT +Y9lr0wAD43uUey32F2QOeyCohNg470gWCl2tBgZwg73EKjz1FX/vPcFfdq3C7JiU +mRkYkkVZyvcOebMVOkDbxpH5lEZRAr3f0yDc0UytDlJi2032RnZoRl5d3e9Xv4ej +bzBtMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoGCCsGAQUFBwMD +MB0GA1UdDgQWBBR+bbN2rRZFkoX3xuTOPRSse9AWwzAfBgNVHSMEGDAWgBSIe1dn +E+OEffr+P5AdH0enMXtqizAKBggqhkjOPQQDAgNoADBlAjEA+AO2SVgxzDmPENHl +CS/784XSRC2MBlCwlsIdD8Jti3MNCpvmJiLpuE6HHsKOFxWPAjBlyqgJXyiM30/8 +AU0qiBlnU9LhmYu1vKbfXweuAve83XVDScaGLPuqqXFp3KTNnjs= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIFMDCCBBigAwIBAgIQBAkYG1/Vu2Z1U0O1b5VQCDANBgkqhkiG9w0BAQsFADBl -MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 -d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv -b3QgQ0EwHhcNMTMxMDIyMTIwMDAwWhcNMjgxMDIyMTIwMDAwWjByMQswCQYDVQQG -EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl -cnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBT -aWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+NOzHH8O -Ea9ndwfTCzFJGc/Q+0WZsTrbRPV/5aid2zLXcep2nQUut4/6kkPApfmJ1DcZ17aq -8JyGpdglrA55KDp+6dFn08b7KSfH03sjlOSRI5aQd4L5oYQjZhJUM1B0sSgmuyRp -wsJS8hRniolF1C2ho+mILCCVrhxKhwjfDPXiTWAYvqrEsq5wMWYzcT6scKKrzn/p -fMuSoeU7MRzP6vIK5Fe7SrXpdOYr/mzLfnQ5Ng2Q7+S1TqSp6moKq4TzrGdOtcT3 -jNEgJSPrCGQ+UpbB8g8S9MWOD8Gi6CxR93O8vYWxYoNzQYIH5DiLanMg0A9kczye -n6Yzqf0Z3yWT0QIDAQABo4IBzTCCAckwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV -HQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMweQYIKwYBBQUHAQEEbTBr -MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUH -MAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJ -RFJvb3RDQS5jcnQwgYEGA1UdHwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2lj -ZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6 -Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmww -TwYDVR0gBEgwRjA4BgpghkgBhv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v -d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCgYIYIZIAYb9bAMwHQYDVR0OBBYEFFrEuXsq -CqOl6nEDwGD5LfZldQ5YMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgP -MA0GCSqGSIb3DQEBCwUAA4IBAQA+7A1aJLPzItEVyCx8JSl2qB1dHC06GsTvMGHX -fgtg/cM9D8Svi/3vKt8gVTew4fbRknUPUbRupY5a4l4kgU4QpO4/cY5jDhNLrddf -RHnzNhQGivecRk5c/5CxGwcOkRX7uq+1UcKNJK4kxscnKqEpKBo6cSgCPC6Ro8Al -EeKcFEehemhor5unXCBc2XGxDI+7qPjFEmifz0DLQESlE/DmZAwlCEIysjaKJAL+ -L3J+HNdJRZboWR3p+nRka7LrZkPas7CM1ekN3fYBIM6ZMWM9CBoYs4GbT8aTEAb8 -B4H6i9r5gkn3Ym6hU/oSlBiFLpKR6mhsRDKyZqHnGKSaZFHv ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -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 +4XDDnlfcKom9Z5npK05shbgE2fAGpg== -----END CERTIFICATE----- diff --git a/doc/release-notes.md b/doc/release-notes.md index 9f5b1a83f0..d0175797a7 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,4 +1,4 @@ -# Dash Core version v20.0.3 +# Dash Core version v20.0.4 Release is now available from: @@ -35,24 +35,29 @@ reindex or re-sync the whole chain. # Notable changes -## Masternode fix +## Build changes -The memory usage during the old quorum data cleanup mechanism was reduced. +The miner has been disabled for Windows binaries built via Guix. This resolves +an issue that was preventing users from installing v20.0.3 due to false +positive alerts from Microsoft Defender and other antivirus providers. -## Wallet fix +Use a self-signed Windows code signing certificate instead of expired one. The +expired certificate being used previously caused most antivirus software to trigger. +The new self-signed certificate results in a greatly improved installation experience. -A fix has been implemented for the reported decryption of wallets. +Updated expired gpg keys for builders. Note that the actual keys themselves are the same. +The updated keys changed their expiration dates and added additional information such as +new email addresses. -## RPC changes +## Governance -In `getspecialtxes` `instantlock` and `chainlock` fields are reflecting actual values now. +Triggers from the past are now ignored when voting. -## Other changes +## Asset lock and unlock transactions -Implemented improvements in Github CI and build system for macOS. Fixed compilation issues on FreeBSD. +Use the correct quorum for signing withdrawal (asset unlock) txes on RegTest. - -# v20.0.3 Change log +# v20.0.4 Change log See detailed [set of changes][set-of-changes]. @@ -61,7 +66,6 @@ See detailed [set of changes][set-of-changes]. Thanks to everyone who directly contributed to this release: - Konstantin Akimov (knst) -- Odysseas Gabrielides (ogabrielides) - PastaPastaPasta - UdjinM6 @@ -90,6 +94,7 @@ Dash Core tree 0.12.1.x was a fork of Bitcoin Core tree 0.12. These release are considered obsolete. Old release notes can be found here: +- [v20.0.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.3.md) released December/26/2023 - [v20.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.2.md) released December/06/2023 - [v20.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.1.md) released November/18/2023 - [v20.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.0.md) released November/15/2023 @@ -135,4 +140,4 @@ These release are considered obsolete. Old release notes can be found here: - [v0.10.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.10.0.md) released Sep/25/2014 - [v0.9.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.9.0.md) released Mar/13/2014 -[set-of-changes]: https://github.com/dashpay/dash/compare/v20.0.2...dashpay:v20.0.3 +[set-of-changes]: https://github.com/dashpay/dash/compare/v20.0.3...dashpay:v20.0.4 diff --git a/doc/release-notes/dash/release-notes-20.0.3.md b/doc/release-notes/dash/release-notes-20.0.3.md new file mode 100644 index 0000000000..9f5b1a83f0 --- /dev/null +++ b/doc/release-notes/dash/release-notes-20.0.3.md @@ -0,0 +1,138 @@ +# Dash Core version v20.0.3 + +Release is now available from: + + + +This is a new patch version release, bringing small bug fixes and build system enhancements. + +This release is optional for all nodes. + +Please report bugs using the issue tracker at GitHub: + + + + +# Upgrading and downgrading + +## How to Upgrade + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes for older versions), then run the +installer (on Windows) or just copy over /Applications/Dash-Qt (on Mac) or +dashd/dash-qt (on Linux). If you upgrade after DIP0003 activation and you were +using version < 0.13 you will have to reindex (start with -reindex-chainstate +or -reindex) to make sure your wallet has all the new data synced. Upgrading +from version 0.13 should not require any additional actions. + +## Downgrade warning + +### Downgrade to a version < v19.2.0 + +Downgrading to a version older than v19.2.0 is not supported due to changes +in the evodb database. If you need to use an older version, you must either +reindex or re-sync the whole chain. + +# Notable changes + +## Masternode fix + +The memory usage during the old quorum data cleanup mechanism was reduced. + +## Wallet fix + +A fix has been implemented for the reported decryption of wallets. + +## RPC changes + +In `getspecialtxes` `instantlock` and `chainlock` fields are reflecting actual values now. + +## Other changes + +Implemented improvements in Github CI and build system for macOS. Fixed compilation issues on FreeBSD. + + +# v20.0.3 Change log + +See detailed [set of changes][set-of-changes]. + +# Credits + +Thanks to everyone who directly contributed to this release: + +- Konstantin Akimov (knst) +- Odysseas Gabrielides (ogabrielides) +- PastaPastaPasta +- UdjinM6 + +As well as everyone that submitted issues, reviewed pull requests and helped +debug the release candidates. + +# Older releases + +Dash was previously known as Darkcoin. + +Darkcoin tree 0.8.x was a fork of Litecoin tree 0.8, original name was XCoin +which was first released on Jan/18/2014. + +Darkcoin tree 0.9.x was the open source implementation of masternodes based on +the 0.8.x tree and was first released on Mar/13/2014. + +Darkcoin tree 0.10.x used to be the closed source implementation of Darksend +which was released open source on Sep/25/2014. + +Dash Core tree 0.11.x was a fork of Bitcoin Core tree 0.9, +Darkcoin was rebranded to Dash. + +Dash Core tree 0.12.0.x was a fork of Bitcoin Core tree 0.10. + +Dash Core tree 0.12.1.x was a fork of Bitcoin Core tree 0.12. + +These release are considered obsolete. Old release notes can be found here: + +- [v20.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.2.md) released December/06/2023 +- [v20.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.1.md) released November/18/2023 +- [v20.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-20.0.0.md) released November/15/2023 +- [v19.3.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.3.0.md) released July/31/2023 +- [v19.2.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.2.0.md) released June/19/2023 +- [v19.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.1.0.md) released May/22/2023 +- [v19.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-19.0.0.md) released Apr/14/2023 +- [v18.2.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.2.md) released Mar/21/2023 +- [v18.2.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.1.md) released Jan/17/2023 +- [v18.2.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.2.0.md) released Jan/01/2023 +- [v18.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.1.1.md) released January/08/2023 +- [v18.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.1.0.md) released October/09/2022 +- [v18.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.0.2.md) released October/09/2022 +- [v18.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-18.0.1.md) released August/17/2022 +- [v0.17.0.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.17.0.3.md) released June/07/2021 +- [v0.17.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.17.0.2.md) released May/19/2021 +- [v0.16.1.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.16.1.1.md) released November/17/2020 +- [v0.16.1.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.16.1.0.md) released November/14/2020 +- [v0.16.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.16.0.1.md) released September/30/2020 +- [v0.15.0.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.15.0.0.md) released Febrary/18/2020 +- [v0.14.0.5](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.5.md) released December/08/2019 +- [v0.14.0.4](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.4.md) released November/22/2019 +- [v0.14.0.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.3.md) released August/15/2019 +- [v0.14.0.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.2.md) released July/4/2019 +- [v0.14.0.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.1.md) released May/31/2019 +- [v0.14.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.14.0.md) released May/22/2019 +- [v0.13.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.3.md) released Apr/04/2019 +- [v0.13.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.2.md) released Mar/15/2019 +- [v0.13.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.1.md) released Feb/9/2019 +- [v0.13.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.13.0.md) released Jan/14/2019 +- [v0.12.3.4](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.4.md) released Dec/14/2018 +- [v0.12.3.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.3.md) released Sep/19/2018 +- [v0.12.3.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.2.md) released Jul/09/2018 +- [v0.12.3.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.3.1.md) released Jul/03/2018 +- [v0.12.2.3](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.2.3.md) released Jan/12/2018 +- [v0.12.2.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.2.2.md) released Dec/17/2017 +- [v0.12.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.2.md) released Nov/08/2017 +- [v0.12.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.1.md) released Feb/06/2017 +- [v0.12.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.12.0.md) released Aug/15/2015 +- [v0.11.2](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.2.md) released Mar/04/2015 +- [v0.11.1](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.1.md) released Feb/10/2015 +- [v0.11.0](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.11.0.md) released Jan/15/2015 +- [v0.10.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.10.0.md) released Sep/25/2014 +- [v0.9.x](https://github.com/dashpay/dash/blob/master/doc/release-notes/dash/release-notes-0.9.0.md) released Mar/13/2014 + +[set-of-changes]: https://github.com/dashpay/dash/compare/v20.0.2...dashpay:v20.0.3 diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 9e485057de..05eb2738c5 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -284,7 +284,6 @@ public: consensus.llmqTypeDIP0024InstantSend = Consensus::LLMQType::LLMQ_60_75; consensus.llmqTypePlatform = Consensus::LLMQType::LLMQ_100_67; consensus.llmqTypeMnhf = Consensus::LLMQType::LLMQ_400_85; - consensus.llmqTypeAssetLocks = consensus.llmqTypePlatform; fDefaultConsistencyChecks = false; fRequireStandard = true; @@ -477,7 +476,6 @@ public: consensus.llmqTypeDIP0024InstantSend = Consensus::LLMQType::LLMQ_60_75; consensus.llmqTypePlatform = Consensus::LLMQType::LLMQ_25_67; consensus.llmqTypeMnhf = Consensus::LLMQType::LLMQ_50_60; - consensus.llmqTypeAssetLocks = consensus.llmqTypePlatform; fDefaultConsistencyChecks = false; fRequireStandard = false; @@ -653,7 +651,6 @@ public: consensus.llmqTypeDIP0024InstantSend = Consensus::LLMQType::LLMQ_DEVNET_DIP0024; consensus.llmqTypePlatform = Consensus::LLMQType::LLMQ_DEVNET_PLATFORM; consensus.llmqTypeMnhf = Consensus::LLMQType::LLMQ_DEVNET; - consensus.llmqTypeAssetLocks = consensus.llmqTypePlatform; UpdateDevnetLLMQChainLocksFromArgs(args); UpdateDevnetLLMQInstantSendFromArgs(args); @@ -735,7 +732,6 @@ public: void UpdateDevnetLLMQPlatform(Consensus::LLMQType llmqType) { consensus.llmqTypePlatform = llmqType; - consensus.llmqTypeAssetLocks = llmqType; } /** @@ -940,7 +936,6 @@ public: consensus.llmqTypeDIP0024InstantSend = Consensus::LLMQType::LLMQ_TEST_DIP0024; consensus.llmqTypePlatform = Consensus::LLMQType::LLMQ_TEST_PLATFORM; consensus.llmqTypeMnhf = Consensus::LLMQType::LLMQ_TEST; - consensus.llmqTypeAssetLocks = Consensus::LLMQType::LLMQ_TEST; UpdateLLMQTestParametersFromArgs(args, Consensus::LLMQType::LLMQ_TEST); UpdateLLMQTestParametersFromArgs(args, Consensus::LLMQType::LLMQ_TEST_INSTANTSEND); diff --git a/src/consensus/params.h b/src/consensus/params.h index 5962b2028e..2162993049 100644 --- a/src/consensus/params.h +++ b/src/consensus/params.h @@ -163,7 +163,6 @@ struct Params { LLMQType llmqTypeDIP0024InstantSend{LLMQType::LLMQ_NONE}; LLMQType llmqTypePlatform{LLMQType::LLMQ_NONE}; LLMQType llmqTypeMnhf{LLMQType::LLMQ_NONE}; - LLMQType llmqTypeAssetLocks{LLMQType::LLMQ_NONE}; int DeploymentHeight(BuriedDeployment dep) const { diff --git a/src/evo/assetlocktx.cpp b/src/evo/assetlocktx.cpp index caf7a3e5fd..03480ca994 100644 --- a/src/evo/assetlocktx.cpp +++ b/src/evo/assetlocktx.cpp @@ -114,7 +114,7 @@ bool CAssetUnlockPayload::VerifySig(const uint256& msgHash, gsl::not_nullScanQuorums(llmqType, pindexTip, 2); diff --git a/src/governance/governance.cpp b/src/governance/governance.cpp index 25dff9e48e..def0bc1b5b 100644 --- a/src/governance/governance.cpp +++ b/src/governance/governance.cpp @@ -738,6 +738,11 @@ void CGovernanceManager::VoteGovernanceTriggers(const std::optionalGetGovernanceObject(*this)->GetHash(); + if (trigger->GetBlockHeight() <= nCachedBlockHeight) { + // ignore triggers from the past + LogPrint(BCLog::GOBJECT, "CGovernanceManager::%s Not voting NO-FUNDING for outdated trigger:%s\n", __func__, trigger_hash.ToString()); + continue; + } if (trigger_hash == votedFundingYesTriggerHash) { // Skip actual trigger LogPrint(BCLog::GOBJECT, "CGovernanceManager::%s Not voting NO-FUNDING for trigger:%s, we voted yes for it already\n", __func__, trigger_hash.ToString()); diff --git a/test/functional/feature_asset_locks.py b/test/functional/feature_asset_locks.py index 465a363f2a..a96c071f50 100755 --- a/test/functional/feature_asset_locks.py +++ b/test/functional/feature_asset_locks.py @@ -45,13 +45,13 @@ from test_framework.util import ( hex_str_to_bytes, ) -llmq_type_test = 100 +llmq_type_test = 106 # LLMQType::LLMQ_TEST_PLATFORM tiny_amount = int(Decimal("0.0007") * COIN) blocks_in_one_day = 576 class AssetLocksTest(DashTestFramework): def set_test_params(self): - self.set_dash_test_params(5, 3) + self.set_dash_test_params(6, 4, evo_count=3) def skip_test_if_missing_module(self): self.skip_if_no_wallet() @@ -98,7 +98,9 @@ class AssetLocksTest(DashTestFramework): request_id = hash256(request_id_buf)[::-1].hex() height = node_wallet.getblockcount() + self.log.info(f"Creating asset unlock: {llmq_type_test} {request_id}") quorumHash = mninfo[0].node.quorum("selectquorum", llmq_type_test, request_id)["quorumHash"] + self.log.info(f"Used quorum hash: {quorumHash}") unlockTx_payload = CAssetUnlockTx( version = 1, index = index, @@ -235,8 +237,35 @@ class AssetLocksTest(DashTestFramework): node = self.nodes[1] self.set_sporks() - self.activate_v20() + self.activate_v19(expected_activation_height=900) + self.log.info("Activated v19 at height:" + str(node.getblockcount())) + + # TODO: need to refactor this part to common code + # enabling instantsend -> 3 rotating quorums -> new 103 quorum + # with following dynamically adding evo nodes one-by-one seems + # as little too much complex for functional test (each which use Evo nodes) + self.nodes[0].sporkupdate("SPORK_2_INSTANTSEND_ENABLED", 0) + self.wait_for_sporks_same() + + self.move_to_next_cycle() + self.log.info("Cycle H height:" + str(self.nodes[0].getblockcount())) + self.move_to_next_cycle() + self.log.info("Cycle H+C height:" + str(self.nodes[0].getblockcount())) + self.move_to_next_cycle() + self.log.info("Cycle H+2C height:" + str(self.nodes[0].getblockcount())) + + self.mine_cycle_quorum(llmq_type_name='llmq_test_dip0024', llmq_type=103) + + for i in range(3): + self.dynamically_add_masternode(evo=True) + node.generate(8) + self.sync_blocks() + + self.set_sporks() + self.activate_v20() + node.generate(1) + self.sync_all() self.mempool_size = 0 key = ECKey() @@ -253,13 +282,13 @@ class AssetLocksTest(DashTestFramework): coin = coins.pop() asset_lock_tx = self.create_assetlock(coin, locked_1, pubkey) + self.check_mempool_result(tx=asset_lock_tx, result_expected={'allowed': True}) self.validate_credit_pool_balance(0) txid_in_block = self.send_tx(asset_lock_tx) assert "assetLockTx" in node.getrawtransaction(txid_in_block, 1) self.validate_credit_pool_balance(0) node.generate(1) - assert_equal(self.get_credit_pool_balance(node=node_wallet), 0) assert_equal(self.get_credit_pool_balance(node=node), locked_1) self.log.info("Generate a number of blocks to ensure this is the longest chain for later in the test when we reconsiderblock") node.generate(12) @@ -295,7 +324,7 @@ class AssetLocksTest(DashTestFramework): self.create_and_check_block([extra_lock_tx], expected_error = 'bad-cbtx-assetlocked-amount') self.log.info("Mine a quorum...") - self.mine_quorum() + self.mine_quorum(llmq_type_name='llmq_test_platform', llmq_type=106, expected_connections=2, expected_members=3, expected_contributions=3, expected_complaints=0, expected_justifications=0, expected_commitments=3 ) self.validate_credit_pool_balance(locked_1) @@ -345,7 +374,7 @@ class AssetLocksTest(DashTestFramework): reason = "double copy") self.log.info("Mining next quorum to check tx 'asset_unlock_tx_late' is still valid...") - self.mine_quorum() + self.mine_quorum(llmq_type_name="llmq_test_platform", llmq_type=106) self.log.info("Checking credit pool amount is same...") self.validate_credit_pool_balance(locked_1 - 1 * COIN) self.check_mempool_result(tx=asset_unlock_tx_late, result_expected={'allowed': True}) @@ -365,7 +394,7 @@ class AssetLocksTest(DashTestFramework): result_expected={'allowed': False, 'reject-reason' : 'bad-assetunlock-too-late'}) self.log.info("Checking that two quorums later it is too late because quorum is not active...") - self.mine_quorum() + self.mine_quorum(llmq_type_name="llmq_test_platform", llmq_type=106) self.log.info("Expecting new reject-reason...") self.check_mempool_result(tx=asset_unlock_tx_too_late, result_expected={'allowed': False, 'reject-reason' : 'bad-assetunlock-not-active-quorum'}) @@ -423,7 +452,7 @@ class AssetLocksTest(DashTestFramework): self.log.info("Fast forward to the next day to reset all current unlock limits...") self.slowly_generate_batch(blocks_in_one_day + 1) - self.mine_quorum() + self.mine_quorum(llmq_type_name="llmq_test_platform", llmq_type=106) total = self.get_credit_pool_balance() while total <= 10_900 * COIN: diff --git a/test/functional/feature_governance.py b/test/functional/feature_governance.py index 3b076aa960..0169896694 100755 --- a/test/functional/feature_governance.py +++ b/test/functional/feature_governance.py @@ -303,13 +303,34 @@ class DashGovernanceTest (DashTestFramework): self.check_superblockbudget(True) self.check_superblock() + # Move a few block past the recent superblock height and make sure we have no new votes + for _ in range(5): + with self.nodes[1].assert_debug_log("", [f"Voting NO-FUNDING for trigger:{winning_trigger_hash} success"]): + self.nodes[0].generate(1) + self.bump_mocktime(1) + self.sync_blocks() + # Votes on both triggers should NOT change + assert_equal(self.nodes[0].gobject("list", "valid", "triggers")[winning_trigger_hash]['NoCount'], 1) + assert_equal(self.nodes[0].gobject("list", "valid", "triggers")[isolated_trigger_hash]['NoCount'], self.mn_count - 1) + + block_count = self.nodes[0].getblockcount() + n = sb_cycle - block_count % sb_cycle + + # Move remaining n blocks until the next Superblock + for i in range(n): + self.nodes[0].generate(1) + self.bump_mocktime(1) + self.sync_blocks() + assert_equal(self.nodes[0].getblockcount(), 260) + assert_equal(self.nodes[0].getblockchaininfo()["softforks"]["v20"]["bip9"]["status"], "active") + # Mine and check a couple more superblocks for i in range(2): for _ in range(20): self.nodes[0].generate(1) self.bump_mocktime(1) self.sync_blocks() - assert_equal(self.nodes[0].getblockcount(), 240 + (i + 1) * 20) + assert_equal(self.nodes[0].getblockcount(), 260 + (i + 1) * 20) assert_equal(self.nodes[0].getblockchaininfo()["softforks"]["v20"]["bip9"]["status"], "active") self.check_superblockbudget(True) self.check_superblock() diff --git a/test/functional/test_framework/test_framework.py b/test/functional/test_framework/test_framework.py index c390078abb..e92a13da2e 100755 --- a/test/functional/test_framework/test_framework.py +++ b/test/functional/test_framework/test_framework.py @@ -1155,6 +1155,7 @@ class DashTestFramework(BitcoinTestFramework): for i in range(0, idx): self.connect_nodes(i, idx) + # TODO: to let creating Evo Nodes without instant-send available def dynamically_add_masternode(self, evo=False, rnd=None, should_be_rejected=False): mn_idx = len(self.nodes)