Releases: PIVX-Project/PIVX
v3.2.0
PIVX Core version 3.2.0 is now available from: https://github.com/pivx-project/pivx/releases
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: https://github.com/pivx-project/pivx/issues
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, 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. 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”, 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, 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.
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 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.
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
or0
) that determines wither or not pre-computation should be activated at runtime (default value is to activate,1
).-precomputecachelength
is a numeric value between500
and2000
that tells the precompute thread how many blocks to include during each pass (default is1000
).
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, an...
v3.1.1
PIVX Core version 3.1.1 is now available from: https://github.com/pivx-project/pivx/releases
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: https://github.com/pivx-project/pivx/issues
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,
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.
❗❗❗ MacOS 10.13 High Sierra ❗❗❗
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 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.
v3.1.0.2
PIVX Core version 3.1.0.2 is now available from: https://github.com/pivx-project/pivx/releases
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 release as information will not be duplicated here.
Please report bugs using the issue tracker at github: https://github.com/pivx-project/pivx/issues
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, 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.
❗❗❗ MacOS 10.13 High Sierra ❗❗❗
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, the QA team during Testing and the Node hosts supporting our Testnet.
v3.1.0
PIVX Core version 3.1.0 is now available from: https://github.com/pivx-project/pivx/releases
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: https://github.com/pivx-project/pivx/issues
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,
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.
❗❗❗ MacOS 10.13 High Sierra ❗❗❗
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 3.1.0 or higher. New features in this release will require the use of zPIV v2, zPIV minted on this wallet release 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. In order to take advantage of zPIV staking, you must mint new zPIV v2 and wait for at least 200 confirmations before that zPIV is considered valid for staking.
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 = <directory / full path>
- zpivbackuppath = <directory / full path>
- 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-<year>-<month>-<day>-<hour>-<minute>-<second>
- If zPIV backup, auto generated name is
wallet-autozpivbackup.dat-<year>-<month>-<day>-<hour>-<minute>-<second>
- If path set to file, backup will be named
<filename>.dat
- walletbackupthreshold enables the user to select the maximum count of backup files to be written before overwriting existing backups.
Example:
- -backuppath=/<mynewdir>/
- -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.
/<mynewdir>/
wallet.dat-2018-04-20-00-04-00
2.
/<mynewdir>/
wallet.dat-2018-04-20-00-04-00
wallet.dat-2018-04-21-04-20-00
3.
/<mynewdir>/
wallet.dat-2018-04-22-00-20-04
wallet.dat-2018-04-21-04-20-00
4.
/<mynewdir>/
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...
v3.0.6
PIVX Core version 3.0.6 is now available from:
https://github.com/pivx-project/pivx/releases
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:
https://github.com/pivx-project/pivx/issues
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,
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.
❗❗❗ MacOS 10.13 High Sierra ❗❗❗
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 forobfuscation
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.
v3.0.5.1
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 yourpivx.conf
file (you can figure out the location of yourpivx.conf
here ) - After starting the wallet, remove
reindexaccumulators=1
from yourpivx.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. If using the snapshot, please carefully follow the instructions on the snapshot page.
v3.0.5
PIVX Core version 3.0.5 is now available from:
https://github.com/pivx-project/pivx/releases
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:
https://github.com/pivx-project/pivx/issues
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.
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,
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.
❗❗❗ MacOS 10.13 High Sierra ❗❗❗
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.
libzerocoin exploit patch - prerelease
This release is temporary and will have limited (if any) support provided. This release patches an exploit that was recently discovered in libzerocoin, a 3rd party library that is used by all cryptocurrencies that have zerocoins. This temporary release will filter out any malicious/exploited zerocoin transactions that occur beyond block 895400. If you are on a blockchain beyond 895400 that includes exploited transactions, this wallet will likely fail on load with a message about a corrupted database. This should be able to be fixed using the reindex feature ./pivx-qt -reindex=1
If you are not comfortable with temporary releases, or are confused, the best course of action will be to shutdown your wallet, backup your data, and wait for an official release.
Most importantly backup your data. With proper backups, you will never need to worry about losing coins.
Also to be noted for this release is that all zpiv transactions have been temporarily disabled. While the exploit has been addressed we will wait to re-enable zpiv transactions once we can get a majority of nodes to use this or a future version of the code
v3.0.4
PIVX Core version 3.0.4 is now available from:
https://github.com/pivx-project/pivx/releases
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:
https://github.com/pivx-project/pivx/issues
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,
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.
❗❗❗ MacOS 10.13 High Sierra ❗❗❗
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.
v3.0.4rc3
v3.0.4rc3