From 684a5d71033fd72e1fcd15f124d8eea8170e8b80 Mon Sep 17 00:00:00 2001 From: JSKitty Date: Mon, 26 Oct 2020 23:17:48 +0000 Subject: [PATCH] [Docs] Add ZENZO Core v2.1.0 Release Notes --- doc/release-notes/release-notes-2.1.5.md | 13 - doc/release-notes/release-notes-2.1.6.md | 3 - doc/release-notes/release-notes-2.1.7.md | 8 - doc/release-notes/release-notes-2.2.0.md | 6 - doc/release-notes/release-notes-2.2.1.md | 121 ----- doc/release-notes/release-notes-2.3.0.md | 198 ------- doc/release-notes/release-notes-2.3.1.md | 213 -------- doc/release-notes/release-notes-3.0.0.md | 135 ----- doc/release-notes/release-notes-3.0.2.md | 128 ----- doc/release-notes/release-notes-3.0.4.md | 123 ----- doc/release-notes/release-notes-3.0.5.1.md | 12 - doc/release-notes/release-notes-3.0.5.md | 111 ---- doc/release-notes/release-notes-3.0.6.md | 119 ----- doc/release-notes/release-notes-3.1.0.1.md | 54 -- doc/release-notes/release-notes-3.1.0.2.md | 78 --- doc/release-notes/release-notes-3.1.0.md | 408 --------------- doc/release-notes/release-notes-3.1.1.md | 154 ------ doc/release-notes/release-notes-3.2.0.md | 342 ------------ doc/release-notes/release-notes-3.3.0.md | 217 -------- doc/release-notes/release-notes-3.4.0.md | 157 ------ doc/release-notes/release-notes-4.0.0.md | 575 --------------------- doc/release-notes/v2.1.0.md | 66 +++ 22 files changed, 66 insertions(+), 3175 deletions(-) delete mode 100644 doc/release-notes/release-notes-2.1.5.md delete mode 100644 doc/release-notes/release-notes-2.1.6.md delete mode 100644 doc/release-notes/release-notes-2.1.7.md delete mode 100644 doc/release-notes/release-notes-2.2.0.md delete mode 100644 doc/release-notes/release-notes-2.2.1.md delete mode 100644 doc/release-notes/release-notes-2.3.0.md delete mode 100644 doc/release-notes/release-notes-2.3.1.md delete mode 100644 doc/release-notes/release-notes-3.0.0.md delete mode 100644 doc/release-notes/release-notes-3.0.2.md delete mode 100644 doc/release-notes/release-notes-3.0.4.md delete mode 100644 doc/release-notes/release-notes-3.0.5.1.md delete mode 100644 doc/release-notes/release-notes-3.0.5.md delete mode 100644 doc/release-notes/release-notes-3.0.6.md delete mode 100644 doc/release-notes/release-notes-3.1.0.1.md delete mode 100644 doc/release-notes/release-notes-3.1.0.2.md delete mode 100644 doc/release-notes/release-notes-3.1.0.md delete mode 100644 doc/release-notes/release-notes-3.1.1.md delete mode 100644 doc/release-notes/release-notes-3.2.0.md delete mode 100644 doc/release-notes/release-notes-3.3.0.md delete mode 100644 doc/release-notes/release-notes-3.4.0.md delete mode 100644 doc/release-notes/release-notes-4.0.0.md create mode 100644 doc/release-notes/v2.1.0.md diff --git a/doc/release-notes/release-notes-2.1.5.md b/doc/release-notes/release-notes-2.1.5.md deleted file mode 100644 index 1dce506c788b5..0000000000000 --- a/doc/release-notes/release-notes-2.1.5.md +++ /dev/null @@ -1,13 +0,0 @@ -v2.1.5 - -1. Rpi wallet now has Static Qt binary! -2. autocombinerewards feature - Automatically combines masternode reward once spendable into a single input. -3. Network enhancements - Increase outbound connections. -4. BIP38 tool now supports more characters. -5. Icons changed to non-transparent icon for better visibility. -6. Multisend now can filter between staking and masternode rewards (soon). Also some bugs addressed. -7. Wallet crashing with certain blockchain corruption has been prevented. -8. Lots of updates for OS X build. -9. In-Wallet Blockexplorer! (still needs Styling) -10. Added Fallback Seed Nodes - You no longer need to add initial addnodes lines to pivx.conf! -11. Lots more minor updates (readme, copyright etc) and bug fixes. diff --git a/doc/release-notes/release-notes-2.1.6.md b/doc/release-notes/release-notes-2.1.6.md deleted file mode 100644 index 0a055b6543ff7..0000000000000 --- a/doc/release-notes/release-notes-2.1.6.md +++ /dev/null @@ -1,3 +0,0 @@ -v2.1.6 - -Updated DNS Seed Nodes to help with connection issues. diff --git a/doc/release-notes/release-notes-2.1.7.md b/doc/release-notes/release-notes-2.1.7.md deleted file mode 100644 index a1db0a18e9831..0000000000000 --- a/doc/release-notes/release-notes-2.1.7.md +++ /dev/null @@ -1,8 +0,0 @@ -v2.1.7 - -- Stability Fixes -- Fix Re-Index -- UI Transaction Sorting Update -- Multisend Fix -- Checkpoint added -- Update Translations diff --git a/doc/release-notes/release-notes-2.2.0.md b/doc/release-notes/release-notes-2.2.0.md deleted file mode 100644 index 66bc269c2ec86..0000000000000 --- a/doc/release-notes/release-notes-2.2.0.md +++ /dev/null @@ -1,6 +0,0 @@ -Important notes about v2.2.0 release - -- Mandatory update, all users will need to update their client. A resync is not required. -- Syncing should be much quicker. The strict databasing requirement have been relaxed because code has been added that fixes most corruption issues. -- Budget system will now work and the enforcement spork will be turned on. -- Masternode payment system will now work and the enforcement spork will be turned on. diff --git a/doc/release-notes/release-notes-2.2.1.md b/doc/release-notes/release-notes-2.2.1.md deleted file mode 100644 index f0852791c99e6..0000000000000 --- a/doc/release-notes/release-notes-2.2.1.md +++ /dev/null @@ -1,121 +0,0 @@ -PIVX Core version 2.2.1 is now available from: - - - -This is a new minor version release, including various bug fixes and -performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - - - -Compatibility -============== - -PIVX Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), -No attempt is made to prevent installing or running the software on Windows XP, you -can still do so at your own risk but be aware that there are known instabilities and issues. -Please do not report issues about Windows XP to the issue tracker. - -PIVX Core should also work on most other Unix-like systems but is not -frequently tested on them. - -Notable Changes -=============== - -Block Data Corruption ---------------------- - -Additional startup procedures have been added to fix corrupted blockchain databases. -The majority of users that are experiencing #106 (ConnectBlock() assertion on startup) -that have tested the new wallet have reported that their corrupt blockchain has -successfully been repaired. The new code will automatically detect and repair the -blockchain if it is able to. - -If users still experience corruptions with the new wallet and it is not fixed -with the new startup procedures, it is suggested that they try using the -`-forcestart` startup flag which will bypass the new procedures altogether, and -in rare cases allow the wallet to run. If the database is not fixed by either -the automatic procedures or the `-forcestart` flag, the user should resync the -blockchain. - -Additional progress has been made to prevent the wallet crashes that are causing -the corrupted databases, for example removing the Trading Window (explained below) -and fixing several other minor memory leaks that were inherited from the version -of Bitcoin that PIVX was forked from. - -RPC Changes ------------ - -- Exporting or dumping an addresses' private key while the wallet is unlocked for - anonymization and Staking only is no longer possible. - -- A new command (`getstakingstatus`) has been added that returns the internal conditions - for staking to be activated and their status. - -- KeePass integration has been removed for the time being due to various inefficiencies - with it's code. - -Trading Window Removed ----------------------- - -The Bittrex trading window in the GUI wallet was problematic with it's memory -handling, often leaking, and was overall an inefficient use of resources in it's -current implementation. A revised multi-exchange trading window may be implemented -at a later date. - -2.2.1 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### RPC and other APIs -- #130 `ccb1526` [RPC] Add `getstakingstatus` method -- #138 `4319af3` [RPC] Require password when using UnlockAnonymizeOnly -- #142 `6b5cf7f` [RPC] Remove Keepass code due to Valgrind warnings - -### Block and Transaction Handling -- #146 `bce67cb` [Wallet] Look at last CoinsView block for corruption fix process -- #154 `1b3c0d7` [Consensus] Don't pass the genesis block through CheckWork - -### P2P Protocol and Network Code -- #168 `ac912d9` [Wallet] Update checkpoints with v2.2 chain -- #162 `0c0d080` Remove legacy Dash code IsReferenceNode -- #163 `96b8b00` [P2P] Change alert key to effectively disable it - -### GUI -- #131 `238977b` [Qt] Adds base CSS styles for various elements -- #134 `f7cabbe` [Qt] Edit masternode.conf in Qt-wallet -- #135 `f8f1904` [Qt] Show path to wallet.dat in wallet-repair tab -- #136 `53705f1` [Qt] Fix false flags for MultiSend notification when sending transactions -- #137 `ad08051` [Qt] Fix Overview Page Balances when receiving -- #141 `17a9e0f` [Qt] Squashed trading removal code -- #151 `0409b12` [Qt] Avoid OpenSSL certstore-related memory leak -- #165 `0dad320` [Qt] More place for long locales - -### Miscellaneous -- #133 `fceb421` [Docs] Add GitHub Issue template and Contributor guidelines -- #144 `e4e68bc` [Wallet] Reduce usage of atoi to comply with CWE-190 -- #152 `6a1de07` [Trivial] Use LogPrint for repetitive budget logs -- #157 `41fdeaa` [Budget] Add log for removed budget proposals -- #166 `d37b4aa` [Utils] Add ExecStop= to example systemd service -- #167 `a6becee` [Utils] makeseeds script update - -Credits -======= - -Thanks to everyone who directly contributed to this release: - -- Aaron Miller -- Fuzzbawls -- Mrs-X -- Spock -- presstab - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/pivx-project-translations/). diff --git a/doc/release-notes/release-notes-2.3.0.md b/doc/release-notes/release-notes-2.3.0.md deleted file mode 100644 index f1779acb09635..0000000000000 --- a/doc/release-notes/release-notes-2.3.0.md +++ /dev/null @@ -1,198 +0,0 @@ -PIVX Core version 2.3.0 is now available from: - - - -This is a new major version release, including various bug fixes and -performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - - - -Mandatory Update -============== - -PIVX Core v2.3.0 is a mandatory update for all users. This release contains validation and security improvements that are not backwards compatible with older versions. Users will have a grace period of no less than two weeks to update their clients before enforcement of this update is enabled. - -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/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux). - - -Compatibility -============== - -PIVX Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.8+, and Windows Vista and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), No attempt is made to prevent installing or running the software on Windows XP, you can still do so at your own risk but be aware that there are known instabilities and issues. Please do not report issues about Windows XP to the issue tracker. - -PIVX Core should also work on most other Unix-like systems but is not frequently tested on them. - -Notable Changes -=============== - -RPC changes --------------- - -#### masternode command -The `masternode` RPC command has been re-worked to ease it's usage and return valid JSON in it's results. The following is an overview of the changed command parameters: - -| Command Parameter | Changes | -| --- | --- | -| `budget` | Removed (did nothing) | -| `count` | The optional "mode" paramater has been removed. Command now always outputs full details in JSON format. | -| `current` | Result fields changed: IP:Port removed, vin renamed to txhash | -| `list-conf` | Result is now an array of objects, instead of an object of objects | -| `outputs` | Result is now an array of objects instead of a list of *n* objects | -| `status` | Added additional fields for txhash, outputidx, netaddr, and message | -| `winners` | Result is now an array of objects instead of a list of *n* objects. See below | -| `list` | Remove all optional "modes" and standardized the results. Note: `masternode list` is the same as `masternodelist`. See below | - -For the `winners` parameter, the results are now in a standard JSON format as follows: - -``` -[ - { - nHeight: n, (int) block height - winner: { - address: addr, (string) PIVX MN Address, - nVotes: n, (int) Number of votes for winner, - } - }, - ... -] -``` - -In the case of multiple winners being associated with a single block, the results are in the following format (the `winner` object becomes an array of objects): - -``` -[ - { - nHeight: n, (int) block height, - winner: [ - { - address: addr, (string) PIVX MN Address, - nVotes: n, (int) Number of votes for winner, - }, - ... - ] - }, - ... -] -``` - -For the `list` (aka `masternodelist`) parameter, the various "modes" have been removed in favor of a unified and standardized result format. The result is now an array of objects instead of an object of objects. Further, the individual objects now have a standard JSON format. The result format is as follows: - -``` -[ - { - "rank": n, (numeric) Masternode rank (or 0 if not enabled) - "txhash": hash, (string) Collateral transaction hash - "outidx": n, (numeric) Collateral transaction output index - "status": s, (string) Status (ENABLED/EXPIRED/REMOVE/etc) - "addr": addr, (string) Masternode PIVX address - "version": v, (numeric) Masternode Protocol version - "lastseen": ttt, (numeric) The time in seconds since epoch (Jan 1 1970 GMT) the masternode was last seen - "activetime": ttt, (numeric) The time in seconds since epoch (Jan 1 1970 GMT) masternode has been active - "lastpaid": ttt, (numeric) The time in seconds since epoch (Jan 1 1970 GMT) masternode was last paid - }, - ... -] -``` - -#### mnbudget command - -An additional parameter has been added to `mnbudget` to allow a controller wallet to issue per-MN votes. The new parameter is `vote-alias` and it's use format is as follows: - -`mnbudget vote-alias ` - -All fields are required to successfully vote. - -#### walletpassphrase command - -CLI users that are staking their coins will now have the option of unlocking the wallet with no re-lock timeout. Similar to using `9999999` as the timeout, the `walletpassphrase` command now accepts `0` as a timeout to indicate that no re-locking should occur based on elapsed time. - -Usage: `walletpassphrase 0 ` - -The third parameter indicates if the wallet should be unlocked for staking and anonymization only (true), or to allow send operations (false, full unlock). - -ZeroMQ (ZMQ) Notifications --------------- - -pivxd can now (optionally) asynchronously notify clients through a ZMQ-based PUB socket of the arrival of new transactions and blocks. This feature requires installation of the ZMQ C API library 4.x and configuring its use through the command line or configuration file. Please see [docs/zmq.md](/doc/zmq.md) for details of operation. - -**All** Masternodes List GUI Removal --------------- - -With the standardization and reformatting of the `masternode list` (`masternodelist`) RPC command, there is no real use case to keep the full list of masternodes in the GUI. This GUI element causes a great deal of extra overhead, even when it is not being actively displayed. The removal of this list has also proven to resolve a number of linux-based errors - -Note that the GUI list of masternodes associated with a controller wallet remains intact. - -SPV Client Support --------------- - -PIVX Core now enables bloom filters by default to support SPV clients like mobile wallets. This feature can be disabled by using the `-peerbloomfilters` option on startup. - -2.3.0 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### RPC and other APIs -- #179 `a64fa3d` [RPC] Allow infinite unlock (Mrs-X) -- #183 `dc77b86` [RPC] Add proposal name to removal log (Mrs-X) -- #189 `6dd8146` [RPC] Add missing 'vote-alias' implementation (Mrs-X) -- #195 `aee05fe` [ZMQ] ZMQ integration for PIVX (Mrs-X) -- #211 `b8c110b` [RPC] Refactor & JSONify results from masternode command(s) (Fuzzbawls) -- #201 `f0e87b1` [RPC] Add active/incative flag to getstakingstatus RPC call (Mrs-X) - -### Configuration and command-line options -- #180 `16b8601` [Wallet] Add parameter interaction between -disablewallet and -staking (Aaron Miller) -- #208 `5f494c4` [Qt] Fix segfault when running with `-help` (Fuzzbawls) -- #193 `ac7590b` [Output] Reformat help messages (Fuzzbawls) -- #230 `aa47fa4` [Output] Update default value for -peerbloomfilters in help (Fuzzbawls) - -### Wallet -- #192 `283cf3b` [Trivial] Pre-release warning message fixed. (Mrs-X) -- #169 `05c9a75` Add IsNull and SetNull interfaces to uint256 (Jon Spock) -- #198 `d45c869` Update EXT_COIN_TYPE according to BIP44 (Jon Spock) - -### P2P Protocol and Network Code -- #219 `d2c3fdf` [P2P] Enable Bloom filter and add new nService for light clients. (furszy) -- #234 `ed99e7b` [Consensus/Net] Ignore newly activated MNs in ranking/seesaw (Mrs-X Fuzzbawls presstab) - -### GUI -- #200 `bb1f255` [UI] Improved unlock usability (Mrs-X) -- #207 `7a41f46` [Qt] Adjust size of splash screen image. (Fuzzbawls) -- #206 `9c675ee` [Qt] Remove the All Masternodes UI tab/list (Fuzzbawls) -- #220 `b80bc29` [Qt] Add "NODE_BLOOM" and "NODE_BLOOM_WITHOUT_MN" to guiutil (Fuzzbawls) -- #225 `02209ec` [Qt] Add autocomplete to Qt client's debug console (Fuzzbawls) -- #233 `2921a4d` [Qt] Enable support for Qt's HighDpiScaling (Fuzzbawls) - -### Tests and QA -- #191 `3a778c3` [Tests] Fix the unit test suite for use with PIVX (Fuzzbawls) -- #122 `7d135a1` [Utils] updated netmagic/port for linearize script (Satoshi Ninja) - -### Miscellaneous -- #231 `af0aa68` [Utils] Fix update-translations.py to allow % end of string (Fuzzbawls) -- #175 `8727f1c` [Docs] Reformat main README.md (Fuzzbawls) -- #213 `ddd8994` [Trivial] Reduce debug.log spam for masternode messages (Fuzzbawls) - -Credits -======= - -Thanks to everyone who directly contributed to this release: -- Aaron Miller -- Fuzzbawls -- Mrs-X -- PIVX -- Satoshi Ninja -- Jon Spock -- furszy -- presstab - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/pivx-project-translations/). diff --git a/doc/release-notes/release-notes-2.3.1.md b/doc/release-notes/release-notes-2.3.1.md deleted file mode 100644 index 374c22890db0e..0000000000000 --- a/doc/release-notes/release-notes-2.3.1.md +++ /dev/null @@ -1,213 +0,0 @@ -PIVX Core version 2.3.1 is now available from: - - - -This is a new minor version release, including various bug fixes and -performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - - - -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/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux). - -Compatibility -============== - -PIVX Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), -No attempt is made to prevent installing or running the software on Windows XP, you -can still do so at your own risk but be aware that there are known instabilities and issues. -Please do not report issues about Windows XP to the issue tracker. - -PIVX Core should also work on most other Unix-like systems but is not -frequently tested on them. - -Notable Changes -=============== - -RPC changes --------------- - -#### Update of RPC commands to comply with the forthcoming RPC Standards PIP #### - -| Old Command | New Command | Notes | -| --- | --- | --- | -| `masternode count` | `getmasternodecount` | | -| `masternode list` | `listmasternodes` | | -| `masternodelist` | `listmasternodes` | renamed | -| `masternode connect` | `masternodeconnect` | | -| `masternode current` | `getcurrentmasternode` | | -| `masternode debug` | `masternodedebug` | | -| `masternode enforce` | | removed | -| `masternode outputs` | `getmasternodeoutputs` | | -| `masternode status` | `getmasternodestatus` | | -| `masternode list-conf` | `listmasternodeconf` | added optional filter | -| `masternode genkey` | `createmasternodekey` | | -| `masternode winners` | `listmasternodewinners` | | -| `masternode start` | `startmasternode` | see notes below | -| `masternode start-alias` | `startmasternode` | see notes below | -| `masternode start-` | `startmasternode` | see notes below | -| `masternode create` | | removed - not implemented | -| `masternode calcscore` | `listmasternodescores` | | -| --- | --- | --- | -| `mnbudget prepare` | `preparebudget` | see notes below | -| `mnbudget submit` | `submitbudget` | see notes below | -| `mnbudget vote-many` | `mnbudgetvote` | see notes below | -| `mnbudget vote-alias` | `mnbudgetvote` | see notes below | -| `mnbudget vote` | `mnbudgetvote` | see notes below | -| `mnbudget getvotes` | `getbudgetvotes` | | -| `mnbudget getinfo` | `getbudgetinfo` | see notes below | -| `mnbudget show` | `getbudgetinfo` | see notes below | -| `mnbudget projection` | `getbudgetprojection` | | -| `mnbudget check` | `checkbudgets` | | -| `mnbudget nextblock` | `getnextsuperblock` | | - -##### `startmasternode` Command ##### -This command now handles all cases for starting a masternode instead of having multiple commands based on the context. Command arguments have changed slightly to allow the user to decide wither or not to re-lock the wallet after the command is run. Below is the help documentation: - -``` -startmasternode "local|all|many|missing|disabled|alias" lockwallet ( "alias" ) - - Attempts to start one or more masternode(s) - -Arguments: -1. set (string, required) Specify which set of masternode(s) to start. -2. lockWallet (boolean, required) Lock wallet after completion. -3. alias (string) Masternode alias. Required if using 'alias' as the set. - -Result: (for 'local' set): -"status" (string) Masternode status message - -Result: (for other sets): -{ - "overall": "xxxx", (string) Overall status message - "detail": [ - { - "node": "xxxx", (string) Node name or alias - "result": "xxxx", (string) 'success' or 'failed' - "error": "xxxx" (string) Error message, if failed - } - ,... - ] -} - -Examples: -> pivx-cli startmasternode "alias" true "my_mn" -> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "startmasternode", "params": ["alias" true "my_mn"] }' -H 'content-type: text/plain;' http://127.0.0.1:51473/ -``` - -##### `preparebudget` & `submitbudget` Commands ##### -Due to the requirement of maintaining backwards compatibility with the legacy command, these two new commands are created to handle the preparation/submission of budget proposals. Future intention is to roll these two commands back into a single command to reduce code-duplication. Paramater arguments currently remain unchanged from the legacy command equivilent. - -##### `mnbudgetvote` Command ##### -This command now handles all cases for submitting MN votes on a budget proposal. Backwards compatibility with the legacy command(s) has been retained, with the exception of the `vote-alias` case due to a conflict in paramater type casting. A user running `mnbudget vote-alias` will be instructed to instead use the new `mnvote` command. Below is the full help documentation for this new command: - -``` -mnbudgetvote "local|many|alias" "votehash" "yes|no" ( "alias" ) - -Vote on a budget proposal - -Arguments: -1. "mode" (string, required) The voting mode. 'local' for voting directly from a masternode, 'many' for voting with a MN controller and casting the same vote for each MN, 'alias' for voting with a MN controller and casting a vote for a single MN -2. "votehash" (string, required) The vote hash for the proposal -3. "votecast" (string, required) Your vote. 'yes' to vote for the proposal, 'no' to vote against -4. "alias" (string, required for 'alias' mode) The MN alias to cast a vote for. - -Result: -{ - "overall": "xxxx", (string) The overall status message for the vote cast - "detail": [ - { - "node": "xxxx", (string) 'local' or the MN alias - "result": "xxxx", (string) Either 'Success' or 'Failed' - "error": "xxxx", (string) Error message, if vote failed - } - ,... - ] -} - -Examples: -> pivx-cli mnbudgetvote "local" "ed2f83cedee59a91406f5f47ec4d60bf5a7f9ee6293913c82976bd2d3a658041" "yes" -> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "mnbudgetvote", "params": ["local" "ed2f83cedee59a91406f5f47ec4d60bf5a7f9ee6293913c82976bd2d3a658041" "yes"] }' -H 'content-type: text/plain;' http://127.0.0.1:51473/ -``` - -##### `getbudgetinfo` Command ##### -This command now combines the old `mnbudget show` and `mnbudget getinfo` commands to reduce code duplication while still maintaining backwards compatibility with the legacy commands. Given no parameters, it returns the full list of budget proposals (`mnbudget show`). A single optional parameter allows to return information on just that proposal (`mnbudget getinfo`). Below is the full help documentation: - -``` -getbudgetinfo ( "proposal" ) - -Show current masternode budgets - -Arguments: -1. "proposal" (string, optional) Proposal name - -Result: -[ - { - "Name": "xxxx", (string) Proposal Name - "URL": "xxxx", (string) Proposal URL - "Hash": "xxxx", (string) Proposal vote hash - "FeeHash": "xxxx", (string) Proposal fee hash - "BlockStart": n, (numeric) Proposal starting block - "BlockEnd": n, (numeric) Proposal ending block - "TotalPaymentCount": n, (numeric) Number of payments - "RemainingPaymentCount": n, (numeric) Number of remaining payments - "PaymentAddress": "xxxx", (string) PIVX address of payment - "Ratio": x.xxx, (numeric) Ratio of yeas vs nays - "Yeas": n, (numeric) Number of yea votes - "Nays": n, (numeric) Number of nay votes - "Abstains": n, (numeric) Number of abstains - "TotalPayment": xxx.xxx, (numeric) Total payment amount - "MonthlyPayment": xxx.xxx, (numeric) Monthly payment amount - "IsEstablished": true|false, (boolean) Established (true) or (false) - "IsValid": true|false, (boolean) Valid (true) or Invalid (false) - "IsValidReason": "xxxx", (string) Error message, if any - "fValid": true|false, (boolean) Valid (true) or Invalid (false) - } - ,... -] - -Examples: -> pivx-cli getbudgetinfo -> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getbudgetinfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:51473/ -``` - -#### Masternode network protocol layer reporting #### -The results from the `listmasternodes` and `getmasternodecount` commands now includes details about which network protocol layer is being used (IPv4, IPV6, or Tor). - - -2.3.1 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### RPC and other APIs -- #239 `e8b92f4` [RPC] Make 'masternode status' more verbose (Mrs-X) -- #244 `eac60dd` [RPC] Standardize RPC Commands (Fuzzbawls) - -### P2P Protocol and Network Code -- #248 `0d44ca2` [core] fix payment disagreements, reduce log-verbosity (Mrs-X) - -### Miscellaneous -- #240 `1957445` [Debug Log] Increase verbosity of error-message (Mrs-X) -- #241 #249 `b60118b` `7405e31` Nullpointer reference fixed (Mrs-X) - -Credits -======= - -Thanks to everyone who directly contributed to this release: -- Fuzzbawls -- Mrs-X -- amirabrams - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/pivx-project-translations/). diff --git a/doc/release-notes/release-notes-3.0.0.md b/doc/release-notes/release-notes-3.0.0.md deleted file mode 100644 index 0ffe023aa78f9..0000000000000 --- a/doc/release-notes/release-notes-3.0.0.md +++ /dev/null @@ -1,135 +0,0 @@ -PIVX Core version 3.0.0 is now available from: - - - -This is a new major version release, including various bug fixes and -performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - - - -Mandatory Update -============== - -PIVX Core v3.0.0 is a mandatory update for all users. This release contains new consensus rules and improvements that are not backwards compatible with older versions. Users will have a grace period of one week to update their clients before enforcement of this update is enabled. - -Users updating from a previous version after the 13th of October will require a full resync of their local blockchain from either the P2P network or by way of the bootstrap. - -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/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux). - -Compatibility -============== - -PIVX Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), -No attempt is made to prevent installing or running the software on Windows XP, you -can still do so at your own risk but be aware that there are known instabilities and issues. -Please do not report issues about Windows XP to the issue tracker. - -PIVX Core should also work on most other Unix-like systems but is not -frequently tested on them. - -### :exclamation::exclamation::exclamation: MacOS 10.13 High Sierra :exclamation::exclamation::exclamation: - -**Currently there are issues with the 3.0.0 gitian release on MacOS version 10.13 (High Sierra), no reports of issues on older versions of MacOS.** - - -Notable Changes -=============== - -Zerocoin (zPIV) Protocol ---------------------- - -At long last, the zPIV release is here and the zerocoin protocol has been fully implemented! This allows users to send transactions with 100% fungible coins and absolutely zero history or link-ability to their previous owners. - -The Zerocoin protocol allows user to convert (mint) their *PIV* to zerocoins, which we call *zPIV*. When zPIV are converted back to PIV there is no trail associated with the coins being sent, such as who originally minted those coins. Essentially the only thing the receiver of the zPIV transaction will see is that it came from the zerocoin protocol. - -### zPIV Denominations -zPIV comes in specific denominations of 1, 5, 10, 50, 100, 500, 1000, and 5000. A denomination is a similar concept to paper currency, where you can hold a $100 bill but there is no available $99 bill for you to hold. - -Other implementations of the zerocoin protocol only allow for spending of one denomination/zerocoin at a time. The PIVX implementation of zerocoin allows users to spend any amount of zPIV they would like (with certain limitations). If a user held two denominations of 5 and they send 7.75 to a merchant, the wallet will automatically grab the two denominations of 5 and then issue 2.25 PIV in change to the spender. There is currently a limit of up to 6 individual zerocoin `coins` that can be combined into a spend, where each `coin` could be a different or similar denomination - -The PIVX zerocoin implementation is structured in such a way that denominations aren't needed to be known by the average user. - -### Fees -zPiv transactions require more computation and disk space than typical PIVX transactions, and as such require a higher transaction fee in order to prevent network spam. Fees are only charged when minting zPiv, each minted denomination is charged a flat rate of 0.01 Piv. zPiv spends are not charged a transaction fee unless the change is minted into zPiv, see the *Minting Change* section for details on fees for zPiv spends with minted change. - -### Converting PIV to zPIV (*zPIV Mint*) -**GUI** - Conversion from PIV to zPIV can be done using the `Privacy Dialog` in the QT wallet. Enter the amount of PIV you would like to convert and click `Mint Zerocoin`. - -**RPC** - Conversion from PIV to zPIV can be done using the `mintzerocoin` command. - -**Automint** - The PIVX wallet is set to convert 10% of the wallets available PIV to zPIV automatically. This can be adjusted in the GUI within the Options dialog, which allows the preferred % to be adjusted as well as the ability to set the preferred zPIV denomination that will be minted. Automint is set to be triggered when additional blocks are added to the block chain and is programmed *not* to convert your coins all at once. - -Automint can be disabled by adding `enablezeromint=0` to the wallet configuration file. The preferred mint % and denomination can also be set by the configuration file using `zeromintpercentage=` and `preferredDenom=`. - -### Converting zPIV to PIV (*zPIV Spend*) -Redeeming zPIV is done by converting it back to PIV. With the 3.0.0 software release, users are not able to send zPIV to each other directly in an atomic fashion. - -**GUI** - Conversion from zPIV to PIV can be done using the `Privacy Dialog` in the QT wallet. Enter a PIVX address that you would like to Pay To, enter the amount of PIV the receiver should be sent, click `Spend Zerocoin`. - -**RPC** - Conversion from zPIV to PIV can be done using the `spendzerocoin` command. - -### Advanced Use & Privacy Considerations -**Security Level** - When spending zPIV, a user is prompted to enter a *Security Level* choosing from 1-100. In an indirect way, the Security Level parameter allows the user to choose how many coins to obfuscate their transaction with. - -A Security Level of 1 for example would take all of the minted coins in the blockchain before your mint was added to the blockchain, and would then add any coins that were minted within the next 10 blocks as well. A Security Level of 2 would do the same thing, except add the next 20 blocks worth of mints. A **Security Level of 100 will add the maximum amount of mints** up to the current end of the blockchain. - -The higher the Security Level, the more computation and time it will take to spend. Although it takes longer, a level of 100 is recommended for transactions that need maximum anonymity. - - -**Minting Change** - The PIVX implementation of the zerocoin protocol also allows the spender to choose how to receive their leftover change from a Spend transaction. For maximum anonymity it is recommended that the spender choose to receive the change in zPIV, which prevents situations where change from a zPIV spend that is redeemed in PIV is accidentally mixed with the rest of the users PIV, thus linking transactions back to a PIVX address. - -Since the lowest denomination of zPIV is 1, and a fee is required to mint zPIV, in most situations a high fee will be paid to mint change. The fee is the remainder of the change that cannot be converted back to zPIV. For example this would mean a spending a denomination of 10 that yields change of 6.75 in change, would issue zPIV denominations of 5 and 1 back to the sender with the remaining 0.75 that is unmintable being contributed as a fee. - -**zPIV Control** -Similar to the concept of Coin Control in the QT wallet, zPIV Control allows users to select exactly which zPIV mints they would like to spend. This gives a flexibility to choose which denominations can be picked for a spend that wouldn't otherwise be available. - - -Tor Service Integration Improvements ---------------------- - -Integrating with Tor is now easier than ever! Starting with Tor version 0.2.7.1 it is possible, through Tor's control socket API, to create and destroy 'ephemeral' hidden services programmatically. PIVX Core has been updated to make use of this. - -This means that if Tor is running (and proper authorization is available), PIVX Core automatically creates a hidden service to listen on, without manual configuration. PIVX Core will also use Tor automatically to connect to other .onion nodes if the control socket can be successfully opened. This will positively affect the number of available .onion nodes and their usage. - -This new feature is enabled by default if PIVX Core is listening, and a connection to Tor can be made. It can be configured with the `-listenonion`, `-torcontrol` and `-torpassword` settings. To show verbose debugging information, pass `-debug=tor`. - -3.0.0 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### Broad Features -- #264 `15e84e5` zPIV is here! (Fuzzbawls Mrs-X Presstab Spock PIVX) - -### P2P Protocol and Network Code -- #242 `0ecd77f` [P2P] Improve TOR service connectivity (Fuzzbawls) - -### GUI -- #251 `79af8d2` [Qt] Adjust masternode count in information UI (Mrs-X) - -### Miscellaneous -- #258 `c950765` [Depends] Update Depends with newer versions (Fuzzbawls) - -Credits -======= - -Thanks to everyone who directly contributed to this release: -- Fuzzbawls -- Jon Spock -- Mrs-X -- PIVX -- amirabrams -- presstab - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/pivx-project-translations/). diff --git a/doc/release-notes/release-notes-3.0.2.md b/doc/release-notes/release-notes-3.0.2.md deleted file mode 100644 index b9f35bb5eb6e9..0000000000000 --- a/doc/release-notes/release-notes-3.0.2.md +++ /dev/null @@ -1,128 +0,0 @@ -PIVX Core version 3.0.2 is now available from: - - - -This is a new minor-revision version release, including various bug fixes and -performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - - - -Recommended Update -============== - -PIVX Core v3.0.2 is a recommended, semi-mandatory update for all users. This release contains transaction creation bug fixes for zPIV spends, automint calculation adjustments, and other various updates/fixes. - -zPIV spending requires this update. - -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/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux). - -Compatibility -============== - -PIVX Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), -No attempt is made to prevent installing or running the software on Windows XP, you -can still do so at your own risk but be aware that there are known instabilities and issues. -Please do not report issues about Windows XP to the issue tracker. - -PIVX Core should also work on most other Unix-like systems but is not -frequently tested on them. - -### :exclamation::exclamation::exclamation: MacOS 10.13 High Sierra :exclamation::exclamation::exclamation: - -**Currently there are issues with the 3.0.x gitian releases on MacOS version 10.13 (High Sierra), no reports of issues on older versions of MacOS.** - - -Notable Changes -=============== - -Auto Wallet Backup ---------------------- -In addition to the automatic wallet backup that is done at each start of the client, a new automatic backup function has been added that will, by default, create a backup of the wallet file during each zPIV mint operation (zPIV spends which re-mint their change are also included in this). This functionality is controlled by the `-backupzpiv` command-line option, which defaults to `1` (enabled, auto-backup). - -Users that wish to prevent this behavior (not recommended) can pass `-backupzpiv=0` at the command-line when starting the client, or add `backupzpiv=0` to their `pivx.conf` file. - -zPIV Automint Calculations ---------------------- -A bug in the automint calculations was made apparent on mainnet when block times exceeded expectations, resulting in zPIV mint transactions that were in an unconfirmed state to still be treated as if they had never been minted. This caused automint to effectively mint more than what was intended. - -zPIV Spending Fix ---------------------- -The size of zPIV spend transactions is knowingly larger than normal transactions, and while this was expected, a much stricter check against the scriptsig size is used for mainnet, causing the transactions to be rejected by the mempool, and thus not being packaged into any blocks. - -zPIV Transaction Recovery ---------------------- -Due to the aforementioned issue with zPIV spending, users may find that their attempted spends are now conflicted and zPIV balances are not represented as expected. "Recovery" of these transactions can be done using the following methods: - -1. GUI: - - The Privacy tab has the `Reset` and `Rescan` buttons that can be used to restore these mints/spends from a state of being marked as unavailable. - -2. RPC: - - The RPC commands `resetspentzerocoin` and `resetmintzerocoin` are the command-line counterparts to the above, and can be used by users that do not use the GUI wallet. - -RPC Changes ---------------------- -The `bip38decrypt` command has had it's parameter order changed to be more consistent with it's counterpart. The command now expects the PIVX address as it's first parameter and the passphrase as it's second parameter. - -Bip38 Compatibility With 3rd Party Tools ---------------------- -The in-wallet bip38 encryption method was leaving the final 4 bytes of the encrypted key blank. This caused an incompatibility issue with 3rd party tools like the paper wallet generators that could decrypt bip38 encrypted keys. Cross-tool compatibility has now been restored. - -3.0.2 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### RPC and other APIs -- #275 `059aaa9` [RPC] Change Parameter Order of bip38decrypt (presstab) - -### P2P Protocol and Network Code -- #286 `85c0f53` [Main] Change sporkDB from smart ptr to ptr. (presstab) -- #292 `feadab4` Additional checks for double spending of zPiv serials. (presstab) - -### Wallet -- #271 `5e9a086` [Wallet] Remove unused member wallet in UnlockContext inner class (Jon Spock) -- #279 `e734010` Add -backupzpiv startup flag. (presstab) -- #280 `fdc182d` [Wallet] Fix zPiv spending errors. (presstab) -- #282 `310f216` [Wallet] Count pending zPiv balance for automint. (presstab) -- #290 `004d7b6` Include both pending and mature zerocoins for automint calculations (presstab) - -### GUI -- #268 `bc63f24` [GUI/RPC] Changed bubblehelp text + RPC startmasternode help text fixed (Mrs-X) -- #269 `5466a9b` Check if model is valid before using in transactionView (Jon Spock) -- #270 `bd2328e` [Qt] Make lock icon clickable to toggle wallet lock state (Fuzzbawls) -- #273 `f31136e` [Qt] Fix UI tab order and shortcuts (Mrs-X) -- #287 `74a1c3c` [Qt] Don't allow the Esc key to close the privacy tab (Fuzzbawls) -- #291 `cb314e6` [Qt] zPiv control quantity/amount fixes (rejectedpromise) - -### Miscellaneous -- #266 `2d97b54` [Scripts] Fix location for aarch64 outputs in gitian-build.sh (Fuzzbawls) -- #272 `958f51e` [Minting] Replace deprecated auto_ptr. (presstab) -- #276 `03f14ba` Append BIP38 encrypted key with an 4 byte Base58 Checksum (presstab) -- #288 `2522aa1` Bad CBlockHeader copy. (furszy) - -Credits -======= - -Thanks to everyone who directly contributed to this release: -- Fuzzbawls -- Jon Spock -- Mrs-X -- furszy -- presstab -- rejectedpromise -- Warrows - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/pivx-project-translations/). diff --git a/doc/release-notes/release-notes-3.0.4.md b/doc/release-notes/release-notes-3.0.4.md deleted file mode 100644 index 5090f1373b1e3..0000000000000 --- a/doc/release-notes/release-notes-3.0.4.md +++ /dev/null @@ -1,123 +0,0 @@ -PIVX Core version 3.0.4 is now available from: - - - -This is a new minor-revision version release, including various bug fixes and -performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - - - - -Mandatory Update -============== - -PIVX Core v3.0.4 is a mandatory update for all users. This release contains various updates/fixes pertaining to the zPIV protocol, supply tracking, block transmission and relaying, as well as usability and quality-of-life updates to the GUI. - -Users will have a grace period to update their clients before versions prior to this release are no longer allowed to connect to this (and future) version(s). - - -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/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux). - - -Compatibility -============== - -PIVX Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), -No attempt is made to prevent installing or running the software on Windows XP, you -can still do so at your own risk but be aware that there are known instabilities and issues. -Please do not report issues about Windows XP to the issue tracker. - -PIVX Core should also work on most other Unix-like systems but is not -frequently tested on them. - -### :exclamation::exclamation::exclamation: MacOS 10.13 High Sierra :exclamation::exclamation::exclamation: - -**Currently there are issues with the 3.0.x gitian releases on MacOS version 10.13 (High Sierra), no reports of issues on older versions of MacOS. As such, a High Sierra Only version is included below.** - - -Notable Changes -=============== - -Refactoring of zPiv Spend Validation Code ---------------------- -zPiv spend validation was too rigid and did not give enough slack for reorganizations. Many staking wallets were unable to reorganize back to the correct blockchain when they had an orphan stake which contained a zPiv spend. zPiv double spending validation has been refactored to properly account for reorganization. - -Money Supply Calculation Fix ---------------------- -Coin supply incorrectly was counting spent zPiv as newly minted coins that are added to the coin supply, thus resulting in innacurate coin supply data. - -The coin supply is now correctly calculated. If a new wallet client is synced from scratch or if `-reindex=1` is used then the correct money supply will be calculated. If neither of these two options are used, the wallet client will automatically reindex the money supply calculations upon the first time opening the software after updating to v3.0.4. The reindex takes approximately 10-60 minutes depending on the hardware used. If the reindex is exited mid-process, it will continue where it left off upon restart. - -Better Filtering of Transactions in Stake Miner ---------------------- -The stake miner code now filters out zPiv double spends that were on rare occasions being slipped into blocks (and being rejected by peers when broadcast to the network). - -More Responsive Shutdown Requests ---------------------- -When computationally expensive accumulator calculations are being performed and the user requests to close the application, the wallet will exit much sooner than before. - -More Extensive Display of zPiv Confirmation/Maturity Status ---------------------- -Within the Privacy Dialog of the QT wallet, the _Zerocoin Stats_ section now displays both the confirmation and maturity status of minted zPiv's. Previously this was only able to be viewed within the zPiv Control dialog. The main Overview tab of the QT wallet now splits zPiv balance into subcategories: _Unconfirmed_, _Immature_, and _Mature_. - -3.0.4 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### P2P Protocol and Network Code -- #294 `27c0943` Add additional checks for txid for zpiv spend. (presstab) -- #301 `b8392cd` Refactor zPiv tx counting code. Add a final check in ConnectBlock() (presstab) -- #306 `77dd55c` [Core] Don't send not-validated blocks (Mrs-X) -- #312 `5d79bea` [Main] Update last checkpoint data (Fuzzbawls) -- #325 `7d98ebe` Reindex zPiv blocks and correct stats. (presstab) -- #327 `aa1235a` [Main] Don't limit zPIV spends from getting into the mempool (Fuzzbawls) -- #329 `19b38b2` Update checkpoints. (presstab) -- #331 `b1fb710` [Consensus] Bump protocol. Activate via Spork 15. (rejectedpromise) - -### Wallet -- #308 `bd8a982` [Minting] Clear mempool after invalid block from miner (presstab) -- #316 `ed192cf` [Minting] Better filtering of zPiv serials in miner. (presstab) - -### GUI -- #309 `f560ffc` [UI] Better error message when too much inputs are used for spending zPIV (Mrs-X) -- #317 `b27cb72` [UI] Wallet repair option to resync from scratch (Mrs-X) -- #323 `2b648be` [UI] Balance fix + bubble-help + usability improvements (Mrs-X) -- #324 `8cdbb5d` disable negative confirmation numbers. (Mrs-X) - -### Build System -- #322 `a91feb3` [Build] Add compile/link summary to configure (Fuzzbawls) - -### Miscellaneous -- #298 `3580394` Reorg help to stop travis errors (Jon Spock) -- #302 `efb648b` [Cleanup] Remove unused variables (rejectedpromise) -- #307 `dbd801d` Remove hard-coded GIT_ARCHIVE define (Jon Spock) -- #314 `f1c830a` Fix issue causing crash when pivxd --help was invoked (Jon Spock) -- #326 `8b6a13e` Combine 2 LogPrintf statement to reduce debug.log clutter (Jon Spock) -- #328 `a6c18c8` [Main] PIVX not responding on user quitting app (Aaron Langford) - - -Credits -======= - -Thanks to everyone who directly contributed to this release: -- Fuzzbawls -- Jon Spock -- Mrs-X -- furszy -- presstab -- rejectedpromise -- aaronlangford31 - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/pivx-project-translations/). diff --git a/doc/release-notes/release-notes-3.0.5.1.md b/doc/release-notes/release-notes-3.0.5.1.md deleted file mode 100644 index f50f07f6e1c19..0000000000000 --- a/doc/release-notes/release-notes-3.0.5.1.md +++ /dev/null @@ -1,12 +0,0 @@ -We have found that a runtime error that has caused the PIVX wallet on certain operating systems to get stuck at block 908000. This build of the wallet fixes the runtime error. - -If you are stuck on block 908000: -- Download the 3.0.5.1 wallet (the file names do not display the "build" version and cutoff the 1) -- Start the wallet. Block 908000 and 908001 have some computation that occurs and it is normal for them to take longer to process than a typical block would. - -If you are stuck on a block before 908000: -- Download the 3.0.5.1 wallet (the file names do not display the "build" version and cutoff the 1) -- Start the wallet with `reindexaccumulators=1` in your `pivx.conf` file (you can figure out the location of your `pivx.conf` [here](https://pivx.freshdesk.com/support/solutions/articles/30000004664-where-are-my-wallet-dat-blockchain-and-configuration-conf-files-located-) ) -- After starting the wallet, remove `reindexaccumulators=1` from your `pivx.conf` or else it will perform this operation each time you start your wallet. - -If both of those solutions failed you can use the [blockchain snapshot](http://178.254.23.111/~pub/PIVX/Daily-Snapshots-Html/PIVX-Daily-Snapshots.html). If using the snapshot, please carefully follow the instructions on the snapshot page. \ No newline at end of file diff --git a/doc/release-notes/release-notes-3.0.5.md b/doc/release-notes/release-notes-3.0.5.md deleted file mode 100644 index 408354cbfaafa..0000000000000 --- a/doc/release-notes/release-notes-3.0.5.md +++ /dev/null @@ -1,111 +0,0 @@ -PIVX Core version 3.0.5 is now available from: - - - -This is a new minor-revision version release, including various bug fixes and -performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - - - - -Mandatory Update -============== - -PIVX Core v3.0.5 is a mandatory update for all users. This release contains various updates/fixes pertaining to the zPIV protocol, supply tracking, block transmission and relaying, as well as usability and quality-of-life updates to the GUI. Users are required to update before block `908000` which is when the accumulators will be refactored. Shortly after that block, zPIV transactions will be enabled. **When zPIV is enabled, autominting will also be enabled.** If you would like to disable automatic conversion of 10% of your PIV balance to zPIV, then you will need to add `enablezeromint=0` to your `pivx.conf` file. For information about where to find your pivx.conf you can visit this link from [PIVX Support](https://pivx.freshdesk.com/support/solutions/articles/30000004664-where-are-my-wallet-dat-blockchain-and-configuration-conf-files-located-). - -Users will have a grace period to update their clients before versions prior to this release are no longer allowed to connect to this (and future) version(s). - - -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/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux). - - -Compatibility -============== - -PIVX Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), -No attempt is made to prevent installing or running the software on Windows XP, you -can still do so at your own risk but be aware that there are known instabilities and issues. -Please do not report issues about Windows XP to the issue tracker. - -PIVX Core should also work on most other Unix-like systems but is not -frequently tested on them. - -### :exclamation::exclamation::exclamation: MacOS 10.13 High Sierra :exclamation::exclamation::exclamation: - -**Currently there are issues with the 3.0.x gitian releases on MacOS version 10.13 (High Sierra), no reports of issues on older versions of MacOS. As such, a High Sierra Only version is included below.** - - -Notable Changes -=============== - -Accumulator Code Refactor ---------------------- -The zPIV accumulator code has undergone a major refactor. Accumulators are one of the most essential components of the zerocoin protocol, and also one of the most computationally expensive parts of the protocol. This refactoring speeds up syncing and spending of zPIV by over 5x. The new code also allows for spending of zPIV with only 2 required mints occurring on the network after your mint has been added, whereas before 3 were required. This refactor allows for lighter resource load and a smoother user experience. - -libzerocoin Exploit Fix ---------------------- -zPIV relies on a 3rd party library called libzerocoin. All currencies that utilize the zerocoin protocol use libzerocoin, and many of those currencies have been exposed to an exploit which allowed for the creation of multiple zero-knowledge spending proofs for one single zerocoin mint. The PIVX developers were able properly identify the exploit, track down any fraudulent spending proofs, link the fraudulent spending proofs with their one valid proof that they were mutated from, and remove any mints from the accumulators that were derived from the invalid spends. - -zPIV Maintenance Mode Spork ---------------------- -Handling the above noted libzerocoin exploit required the PIVX team to immediately release a patched wallet to as many users as possible which rejected bad spends and also disabled all zPIV transactions in general. The process of releasing a patched wallet in such a small time frame is frustrating and difficult for all members of the PIVX team and especially users of PIVX. The PIVX developers have added a new spork which allows for zPIV transacting to be turned on/off without having to release a patched wallet. This will allow much smoother operation if any problems occur in the future, and should also allow exchanges and 3rd party services to continue to operate even if zPIV is in maintenance mode. - -Money Supply Indexing ---------------------- -The exploit in libzerocoin threw off some of the wallet's internal money supply calculations for both the zPIV supply and the PIV supply. User's wallet's will automatically recalculate the supply on block `908001`. User's also have the ability to recalculate supply using the startup flag `reindexmoneysupply`. - -More Extensive Tracking of zPIV Supply Through RPC ---------------------- -More information has been added to the `getinfo` and `getblock` RPC calls, which now display the total zPIV supply as well as the balance for each zPIV accumulator. - -Multisig GUI ---------------------- -Provides functionality which is currently only available through raw transactions. Multisignature addresses require signatures from multiple parties before coins belonging to the address are spent. Accessed through the File dropdown menu. - - -3.0.5 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### P2P Protocol and Network Code -- #339 `559492a` [Main] Refactor Accumulator Code (presstab) -- #390 `TBD` [MAIN] Libzerocoin patch (presstab) - -### Wallet -- #308 `bd8a982` [Minting] Clear mempool after invalid block from miner (presstab) -- #316 `ed192cf` [Minting] Better filtering of zPiv serials in miner. (presstab) - -### GUI -- #278 `46f4960` [QT] Multisignature GUI (rejectedpromise) -- #340 `6a4eef1` [QT] Show the current block in the progress bar. (presstab) -- #365 `c66d015` [UI] Rename SwiftTX -> SwiftX (Mrs-X) - -### Build System -- #382 `4a412d4` Gitian hack so gitian Mac builds notify user about incompatibility on High Sierra (Jon Spock) - -### Miscellaneous -- #332 `0c2cd61` [Docs] Add missing archived release notes (Fuzzbawls) - -Credits -======= - -Thanks to everyone who directly contributed to this release: -- Fuzzbawls -- Jon Spock -- Mrs-X -- presstab -- rejectedpromise - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/pivx-project-translations/). \ No newline at end of file diff --git a/doc/release-notes/release-notes-3.0.6.md b/doc/release-notes/release-notes-3.0.6.md deleted file mode 100644 index 473e8a352f940..0000000000000 --- a/doc/release-notes/release-notes-3.0.6.md +++ /dev/null @@ -1,119 +0,0 @@ -PIVX Core version 3.0.6 is now available from: - - - -This is a new minor-revision version release, including various bug fixes and -performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - - - - -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/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux). - - -Compatibility -============== - -PIVX Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), -No attempt is made to prevent installing or running the software on Windows XP, you -can still do so at your own risk but be aware that there are known instabilities and issues. -Please do not report issues about Windows XP to the issue tracker. - -PIVX Core should also work on most other Unix-like systems but is not -frequently tested on them. - -### :exclamation::exclamation::exclamation: MacOS 10.13 High Sierra :exclamation::exclamation::exclamation: - -**Currently there are issues with the 3.0.x gitian releases on MacOS version 10.13 (High Sierra), no reports of issues on older versions of MacOS. As such, a High Sierra Only version is included below.** - - -Notable Changes -=============== - -Automated Database Corruption Repair ---------------------- -There have been cases of blockchain database corruption that can occur when PIVX client is not closed gracefully. The most common cases of corruption have been identified and the wallet will now automatically fix most of these corruptions. Certain corruption states are still unable to be fixed, but now provide more detailed error messages to the user as well as prompting the user to reindex their database. - -More Accurate Error Messages ---------------------- -Some error messages in the wallet have been too vague and done little to help developers and the support team properly identify issues. Error messages have been refined and are now more specific. - -Reduction of Debug Log Spam ---------------------- -Many 3rd party services have reported that their debug logs have been overloaded with messages about unknown transaction types. This log spam has been fixed. - -Removal of Heavy Running Transaction Search Code ---------------------- -Many areas of the block validation code use a "slow" transaction search, which searches redundantly for transactions. This "slow" search has been removed upstream in Bitcoin and is now removed in PIVX. This provides a more efficient syncing process and generally better performing wallet. - -Sync Fix for Block 908000 ---------------------- -Many wallets were having trouble getting past block 908000. This block recalculates certain aspects of the money supply and zPIV transactions, and is known to take longer to sync. Code has been added to allow block 908000 to be validated without the user needing to enter any special commands into the debug console. - -Working Testnet ---------------------- -Testnet is now accessible with this release of the wallet. Testnet can be accessed using the `-testnet` startup flag. - -zPIV Spending Fix ---------------------- -zPIV that were minted between block 891730 and 895400 were experiencing an error initializing the accumulator witness data correctly, causing an inability to spend those mints. This has been fixed. - - -3.0.6 Change log -================= - -Detailed release notes follow. This overview includes changes that affect -behavior, not code moves, refactors and string updates. For convenience in locating -the code changes and accompanying discussion, both the pull request and -git merge commit are mentioned. - -### RPC and other APIs -- #366 `f361344` Do not stringify beyond OP_ZEROCOINSPEND for CScript::ToString() (presstab) -- #385 `732bfb0` getspentzerocoinamount RPC call. (whateverpal) -- #417 `f97b409` [RPC] Fix typo for `obfuscation` RPC command (Patrick Collins) - -### Block and Transaction Handling -- #395 `5c5a9c6` [Main] Avoid slow transaction search with txindex enabled (Fuzzbawls) -- #405 `e415420` [Main] Automate database corruption fix caused by out of sync txdb. (presstab) -- #408 `beae959` Fix "accumulator does not verify" when spending zPIV. (presstab) -- #418 `90b0310` Fix edge case segfault. (presstab) - -### P2P Protocol and Network Code -- #393 `58ec23f` [Testnet] Adjust testnet chainparams to new hard coded values. (presstab) - -### Wallet -- #412 `2fb5f17` Double check tx size when creating zPIV tx's. (presstab) - -### GUI -- #384 `7897f60` [Qt] Periodic make translate (Fuzzbawls) - -### Build System -- #402 `e383b94` Change git info in genbuild.sh (Jon Spock) -- #419 `79956d4` [Travis] Add logprint-scanner.py to TravisCI (Fuzzbawls) - -### Miscellaneous -- #401 `f30d9b7` [Scripts] LogPrint(f) scanner script (Sonic, PeterL73) -- #409 `4f78e67` Handle debug.log "CWalletTx::GetAmounts: Unknown transaction type" spam. (presstab) - -Credits -======= - -Thanks to everyone who directly contributed to this release: -- Fuzzbawls -- Jon Spock -- Mrs-X -- Patrick Collins -- PeterL73 -- presstab -- sonic -- whateverpal - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/pivx-project-translations/). diff --git a/doc/release-notes/release-notes-3.1.0.1.md b/doc/release-notes/release-notes-3.1.0.1.md deleted file mode 100644 index 2b37320ecd2cd..0000000000000 --- a/doc/release-notes/release-notes-3.1.0.1.md +++ /dev/null @@ -1,54 +0,0 @@ -PIVX Core version *3.1.0.1* is now available from: - -This is a new bugfix release, specifically addressing a bug with windows OS masternode control wallets. Users upgrading to this version are encouraged to also read the detailed release notes for the previous [3.1.0](https://github.com/PIVX-Project/PIVX/releases/tag/v3.1.0) release as information will not be duplicated here. - -Please report bugs using the issue tracker at github: - -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/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux). - - -Compatibility -============== - -PIVX Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.8+, and Windows 7 and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), No attempt is made to prevent installing or running the software on Windows XP, you can still do so at your own risk but be aware that there are known instabilities and issues. Please do not report issues about Windows XP to the issue tracker. - -PIVX Core should also work on most other Unix-like systems but is not frequently tested on them. - -### :exclamation::exclamation::exclamation: MacOS 10.13 High Sierra :exclamation::exclamation::exclamation: - -**Currently there are issues with the 3.x gitian release on MacOS version 10.13 (High Sierra), no reports of issues on older versions of MacOS.** - - -Notable Changes -============== - -Windows masternode.conf bug --------------- - -Windows Masternode Controller wallets were experiencing an issue with reading the `masternode.conf` file during startup that prevented the wallet from opening properly. - -Windows file icons -------------- - -The Windows program icons and installer images were of less than ideal quality, often appearing grainy or distorted. These icons/images have now been recreated to meet higher standards. - -*3.1.0.1* Change log -============== - -Detailed release notes follow. This overview includes changes that affect behavior, not code moves, refactors and string updates. For convenience in locating the code changes and accompanying discussion, both the pull request and git merge commit are mentioned. - -### Miscellaneous -- #586 `fc211bfdf` [Bug] Fix CMasternodeConfig::read (Fuzzbawls) -- #587 `69498104f` [Bug] Fix Windows icon files (Fuzzbawls) - -## Credits - -Thanks to everyone who directly contributed to this release: -- Fuzzbawls - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/pivx-project-translations/), the QA team during Testing and the Node hosts supporting our Testnet. diff --git a/doc/release-notes/release-notes-3.1.0.2.md b/doc/release-notes/release-notes-3.1.0.2.md deleted file mode 100644 index b5b54ab307fd9..0000000000000 --- a/doc/release-notes/release-notes-3.1.0.2.md +++ /dev/null @@ -1,78 +0,0 @@ -PIVX Core version *3.1.0.2* is now available from: - -This is a new mandatory bugfix release, specifically addressing a bug with windows OS masternode control wallets as well as a missed commit from our private repository affecting the budget amount. - -### Users upgrading to this version are encouraged to also read the detailed release notes for the previous [3.1.0](https://github.com/PIVX-Project/PIVX/releases/tag/v3.1.0) release as information will not be duplicated here. - - -Please report bugs using the issue tracker at github: - -Mandatory Update -============== - -PIVX Core v3.1.0.2 is a mandatory update for all users. This release contains new consensus rules and improvements that are not backwards compatible with older versions. Users will have a grace period of one week to update their clients before enforcement of this update is enabled. - -Users updating from a previous version after Tuesday, May 8, 2018 12:00:00 AM GMT will require a full resync of their local blockchain from either the P2P network or by way of the bootstrap. - -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/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux). - - -Compatibility -============== - -PIVX Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.8+, and Windows 7 and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), No attempt is made to prevent installing or running the software on Windows XP, you can still do so at your own risk but be aware that there are known instabilities and issues. Please do not report issues about Windows XP to the issue tracker. - -PIVX Core should also work on most other Unix-like systems but is not frequently tested on them. - -### :exclamation::exclamation::exclamation: MacOS 10.13 High Sierra :exclamation::exclamation::exclamation: - -**Currently there are issues with the 3.x gitian release on MacOS version 10.13 (High Sierra), no reports of issues on older versions of MacOS.** - - -Notable Changes -============== - -Budget Amount Calculation --------------- - -A commit from our private repository that changed the available budget amount was inadvertently missed when merging back to the public repository. Thanks goes to community member Ronan for pointing this out. - -Windows masternode.conf bug --------------- - -Windows Masternode Controller wallets were experiencing an issue with reading the `masternode.conf` file during startup that prevented the wallet from opening properly. - -Windows file icons -------------- - -The Windows program icons and installer images were of less than ideal quality, often appearing grainy or distorted. These icons/images have now been recreated to meet higher standards. - -*3.1.0.2* Change log -============== - -Detailed release notes follow. This overview includes changes that affect behavior, not code moves, refactors and string updates. For convenience in locating the code changes and accompanying discussion, both the pull request and git merge commit are mentioned. - -### P2P Network -- #592 `39430995c` Update protocol to 70914. (presstab) - -### Budget -- #590 `413fad929` [Budget] Fix wrong budget amount (Mrs-X) -- #591 `405612f3c` Add unit test for budget value. (presstab) - -### Miscellaneous -- #586 `fc211bfdf` [Bug] Fix CMasternodeConfig::read (Fuzzbawls) -- #587 `69498104f` [Bug] Fix Windows icon files (Fuzzbawls) - -## Credits - -Thanks to everyone who directly contributed to this release: -- Fuzzbawls -- Mrs-X -- presstab - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/pivx-project-translations/), the QA team during Testing and the Node hosts supporting our Testnet. diff --git a/doc/release-notes/release-notes-3.1.0.md b/doc/release-notes/release-notes-3.1.0.md deleted file mode 100644 index 1ec502f040605..0000000000000 --- a/doc/release-notes/release-notes-3.1.0.md +++ /dev/null @@ -1,408 +0,0 @@ -PIVX Core version *3.1.0* is now available from: - -This is a new major version release, including various bug fixes and performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - - -Mandatory Update -============== - -PIVX Core v3.1.0 is a mandatory update for all users. This release contains new consensus rules and improvements that are not backwards compatible with older versions. Users will have a grace period of one week to update their clients before enforcement of this update is enabled. - -Users updating from a previous version after Tuesday, May 8, 2018 12:00:00 AM GMT will require a full resync of their local blockchain from either the P2P network or by way of the bootstrap. - -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/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux). - - -Compatibility -============== - -PIVX Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), -No attempt is made to prevent installing or running the software on Windows XP, you -can still do so at your own risk but be aware that there are known instabilities and issues. -Please do not report issues about Windows XP to the issue tracker. - -PIVX Core should also work on most other Unix-like systems but is not -frequently tested on them. - -### :exclamation::exclamation::exclamation: MacOS 10.13 High Sierra :exclamation::exclamation::exclamation: - -**Currently there are issues with the 3.x gitian release on MacOS version 10.13 (High Sierra), no reports of issues on older versions of MacOS.** - - -Notable Changes -============== - -zPIV Updates --------------- - -### zPIV Staking - -zPIV Staking is here! zPIV staking will be activated on the morning of the 8th of May 2018. With the release of zPIV staking, there are effectively 2 versions of zPIV, zPIV minted on the 3.0.6 PIVX wallet or lower, and zPIV minted on PIVX wallet version or higher. New features in this release will require the use of zPIV v2, zPIV minted on this wallet release 3.1.0 or later. If you currently hold zPIV v1 and wish to take advantage of zPIV staking and deterministic zPIV, you will need to spend the zPIV v1 to yourself and remint zPIV v2. -Note: To find your zPIV version, click the privacy tab, then the zPIV Control button then expand the arrows next to the desired denomination. - - -### Deterministic zPIV Seed Keys - -zPIV is now associated with a deterministic seed key. With this seed key, users are able to securely backup their zPIV outside of the wallet that the zPIV had been minted on. zPIV can also be transferred from wallet to wallet without the need of transferring the wallet data file. - - -### Updated zPIV minting - -zPIV minting now only requires 1 further mint (down from 2) to mature. zPIV mints still require 20 confirmations. Mints also require that the 'second' mint is at least two checkpoints deep in the chain (this was already the case, but the logic was not as precise). - - -### zPIV Search - -Users will now have the ability to search the blockchain for a specific serial # to see if a zPIV denomination has been spent or not. - - - -PIV/zPIV Staking and Masternode Rewards --------------- - -### PIV, zPIV and Masternode Payment Schedule - -To encourage the use of zPIV and increase the PIVX zerocoin anonymity set, the PIVX payment schedule has been changed to the following: - -If a user staking zPIV wins the reward for their block, the following zPIV reward will be: -- 3 zPIV (3 x 1 denominations) rewarded to the staker, 2 PIV rewarded to the masternode owner and 1 PIV available for the budget. This is a total block reward of 6 PIV, up from 5. - -If a user staking PIV wins the reward, the following amounts will be rewarded: -- 2 PIV to the PIV staker, 3 PIV to the Masternode owner and 1 PIV available for the budget. This is a total block reward of 6 PIV, up from 5. - - -### Return change to sender when minting zPIV - -Previously, zPIV minting would send any change to a newly generated "change address". This has caused confusion among some users, and in some cases insufficient backups of the wallet. The wallet will now find the contributing address which contained the most PIV and return the change from a zPIV mint to that address. - - -User Experience --------------- - -### Graphical User Interface - -The visual layout of the PIVX Qt wallet has undergone a near-complete overhaul. -A new 'vertical tab' layout is now being used instead of the prior 'horizontal tab' layout, as well as a completely new icon set. -The overview tab has been simplified greatly to display only balances that are active or relevant, zero-balance line items are hidden by default to avoid clutter. - - -### Wallet Options - -There have been a number of changes to the tasks that you are able to perform from the wallet options. Users will now have the ability to do the following: -- Enable and disable the auto zPIV minting feature. This is enabled by default and the enablezeromint=0 setting in the pivx.conf file will overwrite the GUI option. -- The percentage of autominted zPIV can now be set from 1 to 100, changed from 10 – 100. -- The stake split threshold can now be set VIA the wallet options. This setting is an advanced feature for those wishing to remain staking regular PIV. -- “Unlock for staking and anonymization only” is now selected by default when unlocking the wallet from the User Interface - - -### In-wallet Ban Management - -Peer bans are now manageable through the Peers tab of the tools window. Peers can be banned/unbanned at will without the need to restart the wallet client. No changes have been made to the conditions resulting in automatic peer bans. - - -Backup to external devices / locations --------------- - -### Summary - - The PIVX wallet can now have user selected directories for automatic backups of the wallet data file (wallet.dat). This can be set by adding the following lines to the pivx.conf file, found in the PIVX data directory. -- backuppath = -- zpivbackuppath = -- custombackupthreshold = -Note: System write permissions must be appropriate for the location the wallet is being saved to. - -* Configured variables display in the _Wallet Repair_ tab inside the _Tools Window / Dropdown Menu_ -* Allows for backing up wallet.dat to the user set path, simultaneous to other backups -* Allows backing up to directories and files, with a limit (_threshold_) on how many files can be saved in the directory before it begins overwriting the oldest wallet file copy. - - -### Details: - -* If path is set to directory, the backup will be named `wallet.dat------` -* If zPIV backup, auto generated name is `wallet-autozpivbackup.dat------` -* If path set to file, backup will be named `.dat` -* walletbackupthreshold enables the user to select the maximum count of backup files to be written before overwriting existing backups. - - -### Example: - -* -backuppath=/\/ -* -walletbackupthreshold=2 - -Backing up 4 times will result as shown below - - - date/time - backup #1 - 2018-04-20-00-04-00 - backup #2 - 2018-04-21-04-20-00 - backup #3 - 2018-04-22-00-20-04 - backup #4 - 2018-04-23-20-04-00 - - 1. - // - wallet.dat-2018-04-20-00-04-00 - 2. - // - wallet.dat-2018-04-20-00-04-00 - wallet.dat-2018-04-21-04-20-00 - 3. - // - wallet.dat-2018-04-22-00-20-04 - wallet.dat-2018-04-21-04-20-00 - 4. - // - wallet.dat-2018-04-22-00-20-04 - wallet.dat-2018-04-23-20-04-00 - - - -PIVX Daemon & Client (RPC Changes) --------------- - -### RPC Ban Management - -The PIVX client peer bans now have additional RPC commands to manage peers. Peers can be banned and unbanned at will without the need to restart the wallet client. No changes have been made to the conditions resulting in automatic peer bans. New RPC commands: `setban`, `listbanned`, `clearbanned`, and `disconnectnode` - - -### Random-cookie RPC authentication - -When no `-rpcpassword` is specified, the daemon now uses a special 'cookie' file for authentication. This file is generated with random content when the daemon starts, and deleted when it exits. Its contents are used as authentication token. Read access to this file controls who can access through RPC. By default it is stored in the data directory but its location can be overridden with the option `-rpccookiefile`. -This is similar to Tor's CookieAuthentication: see https://www.torproject.org/docs/tor-manual.html.en -This allows running pivxd without having to do any manual configuration. - - -### New RPC command -`getfeeinfo` - -This allows for a user (such as a third party integration) to query the blockchain for the current fee rate per kb, and also get a suggested rate per kb for high priority tx's that need to get added to the blockchain asap. - - -### New RPC command -`findserial` - -Search the zerocoin database for a zerocoinspend transaction that contains the given serial. This will be a helpful tool for the PIVX support group, which often times sees users say "I didn't spend that zPIV". This RPC call allows for support to grab the serial, and then find the spend tx on the chain. - - -### New RPC commands -`createmasternodebroadcast` - -`decodemasternodebroadcast` - -`relaymasternodebroadcast` - -A new set of rpc commands masternodebroadcast to create masternode broadcast messages offline and relay them from online node later (messages expire in ~1 hour). - - -Network Layer 2 Changes (Proposals / Budgets / SwiftX) --------------- - -### Monthly Budget Increase - -As voted on by the PIVX masternodes, the monthly budget available to be utilised has been increased to 42,000 PIV / month. This PIV only has the opportunity to be raised once per month (paid to winning proposals) with any unused PIV not created by the blockchain. - -### Budget Finalization Fee - -The PIVX finalization fee for successful proposals has now been reduced, this fee is now 5 PIV down from 50 PIV. The total fee outlay for a successful proposal is now a total of 55 PIV. - - -### SwiftX Raw Transactions - - When creating a raw transaction, it is now possible to create the transaction as a SwiftX transaction. See the updated help documentation for the `createrawtransaction` RPC command. - -Technical Changes --------------- - -### Migration to libevent based http server - -The RPC and REST interfaces are now initialized and controlled using standard libevent instead of the ad-hoc pseudo httpd interface that was used previously. This change introduces a more resource friendly and effective interface. - - -### New Notification Path -`blocksizenotify` - -A new notification path has been added to allow a script to be executed when receiving blocks larger than the 1MB legacy size. This functions similar to the other notification listeners (`blocknotify`, `walletnotify`, etc). - - -### Removed Growl Support - -Growl hasn't been free nor needed for many years. MacOS versions since 10.8 have the OS notification center, which is still supported after this. - - -### Autocombine changes - -The autocombine feature was carrying a bug leading to a significant CPU overhead when being used. The function is now called only once initial blockchain download is finished. It's also now avoiding to combine several times while under the threshold in order to avoid additional transaction fees. Last but not least, the fee computation has been changed and the dust from fee provisioning is returned in the main output. - - -### SOCKS5 Proxy bug - -When inputting wrong data into the GUI for a SOCKS5 proxy, the wallet would crash and be unable to restart without accessing hidden configuration. This crash has been fixed. - -Minor Enhancements --------------- - -- Enforced v1 zPIV spends to require a security level of 100 -- Updates to zPIV spends to avoid segfaults -- Updates to configuration will now reflect on the privacy tab -- Fixed a bug that would not start masternodes from the PIVX-Qt masternodes tab -- Updated PIVX-Qt tooltips -- Icon added to the wallet GUI to reflect the status of autominting (active / inactive) -- Updated errors causing the blockchain to corrupt when experiencing unexpected wallet shutdowns -- Updated RPC help outputs & removed the deprecated obfuscation. -- Refactored code -- Various bug fixes -- Updated documentation - -Further Reading: Version 2 Zerocoins -============== - -Several critical security flaws in the zerocoin protocol and PIVX's zerocoin implementation have been patched. Enough has changed that new zerocoins are distinct from old zerocoins, and have been labelled as *version 2*. When using the zPIV Control dialog in the QT wallet, a user is able to see zPIV marked as version 1 or 2. - -zPoS (zPIV staking) --------------- - -Once a zPIV has over 200 confirmations it becomes available to stake. Staking zPIV will consume the exact zerocoin that is staked and replace it with a freshly minted zerocoin of the same denomination as well as a reward of three 1 denomination zPIV. So for example if a 1,000 zPIV denomination is staked, the protocol replaces that with a fresh 1,000 denomination and three1 denomination zPIVs. - -Secure Spending --------------- - -Version 1 zerocoins, as implemented by [Miers et. al](http://zerocoin.org/media/pdf/ZerocoinOakland.pdf), allow for something we describe as *serial trolling*. Spending zerocoins requires that the spender reveal their serial number associated with the zerocoin, and in turn that serial number is used to check for double spending. There is a fringe situation (which is very unlikely to happen within PIVX's zerocoin implementation due to delayed coin accumulation) where the spender sends the spending transaction, but the transaction does not immediately make it into the blockchain and remains in the mempool for a long enough duration that a *troll* has enough time to see the spender's serial number, mint a new zerocoin with the same serial number, and spend the new zerocoin before the original spender's transaction becomes confirmed. If the timing of this fringe situation worked, then the original spender's coin would be seen as invalid because the troll was able to have the serial recorded into the blockchain first, thus making the original spender's serial appear as a double spend. - -The serial troll situation is mitigated in version 2 by requiring that the serial number be a hash of a public key. The spend requires an additional signature signed by the private key associated with the public key hash matching the serial number. This work around was conceived by Tim Ruffing, a cryptographer that has studied the zerocoin protocol and done consulting work for the ZCoin project. - -Deterministic Zerocoin Generation --------------- - -Zerocoins, or zPIV, are now deterministically generated using a unique 256 bit seed. Each wallet will generate a new seed on its first run. The deterministic seed is used to generate a string of zPIV that can be recalculated at any time using the seed. Deterministic zPIV allows for users to backup all of their future zPIV by simply recording their seed and keeping it in a safe place (similar to backing up a private key for PIV). The zPIV seed needs to remain in the wallet in order to spend the zPIV after it is generated, if the seed is changed then the coins will not be spendable because the wallet will not have the ability to regenerate all of the private zPIV data from the seed. It is important that users record & backup their seed after their first run of the wallet. If the wallet is locked during the first run, then the seed will be generated the first time the wallet is unlocked. - -Zerocoin Modulus --------------- - -PIVX's zerocoin implementation used the same code from the ZCoin project to import the modulus use for the zerocoin protocol. The chosen modulus is the 2048 bit RSA number created for the RSA factoring challenge. The ZCoin project's implementation (which PIVX used) improperly imported the modulus into the code. This flaw was discovered by user GOAT from the [Civitas Project](https://github.com/eastcoastcrypto/Civitas/), and reported to PIVX using the bug bounty program. The modulus is now correctly imported and PIVX's accumulators have been changed to use the new proper modulus. - - -*3.1.0* Change log --------------- - -Detailed release notes follow. This overview includes changes that affect behavior, not code moves, refactors and string updates. For convenience in locating the code changes and accompanying discussion, both the pull request and git merge commit are mentioned. - -### Core Features - - #582 `cb1632520` [Core] zPIV v2: zPoS dzPIV ezPIV external backup and budget fixes (too many to list) - - #558 `c7e6f0f7f` [Core] Remove Gitan-OSX warning for High Sierra builds (Mrs-X) - - #523 `926c073ea` [Core] Give high priority to zerocoinspends to make it into the next block. (presstab) - - #535 `5e8875feb` [Core] Minor refacturing + unused variable removed (Mrs-X) - - #526 `0e034d62f` [Core] Refactor ConnectBlock() to segregate state tracking items (presstab) - - #513 `27cdf61f2` [Core] Fix masternode broadcast for networks != MAINNET (Mrs-X) - - #261 `29611a5fd` [Core] Switch from local to main signals for the validation interface (Nitya Sattva) - - #460 `ae4b6a135` [Core] (testnet-) blockchain stuck at block 325000 (Mrs-X) - - #428 `3de6b6f3e` [Core] Wipe zerocoin DB on reindex. (presstab) - - #447 `8d3407ae4` [Consensus] Fix compilation with OpenSSL 1.1 (warrows) - - #551 `94b9bc937` [Consensus] Require standard transactions for testnet (Fuzzbawls) - -### Build System - - #532 `9071bfe2f` [Depends] Update depends package versions. (Fuzzbawls) - - #402 `a471f7020` [Build] Revert #402 "Change git info in genbuild.sh" (Fuzzbawls) - - #541 `2f6b58cf1` [Build] Fix typo in Qt test makefile (Fuzzbawls) - - #536 `5c44f40e9` [Build] Update build system from upstream (Fuzzbawls) - - #480 `72d8c7d67` [Build] compile/link winshutdownmonitor.cpp on Windows only (Fuzzbawls) - - #461 `55ec19af0` [Build] libevent-dev dependency added to build-documentation (Mrs-X) - -### P2P Protocol and Network Code - - #542 `61156def7` [Network] Remove vfReachable and modify IsReachable to only use vfLimited. (Patrick Strateman) - -### GUI - - #572 `d9b23fe60` [Qt] Refresh zPIV balance after resetting mints or spends (warrows) - - #571 `1c8e7cb7b` [Qt] Update privacy tab info about zeromint on config change (warrows) - - #568 `f226de09e` [Qt] Connect automint icon to the UI automint setting change (warrows) - - #566 `84f43857c` [Qt] Add automint status bar icon (Fuzzbawls) - - #567 `e12914d85` [Qt] Optimize PNGs (Fuzzbawls) - - #537 `653115e9b` [Qt] Standardize and clean up new UI elements (Fuzzbawls) - - #538 `24f581842` [Qt] Fix warning dialog popup for the Blockchain Explorer (Fuzzbawls) - - #529 `c649ba7e2` [Qt] Remove Growl support (Fuzzbawls) - - #521 `fbb105a00` [Qt] Make "For anonymization and staking only" checked by default (Mrs-X) - - #508 `2cf3be6bb` [Qt] Fix crash when inputting wrong port for network proxy (warrows) - - #500 `4c01ba65d` [Qt] Remove duplicate code for updating address book labels. (blondfrogs) - - #506 `ae72bf4e2` [Qt] Autoscroll to end of zPIV status output (Mrs-X) - - #499 `6305264f2` [Qt] Send popup simplified + SwiftTX -> SwiftX (Mrs-X) - - #490 `ba777e4ef` [Qt] Update MultiSend GUI to allow address labels (blondfrogs) - - #483 `5b1070365` [Qt] Fixed Dynamic Screen Elements Issue for Multisig (blondfrogs) - - #479 `818c0c79e` [Qt] Rework of overview page (warrows) - - #478 `98ca7bc90` [Qt] Implement Ban Management in GUI Wallet (Fuzzbawls) - - #473 `9e2ed8f0f` [Qt] Make toolbar icons bigger (Mrs-X) - - #462 `c62eabe7b` [Qt] Consistent trx colors for Overview + Transaction tabs (Mrs-X) - - #472 `b7929bdcf` [Qt] Minor changes and fixes (Mrs-X) - - #467 `7099831bd` [Qt] Clear PrivacyDialog "zPiv Selected" labels after sending. (presstab) - - #465 `d8e21774d` [Qt] Added controls to the options dialog for enable or disable auto-minting and set required level (lex-dev3) - - #464 `59fd7d378` [Qt] setstakesplitthreshold value set in Qt GUI (lex-dev3) - - #452 `219b68dc9` [Qt] Complete re-design of Qt-wallet (Mrs-X) - - #440 `011408474` [Qt] Fix empty system tray menu (PeterL73) - - #442 `248316647` [Qt] Improve checkbox visibility (PeterL73) - -### RPC/REST - - #562 `772160b1b` [Wallet/RPC] Add argument to mint zerocoin from specific UTXO (warrows) - - #539 `b6a02e9d6` [RPC] Allow watchonly coins to be shown for listunspent (blondfrogs) - - #543 `e4522ff07` [RPC] Segfault pivx-cli getinfo while loading block index (Mrs-X) - - #524 `2541b5001` [RPC] Add blocksizenotify command (Mrs-X) - - #495 `4946224c1` [RPC] Show script verification errors in signrawtransaction result (Fuzzbawls) - - #468 `00b8b8e72` [RPC/REST] Migrate to libevent based httpd server (Fuzzbawls) - - #381 `6f91fb734` [RPC] Allow in-wallet management of peer bans (Fuzzbawls) - - #441 `6ae17c52d` [RPC] Implement random-cookie based authentication (Fuzzbawls) - - #443 `0a991d8ba` [RPC] Findserial (presstab) - - #438 `f701337e7` [RPC] Fix `importzercoins` for use with UniValue (Fuzzbawls) - - #429 `17fdde1d1` [RPC] Add getfeeinfo RPC. (presstab) - - #423 `5dfb48ee6` [RPC] Add SwiftX to rpcrawtransaction. (presstab) - - #170 `027f16c64` [RPC] Convert source tree from json_spirit to UniValue (Fuzzbawls) - -### Wallet - - #570 `8c8350b59` [Wallet] Add a check on zPIV spend to avoid a segfault (warrows) - - #565 `80b803201` [Wallet] Increase valid range for automint percentage (Fuzzbawls) - - #518 `9f6449a70` [Wallet] Combine fees when possible and fix autocombine insufficient funds (warrows) - - #497 `f21e4456b` [Wallet] Call AutocombineDust less often (warrows) - - #498 `bfad2a1df` [Wallet] Change the way transaction list is handled (warrows) - - #477 `93c5f9ff5` [Wallet] Remove potential memory leak (blondfrogs) - - #488 `d09cf916a` [Wallet] Fixes an autocombinerewards bug with above max size TXs (warrows) - - #448 `222ef6e6b` [Wallet] Return change to sender when minting zPIV. (presstab) - - #445 `fc570fc1e` [Wallet] Only require 1 mint to be added before spending zPIV. (presstab) - -### Miscellaneous - - #559 `d2b017217` [Bug] Segfault with -enableswifttx=0 / -enableswifttx=false (Mrs-X) - - #494 `8180b7884` [Bug] remove use of variable length buffer (rejectedpromise) - - #469 `6bd265c5e` [Tests] Fix util_tests compiler warnings with clang (Fuzzbawls) - - #463 `22f2bb623` [Tests] Fixed compilation errors (lex-dev3) - - #569 `aedf80b07` [Docs] OSX Build - Instructions on how to make the Homebrew OpenSSL headers visible (gpdionisio) - - #554 `8cecb3435` [Docs] Added release notes for autocombine and proxy GUI. (warrows) - - #533 `ad3edb9fa` [Docs] Update OSX build notes: zmq, libevent, and notes to handle possible glibtoolize error (Tim Uy) - - #530 `fd8aa8991` [Docs] Update README.md (Warrows) - - #528 `1c1412246` [Docs] Readme changes (Sieres) - - #471 `18e5accb6` [Docs] Readme SeeSaw reward mechanism reference. (Dexaran) - - #426 `3418a64d2` [Docs] Use mainnet port for example in masternode.conf file (Fuzzbawls) - - -## Credits - -Thanks to everyone who directly contributed to this release: -- gpdionisio -- warrows -- Fuzzbawls -- Mrs-X -- presstab -- blondfrogs -- Patrick Strateman -- Tim Uy -- Sieres -- Nitya Sattva -- turtleflax -- rejectedpromise -- Dexaran -- lex-dev3 -- PeterL73 -- Anthony Posselli - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/pivx-project-translations/), the QA team during Testing and the Node hosts supporting our Testnet. diff --git a/doc/release-notes/release-notes-3.1.1.md b/doc/release-notes/release-notes-3.1.1.md deleted file mode 100644 index 23aa92f8a674a..0000000000000 --- a/doc/release-notes/release-notes-3.1.1.md +++ /dev/null @@ -1,154 +0,0 @@ -PIVX Core version *3.1.1* is now available from: - -This is a new minor version release, including various bug fixes and performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - -Non-Mandatory Update -============== - -PIVX Core v3.1.1 is a non-mandatory update to address bugs and introduce minor enhancements that do not require a network change. - -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/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux). - - -Compatibility -============== - -PIVX Core is extensively tested on multiple operating systems using -the Linux kernel, macOS 10.8+, and Windows Vista and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), -No attempt is made to prevent installing or running the software on Windows XP, you -can still do so at your own risk but be aware that there are known instabilities and issues. -Please do not report issues about Windows XP to the issue tracker. - -PIVX Core should also work on most other Unix-like systems but is not -frequently tested on them. - -### :exclamation::exclamation::exclamation: MacOS 10.13 High Sierra :exclamation::exclamation::exclamation: - -**Currently there are issues with the 3.0.0+ gitian release on MacOS version 10.13 (High Sierra), no reports of issues on older versions of MacOS.** - -Notable Changes -============== - -zPIV Updates --------------- - -### Fix spending for v1 zPIV created before block 1050020 - -The transition to v2 zPIV and reset of the accumulators caused blocks 1050000 - 1050010 to be accumulated twice. This was causing a number v1 zPIV to not create valid witnesses, and thus were not spendable. This problem is fixed by double accumulating blocks 1050000-1050010 when creating the witness. Any user that had issues spending zPIV v1 will now be able to convert that into PIV and then zPIV v2 (if desired). - -### Adjustment to staking properties to reduce orphaned blocks - -zPIV stake set to update more frequently and lowering the stake hashdrift to 30 seconds to reduce the number of orphans being experienced by PIVX stakers. - -Further work is being done to improve the efficiently of zPoS beyond this, and will be available in a subsequent release at a later date. - - -User Experience --------------- - -### Fix wrongly displayed balance on Overview tab - -Fixes a display issue introduced with a previous change. This was a "display only" issue, all your coins were there all the time. - -### Show progress percent for zpiv reindex operations - -When starting the wallet with `-reindexaccumulators` and/or `-reindexzerocoin`, these operations can take a considerable time to complete depending on system hardware. A progress percent on the splash screen is now shown for these processes to avoid confusion in thinking that the wallet has frozen. - - -### Add TOR service icon to status bar - -An icon is now shown for clients that are connected and operating over the TOR network. Included is a mouse-over tooltip showing the onion address associated with the client. This icon is only shown when a connection to the TOR network can be established, and will be hidden otherwise. - - -PIVX Daemon & Client (RPC Changes) --------------- - -### Fix listtransactions RPC function - -This addresses an issue where new incoming transactions are not recorded properly, and subsequently, not returned with `listtransactions` in the same session. - -This fix was previously included in the `v3.1.0.3` tag, and relayed to affected exchanges/services, which typically use this command for accounting purposes. It is included here for completeness. - -Technical Changes --------------- - -### Switch to libsecp256k1 signature verification - -Here is the long overdue update for PIVX to let go of OpenSSL in its consensus code. The rationale behind it is to avoid depending on an external and changing library where our consensus code is affected. This is security and consensus critical. PIVX users will experience quicker block validations and sync times as block transactions are verified under libsecp256k1. - -The recent [CVE-2018-0495](https://www.nccgroup.trust/us/our-research/technical-advisory-return-of-the-hidden-number-problem/) brings into question a potential vulnerability with OpenSSL (and other crypto libraries) that libsecp256k1 is not susceptible to. - -### Write to the zerocoinDB in batches - -Instead of using a separate write operation for each and every bit of data that needs to be flushed to disk, utilize leveldb's batch writing capability. The primary area of improvement this offers is when reindexing the zerocoinDB (`-reindexzerocoin`), which went from needing multiple hours on some systems to mere minutes. - -Secondary improvement area is in ConnectBlock() when multiple zerocoin transactions are involved. - -### Resolution of excessive peer banning - -It was found that following a forced closure of the PIVX core wallet (ungraceful), a situation could arise that left partial/incomplete data in the disk cache. This caused the client to fail a basic sanity test and ban any peer which was sending the (complete) data. This, in turn, was causing the wallet to become stuck. This issue has been resolved client side by guarding against this partial/incomplete data in the disk cache. - -*3.1.1* Change log --------------- - -Detailed release notes follow. This overview includes changes that affect behavior, code moves, refactoring and string updates. For convenience in locating the code changes and accompanying discussion, both the pull request and git merge commit are mentioned. - -### Core Features - - #549 `8bf13a5ad` [Crypto] Switch to libsecp256k1 signature verification and update the lib (warrows) - - #609 `6b73598b9` [MoveOnly] Remove zPIV code from main.cpp (presstab) - - #610 `6c3bc8c76` [Main] Check whether tx is in chain in ContextualCheckZerocoinMint(). (presstab) - - #624 `1a82aec96` [Core] Missing seesaw value for block 325000 (warrows) - - #636 `d359c6136` [Main] Write to the zerocoinDB in batches (Fuzzbawls) - -### Build System - - #605 `b4d82c944` [Build] Remove unnecessary BOOST dependency (Mrs-X) - - #622 `b8c672c98` [Build] Make sure Boost headers are included for libzerocoin (Fuzzbawls) - - #639 `98c7a4f65` [Travis] Add separate job to check doc/logprint/subtree (Fuzzbawls) - - #648 `9950fce59` [Depends] Update Qt download url (fanquake) - -### P2P Protocol and Network Code - - #608 `a602d00eb` [Budget] Make sorting of finalized budgets deterministic (Mrs-X) - - #647 `3aa3e5c97` [Net] Update hard-coded fallback seeds (Fuzzbawls) - -### GUI - - #580 `c296b7572` Fixed Multisend dialog to show settings properly (SHTDJ) - - #598 `f0d894253` [GUI] Fix wrongly displayed balance on Overview tab (Mrs-X) - - #600 `217433561` [GUI] Only enable/disable PrivacyDialog zPIV elements if needed. (presstab) - - #612 `6dd752cb5` [Qt] Show progress percent for zpiv reindex operations (Fuzzbawls) - - #626 `9b6a42ba0` [Qt] Add Tor service icon to status bar (Fuzzbawls) - - #629 `14e125795` [Qt] Remove useless help button from QT dialogs (windows) (warrows) - - #646 `c66b7b632` [Qt] Periodic translation update (Fuzzbawls) - -### Wallet - - #597 `766d5196c` [Wallet] Write new transactions to wtxOrdered properly (Fuzzbawls) - - #603 `779d8d597` Fix spending for v1 zPIV created before block 1050020. (presstab) - - #617 `6b525f0df` [Wallet] Adjust staking properties to lower orphan rates. (presstab) - - #625 `5f2e61d60` [Wallet] Add some LOCK to avoid crash (warrows) - -### Miscellaneous - - #585 `76c01a560` [Doc] Change aarch assert sign output folder (Warrows) - - #595 `d2ce04cc0` [Tests] Fix chain ordering in budget tests (Fuzzbawls) - - #611 `c6a57f664` [Output] Properly log reason(s) for increasing a peer's DoS score. (Fuzzbawls) - - #649 `f6bfb4ade` [Utils] Add copyright header to logprint-scanner.py (Fuzzbawls) - -## Credits -Thanks to everyone who directly contributed to this release: - - - Fuzzbawls - - Mrs-X - - SHTDJ - - Sieres - - Warrows - - fanquake - - gpdionisio - - presstab - - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/pivx-project-translations/). diff --git a/doc/release-notes/release-notes-3.2.0.md b/doc/release-notes/release-notes-3.2.0.md deleted file mode 100644 index ac272cc3ade26..0000000000000 --- a/doc/release-notes/release-notes-3.2.0.md +++ /dev/null @@ -1,342 +0,0 @@ -PIVX Core version *3.2.0* is now available from: - -This is a new major version release, including various bug fixes and performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - - -Mandatory Update -============== - -PIVX Core v3.2.0 is a **mandatory update** for all block creators, masternodes, and integrated services (exchanges). Old version 4 blocks will be rejected once 95% of a rolling 7 days worth of blocks have signaled the new version 5. - -Masternodes will need to be restarted once both the masternode daemon and the controller wallet have been upgraded. - -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/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux). - -Wallets for existing users upgrading from an earlier version will undergo a supply recalculation the first time v3.2.0 is started. An initial light weight (partial) recalculation will be attempted first, but if that fails then the wallet will do a full recalculation the next time it is started. This recalculation is a one-time event. - -Compatibility -============== - -PIVX Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), No attempt is made to prevent installing or running the software on Windows XP, you can still do so at your own risk but be aware that there are known instabilities and issues. Please do not report issues about Windows XP to the issue tracker. - -Apple released it's last Mountain Lion update August 13, 2015, and officially ended support on [December 14, 2015](http://news.fnal.gov/2015/10/mac-os-x-mountain-lion-10-8-end-of-life-december-14/). PIVX Core software starting with v3.2.0 will no longer run on MacOS versions prior to Yosemite (10.10). Please do not report issues about MacOS versions prior to Yosemite to the issue tracker. - -PIVX Core should also work on most other Unix-like systems but is not frequently tested on them. - - -Notable Changes -============== - -Minimum Supported MacOS Version ------- - -The minimum supported version of MacOS (OSX) has been moved from 10.8 Mountain Lion to 10.10 Yosemite. Users still running a MacOS version prior to Yosemite will need to upgrade their OS if they wish to continue using the latest version(s) of the PIVX Core wallet. - -Attacks, Exploits, and Mitigations ------- - -### Fake Stake - -On Janurary 22 2019, Decentralized Systems Lab out of the University of Illinois published a study entitled “[‘Fake Stake’ attacks on chain-based Proof-of-Stake cryptocurrencies](https://medium.com/@dsl_uiuc/fake-stake-attacks-on-chain-based-proof-of-stake-cryptocurrencies-b8b05723f806)”, which outlined a type of Denial of Service attack that could take place on a number of Proof of Stake based networks by exhausting a client's RAM or Disk resources. - -A full report provided by PIVX developers is available on the [PIVX Website](https://pivx.org/fake-stake-official-pivx-report/), which includes additional findings, mitigation details, and resources for testing. This type of attack has no risk to users' privacy and does not affect their holdings. - -### Wrapped Serials - -On March 6th 2019, an attack was detected on the PIVX network zerocoin protocol, or zPIV. The vulnerability allows an attacker to fake serials accepted by the network and thus to spend zerocoins that have never been minted. As severe as it is, it does not harm users’ privacy and does not affect their holdings directly. - -As a result of this, all zPIV functionality was disabled via one of our sporks shortly after verification of this exploit. A full report, detailing how this attack was performed, as well as investigation results and mitigation methods is available [On Medium](https://medium.com/@dev.pivx/report-wrapped-serials-attack-5f4bf7b51701). - -zPIV functions will be restored after v3.2.0 is pushed out and the majority of the network has upgraded. - -Major New Features ------- - -### BIP65 (CHECKLOCKTIMEVERIFY) Soft-Fork - -PIVX Core v3.2.0 introduces new consensus rules for scripting pathways to support the [BIP65](https://github.com/bitcoin/bips/blob/master/bip-0065.mediawiki) standard. This is being carried out as a soft-fork in order to provide ample time for stakers to update their wallet version. - -### Automint Addresses - -A new "Automint Addresses" feature has been added to the wallet that allows for the creation of new addresses who's purpose is to automatically convert any PIV funds received by such addresses to zPIV. The feature as a whole can be enabled/disabled either at runtime using the `-enableautoconvertaddress` option, via RPC/Console with the `enableautomintaddress` command, or via the GUI's options dialog, with the default being enabled. - -Creation of these automint addresses is currently only available via the RPC/Console `createautomintaddress` command, which takes no additional arguments. The command returns a new PIVX address each time, but addresses created by this command can be re-used if desired. - -### In-wallet Proposal Voting - -A new UI wallet tab has been introduced that allows users to view the current budget proposals, their vote counts, and vote on proposals if the wallet is acting as a masternode controller. The visual design is to be considered temporary, and will be undergoing further design and display improvements in the future. - -### Zerocoin Lite Node Protocol - -Support for the ZLN Protocol has been added, which allows for a node to opt-in to providing extended network services for the protocol. By default, this functionality is disabled, but can be enabled by using the `-peerbloomfilterszc` runtime option. - -A full technical writeup of the protocol can be found [Here](https://pivx.org/wp-content/uploads/2018/11/Zerocoin_Light_Node_Protocol.pdf). - -### Precomputed Zerocoin Proofs - -This introduces the ability to do most of the heavy computation required for zPIV spends **before** actually initiating the spend. A new thread, `ThreadPrecomputeSpends`, is added which constantly runs in the background. - -`ThreadPrecomputeSpends`' purpose is to monitor the wallet's zPIV mints and perform partial witness accumulations up to `nHeight - 20` blocks from the chain's tip (to ensure that it only ever computes data that is at least 2 accumulator checkpoints deep), retaining the results in memory. - -Additionally, a file based cache is introduced, `precomputes.dat`, which serves as a place to store any precomputed data between sessions, or when the in-memory cache size is exhausted. Swapping data between memory and disk file is done as needed, and periodic cache flushes to the disk are routine. - -This also introduces 2 new runtime configuration options: - -* `-precompute` is a binary boolean option (`1` or `0`) that determines wither or not pre-computation should be activated at runtime (default value is to activate, `1`). -* `-precomputecachelength` is a numeric value between `500` and `2000` that tells the precompute thread how many blocks to include during each pass (default is `1000`). - -A new RPC command, `clearspendcache`, has been added that allows for the clearing/resetting of the precompute cache (both memory and disk). This command takes no additional arguments. - -Finally, the "security level" option for spending zPIV has been completely removed, and all zPIV spends now spend at what was formerly "security level" `100`. This change has been reflected in any RPC command that previously took a security level argument, as well as in the GUI's Privacy section for spending zPIV. - -### Regression Test Suite - -The RegTest network mode has been re-worked to once again allow for the generation of on-demand PoW and PoS blocks. Additionally, many of the existing functional test scripts have been adapted for use with PIVX, and we now have a solid testing base for highly customizable tests to be written. - -With this, the old `setgenerate` RPC command no longer functions in regtest mode, instead a new `generate` command has been introduced that is more suited for use in regtest mode. - -GUI Changes ------- - -### Console Security Warning - -Due to an increase in social engineering attacks/scams that rely on users relaying information from console commands, a new warning message has been added to the Console window's initial welcome message. - -### Optional Hiding of Orphan Stakes - -The options dialog now contains a checkbox option to hide the display of orphan stakes from both the overview and transaction history sections. Further, a right-click context menu option has been introduced in the transaction history tab to achieve the same effect. - -**Note:** This option only affects the visual display of orphan stakes, and will not prevent them nor remove them from the underlying wallet database. - -### Transaction Type Recoloring - -The color of various transaction types has been reworked to provide better visual feedback. Staking and masternode rewards are now purple, orphan stakes are now light gray, other rejected transactions are in red, and normal receive/send transactions are black. - -### Receive Tab Changes - -The address to be used when creating a new payment request is now automatically displayed in the form. This field is not user-editable, and will be updated as needed by the wallet. - -A new button has been added below the payment request form, "Receiving Addresses", which allows for quicker access to all the known receiving addresses. This one-click button is the same as using the `File->Receiving Addresses...` menu command, and will open up the Receiving Addresses UI dialog. - -Historical payment requests now also display the address used for the request in the history table. While this information was already available when clicking the "Show" button, it was an extra step that shouldn't have been necessary. - -### Privacy Tab Changes - -The entire right half of the privacy tab can now be toggled (shown/hidden) via a new UI button. This was done to reduce "clutter" for users that may not wish to see the detailed information regarding individual denomination counts. - -RPC Changes ------- - -### Backupwallet Sanity - -The `backupwallet` RPC command no longer allows for overwriting the currently in use wallet.dat file. This was done to avoid potential file corruption caused by multiple conflicting file access operations. - -### Spendzerocoin Security Level Removed - -The `securitylevel` argument has been removed from the `spendzerocoin` RPC command. - -### Spendzerocoinmints Added - -Introduce the `spendzerocoinmints` RPC call to enable spending specific zerocoins, provided as an array of hex strings (serial hashes). - -### Getreceivedbyaddress Update - -When calling `getreceivedbyaddress` with a non-wallet address, return a proper error code/message instead of just `0` - -### Validateaddress More Verbosity - -`validateaddress` now has the ability to return more (non-critical or identifying) details about P2SH (multisig) addresses by removing the needless check against ISMINE_NO. - -### Listmintedzerocoins Additional Options - -Add a `fVerbose` boolean optional argument (default=false) to `listmintedzerocoins` call to have a more detailed output. - -If `fVerbose` is specified as first argument, then a second optional boolean argument `fMatureOnly` (default=false) can be used to filter-out immature mints. - -### Getblock & Getblockheader - -A minor change to these two RPC commands to now display the `mediantime`, used primarialy during functional tests. - -### Getwalletinfo - -The `getwalletinfo` RPC command now outputs the configured transaction fee (`paytxfee` field). - -Build System Changes ------- - -### Completely Disallow Qt4 - -Compiling the PIVX Core wallet against Qt4 hasn't been supported for quite some time now, but the build system still recognized Qt4 as a valid option if Qt5 couldn't be found. This has now been remedied and Qt4 will no longer be considered valid during the `configure` pre-compilation phase. - -### Further OpenSSL Deprecation - -Up until now, the zerocoin library relied exclusively on OpenSSL for it's bignum implementation. This has now been changed with the introduction of GMP as an arithmetic operator and the bignum implementation has now been redesigned around GMP. Users can still opt to use OpenSSL for bignum by passing `--with-zerocoin-bignum=openssl` to the `configure` script, however such configuration is now deprecated. - -**Note:** This change introduces a new dependency on GMP (libgmp) by default. - -### RISC-V Support - -Support for the new RISC-V 64bit processors has been added, though still experimental. Pre-compiled binaries for this CPU architecture are available for linux, and users can self-compile using gitian, depends, or an appropriate host system natively. - -### New Gitian Build Script - -The previous `gitian-build.sh` shell script has been replaced with a more feature rich python version; `gitian-build.py`. This script now supports the use of a docker container in addition to LXC or KVM virtualization, as well as the ability to build against a pull request by number. - -*3.2.0* Change log -============== - -Detailed release notes follow. This overview includes changes that affect behavior, not code moves, refactors and string updates. For convenience in locating the code changes and accompanying discussion, both the pull request and git merge commit are mentioned. - -### Build System - - #758 `81c7c4764c` [Depends] Update libsecp256k1 to latest master (warrows) - - #804 `4a8e46a158` [Depends] Update zmq to 4.3.1 (Dimitris Apostolou) - - #795 `1920f3e8ad` [Build] Add support for RISC-V and build it with gitian (cevap) - - #786 `44226f225e` [Build] add gitian build python script (cevap) - - #783 `ccba68e425` [Depends] Update QT to 5.9.7 (cevap) - - #754 `b9cbeb0951` [Build] Update Build/Depends systems from upstream (Fuzzbawls) - - #752 `63fb77b0a9` [Build] Fix Thread Safety Analysis Warnings (Fuzzbawls) - - #749 `36ff23553c` [Build] Update genbuild.sh script (Fuzzbawls) - - #681 `95ec0763cf` [Depends] Add gmp bignum support for zerocoin lib (warrows) - - #704 `f0a427bfd7` [Build] GCC-7 and glibc-2.27 back compat (Fuzzbawls) - - #706 `d3c5b808dd` [Build] Remove throw keywords in leveldb function signatures (Fuzzbawls) - - #708 `72cd07186b` [Build] Remove stale m4 file (Fuzzbawls) - - #671 `b003052103` [Build] Update to latest leveldb (Fuzzbawls) - -### P2P Protocol and Network Code - - #843 `817cec4ff4` [Net] Increment Protocol Version (Fuzzbawls) - - #837 `d241b5ed77` [Zerocoin][UNIT TEST][RPC] Wrapped serials. (random-zebra) - - #803 `065f94118d` [NET] Invalid blocks from forks stored on disk fix + blocks DoS spam filter. (furszy) - - #802 `ed0dd2a20a` [Refactor] Remove begin/end_ptr functions (warrows) - - #768 `204c038a4d` [Net] Zerocoin Light Node Protocol (furszy) - - #798 `a663bccea7` [Net] Improve addrman Select() performance when buckets are nearly empty (Pieter Wuille) - - #800 `7fa20d69f6` [Net] nLastTry is only used for addrman entries (Pieter Wuille) - - #740 `5f7cb412a3` [Net] Pull uacomment in from upstream (Fuzzbawls) - - #774 `167c7fa6d0` [Budget] Make checks for MN-autovoting deterministic (Mrs-X) - - #770 `ab9cf3629c` [Main] Do not record zerocoin tx's in ConnectBlock() if it is fJustCheck (presstab) - - #705 `6a5b64bc21` [Main] Check Lock Time Verify (presstab) - -### GUI - - #850 `e488db7334` [Qt] Update localizations from Transifex (Fuzzbawls) - - #847 `fc924c1f63` [Qt] Fix to display missing clock5.png tx image (joeuhren) - - #840 `757d81c4a9` [QT] cleanup, remove old trading dialog form (furszy) - - #826 `0d738b3dc0` [Qt] Fix a windows only crash when r-clicking a proposal (warrows) - - #792 `c12697469b` [UI] Add a budget monitoring and voting tab (warrows) - - #794 `8dcb52fcd4` [UI] Open related options tab when clicking automint icon (warrows) - - #791 `c0aa454e19` [Qt] Fix Missing Explorer Icon (sicXnull) - - #779 `d617c85a89` [Qt] Periodic translation update (Fuzzbawls) - - #781 `10e1a8a306` [Qt] Don't show staking/automint status icons without a wallet (Fuzzbawls) - - #776 `3fcdc932d9` [Qt] Add a security warning to the debug console's default output. (Fuzzbawls) - - #747 `feb87c10fa` [GUI] Hide orphans - contextMenu action (random-zebra) - - #741 `ea2637838c` [GUI] Sort by 'data' in zPIV and coin control dialogs (random-zebra) - - #733 `9a792d73e9` [GUI] Hide orphans (random-zebra) - - #735 `44840c5069` [Qt] Stop using dummy strings in clientversion.cpp (Fuzzbawls) - - #725 `793db15baf` [UI] Sort numbers correctly in zPIV and coin control dialogs (random-zebra) - - #714 `bf2ad88066` [UI] Add address field in receive tab (warrows) - - #683 `ec1180b52c` [Qt] receivecoinsdialog - address control + clean UI (random-zebra) - - #677 `29fab5982f` [Qt] change colors for tx labels in history/overview (random-zebra) - - #693 `022b58257c` [UI] Add address to the payment request history (warrows) - - #698 `3f35bc81d8` [Qt] Remove Qt4 build support & code fallbacks (Wladimir J. van der Laan) - - #655 `de0c4e0888` [Qt] Fix PIV balances on overview page (Fuzzbawls) - - #680 `71ac5285e5` [Qt] Privacy dialog: hide/show denominations (random-zebra) - - #675 `8a26ba0b07` [Qt] SwiftX - intuitiveness (random-zebra) - - #668 `4a68c9ed43` [Qt] Clean up Multisend Dialog UI (Fuzzbawls) - -### RPC/REST - - #838 `5673c8373e` [RPC][Test] spendrawzerocoin + wrapped serials functional test (random-zebra) - - #821 `86d6133735` [RPC] Fixup signrawtransaction on regtest (Fuzzbawls) - - #751 `e820cf3816` [RPC] Show the configured/set txfee in getwalletinfo (Fuzzbawls) - - #750 `25fe72d97d` [RPC] Add mediantime to getblock/getblockheader output (Fuzzbawls) - - #760 `8b79a3944a` [RPC] Show BIP65 soft-fork progress in getblockchaininfo (Fuzzbawls) - - #742 `297d67b43a` [RPC] Add masternode's pubkey to listmasternodes RPC (presstab) - - #729 `f84ec3df8b` [RPC] Fix RPCTimerInterface (random-zebra) - - #727 `08f6e1774b` [RPC] Add 'spendzerocoinmints' RPC call (random-zebra) - - #726 `8f28b7ad23` [RPC] include mints metadata in 'listmintedzerocoins' output (random-zebra) - - #724 `ee0717c2af` [RPC] Ensure that a numeric is being passed to AmmountFromValue (Fuzzbawls) - - #723 `0774f5fc0d` [RPC] Error when calling getreceivedbyaddress with non-wallet address (Fuzzbawls) - - #722 `3ce4fd7226` [RPC] Add more verbosity to validateaddress (Fuzzbawls) - - #721 `cecda14082` [RPC] Fix movecmd's help description to include amount (Fuzzbawls) - - #720 `056b4d5cb1` [RPC] Sanitize walletpassphrase timeout argument (Fuzzbawls) - - #719 `463fd38325` [RPC] Fix verifychain (Fuzzbawls) - - #711 `17d1f30131` [RPC] Don't allow backupwallet to overwrite the wallet-in-use (Fuzzbawls) - - #688 `64071d142d` [Zerocoin] RPC import/export zerocoins private key standardized + Cleanup in AccPoK and SoK to avoid redundant calculations. (furszy) - -### Wallet - - #842 `c6c84fe85f` [Wallet] [zPIV] Precomputed Zerocoin Proofs (Fuzzbawls) - - #817 `37a06eaa93` [Wallet] Fix segfault with runtime -disablewallet (Fuzzbawls) - - #763 `d4762f7e7a` [Wallet] Add automint address (Fuzzbawls) - - #759 `19fd0877cd` [Wallet] Avoid failed zPIV spend because of changed seed (warrows) - - #755 `65be6b611b` [Wallet] Fix zPIV spend when too much mints are selected (warrows) - - #734 `5df105fed2` [Staking] Ensure nCredit is correctly initialized in CreateCoinStake (warrows) - - #730 `394d48b2c9` [Wallet] fix bug with fWalletUnlockAnonymizeOnly flag setting (random-zebra) - - #715 `30048cce62` [Refactor] Remove GetCoinAge (Fuzzbawls) - - #700 `a2d717090f` [Wallet] Avoid autocombine getting stuck (warrows) - - #656 `5272a4f684` [Wallet] Fix double locked coin when wallet and MN are on same machine (Tim Uy) - - #653 `fdf4503b66` [Wallet] change COINBASE_MATURITY to Params().COINBASE_MATURITY() (Alko89) - -### Test Suites - - #822 `2b8daac4c0` [Tests] Integrate fake stake tests into parent test suite (Fuzzbawls) - - #812 `f8eb7feefc` [Regtest][Tests][RPC] Regtest mode + Test suite. (random-zebra) - -### Miscellaneous - - #788 `55ce1619f5` [Misc] Update license year 2019 (Everton Melo) - - #736 `d2ad4d6e93` [Utils] Update linters for python3 (Fuzzbawls) - - #699 `8b1f68d896` [Refactor] Use references instead of copies in for loops (Fuzzbawls) - - #697 `5a5797f5c3` [Trivial] Remove Redundant Declarations (Fuzzbawls) - - #667 `49f9a0fa9e` [Zerocoin] Clean zerocoin bignum file (warrows) - - #669 `dd6909fd30` [Utils] Fix syntax error in gitian-build.sh (Aitor González) - - #632 `0d91550ff6` [MoveOnly] Move non-wallet RPC files to subdir (Fuzzbawls) - - #731 `f7f49cfa7c` [zPIV] Fix bignum overloads when using OpenSSL (Fuzzbawls) - - #692 `1fde9b2b7a` [Zerocoin] Remove explicit copy assignement operator from Accumulator (warrows) - - #761 `88a93bd35a` [Refactoring] Abstract out and switch openssl cleanse (Adam Langley) - - #743 `af0c340fe0` [Refactor] remove CPubKey::GetHex (random-zebra) - - #737 `434abd1ae9` [Refactor] Remove 'boost::lexical_cast<>' (random-zebra) - - #769 `6482454cf6` [Main] Unify shutdown proceedure in init rather than per-app (Fuzzbawls) - - #815 `decee4bc8c` [Doc] Update release notes with forthcoming 3.2.0 changes (Fuzzbawls) - - #816 `51e7b2c4b0` [Doc] Update build-unix.md (Fuzzbawls) - - #757 `a611a7fa77` [Doc] Update doc/build-windows.md (idas4you) - - #778 `65caa886ac` [Doc] Update README.md (veilgets) - - #703 `51663473fc` [Docs] Add missing automake dependency (Mrs-X) - - #762 `abfceb39a1` [Random] WIN32 Seed Cleanup: Move nLastPerfmon behind win32 ifdef. (21E14) - - #771 `4b1be14505` [Main] Clean up sync.cpp/h with upstream declarations (Fuzzbawls) - -## Credits - -Thanks to everyone who directly contributed to this release: - -- 21E14 -- Adam Langley -- Aitor González -- Alko89 -- Benjamin Allred -- Chun Kuan Lee -- Cory Fields -- Dimitris Apostolou -- Everton Melo -- Fuzzbawls -- Matias Furszyfer -- Mrs-X -- Pieter Wuille -- SHTDJ -- Tim Uy -- Wladimir J. van der Laan -- blondfrogs -- cevap -- fanquake -- gpdionisio -- idas4you -- joeuhren -- presstab -- random-zebra -- s3v3nh4cks -- sicXnull -- veilgets -- warrows - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/pivx-project-translations/), the QA team during Testing and the Node hosts supporting our Testnet. diff --git a/doc/release-notes/release-notes-3.3.0.md b/doc/release-notes/release-notes-3.3.0.md deleted file mode 100644 index 4422d20fd7f19..0000000000000 --- a/doc/release-notes/release-notes-3.3.0.md +++ /dev/null @@ -1,217 +0,0 @@ -PIVX Core version *3.3.0* is now available from: - -This is a new major version release, including various bug fixes and performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - - -Mandatory Update -============== - -PIVX Core v3.3.0 is a mandatory update for all users. This release contains new consensus rules and improvements that are not backwards compatible with older versions. Users will have a grace period of approximately one week to update their clients before enforcement of this update goes into effect. - -Masternodes will need to be restarted once both the masternode daemon and the controller wallet have been upgraded. - -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/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux). - - -Compatibility -============== - -PIVX Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), No attempt is made to prevent installing or running the software on Windows XP, you can still do so at your own risk but be aware that there are known instabilities and issues. Please do not report issues about Windows XP to the issue tracker. - -Apple released it's last Mountain Lion update August 13, 2015, and officially ended support on [December 14, 2015](http://news.fnal.gov/2015/10/mac-os-x-mountain-lion-10-8-end-of-life-december-14/). PIVX Core software starting with v3.2.0 will no longer run on MacOS versions prior to Yosemite (10.10). Please do not report issues about MacOS versions prior to Yosemite to the issue tracker. - -PIVX Core should also work on most other Unix-like systems but is not frequently tested on them. - - -Notable Changes -============== - -## zPIV Public Spends - -Recent exploits of the Zerocoin protocol (Wrapped serials and broken P1 proof) required us to enable the zerocoin spork and deactivate zPIV functionality in order to secure the supply until the pertinent review process was completed. - -Moving forward from this undesired situation, we are enabling a secure and chain storage friendly solution for the zerocoin public spend (aka zPIV to PIV conversion). - -The explanation of how this works can be found in #891 - -After block `1,880,000` has past, `SPORK_16` will be deactivated to allow zPIV spends to occur using this new public spend method for version 2 zPIV (version 1 zPIV won't be spendable, see note below). zPIV public spends, as the name suggests, are **NOT** private, they reveal the input mint that is being spent. The minting of **NEW** zPIV, as well as zPIV staking will remain disabled for the time being. - -It is advised that users spend/convert their existing zPIV to PIV, which can be done via the GUI or RPC as it was prior to the disabling of zPIV. Note that with the public spend method, the restriction on the number of denominations per transaction (previously 7) has been lifted, and now allows for several hundred denominations per transaction. - -*Note on version 1 zPIV*: Version 1 zPIV was only available to me minted between versions v3.0.0 (Oct 6, 2017) and v3.1.0 (May 8, 2018). The announcement that version 1 zPIV was deprecated went out on May 1, 2018 with a recommendation for users to spend/convert their version 1 zPIV. - -Version 1 zPIV will be made spendable at a later date due to the extra work required in order to make these version 1 mints spendable. - -## GUI Changes - -### Options Dialog Cleanup - -The options/settings UI dialog has been cleaned up to no longer show settings that are wallet related when running in "disable wallet" (`-disablewallet`) mode. - -### Privacy Tab - -Notice text has been added to the privacy tab indicating that zPIV minting is disabled, as well as the removal of UI elements that supported such functionality. Notice text has also been added indicating that zPIV spends are currently **NOT** private. - -## RPC Changes - -### Removal of Deprecated Commands - -The `masternode` and `mnbudget` RPC commands, which were marked as deprecated in PIVX Core v2.3.1 (September 19, 2017), have now been completely removed from PIVX Core. - -Several new commands were added in v2.3.1 to replace the two aforementioned commands, reference the [v2.3.1 Release Notes](https://github.com/PIVX-Project/PIVX/blob/master/doc/release-notes/release-notes-2.3.1.md#rpc-changes) for further details. - -### New `getblockindexstats` Command - -A new RPC command (`getblockindexstats`) has been introduced which serves the purpose of obtaining statistical information on a range of blocks. The information returned is as follows: - * transaction count (not including coinbase/coinstake txes) - * transaction count (including coinbase/coinstake txes) - * zPIV per-denom mint count - * zPIV per-denom spend count - * total transaction bytes - * total fees in block range - * average fee per kB - -Command Reference: -```$xslt -getblockindexstats height range ( fFeeOnly ) -nReturns aggregated BlockIndex data for blocks -height, height+1, height+2, ..., height+range-1] - -nArguments: -1. height (numeric, required) block height where the search starts. -2. range (numeric, required) number of blocks to include. -3. fFeeOnly (boolean, optional, default=False) return only fee info. -``` -Result: -``` -{ - first_block: x, (integer) First counted block - last_block: x, (integer) Last counted block - txcount: xxxxx, (numeric) tx count (excluding coinbase/coinstake) - txcount_all: xxxxx, (numeric) tx count (including coinbase/coinstake) - mintcount: { [if fFeeOnly=False] - denom_1: xxxx, (numeric) number of mints of denom_1 occurred over the block range - denom_5: xxxx, (numeric) number of mints of denom_5 occurred over the block range - ... ... number of mints of other denominations: ..., 10, 50, 100, 500, 1000, 5000 - }, - spendcount: { [if fFeeOnly=False] - denom_1: xxxx, (numeric) number of spends of denom_1 occurred over the block range - denom_5: xxxx, (numeric) number of spends of denom_5 occurred over the block range - ... ... number of spends of other denominations: ..., 10, 50, 100, 500, 1000, 5000 - }, - pubspendcount: { [if fFeeOnly=False] - denom_1: xxxx, (numeric) number of PUBLIC spends of denom_1 occurred over the block range - denom_5: xxxx, (numeric) number of PUBLIC spends of denom_5 occurred over the block range - ... ... number of PUBLIC spends of other denominations: ..., 10, 50, 100, 500, 1000, 5000 - }, - txbytes: xxxxx, (numeric) Sum of the size of all txes (zPIV excluded) over block range - ttlfee: xxxxx, (numeric) Sum of the fee amount of all txes (zPIV mints excluded) over block range - ttlfee_all: xxxxx, (numeric) Sum of the fee amount of all txes (zPIV mints included) over block range - feeperkb: xxxxx, (numeric) Average fee per kb (excluding zc txes) -} -``` - -## Build System Changes - -### New Architectures for Depends - -The depends system has new added support for the `s390x` and `ppc64el` architectures. This is done in order to support the future integration with [Snapcraft](https://www.snapcraft.io), as well as to support any developers who may use systems based on such architectures. - -### Basic CMake Support - -While the existing Autotools based build system is our standard build system, and will continue to be so, we have added basic support for compiling with CMake on macOS and linux systems. - -This is intended to be used in conjunction with IDEs like CLion (which relies heavily on CMake) in order to streamline the development process. Developers can now use, for example, CLion's internal debugger and profiling tools. - -Note that it is still required to have relevant dependencies installed on the system for this to function properly. - -*3.3.0* Change log -============== - -Detailed release notes follow. This overview includes changes that affect behavior, not code moves, refactors and string updates. For convenience in locating the code changes and accompanying discussion, both the pull request and git merge commit are mentioned. - -### Core - - #875 `a99c2dd3bb` [Zerocoin] GMP BigNum: Fix limits for random number generators (random-zebra) - - #888 `0c071c3fd0` [Zerocoin] remove CTransaction::IsZerocoinSpend/IsZerocoinMint (random-zebra) - - #891 `855408c2c3` [ZPIV] Zerocoin public coin spend. (furszy) - - #897 `65bd788945` [zPIV] Disable zerocoin minting (random-zebra) - - #899 `4b22a09024` [zPIV] Disable zPIV staking (random-zebra) - - #909 `458b08c8f2` [Consensus] Mainnet public spend enforcement height set. (furszy) - - #924 `988b33dab8` [Backport] Max tip age to consider a node in IBD status customizable. (furszy) - - #925 `a9827a0e63` [Consensus] Time checks (warrows) - -### Build System - - #810 `a373fee908` [Depends] Fix archs (fixes s390x and ppc64el builds on snap) (cevap) - - #906 `8a47747b59` [Build] Add CMake Support (Fuzzbawls) - - #910 `07c8fb8f88` [Build] Clean all coverage files during make clean (Fuzzbawls) - - #913 `473976c619` [Depends] Update from upstream (Fuzzbawls) - - #914 `5a43ea790a` [Gitian] Bump gitian build versions (Fuzzbawls) - - #917 `b38ef04838` [Build] TravisCI Update (Fuzzbawls) - - #922 `0f98fd4d3f` [Build] Fix app name casing in mac deploy related files (Fuzzbawls) - -### P2P Protocol and Network Code - - #908 `95b584effd` [NET] Non-running dns servers removed from chainParams. (furszy) - - #929 `7e8855d910` [Net] Update hard-coded seeds (Fuzzbawls) - - #930 `5061b486c2` [Net] Add a couple new testnet checkpoints (Fuzzbawls) - -### GUI - - #874 `23f17ce021` [Qt] Add new budget colors (warrows) - - #895 `0417d52ef9` [QT] Options UI cleanup (Alko89) - - #896 `b2fcefee93` [UI] Simplify Qt margins. (warrows) - - #898 `3d496cc746` [Qt] Fixup duplicate label names (Fuzzbawls) - - #900 `5f7559bc7b` [UI] Fix improperly parented walletView and segmentation fault on QT 5.10 (Julian Meyer) - - #928 `2482572f89` [Qt] Update Translations (Fuzzbawls) - -### RPC/REST - - #877 `54c8832d80` [RPC] Remove deprecated masternode/budget RPC commands (Fuzzbawls) - - #901 `be3aab4a00` [RPC] Fix typos and oversights in listunspent (CaveSpectre11) - - #911 `484c070b22` [RPC] add 'getblockindexstats' function (random-zebra) - -### Wallet - - #813 `80bf51e7c9` [Refactoring] [Move Only] Move wallet files into their own folder (warrows) - - #916 `a4f02ed946` [Staking] Don't assert if we were beaten to the block (CaveSpectre11) - -### Unit Tests - - #806 `fc6b5a191d` [Test] Create new per-test fixtures (Wladimir J. van der Laan) - - #902 `8adeeb9727` [Tests] Add tests for CAddrMan (warrows) - -### Miscellaneous - - #744 `7e52f58b82` [Refactor] Refactor bignum header file into several files (warrows) - - #808 `8b54f7150b` [Scripts] Add optimize pngs python script (cevap) - - #824 `3323f26848` [Refactor] Remove stale obfuscation code (Fuzzbawls) - - #830 `81038da4f8` [Refactor] Remove BOOST_FOREACH (Fuzzbawls) - - #844 `0a0dcf0d4e` [Refactor] Replace deprecated auto_ptr with unique_ptr (cevap) - - #856 `da26ddeeb9` [Refactor] Move per-chain budget cycle blocks to chainparams (Fuzzbawls) - - #879 `5f0d72659c` [Refactor] Rename ui_interface.h file (Fuzzbawls) - - #890 `fddac44eab` [Refactor] Remove unused setStakeSeen variable (warrows) - - #903 `68c81c407a` [Log] Handle errors during log message formatting (warrows) - - #904 `6f597629d8` [zPIV] Free memory from ToString() (warrows) - - #912 `5f167c2c7e` [Cleanup] compiler warnings in coinSpend object. (furszy) - - #919 `c0233e4af6` [zPIV] Debug missing jump line. (Matias Furszyfer) - - #920 `a56cc2948d` [Docs] Overhaul documentation files (Fuzzbawls) - - #921 `893183339e` [Scripts] Overhaul supplemental python/shell scripts (Fuzzbawls) - - #926 `49a69b8931` [Doc] 3.3.0 Notable Changes (Fuzzbawls) - - #927 `048d1295dc` [Trivial] Update header copyright years (Fuzzbawls) - -## Credits - -Thanks to everyone who directly contributed to this release: - - - Alko89 - - CaveSpectre11 - - Fuzzbawls - - Julian Meyer - - Matias Furszyfer - - cevap - - Wladimir J. van der Laan - - random-zebra - - warrows - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/pivx-project-translations/), the QA team during Testing and the Node hosts supporting our Testnet. diff --git a/doc/release-notes/release-notes-3.4.0.md b/doc/release-notes/release-notes-3.4.0.md deleted file mode 100644 index 269927c6831c0..0000000000000 --- a/doc/release-notes/release-notes-3.4.0.md +++ /dev/null @@ -1,157 +0,0 @@ -PIVX Core version *3.4.0* is now available from: - -This is a new major version release, including various bug fixes and performance improvements. - -Please report bugs using the issue tracker at github: - - -Mandatory Update -============== - -PIVX Core v3.4.0 is a mandatory update for all users. This release contains new consensus rules and improvements that are not backwards compatible with older versions. Users will need to update their clients before enforcement of this update goes into effect. - -Update enforcement goes into effect at the following times: - - Testnet: Tuesday, August 27, 2019 7:00:00 PM GMT - Mainnet: Friday, August 30, 2019 4:00:00 PM GMT - -Masternodes will need to be restarted once both the masternode daemon and the controller wallet have been upgraded. - -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/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux). - - -Compatibility -============== - -PIVX Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), No attempt is made to prevent installing or running the software on Windows XP, you can still do so at your own risk but be aware that there are known instabilities and issues. Please do not report issues about Windows XP to the issue tracker. - -Apple released it's last Mountain Lion update August 13, 2015, and officially ended support on [December 14, 2015](http://news.fnal.gov/2015/10/mac-os-x-mountain-lion-10-8-end-of-life-december-14/). PIVX Core software starting with v3.2.0 will no longer run on MacOS versions prior to Yosemite (10.10). Please do not report issues about MacOS versions prior to Yosemite to the issue tracker. - -PIVX Core should also work on most other Unix-like systems but is not frequently tested on them. - - -Notable Changes -============== - -## Internal (Core) Changes - -### Version 2 Stake Modifier - -A new 256-bit modifier for the proof of stake protocol has been defined, `CBlockIndex::nStakeModifierV2`. -It is computed at every block, by taking the hash of the modifier of previous block along with the coinstake input. -To meet the protocol, the PoS kernel must comprise the modifier of the previous block. - -Changeover enforcement of this new modifier is set to occur at block `1214000` for testnet and block `1967000` for mainnet. - -### Block index batch writing - -Block index writes are now done in a batch. This allows for less frequent disk access, meaning improved performances and less data corruption risks. - -### Eliminate needless key generation - -The staking process has been improved to no longer request a new (unused) key from the keypool. This should reduce wallet file size bloat as well as slightly improve staking efficiency. - -### Fix crash scenario at wallet startup - -A program crash bug that happens when the wallet.dat file contains a zc public spend transaction (input) and the user had removed the chain data has been fixed. - -## GUI Changes - -### Removal of zero-fee transaction option - -The long term viability of acceptable zero-fee transaction conditions is in need of review. As such, we are temporarily disabling the ability to create zero-fee transactions. - -### Show latest block hash and datadir information tab - -A QoL addition has been made to the Information tab of the UI's console window, which adds the display of both the current data directory and the latest block hash seen by the client. - -## RPC Changes - -### Require valid URL scheme when preparing/submitting a proposal - -The `preparebudget` and `submitbudget` RPC commands now require the inclusion of a canonical URL scheme as part of their `url` parameter. Strings that don't include either `http://` or `https://` will be rejected. - -The 64 character limit for the `url` field is inclusive of this change, so the use of a URL shortening service may be needed. - -## Testing Suite Changes - -### Functional testing readability - -Several changes have been introduced to the travis script in order to make the output more readable. Specifically it now lists tests left to run and prints the output of failing scripts. - -## Build System Changes - -### OpenSSL configure information - -When the configure step fails because of an unsupported OpenSSL (or other library), it now displays more information on using an override flag to compile anyways. The long term plan is to ensure that the consensus code doesn't depend on OpenSSL in any way and then remove this configure step and related override flag. - -*3.4.0* Change log -============== - -Detailed release notes follow. This overview includes changes that affect behavior, not code moves, refactors and string updates. For convenience in locating the code changes and accompanying discussion, both the pull request and git merge commit are mentioned. - -### Core Features - - #983 `ac8cb7376d` [PoS] Stake Modifier V2 (random-zebra) - - #958 `454c487424` [Staking] Modify miner and staking thread for efficiency (Cave Spectre) - - #915 `9c5a300624` Modify GetNextWorkRequired to set Target Limit correctly (Cave Spectre) - - #952 `7ab673f6fa` [Staking] Prevent potential negative out values during stake splitting (Cave Spectre) - - #941 `0ac0116ae4` [Refactor] Move ThreadStakeMinter out of net.cpp (Fuzzbawls) - - #932 `924ec4f6dd` [Node] Do all block index writes in a batch (Pieter Wuille) - -### Build System - - #934 `92aa6c2daa` [Build] Bump master to 3.3.99 (pre-3.4) (Fuzzbawls) - - #943 `918852cb90` [Travis] Show functional tests progress (warrows) - - #957 `2c9f624455` [Build] Add info about '--with-unsupported-ssl' (Warrows) - -### P2P Protocol and Network Code - - #987 `fa1dbab247` [Net] Protocol update enforcement for 70917 and new spork keys (Fuzzbawls) - -### GUI - - #933 `e47fe3d379` [Qt] Add blockhash + datadir to information tab (Mrs-X) - -### RPC/REST - - #950 `3d7e16e753` [RPC] require valid URL scheme on budget commands (Cave Spectre) - - #964 `a03fa6236d` [Refactor] Combine parameter checking of budget commands (Cave Spectre) - - #965 `b9ce433bd5` [RPC] Correct issues with budget commands (Cave Spectre) - -### Wallet - - #939 `37ad934ad8` [Wallet] Remove (explicitely) unused tx comparator (warrows) - - #971 `bbeabc4d63` [Wallet][zPIV] zc public spend parse crash in wallet startup. (furszy) - - #980 `8b81d8f6f9` [Wallet] Remove Bitcoin Core 0.8 block hardlinking (JSKitty) - - #982 `a0a1af9f78` [Miner] Don't create new keys when generating PoS blocks (random-zebra) - -### Test Suites - - #961 `2269f10fd9` [Trivial][Tests] Do not fail test when warnings are written to stderr (random-zebra) - - #974 `f9d4ee0b15` [Tests] Add Spork functional test and update RegTest spork key (random-zebra) - - #976 `12de5ec1dc` [Refactor] Fix stake age checks for regtest (random-zebra) - -### Miscellaneous - - #947 `6ce55eec2d` [Scripts] Sync github-merge.py with upstream (Fuzzbawls) - - #948 `4a2b4831a9` [Docs] Clean and re-structure the gitian-keys directory (Fuzzbawls) - - #949 `9e4c3576af` [Refactor] Remove all "using namespace" statements (warrows) - - #951 `fa40040f80` [Trivial] typo fixes (Cave Spectre) - - #986 `fdd0cdb72f` [Doc] Release notes update (Fuzzbawls) - - -## Credits - -Thanks to everyone who directly contributed to this release: -- Cave Spectre -- Chun Kuan Lee -- Fuzzbawls -- Isidoro Ghezzi -- JSKitty -- MarcoFalke -- Mrs-X -- Pieter Wuille -- Steven Roose -- Warrows -- furszy -- random-zebra - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/pivx-project-translations/), the QA team during Testing and the Node hosts supporting our Testnet. \ No newline at end of file diff --git a/doc/release-notes/release-notes-4.0.0.md b/doc/release-notes/release-notes-4.0.0.md deleted file mode 100644 index d9996ecd01fb7..0000000000000 --- a/doc/release-notes/release-notes-4.0.0.md +++ /dev/null @@ -1,575 +0,0 @@ -PIVX Core version *v4.0.0* is now available from: - -This is a new major version release, including various bug fixes and performance improvements, as well as updated translations. - -Please report bugs using the issue tracker at github: - - -Mandatory Update -============== - -PIVX Core v4.0.0 is a mandatory update for all users. This release contains new consensus rules and improvements that are not backwards compatible with older versions. Users will need to update their clients before enforcement of this update goes into effect. - -Update enforcement is currently scheduled to go into effect at the following time: - -``` -Mainnet: Sunday, January 5, 2020 12:00:00 AM GMT -``` - -Masternodes will need to be restarted once both the masternode daemon and the controller wallet have been upgraded. - -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/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux). - - -Compatibility -============== - -PIVX Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and later. - -Microsoft ended support for Windows XP on [April 8th, 2014](https://www.microsoft.com/en-us/WindowsForBusiness/end-of-xp-support), No attempt is made to prevent installing or running the software on Windows XP, you can still do so at your own risk but be aware that there are known instabilities and issues. Please do not report issues about Windows XP to the issue tracker. - -Apple released it's last Mountain Lion update August 13, 2015, and officially ended support on [December 14, 2015](http://news.fnal.gov/2015/10/mac-os-x-mountain-lion-10-8-end-of-life-december-14/). PIVX Core software starting with v3.2.0 will no longer run on MacOS versions prior to Yosemite (10.10). Please do not report issues about MacOS versions prior to Yosemite to the issue tracker. - -PIVX Core should also work on most other Unix-like systems but is not frequently tested on them. - - -Notable Changes -============== - -New Wallet UI -------------------- - -v4.0.0 introduces a completely new GUI for the wallet, designed and coded from the ground up by the [Krubit](https://krubit.com/) team. - -This new UI, aside from the overall design large implementation, includes user-focused improvements and features such as a brief introduction on first load, a FAQ section, one-click QRCode compatible receiving addresses, masternode creation wizard, dark and light themes, filterable staking charts, and much more. - -You can read more details about this extensive work in ([PR #954](https://github.com/PIVX-Project/PIVX/pull/954)) - -There are some legacy features that have not been included, however, notably the in-wallet block explorer and the governance page. The in-wallet block explorer was sorely outdated, and the governance page was a newer addition that will be seeing a return in a future version. - -Cold Staking -------------------- - -A brand new feature is being introduced with the release of v4.0.0: Cold Staking ([PR #955](https://github.com/PIVX-Project/PIVX/pull/955))! This feature allows a coin owner to keep coins in a "cold" (or locked) wallet whilst a "hot" wallet carries out the burden of staking those coins. - -This brings added security to coin owners as they are no longer required to use an unlocked or partially unlocked wallet (with the ability to spend coins anywhere) in order to gain staking rewards. Users who have chosen to store their coins on hardware devices such as a Ledger or Trezor1 can also gain staking rewards with those coins. - -A full technical writup is available on the [PIVX Wiki](https://github.com/PIVX-Project/PIVX/wiki/ColdStaking), and an initial video showcase is available on [YouTube](https://www.youtube.com/watch?v=utxB5TzAeXc). -A brief guide to setup cold staking with GUI and RPC is available [here](https://github.com/random-zebra/PIVX-Wiki/blob/master/User-Documentation/Cold-Staking-HowTo.md). - -1 Spending cold stakes from HW wallets currently available only for Ledger devices via [PET4L](https://github.com/PIVX-Project/PET4L) tool. - -Multi-Split Stake Splitting -------------------- - -Stake splitting has received a makeover and now supports splitting to more than two (2) outputs. [PR #968](https://github.com/PIVX-Project/PIVX/pull/968) introduced the change, which is controlled by the wallet's `stakesplitthreshold` setting. - -The default split threshold remains at 2000 PIV, and can be adjusted in the GUI's Settings page, or via the RPC `setstakesplitthreshold` command. - -For a real example, with a stake split threshold of 1500, and a UTXO of 4708.1557; the current stake split algorithm would break that into two outputs of approximately 2355.07785. With this new logic; it will be broken into 3 outputs instead of two; each sized 1570.0519 (4708.1557 input + 2 stake = 4710.1557 / 3 outputs = 1570.0519. - -The maximum number of outputs is currently capped at 48. Also, in relation to the new Cold Staking feature described above; the stake split threshold is set by the staker wallet and **NOT** the owner wallet. - -New Consensus Rules -------------------- - -The following consensus rule changes will be enforced on or shortly after block `2153200`. Note that **Upgrade Enforcement** (mentioned above) will occur prior to this block height. - -### V1 zPIV Spending (Public Spends Version 4) - -Since the discovery of a critical exploit within the libzerocoin library in early 2019, remaining legacy v1 zPIV have been un-spendable. We're happy to say that, once the new consensus rules are in effect, users will once again be able to spend their v1 zPIV with public spends version 4 ([PR #936](https://github.com/PIVX-Project/PIVX/pull/936)). - -As with the previous version 3 public spends introduced in core wallet version 3.3.0 (enabling the spending of v2 zPIV), version 4 spends will also be public. A full technical writeup is available on the [PIVX Wiki](https://github.com/PIVX-Project/PIVX/wiki/CoinRandomnessSchnorrSignature). - -### OP_CHECKCOLDSTAKEVERIFY and P2CS - -Cold staking introduces a new opcode, `OP_CHECKCOLDSTAKEVERIFY`, in the scripting language, and a new standard transaction type using it, named `P2CS` (Pay-To-Cold-Staking). A P2CS script is defined as follows: -``` -OP_DUP OP_HASH160 OP_ROT OP_IF OP_CHECKCOLDSTAKEVERIFY [HASH160(stakerPubKey] -OP_ELSE [HASH160(ownerPubKey)] OP_ENDIF OP_EQUALVERIFY OP_CHECKSIG -``` -`OP_CHECKCOLDSTAKEVERIFY` is used to ensure that the staker can only spend the output in a valid coinstake transaction (using the same P2CS script in the new output). - -### Time Protocol v2 - -[#PR1002](https://github.com/PIVX-Project/PIVX/pull/1002) introduces a new time protocol for the Proof-Of-Stake consensus mechanism, to ensure better efficiency, fairness and security. The time is now divided in 15-seconds slots and valid blocktimes are at the beginning of each slot (i.e. the block timestamp's seconds can only be `00`, or `15`, or `30` or `45`).
-The maximum future time limit is lowered from 3 minutes to 14 seconds and the past limit is set to the previous blocktime (i.e. a block can no longer have a timestamp earlier than its previous block).
-This means that, when looking for a valid kernel, each stakeable input can be hashed only once every 15 seconds (once per timeslot), and it is not possible to submit blocks with timestamp higher than the current time slot. This ultimately enables the removal of the "hashdrift" concept.
- -**NOTE:** Given the much stricter time constraints, a node's clock synchronization is required for P2P connections: the maximum time offset is 15 seconds and peers with a time drift higher than 30 seconds (in absolute value) will be outright disconnected. - - For advanced users, we recommend the setup of NTP clients and own servers. This will provide to your node a higher level of time accuracy and the best, time wise, synchronization with the peers in the network. - -### Block Version 7 - -[#PR1022](https://github.com/PIVX-Project/PIVX/pull/1022) defines Version 7 blocks, which remove the (now-unused) accumulator checkpoint from the block header. This results in an overall data reduction of ~256 bits from each block as well as the in-memory indexes. - -### New Network Message Signatures - -Layer 2 network messages (MN, Budget, Spork, etc) are now signed based on the hash of their **binary** content instead of their **string** representation ([#PR1024](https://github.com/PIVX-Project/PIVX/pull/1024)). - -### New SPORKS - -Two new SPORKS are introduced, `SPORK_17` ([#PR975](https://github.com/PIVX-Project/PIVX/pull/975)) and `SPORK_18` ([#PR995](https://github.com/PIVX-Project/PIVX/pull/995)).
-`SPORK_17` (off by default) is used to activate the [Cold Staking](#cold-staking) protocol. When this spork is off, no cold-staked block is accepted by the network and new delegations are rejected, but coin-owners are still able to spend previously created pay-to-cold-stake delegations. - -`SPORK_18` (off by default) is used to switch between Version 3 and [Version 4 Public Spends](#v1-zpiv-spending-public-spends-version-4). When this spork is active, only version 4 spends are accepted by the network. When it's not, only version 3 spends are accepted. - -RPC Changes --------------- - -### New options for existing wallet commands - -A new (optional) argument, `includeDelegated`, has been added to the following commands that allows these commands to include delegated coins/information in their operation: -- `getbalance` - Boolean (Default: True) -- `sendfrom` - Boolean (Default: False) -- `sendmany` - Boolean (Default: False) -- `listtransactions` - Boolean (Default: True) - -Additionally, a new (optional) argument, `includeCold`, has been added to the `listtransactions` command (Boolean - Default: True), which allows for filtering of cold-staker delegated transactions. - -### New return fields for existing commands - -The `validateaddress` command now includes an additional response field, `isstaking`, to indicate wither or not the specified address is a cold staking address. - -The `getwalletinfo` command now includes two additional response fields: -- `delegated_balance` - PIV balance held in P2CS contracts (delegated amount total). -- `cold_staking_balance` - PIV balance held in cold staking addresses. - -### Newly introduced commands - -The following new commands have been added to the RPC interface: -- `getnewstakingaddress` -- `delegatestake` -- `rawdelegatestake` -- `getcoldstakingbalance` -- `delegatoradd` -- `delegatorremove` -- `listcoldutxos` -- `liststakingaddresses` -- `listdelegators` - -Details about each new command can be found below. - -`getnewstakingaddress` generates a new cold staking address: -``` -getnewstakingaddress ( "account" ) - -Returns a new PIVX cold staking address for receiving delegated cold stakes. - -Arguments: -1. "account" (string, optional) The account name for the address to be linked to. if not provided, the default account "" is used. It can also be set to the empty string "" to represent the default account. The account does not need to exist, it will be created if there is no account by the given name. - -Result: -"pivxaddress" (string) The new pivx address -``` - -`delegatestake` sends a cold staking delegation transaction: -``` -delegatestake "stakingaddress" amount ( "owneraddress" fExternalOwner fUseDelegated fForceNotEnabled ) - -Delegate an amount to a given address for cold staking. The amount is a real and is rounded to the nearest 0.00000001 - -Requires wallet passphrase to be set with walletpassphrase call. - -Arguments: -1. "stakingaddress" (string, required) The pivx staking address to delegate. -2. "amount" (numeric, required) The amount in PIV to delegate for staking. eg 100 -3. "owneraddress" (string, optional) The pivx address corresponding to the key that will be able to spend the stake. - If not provided, or empty string, a new wallet address is generated. -4. "fExternalOwner" (boolean, optional, default = false) use the provided 'owneraddress' anyway, even if not present in this wallet. - WARNING: The owner of the keys to 'owneraddress' will be the only one allowed to spend these coins. -5. "fUseDelegated" (boolean, optional, default = false) include already delegated inputs if needed.6. "fForceNotEnabled" (boolean, optional, default = false) force the creation even if SPORK 17 is disabled (for tests). - -Result: -{ - "owner_address": "xxx" (string) The owner (delegator) owneraddress. - "staker_address": "xxx" (string) The cold staker (delegate) stakingaddress. - "txid": "xxx" (string) The stake delegation transaction id. -} -``` - -`rawdelegatestake` creates a raw cold staking delegation transaction without broadcasting it to the network: -``` -rawdelegatestake "stakingaddress" amount ( "owneraddress" fExternalOwner fUseDelegated ) - -Delegate an amount to a given address for cold staking. The amount is a real and is rounded to the nearest 0.00000001 - -Delegate transaction is returned as json object. -Requires wallet passphrase to be set with walletpassphrase call. - -Arguments: -1. "stakingaddress" (string, required) The pivx staking address to delegate. -2. "amount" (numeric, required) The amount in PIV to delegate for staking. eg 100 -3. "owneraddress" (string, optional) The pivx address corresponding to the key that will be able to spend the stake. - If not provided, or empty string, a new wallet address is generated. -4. "fExternalOwner" (boolean, optional, default = false) use the provided 'owneraddress' anyway, even if not present in this wallet. - WARNING: The owner of the keys to 'owneraddress' will be the only one allowed to spend these coins. -5. "fUseDelegated (boolean, optional, default = false) include already delegated inputs if needed. - -Result: -{ - "txid" : "id", (string) The transaction id (same as provided) - "version" : n, (numeric) The version - "size" : n, (numeric) The serialized transaction size - "locktime" : ttt, (numeric) The lock time - "vin" : [ (array of json objects) - { - "txid": "id", (string) The transaction id - "vout": n, (numeric) - "scriptSig": { (json object) The script - "asm": "asm", (string) asm - "hex": "hex" (string) hex - }, - "sequence": n (numeric) The script sequence number - } - ,... - ], - "vout" : [ (array of json objects) - { - "value" : x.xxx, (numeric) The value in btc - "n" : n, (numeric) index - "scriptPubKey" : { (json object) - "asm" : "asm", (string) the asm - "hex" : "hex", (string) the hex - "reqSigs" : n, (numeric) The required sigs - "type" : "pubkeyhash", (string) The type, eg 'pubkeyhash' - "addresses" : [ (json array of string) - "pivxaddress" (string) pivx address - ,... - ] - } - } - ,... - ], - "hex" : "data", (string) The serialized, hex-encoded data for 'txid' -} -``` - -`getcoldstakingbalance` returns the cold balance of the wallet: -``` -getcoldstakingbalance ( "account" ) - -If account is not specified, returns the server's total available cold balance. -If account is specified, returns the cold balance in the account. -Note that the account "" is not the same as leaving the parameter out. -The server total may be different to the balance in the default "" account. - -Arguments: -1. "account" (string, optional) The selected account, or "*" for entire wallet. It may be the default account using "". - -Result: -amount (numeric) The total amount in PIV received for this account in P2CS contracts. -``` - -`delegatoradd` whitelists a delegated owner address for cold staking: -``` -delegatoradd "addr" - -Add the provided address into the allowed delegators AddressBook. -This enables the staking of coins delegated to this wallet, owned by - -Arguments: -1. "addr" (string, required) The address to whitelist - -Result: -true|false (boolean) true if successful. -``` - -`delegatorremove` to remove previously whitelisted owner address: -``` -delegatoradd "addr" - -Add the provided address into the allowed delegators AddressBook. -This enables the staking of coins delegated to this wallet, owned by - -Arguments: -1. "addr" (string, required) The address to whitelist - -Result: -true|false (boolean) true if successful. -``` - -`listcoldutxos` lists all P2CS UTXOs belonging to the wallet (both delegator and cold staker): -``` -listcoldutxos ( nonWhitelistedOnly ) - -List P2CS unspent outputs received by this wallet as cold-staker- - -Arguments: -1. nonWhitelistedOnly (boolean, optional, default=false) Whether to exclude P2CS from whitelisted delegators. - -Result: -[ - { - "txid" : "true", (string) The transaction id of the P2CS utxo - "txidn" : "accountname", (string) The output number of the P2CS utxo - "amount" : x.xxx, (numeric) The amount of the P2CS utxo - "confirmations" : n (numeric) The number of confirmations of the P2CS utxo - "cold-staker" : n (string) The cold-staker address of the P2CS utxo - "coin-owner" : n (string) The coin-owner address of the P2CS utxo - "whitelisted" : n (string) "true"/"false" coin-owner in delegator whitelist - } - ,... -] -``` - -`liststakingaddresses` lists all cold staking addresses generated by the wallet: -``` -liststakingaddresses "addr" - -Shows the list of staking addresses for this wallet. - -Result: -[ - { - "label": "yyy", (string) account label - "address": "xxx", (string) PIVX address string - } - ... -] -``` - -`listdelegators` lists the whitelisted owner addresses -``` -listdelegators "addr" - -Shows the list of allowed delegator addresses for cold staking. - -Result: -[ - { - "label": "yyy", (string) account label - "address": "xxx", (string) PIVX address string - } - ... -] -``` - -Snapcraft Packages ------------------- - -For our linux users, in addition to the [Ubuntu PPA](https://launchpad.net/~pivx) repository, we are now offering a [Snap package](https://snapcraft.io/pivx-core) as quick way to install and update a PIVX wallet. - -Release versions are available via the `Stable` branch, and (for testing-only purposes) nightly builds are available in the `Beta` branch. - -Internal Miner/Staker Change --------------- - -The wallet's internal miner/staker is no longer prevented from running prior to having synced all the additional layer 2 (MN/Budget) data. Instead, mining/staking uses better logic to allow block creation without fully synced layer 2 data when the full data set wouldn't be required. - -In other words, try to stake a new block only if: - -- full layer 2 sync is complete -OR -- The spork list is synced and all three sporks (8,9 and 13) are **not** active. - -Faster Shutdown During Initial Loading --------------- - -Previously, if a user wanted to close/quit the wallet before it had finished its initial loading process, they would need to wait until that loading process actually completed before the wallet would fully close. - -Now, the new behavior is to gracefully close the wallet once the current step is complete. - -*v4.0.0* Change log -============== - -Detailed release notes follow. For convenience in locating the code changes and accompanying discussion, both the pull request and git merge commit are mentioned. - -### Core -- #643 `469d974519` [Crypto] Use stronger rand for key generation (warrows) -- #936 `12a6b704b6` [zPIV] PublicCoinSpend v4 - Coin Randomness Schnorr Signature (random-zebra) -- #955 `008b7938db` [Core][Script][Wallet][RPC][Tests] Cold Staking (random-zebra) -- #989 `6f645ce457` [DB] Db runtime error cleaning the variable that needs to be logged (furszy) -- #1000 `34e11dd5fa` [Core] Spork code overhaul (random-zebra) -- #1002 `5666184cc5` [PoS] Time Protocol v2 (random-zebra) -- #1022 `b5bede0661` remove accumulators checkpoint (random-zebra) -- #1025 `988ee3fe37` [Startup] Stop loading the wallet if shutdown was requested. (furszy) -- #1029 `0df20ddbab` [Startup][Refactor][Backport] Memory allocation fail handler + init step 1 refactored. (furszy) -- #1040 `01fe200d4a` [Bug] Fix GetDepthInMainChain returning 0 when tx is not in mempool (random-zebra) -- #1050 `adc74f737c` [Core] Prevent coinstakes from overpaying masternodes (random-zebra) -- #1063 `04834fff67` [Node] Remove a call to IsSuperMajority (warrows) -- #1066 `6a4bf7c42c` [Cleanup][Refactor]Main.cpp code cleanup. (furszy) -- #1067 `c947e534ee` [Node] Replace IsSuperMajority with height checks (warrows) -- #1070 `fbffae1b38` [Bug] Fix contextCheckBlock for the first block that it's a v1 block. (furszy) -- #1129 `a87bfc32a0` [Consensus] Define TestNet changeover block for PIVX v4.0 RC (random-zebra) -- #1134 `a4ded20de4` [Trivial] Remove a duplicate variable definition (warrows) -- #1191 `9a054eeba6` [Consensus] Define MainNet changeover block for PIVX v4.0 (random-zebra) -- #1197 `ad241150e9` [Trivial] Update copyright headers (Fuzzbawls) - -### GUI -- #954 `e815815fdc` [GUI] [Model] New Wallet UI (furszy) -- #997 `4d50ff33da` [Trivial][UI] MN screen (furszy) -- #998 `6380da7eb4` [Qt] Guard MN tab from possible missing TXs in masternode.conf (Fuzzbawls) -- #999 `c6567aec89` [UI] Send screen total amounts refresh after custom options cleaned (furszy) -- #1003 `a89f4e6603` [QT][Performance] Memory leak re creating the row object instead of re initialize it. (furszy) -- #1006 `ac523b24c2` [Trivial] Fix mnrow ifdef typo (Fuzzbawls) -- #1007 `39e8a03505` [Qt] Reintroduce networkstyle to title texts (Fuzzbawls) -- #1008 `91514a0326` [Qt] Don't set placeholder on QPlainTextEdit (Fuzzbawls) -- #1009 `e0178087c8` [QT] Dashboard chart left and right day range movement control buttons (furszy) -- #1012 `0d05b5381d` [Performance][Wallet][QT][Model] TransactionTableModel multi-thread initialization + tx filter sort speed improved. (furszy) -- #1014 `49f42e9a59` [GUI] Refresh coin control upon reopening (CryptoDev-Project) -- #1015 `17ef4163dc` [Qt] Update source strings (Fuzzbawls) -- #1016 `33182066ba` [GUI] Tx detail dialog (furszy) -- #1017 `8b6819a9d8` [GUI][Trivial] Remove hardcoded address. (Matias Furszyfer) -- #1018 `e264c77e63` [GUI] Update amounts when entry is removed from SendMultiRow (random-zebra) -- #1026 `968000bb33` [Cleanup] Prev 4.0 wallet UI files cleanup. (furszy) -- #1032 `d3b2969fff` [GUI] Dashboard chart map first segfault (furszy) -- #1033 `c04f442e4c` [GUI][Model][Wallet] Cold staking UI. (furszy) -- #1048 `1cb55b4822` [Qt] Make CoinControlTreeWidget focusable (Fuzzbawls) -- #1053 `6aaa531ec1` [GUI] Segfault for a bad cast of the parent in the escape key press event (furszy) -- #1054 `7c2cd32d6e` [UI] Guard a call to GetDepthInMainChain (warrows) -- #1055 `232cea5584` [Wallet] Create label for addresses generated via masternode wizard (CryptoDev-Project) -- #1057 `d4e6525410` [UI] Fix AA_EnableHighDpiScaling warning (Akshay) -- #1071 `297acac8d6` [UI] Settings options buttons hover css (furszy) -- #1072 `1e0cea53e8` [Qt] Update welcomecontentwidget.ui (Jeffrey) -- #1073 `64a90d717f` [Model][Backport] Remove mapWallet not needed call + stop treating coinbase differently (furszy) -- #1074 `54ff8bd3da` [UI] TransactionFilter do not invalidate filter if range is already set (furszy) -- #1075 `31e9f0fbde` [Model][UI] Receive dialog (furszy) -- #1076 `decac23124` [GUI] Decreasing the tooltip padding for #1076 windows issue. (furszy) -- #1083 `fba6d3cdac` [Qt] Hide option for 3rd party transaction URLs (Fuzzbawls) -- #1084 `7b3455acaa` [Qt] Show display unit option as text (Fuzzbawls) -- #1085 `a4d141fd1c` [Qt] Fixup topbar balance calculation (Fuzzbawls) -- #1099 `5d03160837` [GUI][Model][Performance] Dashboard (furszy) -- #1104 `97bea9cfc0` [Trivial][GUI] Fix typos in welcome widget (random-zebra) -- #1105 `e4e5df1018` [GUI] Fix bug in change wallet passphrase (random-zebra) -- #1109 `4771f6a7d7` [Trivial] [GUI] Customize Fee Dialog text change (NoobieDev12) -- #1112 `645854ad57` [Qt] Refresh coin control when re-opening from CS widget (Fuzzbawls) -- #1113 `b546151bc0` [Qt] Re-work settings restart and saving flow (Fuzzbawls) -- #1115 `12be3e2a8c` [Trivial] [GUI] Request Dialog typo fix (JSKitty) -- #1119 `6ceff8f97f` [GUI] Cold staking Warning for unconfirmed balance + stop multiple model updates (furszy) -- #1120 `0d04267c89` [GUI][BUG] Bad top padding on the dashboard nav icon in dark theme fix. (furszy) -- #1121 `0216fd3c8a` [GUI] Cold staking alert user if the owner address is not from the wallet (furszy) -- #1122 `641b1d6bbe` [GUI][Backport] Explicitly disable "Dark Mode" appearance on macOS (fanquake) -- #1123 `a4fb368d39` [GUI] Prevent worker constant creation and invalid removal (furszy) -- #1124 `bbb0125077` [GUI] Use QRegexValidator instead of the QDoubleValidator. (furszy) -- #1125 `c6e238ca4d` [GUI] Inform if open pivx.conf and/or backups folder fail. (furszy) -- #1126 `c910490c53` [BUG] Fix send transaction detail destinations (furszy) -- #1130 `c582cabbd3` [UI] Copy correct data from mninfo dialog (Akshay) -- #1131 `8ca5db691b` [Bug] URI read from file coded properly.. (furszy) -- #1132 `a34a7dfe1f` [Bug][GUI] Tx list row amount color changing invalidly. (furszy) -- #1133 `d159cb1878` [Bug][GUI] Topbar sync progressbar not expanding fixed. (furszy) -- #1139 `03b51c411d` [Qt] Fix segfault when running GUI client with --help or -? (Fuzzbawls) -- #1141 `01c517085b` [GUI][Model] isTestNetwork regtest correction. (furszy) -- #1142 `17ad5a2a61` [Bug] Fix segfault on GUI initialization for cold staker wallet (random-zebra) -- #1151 `da3bea5971` Rewording text under Change Wallet Passphrase (NoobieDev12) -- #1158 `7deae859f1` [BUG] Masternodes wizard (furszy) -- #1159 `1ae53d0a2a` [GUI][Trivial] Rewording of Error message when wallet is unlocked for staking only (NoobieDev12) -- #1160 `88ddd1a947` [GUI][Model] Do not re request passphrase when the wallet is unlocked. (furszy) -- #1161 `e4bfe3e9af` [GUI][Trivial] Custom change address (furszy) -- #1162 `1c23ea6a59` [Qt] Periodic make translate (Fuzzbawls) -- #1163 `474e2bc6b2` [GUI] Validate wallet password on enter key press (warrows) -- #1165 `c54dad3b9f` [GUI][Bug] Cold staking screen (furszy) -- #1166 `4cc04b0ba6` [Qt] properly copy IPv6 externalip MN info (Fuzzbawls) -- #1173 `8e42e03192` [GUI][Trivial] Remove every pushButton focus decoration property. (furszy) -- #1174 `b352e2d096` [GUI] Min cold staking amount in ColdStaking widget (random-zebra) -- #1178 `d7a929c6a8` [GUI][Bug] Cold staking screen (furszy) -- #1179 `7a33fe10d2` [Qt] Fix for dead link to wrong PIVX website (NoobieDev12) -- #1183 `60053d6786` [GUI][Trivial] Allow immediate typing in dialogs / tools widget (random-zebra) -- #1185 `682d54cd12` [GUI][Trivial] Make amount optional in staking address gen dialog (random-zebra) -- #1186 `0cc2976bbc` [GUI][Trivial] move caps lock warning in askpassphrase dialog (random-zebra) -- #1187 `0a2baa686d` [GUI][Trivial] Fix tx detail dialog expanding policy (random-zebra) -- #1188 `d5ed83896c` [GUI] Workaround to the OSX border-image pink stripes. (furszy) -- #1190 `129c4744ea` [GUI] Feature/Bug CoinControl Update on Open (Liquid369) -- #1192 `e52043b260` [GUI][Bug] Accept P2CS locked coins in coincontrol (random-zebra) -- #1193 `f49b0309a0` [GUI][Wallet] Allow spending of P2CS without coincontrol selection (random-zebra) -- #1194 `8854eace66` fix "total staking" amount (random-zebra) -- #1195 `ce5bc08988` [Qt] Update translations from transifex (Fuzzbawls) - -### P2P and Network Code -- #975 `9765a772b8` [Consensus] Define SPORK_17 (random-zebra) -- #995 `8f2217d2bd` [Consensus] Define SPORK_18 (random-zebra) -- #1001 `59f55d6a54` [Consensus] Remove Old message format in CMasternodeBroadcast (random-zebra) -- #1024 `98aa3fa438` [Consensus] New signatures for network messages (random-zebra) -- #1110 `f89f672847` [Masterndoes] Masternodes sync try locking cs_main when it looks for the tip (furszy) -- #1118 `3219d9b48c` [Sporks] Guard chainActive.Tip() and chainActive.Height() methods call. (furszy) -- #1128 `d6573e70c7` [Consensus] nTimeOffset warning for time protocol V2 (random-zebra) -- #1137 `4241574857` [Net] Protocol update enforcement for 70918 (random-zebra) -- #1138 `e0c49356ae` [Consensus] nTimeOffset warning addition (random-zebra) -- #1167 `fc4ffcf4af` [Trivial] Remove time offset warning when it gets back within range (random-zebra) -- #1177 `421cc1017b` [Network] Add SPORK 17 & 18 to the fMissingSporks flag + code reorg. (furszy) - -### Wallet -- #968 `47ccf45adb` [Staking][Wallet] Add Multi-Split functionality to stake output splitting (Cave Spectre) -- #970 `0f1764a3db` [Wallet] Various transaction handling improvements (warrows) -- #1030 `ed83481494` [Wallet][Startup][DB][Backport] Remove vchDefaultKey from wallet.h (furszy) -- #1031 `52aed66930` [Wallet] fix CreateZerocoinSpendTransaction with empty addressesTo (random-zebra) -- #1039 `41d19c106f` Fix OOM when deserializing UTXO entries with invalid length (random-zebra) -- #1043 `d1d0cb691a` [Wallet][Tests] Fix bug re-adding orphan coinstake's inputs to the wallet (random-zebra) -- #1056 `3ba3b0e244` [Wallet][Refactor] Updating ancient getbalanceXXX methods to a lambda call. (furszy) -- #1058 `18e23a49e7` [Wallet] Transaction IsEquivalentTo method backported + code cleanup. (furszy) -- #1064 `bfbbb6b30c` [Wallet][RPC] Diagnose unsuitable outputs in lockunspent() (random-zebra) -- #1065 `d605e528db` [Wallet] Unlock spent outputs (random-zebra) -- #1068 `59b45e6d33` [Wallet] Do not cache the credit amount if fUnspent is enabled. (random-zebra) -- #1069 `d6f9eff763` [Wallet] Enable miner with mnsync incomplete (random-zebra) -- #1116 `e4d7addbb7` [Wallet] Do not use p2cs outputs in the autocombine flow. (furszy) -- #1117 `8d425bdf0d` [Wallet][GUI][Model] Cold staking addresses contacts flow. (furszy) - -### Build System(s) -- #977 `ee9f6ca9da` [Build] CMake Improvements (Fuzzbawls) -- #979 `8ffc045f7d` [Compilation] Pass caught exceptions by reference (warrows) -- #990 `e7e31442e8` [Build] Fix wrong argument when verifying MacOS signatures (Mrs-X) -- #991 `4f3dd5ef66` [Build] Remove OpenSSL 1.0 check (warrows) -- #1010 `6ff12f70de` [Build] Fixup moc includes and generation (Fuzzbawls) -- #1013 `75b8ad2ae5` [Build] Clean up GUI dependency checking (Fuzzbawls) -- #1021 `899b4bd6a9` [Build] Use in-tree intermediary endian header (Fuzzbawls) -- #1023 `509d63526b` [Travis] Lower timeout for the full test suite (warrows) -- #1027 `569ac5e5e0` [Cleanup] Get rid of compiler warnings (random-zebra) -- #1036 `adfcb46149` [Build] Add SnapCraft Builds (Fuzzbawls) -- #1042 `8efd696b3f` [TravisCI] Run CMake tests earlier (Fuzzbawls) -- #1045 `a761323178` [travis] Update .travis.yml (Warrows) -- #1052 `dd62f3f66a` [CMake] Fix macOS Boost detection (Fuzzbawls) -- #1127 `c7bc2e1288` [Deployment] Windows taskbar icon pixelated fix. (furszy) -- #1136 `0f92bf8e17` [Build] Include full version in release file names (fanquake) -- #1157 `04480012aa` [Travis] Increase functional tests reserved time (Warrows) -- #1180 `4f4da456de` [Build] Add random-zebra gitian GPG public key fingerprint (random-zebra) - -### RPC Interface -- #1111 `fcb0db8321` [Trivial] Fix help text for delegatorremove (Akshay) - -### Testing System(s) -- #981 `92de4b81b3` [Tests] Add RPC budget regression tests (Fuzzbawls) - -### Documentation -- #1051 `9ea7519026` [Doxygen] Generate Todo list (Fuzzbawls) -- #1176 `eb1eb4d2c6` [Docs][Utils] Overhaul gitian build docs/script (Fuzzbawls) -- #1181 `78034c937b` [Docs] 4.0.0 release notes (Fuzzbawls) - -## Credits - -Thanks to everyone who directly contributed to this release: -- Akshay -- Alex Morcos -- Andrew Chow -- Ben Woosley -- Cave Spectre -- Cory Fields -- CryptoDev-Project -- Dag Robole -- Fuzzbawls -- Gregory Solarte -- JSKitty -- James Hilliard -- Jeffrey -- Jonas Schnelli -- Liquid369 -- MarcoFalke -- Matias Furszyfer -- Matt Corallo -- Mrs-X -- NoobieDev12 -- Pieter Wuille -- Warrows -- Wladimir J. van der Laan -- cevap -- dexX7 -- fanquake -- furszy -- practicalswift -- presstab -- random-zebra - -As well as everyone that helped translating on [Transifex](https://www.transifex.com/projects/p/pivx-project-translations/), the QA team during Testing and the Node hosts supporting our Testnet. \ No newline at end of file diff --git a/doc/release-notes/v2.1.0.md b/doc/release-notes/v2.1.0.md new file mode 100644 index 0000000000000..b0e0d7a2706b6 --- /dev/null +++ b/doc/release-notes/v2.1.0.md @@ -0,0 +1,66 @@ +# ZENZO Core v2.1.0 + +## Summary +This major upgrade brings a large set of new features to ZENZO Core; Users can now: +- see the USD value of their available ZNZ directly within ZENZO Core. +- use the `burn` command to permanently embed custom data on-chain, or simply burn ZNZ from the circulating supply. +- use the `getblockchaininfo` or `getinfo` commands to see the total "burned" ZNZ. +- see burns within the GUI, displayed by a coloured "ZENZO flame" icon, the TX list can also be 'filtered' by burns. +- use the `reloadmasternodeconfig` command to hot-reload their masternode.conf file, without restarting their wallet. + +Additionally, this release contains a major patch for upstream exploit: CVE-2018-17145, also known as [INVDoS](https://invdos.net/), ZENZO Core is also more stable, crash-resistant and hardened by a multitude of bugfixes. + +## How to Upgrade +_ZENZO Core v2.1.0 is a **non-consensus-breaking** update. In other words, you are not required to upgrade, but it is highly recommended. The reasons it is strongly encouraged for users to upgrade is because it will further secure your wallet with bugfixes and exploit patches, alongside new features that the ZENZO Forge requires to function._ + +Steps to Upgrade: +1. Shutdown ZENZO Core +2. (Optional) Delete "zenzo-qt" from your device +3. [Download ZENZO Core v2.1.0](https://github.com/ZENZO-Ecosystem/ZENZO-Core/releases) +4. Open "zenzo-qt" +5. **Upgrade Complete!** + + +--- +Starting with the latest changes (ending with the oldest), each commit has its own category. +# Changelog + +**Highlighted** changes are deemed important / notable to the average user. +- [GUI] *(JSKitty)* - **Add currency displays (USD first)** (Your USD equivalent in ZNZ is now displayed in-wallet!) +- [GUI] *(YuurinBee)* - Add Color Burn Images +- [GUI] *(JSKitty)* - Add Burned transaction type +- [GUI] *(JSKitty)* - Autocomplete help RPC commands +--- +- [QT] *(JSKitty)* - Guard wallet pointer in getEncryptionStatus +- [QT] *(JSKitty)* - Guard isStakingStatusActive pointers +--- +- [RPC] *(JSKitty)* - Allow zero-value burns for data relays +- [RPC] *(JSKitty)* - **Add ability to hot-reload Masternode config** (Masternodes can be added/removed without restarts!) +- [RPC] *(JSKitty)* - **Add scam protection to wallet commands** (The Debug Console is now safer for the average user!) +- [RPC] *(JSKitty)* - Ensure burn data doesnt exceed maximum relay +- [RPC] *(JSKitty)* - **Add burn RPC with optional string (OP_RETURN)** (Anyone can easily embed permanent data on-chain!) +- [RPC] *(JSKitty)* - **Guard RPC server during warm-up** (ZENZO Core won't crash anymore when the Forge is opened before it!) +--- +- [Core] *(JSKitty)* - Update Checkpoints +--- +- [DB] *(JSKitty)* - Simplify burn calculations and include TX fees +- [DB] *(JSKitty)* - **Introduce Burned ZNZ tracking** (You can now track the total amount of burned ZNZ, scarcity FTW!) +--- +- [Net] *(JSKitty)* - **Patch CVE-2018-17145** (The [INVDoS exploit](https://invdos.net/) has been patched in ZENZO Core!) +--- +- [Misc] *(JSKitty & YuurinBee)* - **Rename Sats/PIV/Duffs to Zen(s)** (The smallest denomination of a ZNZ is a ZEN!) +--- +- [Tests] *(JSKitty)* - Rebrand and update Travis + test script files +--- +- [Trivial] *(YuurinBee)* - Copyright & RPC Text Update +- [Trivial] *(JSKitty)* - Remove unused GetSeeSaw() + +--- +# Credits +(Project Maintainer & Core Developer) **JSKitty** + +(Graphical Designer) **YuurinBee** + +(Release Advisor & Developer) **Liquid369** - [DogeC](https://dogec.io/) + +(Upstream Patches) **PIVX Core Team**