Skip to content

Releases: PIVX-Project/PIVX

v3.2.0

31 Mar 01:30
v3.2.0
ab66c1a
Compare
Choose a tag to compare

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 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, an...

Read more

v3.1.1

10 Jul 23:23
v3.1.1
c6073dd
Compare
Choose a tag to compare

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

03 May 04:56
v3.1.0.2
4ba0e7a
Compare
Choose a tag to compare

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

01 May 21:46
v3.1.0
4b3b8a9
Compare
Choose a tag to compare

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...

Read more

v3.0.6

30 Nov 17:40
v3.0.6
f3bd6a9
Compare
Choose a tag to compare

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 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.

v3.0.5.1

18 Nov 00:55
6b25e84
Compare
Choose a tag to compare

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 )
  • 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. If using the snapshot, please carefully follow the instructions on the snapshot page.

v3.0.5

13 Nov 17:01
23b9c99
Compare
Choose a tag to compare

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

09 Nov 16:06
9ed4253
Compare
Choose a tag to compare
Pre-release

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

29 Oct 18:43
v3.0.4
c792ac1
Compare
Choose a tag to compare

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

25 Oct 05:49
v3.0.4rc3
1c203d5
Compare
Choose a tag to compare
v3.0.4rc3 Pre-release
Pre-release
v3.0.4rc3