Skip to content

Releases: PIVX-Project/PIVX

v3.0.4rc1

21 Oct 15:20
v3.0.4rc1
550d4d6
Compare
Choose a tag to compare
v3.0.4rc1 Pre-release
Pre-release

This Release will only be used for approx 24 hours, and should be used by those who want to help test.

v3.0.2

19 Oct 19:21
v3.0.2
2f1d5b6
Compare
Choose a tag to compare

PIVX Core version 3.0.2 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

Recommended Update

PIVX Core v3.0.2 is a recommended, semi-mandatory update for all users. This release contains transaction creation bug fixes for zPIV spends, automint calculation adjustments, and other various updates/fixes.

zPIV spending requires this update.

How to Upgrade

If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux).

Compatibility

PIVX Core is extensively tested on multiple operating systems using
the Linux kernel, macOS 10.8+, and Windows Vista and later.

Microsoft ended support for Windows XP on April 8th, 2014,
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.

Notable Changes

Auto Wallet Backup

In addition to the automatic wallet backup that is done at each start of the client, a new automatic backup function has been added that will, by default, create a backup of the wallet file during each zPIV mint operation (zPIV spends which re-mint their change are also included in this). This functionality is controlled by the -backupzpiv command-line option, which defaults to 1 (enabled, auto-backup).

Users that wish to prevent this behavior (not recommended) can pass -backupzpiv=0 at the command-line when starting the client, or add backupzpiv=0 to their pivx.conf file.

zPIV Automint Calculations

A bug in the automint calculations was made apparent on mainnet when block times exceeded expectations, resulting in zPIV mint transactions that were in an unconfirmed state to still be treated as if they had never been minted. This caused automint to effectively mint more than what was intended.

zPIV Spending Fix

The size of zPIV spend transactions is knowingly larger than normal transactions, and while this was expected, a much stricter check against the scriptsig size is used for mainnet, causing the transactions to be rejected by the mempool, and thus not being packaged into any blocks.

zPIV Transaction Recovery

Due to the aforementioned issue with zPIV spending, users may find that their attempted spends are now conflicted and zPIV balances are not represented as expected. "Recovery" of these transactions can be done using the following methods:

  1. GUI:

    The Privacy tab has the Reset and Rescan buttons that can be used to restore these mints/spends from a state of being marked as unavailable.

  2. RPC:

    The RPC commands resetspentzerocoin and resetmintzerocoin are the command-line counterparts to the above, and can be used by users that do not use the GUI wallet.

RPC Changes

The bip38decrypt command has had it's parameter order changed to be more consistent with it's counterpart. The command now expects the PIVX address as it's first parameter and the passphrase as it's second parameter.

Bip38 Compatibility With 3rd Party Tools

The in-wallet bip38 encryption method was leaving the final 4 bytes of the encrypted key blank. This caused an incompatibility issue with 3rd party tools like the paper wallet generators that could decrypt bip38 encrypted keys. Cross-tool compatibility has now been restored.

3.0.2 Change log

Detailed release notes follow. This overview includes changes that affect
behavior, not code moves, refactors and string updates. For convenience in locating
the code changes and accompanying discussion, both the pull request and
git merge commit are mentioned.

RPC and other APIs

  • #275 059aaa9 [RPC] Change Parameter Order of bip38decrypt (presstab)

P2P Protocol and Network Code

  • #286 85c0f53 [Main] Change sporkDB from smart ptr to ptr. (presstab)
  • #292 feadab4 Additional checks for double spending of zPiv serials. (presstab)

Wallet

  • #271 5e9a086 [Wallet] Remove unused member wallet in UnlockContext inner class (Jon Spock)
  • #279 e734010 Add -backupzpiv startup flag. (presstab)
  • #280 fdc182d [Wallet] Fix zPiv spending errors. (presstab)
  • #282 310f216 [Wallet] Count pending zPiv balance for automint. (presstab)
  • #290 004d7b6 Include both pending and mature zerocoins for automint calculations (presstab)

GUI

  • #268 bc63f24 [GUI/RPC] Changed bubblehelp text + RPC startmasternode help text fixed (Mrs-X)
  • #269 5466a9b Check if model is valid before using in transactionView (Jon Spock)
  • #270 bd2328e [Qt] Make lock icon clickable to toggle wallet lock state (Fuzzbawls)
  • #273 f31136e [Qt] Fix UI tab order and shortcuts (Mrs-X)
  • #287 74a1c3c [Qt] Don't allow the Esc key to close the privacy tab (Fuzzbawls)
  • #291 cb314e6 [Qt] zPiv control quantity/amount fixes (rejectedpromise)

Miscellaneous

  • #266 2d97b54 [Scripts] Fix location for aarch64 outputs in gitian-build.sh (Fuzzbawls)
  • #272 958f51e [Minting] Replace deprecated auto_ptr. (presstab)
  • #276 03f14ba Append BIP38 encrypted key with an 4 byte Base58 Checksum (presstab)
  • #288 2522aa1 Bad CBlockHeader copy. (furszy)

Credits

Thanks to everyone who directly contributed to this release:

  • Fuzzbawls
  • Jon Spock
  • Mrs-X
  • furszy
  • presstab
  • rejectedpromise
  • Warrows

As well as everyone that helped translating on Transifex.

v3.0.0

07 Oct 03:57
v3.0.0
1269ce8
Compare
Choose a tag to compare

PIVX Core version 3.0.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.0.0 is a mandatory update for all users. This release contains new consensus rules and improvements that are not backwards compatible with older versions. Users will have a grace period of one week to update their clients before enforcement of this update is enabled.

Users updating from a previous version after the 13th of October will require a full resync of their local blockchain from either the P2P network or by way of the bootstrap.

How to Upgrade

If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux).

Compatibility

PIVX Core is extensively tested on multiple operating systems using
the Linux kernel, macOS 10.8+, and Windows Vista and later.

Microsoft ended support for Windows XP on April 8th, 2014,
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

Zerocoin (zPIV) Protocol

At long last, the zPIV release is here and the zerocoin protocol has been fully implemented! This allows users to send transactions with 100% fungible coins and absolutely zero history or link-ability to their previous owners.

The Zerocoin protocol allows user to convert (mint) their PIV to zerocoins, which we call zPIV. When zPIV are converted back to PIV there is no trail associated with the coins being sent, such as who originally minted those coins. Essentially the only thing the receiver of the zPIV transaction will see is that it came from the zerocoin protocol.

zPIV Denominations

zPIV comes in specific denominations of 1, 5, 10, 50, 100, 500, 1000, and 5000. A denomination is a similar concept to paper currency, where you can hold a $100 bill but there is no available $99 bill for you to hold.

Other implementations of the zerocoin protocol only allow for spending of one denomination/zerocoin at a time. The PIVX implementation of zerocoin allows users to spend any amount of zPIV they would like (with certain limitations). If a user held two denominations of 5 and they send 7.75 to a merchant, the wallet will automatically grab the two denominations of 5 and then issue 2.25 PIV in change to the spender. There is currently a limit of up to 6 individual zerocoin coins that can be combined into a spend, where each coin could be a different or similar denomination

The PIVX zerocoin implementation is structured in such a way that denominations aren't needed to be known by the average user.

Fees

zPiv transactions require more computation and disk space than typical PIVX transactions, and as such require a higher transaction fee in order to prevent network spam. Fees are only charged when minting zPiv, each minted denomination is charged a flat rate of 0.01 Piv. zPiv spends are not charged a transaction fee unless the change is minted into zPiv, see the Minting Change section for details on fees for zPiv spends with minted change.

Converting PIV to zPIV (zPIV Mint)

GUI - Conversion from PIV to zPIV can be done using the Privacy Dialog in the QT wallet. Enter the amount of PIV you would like to convert and click Mint Zerocoin.

RPC - Conversion from PIV to zPIV can be done using the mintzerocoin command.

Automint - The PIVX wallet is set to convert 10% of the wallets available PIV to zPIV automatically. This can be adjusted in the GUI within the Options dialog, which allows the preferred % to be adjusted as well as the ability to set the preferred zPIV denomination that will be minted. Automint is set to be triggered when additional blocks are added to the block chain and is programmed not to convert your coins all at once.

Automint can be disabled by adding enablezeromint=0 to the wallet configuration file. The preferred mint % and denomination can also be set by the configuration file using zeromintpercentage=<n> and preferredDenom=<n>.

Converting zPIV to PIV (zPIV Spend)

Redeeming zPIV is done by converting it back to PIV. With the 3.0.0 software release, users are not able to send zPIV to each other directly in an atomic fashion.

GUI - Conversion from zPIV to PIV can be done using the Privacy Dialog in the QT wallet. Enter a PIVX address that you would like to Pay To, enter the amount of PIV the receiver should be sent, click Spend Zerocoin.

RPC - Conversion from zPIV to PIV can be done using the spendzerocoin command.

Advanced Use & Privacy Considerations

Security Level - When spending zPIV, a user is prompted to enter a Security Level choosing from 1-100. In an indirect way, the Security Level parameter allows the user to choose how many coins to obfuscate their transaction with.

A Security Level of 1 for example would take all of the minted coins in the blockchain before your mint was added to the blockchain, and would then add any coins that were minted within the next 10 blocks as well. A Security Level of 2 would do the same thing, except add the next 20 blocks worth of mints. A Security Level of 100 will add the maximum amount of mints up to the current end of the blockchain.

The higher the Security Level, the more computation and time it will take to spend. Although it takes longer, a level of 100 is recommended for transactions that need maximum anonymity.

Minting Change - The PIVX implementation of the zerocoin protocol also allows the spender to choose how to receive their leftover change from a Spend transaction. For maximum anonymity it is recommended that the spender choose to receive the change in zPIV, which prevents situations where change from a zPIV spend that is redeemed in PIV is accidentally mixed with the rest of the users PIV, thus linking transactions back to a PIVX address.

Since the lowest denomination of zPIV is 1, and a fee is required to mint zPIV, in most situations a high fee will be paid to mint change. The fee is the remainder of the change that cannot be converted back to zPIV. For example this would mean a spending a denomination of 10 that yields change of 6.75 in change, would issue zPIV denominations of 5 and 1 back to the sender with the remaining 0.75 that is unmintable being contributed as a fee.

zPIV Control
Similar to the concept of Coin Control in the QT wallet, zPIV Control allows users to select exactly which zPIV mints they would like to spend. This gives a flexibility to choose which denominations can be picked for a spend that wouldn't otherwise be available.

Tor Service Integration Improvements

Integrating with Tor is now easier than ever! Starting with Tor version 0.2.7.1 it is possible, through Tor's control socket API, to create and destroy 'ephemeral' hidden services programmatically. PIVX Core has been updated to make use of this.

This means that if Tor is running (and proper authorization is available), PIVX Core automatically creates a hidden service to listen on, without manual configuration. PIVX Core will also use Tor automatically to connect to other .onion nodes if the control socket can be successfully opened. This will positively affect the number of available .onion nodes and their usage.

This new feature is enabled by default if PIVX Core is listening, and a connection to Tor can be made. It can be configured with the -listenonion, -torcontrol and -torpassword settings. To show verbose debugging information, pass -debug=tor.

3.0.0 Change log

Detailed release notes follow. This overview includes changes that affect
behavior, not code moves, refactors and string updates. For convenience in locating
the code changes and accompanying discussion, both the pull request and
git merge commit are mentioned.

Broad Features

  • #264 15e84e5 zPIV is here! (Fuzzbawls Mrs-X Presstab Spock PIVX)

P2P Protocol and Network Code

  • #242 0ecd77f [P2P] Improve TOR service connectivity (Fuzzbawls)

GUI

  • #251 79af8d2 [Qt] Adjust masternode count in information UI (Mrs-X)

Miscellaneous

  • #258 c950765 [Depends] Update Depends with newer versions (Fuzzbawls)

Credits

Thanks to everyone who directly contributed to this release:

  • Fuzzbawls
  • Jon Spock
  • Mrs-X
  • PIVX
  • amirabrams
  • presstab

As well as everyone that helped translating on Transifex.

v2.3.1

20 Sep 03:55
v2.3.1
ff53751
Compare
Choose a tag to compare

PIVX Core version 2.3.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

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.

Notable Changes

RPC changes

Update of RPC commands to comply with the forthcoming RPC Standards PIP

Old Command New Command Notes
masternode count getmasternodecount
masternode list listmasternodes
masternodelist listmasternodes renamed
masternode connect masternodeconnect
masternode current getcurrentmasternode
masternode debug masternodedebug
masternode enforce removed
masternode outputs getmasternodeoutputs
masternode status getmasternodestatus
masternode list-conf listmasternodeconf added optional filter
masternode genkey createmasternodekey
masternode winners listmasternodewinners
masternode start startmasternode see notes below
masternode start-alias startmasternode see notes below
masternode start-<mode> startmasternode see notes below
masternode create removed - not implemented
masternode calcscore listmasternodescores
--- --- ---
mnbudget prepare preparebudget see notes below
mnbudget submit submitbudget see notes below
mnbudget vote-many mnbudgetvote see notes below
mnbudget vote-alias mnbudgetvote see notes below
mnbudget vote mnbudgetvote see notes below
mnbudget getvotes getbudgetvotes
mnbudget getinfo getbudgetinfo see notes below
mnbudget show getbudgetinfo see notes below
mnbudget projection getbudgetprojection
mnbudget check checkbudgets
mnbudget nextblock getnextsuperblock
startmasternode Command

This command now handles all cases for starting a masternode instead of having multiple commands based on the context. Command arguments have changed slightly to allow the user to decide wither or not to re-lock the wallet after the command is run. Below is the help documentation:

startmasternode "local|all|many|missing|disabled|alias" lockwallet ( "alias" )

 Attempts to start one or more masternode(s)

Arguments:
1. set         (string, required) Specify which set of masternode(s) to start.
2. lockWallet  (boolean, required) Lock wallet after completion.
3. alias       (string) Masternode alias. Required if using 'alias' as the set.

Result: (for 'local' set):
"status"     (string) Masternode status message

Result: (for other sets):
{
  "overall": "xxxx",     (string) Overall status message
  "detail": [
    {
      "node": "xxxx",    (string) Node name or alias
      "result": "xxxx",  (string) 'success' or 'failed'
      "error": "xxxx"    (string) Error message, if failed
    }
    ,...
  ]
}

Examples:
> pivx-cli startmasternode "alias" true "my_mn"
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "startmasternode", "params": ["alias" true "my_mn"] }' -H 'content-type: text/plain;' http://127.0.0.1:51473/
preparebudget & submitbudget Commands

Due to the requirement of maintaining backwards compatibility with the legacy command, these two new commands are created to handle the preparation/submission of budget proposals. Future intention is to roll these two commands back into a single command to reduce code-duplication. Paramater arguments currently remain unchanged from the legacy command equivilent.

mnbudgetvote Command

This command now handles all cases for submitting MN votes on a budget proposal. Backwards compatibility with the legacy command(s) has been retained, with the exception of the vote-alias case due to a conflict in paramater type casting. A user running mnbudget vote-alias will be instructed to instead use the new mnvote command. Below is the full help documentation for this new command:

mnbudgetvote "local|many|alias" "votehash" "yes|no" ( "alias" )

Vote on a budget proposal

Arguments:
1. "mode"      (string, required) The voting mode. 'local' for voting directly from a masternode, 'many' for voting with a MN controller and casting the same vote for each MN, 'alias' for voting with a MN controller and casting a vote for a single MN
2. "votehash"  (string, required) The vote hash for the proposal
3. "votecast"  (string, required) Your vote. 'yes' to vote for the proposal, 'no' to vote against
4. "alias"     (string, required for 'alias' mode) The MN alias to cast a vote for.

Result:
{
  "overall": "xxxx",      (string) The overall status message for the vote cast
  "detail": [
    {
      "node": "xxxx",      (string) 'local' or the MN alias
      "result": "xxxx",    (string) Either 'Success' or 'Failed'
      "error": "xxxx",     (string) Error message, if vote failed
    }
    ,...
  ]
}

Examples:
> pivx-cli mnbudgetvote "local" "ed2f83cedee59a91406f5f47ec4d60bf5a7f9ee6293913c82976bd2d3a658041" "yes"
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "mnbudgetvote", "params": ["local" "ed2f83cedee59a91406f5f47ec4d60bf5a7f9ee6293913c82976bd2d3a658041" "yes"] }' -H 'content-type: text/plain;' http://127.0.0.1:51473/
getbudgetinfo Command

This command now combines the old mnbudget show and mnbudget getinfo commands to reduce code duplication while still maintaining backwards compatibility with the legacy commands. Given no parameters, it returns the full list of budget proposals (mnbudget show). A single optional parameter allows to return information on just that proposal (mnbudget getinfo). Below is the full help documentation:

getbudgetinfo ( "proposal" )

Show current masternode budgets

Arguments:
1. "proposal"    (string, optional) Proposal name

Result:
[
  {
    "Name": "xxxx",               (string) Proposal Name
    "URL": "xxxx",                (string) Proposal URL
    "Hash": "xxxx",               (string) Proposal vote hash
    "FeeHash": "xxxx",            (string) Proposal fee hash
    "BlockStart": n,              (numeric) Proposal starting block
    "BlockEnd": n,                (numeric) Proposal ending block
    "TotalPaymentCount": n,       (numeric) Number of payments
    "RemainingPaymentCount": n,   (numeric) Number of remaining payments
    "PaymentAddress": "xxxx",     (string) PIVX address of payment
    "Ratio": x.xxx,               (numeric) Ratio of yeas vs nays
    "Yeas": n,                    (numeric) Number of yea votes
    "Nays": n,                    (numeric) Number of nay votes
    "Abstains": n,                (numeric) Number of abstains
    "TotalPayment": xxx.xxx,      (numeric) Total payment amount
    "MonthlyPayment": xxx.xxx,    (numeric) Monthly payment amount
    "IsEstablished": true|false,  (boolean) Established (true) or (false)
    "IsValid": true|false,        (boolean) Valid (true) or Invalid (false)
    "IsValidReason": "xxxx",      (string) Error message, if any
    "fValid": true|false,         (boolean) Valid (true) or Invalid (false)
  }
  ,...
]

Examples:
> pivx-cli getbudgetinfo
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getbudgetinfo", "params": [] }' -H 'content-type: text/plain;' http://127.0.0.1:51473/

Masternode network protocol layer reporting

The results from the listmasternodes and getmasternodecount commands now includes details about which network protocol layer is being used (IPv4, IPV6, or Tor).

2.3.1 Change log

Detailed release notes follow. This overview includes changes that affect
behavior, not code moves, refactors and string updates. For convenience in locating
the code changes and accompanying discussion, both the pull request and
git merge commit are mentioned.

RPC and other APIs

  • #239 e8b92f4 [RPC] Make 'masternode status' more verbose (Mrs-X)
  • #244 eac60dd [RPC] Standardize RPC Commands (Fuzzbawls)

P2P Protocol and Network Code

  • #248 0d44ca2 [core] fix payment disagreements, reduce log-verbosity (Mrs-X)

Miscellaneous

  • #240 1957445 [Debug Log] Increase verbosity of error-message (Mrs-X)
  • #241 #249 b60118b 7405e31 Nullpointer reference fixed (Mrs-X)

Credits

Thanks to everyone who directly contributed to this release:

  • Fuzzbawls
  • Mrs-X
  • amirabrams

As well as everyone that helped translating on Transifex.

v2.3.0

07 Aug 03:31
v2.3.0
3ef8346
Compare
Choose a tag to compare

PIVX Core version 2.3.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 v2.3.0 is a mandatory update for all users. This release contains validation and security improvements that are not backwards compatible with older versions. Users will have a grace period of no less than two weeks to update their clients before enforcement of this update is enabled.

How to Upgrade

If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux).

Compatibility

PIVX Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.8+, and Windows Vista and later.

Microsoft ended support for Windows XP on April 8th, 2014, No attempt is made to prevent installing or running the software on Windows XP, you can still do so at your own risk but be aware that there are known instabilities and issues. Please do not report issues about Windows XP to the issue tracker.

PIVX Core should also work on most other Unix-like systems but is not frequently tested on them.

Notable Changes

RPC changes

masternode command

The masternode RPC command has been re-worked to ease it's usage and return valid JSON in it's results. The following is an overview of the changed command parameters:

Command Parameter Changes
budget Removed (did nothing)
count The optional "mode" paramater has been removed. Command now always outputs full details in JSON format.
current Result fields changed: IP:Port removed, vin renamed to txhash
list-conf Result is now an array of objects, instead of an object of objects
outputs Result is now an array of objects instead of a list of n objects
status Added additional fields for txhash, outputidx, netaddr, and message
winners Result is now an array of objects instead of a list of n objects. See below
list Remove all optional "modes" and standardized the results. Note: masternode list is the same as masternodelist. See below

For the winners parameter, the results are now in a standard JSON format as follows:

[
  {
    nHeight: n,           (int) block height
    winner: {
        address: addr,    (string) PIVX MN Address,
        nVotes: n,        (int) Number of votes for winner,
    }
  },
  ...
]

In the case of multiple winners being associated with a single block, the results are in the following format (the winner object becomes an array of objects):

[
  {
    nHeight: n,           (int) block height,
    winner: [
      {
        address: addr,    (string) PIVX MN Address,
        nVotes: n,        (int) Number of votes for winner,
      },
      ...
    ]
  },
  ...
]

For the list (aka masternodelist) parameter, the various "modes" have been removed in favor of a unified and standardized result format. The result is now an array of objects instead of an object of objects. Further, the individual objects now have a standard JSON format. The result format is as follows:

[
  {
    "rank": n,         (numeric) Masternode rank (or 0 if not enabled)
    "txhash": hash,    (string) Collateral transaction hash
    "outidx": n,       (numeric) Collateral transaction output index
    "status": s,       (string) Status (ENABLED/EXPIRED/REMOVE/etc)
    "addr": addr,      (string) Masternode PIVX address
    "version": v,      (numeric) Masternode Protocol version
    "lastseen": ttt,   (numeric) The time in seconds since epoch (Jan 1 1970 GMT) the masternode was last seen
    "activetime": ttt, (numeric) The time in seconds since epoch (Jan 1 1970 GMT) masternode has been active
    "lastpaid": ttt,   (numeric) The time in seconds since epoch (Jan 1 1970 GMT) masternode was last paid
  },
  ...
]

mnbudget command

An additional parameter has been added to mnbudget to allow a controller wallet to issue per-MN votes. The new parameter is vote-alias and it's use format is as follows:

mnbudget vote-alias <proposal-hash> <yes|no> <alias>

All fields are required to successfully vote.

walletpassphrase command

CLI users that are staking their coins will now have the option of unlocking the wallet with no re-lock timeout. Similar to using 9999999 as the timeout, the walletpassphrase command now accepts 0 as a timeout to indicate that no re-locking should occur based on elapsed time.

Usage: walletpassphrase <passphrase> 0 <true|false>

The third parameter indicates if the wallet should be unlocked for staking and anonymization only (true), or to allow send operations (false, full unlock).

ZeroMQ (ZMQ) Notifications

pivxd can now (optionally) asynchronously notify clients through a ZMQ-based PUB socket of the arrival of new transactions and blocks. This feature requires installation of the ZMQ C API library 4.x and configuring its use through the command line or configuration file. Please see docs/zmq.md for details of operation.

All Masternodes List GUI Removal

With the standardization and reformatting of the masternode list (masternodelist) RPC command, there is no real use case to keep the full list of masternodes in the GUI. This GUI element causes a great deal of extra overhead, even when it is not being actively displayed. The removal of this list has also proven to resolve a number of linux-based errors

Note that the GUI list of masternodes associated with a controller wallet remains intact.

SPV Client Support

PIVX Core now enables bloom filters by default to support SPV clients like mobile wallets. This feature can be disabled by using the -peerbloomfilters option on startup.

2.3.0 Change log

Detailed release notes follow. This overview includes changes that affect
behavior, not code moves, refactors and string updates. For convenience in locating
the code changes and accompanying discussion, both the pull request and
git merge commit are mentioned.

RPC and other APIs

  • #179 a64fa3d [RPC] Allow infinite unlock (Mrs-X)
  • #183 dc77b86 [RPC] Add proposal name to removal log (Mrs-X)
  • #189 6dd8146 [RPC] Add missing 'vote-alias' implementation (Mrs-X)
  • #195 aee05fe [ZMQ] ZMQ integration for PIVX (Mrs-X)
  • #211 b8c110b [RPC] Refactor & JSONify results from masternode command(s) (Fuzzbawls)
  • #201 f0e87b1 [RPC] Add active/incative flag to getstakingstatus RPC call (Mrs-X)

Configuration and command-line options

  • #180 16b8601 [Wallet] Add parameter interaction between -disablewallet and -staking (Aaron Miller)
  • #208 5f494c4 [Qt] Fix segfault when running with -help (Fuzzbawls)
  • #193 ac7590b [Output] Reformat help messages (Fuzzbawls)
  • #230 aa47fa4 [Output] Update default value for -peerbloomfilters in help (Fuzzbawls)

Wallet

  • #192 283cf3b [Trivial] Pre-release warning message fixed. (Mrs-X)
  • #169 05c9a75 Add IsNull and SetNull interfaces to uint256 (Jon Spock)
  • #198 d45c869 Update EXT_COIN_TYPE according to BIP44 (Jon Spock)

P2P Protocol and Network Code

  • #219 d2c3fdf [P2P] Enable Bloom filter and add new nService for light clients. (furszy)
  • #234 ed99e7b [Consensus/Net] Ignore newly activated MNs in ranking/seesaw (Mrs-X Fuzzbawls presstab)

GUI

  • #200 bb1f255 [UI] Improved unlock usability (Mrs-X)
  • #207 7a41f46 [Qt] Adjust size of splash screen image. (Fuzzbawls)
  • #206 9c675ee [Qt] Remove the All Masternodes UI tab/list (Fuzzbawls)
  • #220 b80bc29 [Qt] Add "NODE_BLOOM" and "NODE_BLOOM_WITHOUT_MN" to guiutil (Fuzzbawls)
  • #225 02209ec [Qt] Add autocomplete to Qt client's debug console (Fuzzbawls)
  • #233 2921a4d [Qt] Enable support for Qt's HighDpiScaling (Fuzzbawls)

Tests and QA

  • #191 3a778c3 [Tests] Fix the unit test suite for use with PIVX (Fuzzbawls)
  • #122 7d135a1 [Utils] updated netmagic/port for linearize script (Satoshi Ninja)

Miscellaneous

  • #231 af0aa68 [Utils] Fix update-translations.py to allow % end of string (Fuzzbawls)
  • #175 8727f1c [Docs] Reformat main README.md (Fuzzbawls)
  • #213 ddd8994 [Trivial] Reduce debug.log spam for masternode messages (Fuzzbawls)

Credits

Thanks to everyone who directly contributed to this release:

  • Aaron Miller
  • Fuzzbawls
  • Mrs-X
  • PIVX
  • Satoshi Ninja
  • Jon Spock
  • furszy
  • presstab

As well as everyone that helped translating on Transifex.

v2.2.1

05 May 06:54
v2.2.1
c23ceb4
Compare
Choose a tag to compare

PIVX Core version 2.2.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

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.

Notable Changes

Block Data Corruption

Additional startup procedures have been added to fix corrupted blockchain databases.
The majority of users that are experiencing #106 (ConnectBlock() assertion on startup)
that have tested the new wallet have reported that their corrupt blockchain has
successfully been repaired. The new code will automatically detect and repair the
blockchain if it is able to.

If users still experience corruptions with the new wallet and it is not fixed
with the new startup procedures, it is suggested that they try using the
-forcestart startup flag which will bypass the new procedures altogether, and
in rare cases allow the wallet to run. If the database is not fixed by either
the automatic procedures or the -forcestart flag, the user should resync the
blockchain.

Additional progress has been made to prevent the wallet crashes that are causing
the corrupted databases, for example removing the Trading Window (explained below)
and fixing several other minor memory leaks that were inherited from the version
of Bitcoin that PIVX was forked from.

RPC Changes

  • Exporting or dumping an addresses' private key while the wallet is unlocked for
    anonymization and Staking only is no longer possible.

  • A new command (getstakingstatus) has been added that returns the internal conditions
    for staking to be activated and their status.

  • KeePass integration has been removed for the time being due to various inefficiencies
    with it's code.

Trading Window Removed

The Bittrex trading window in the GUI wallet was problematic with it's memory
handling, often leaking, and was overall an inefficient use of resources in it's
current implementation. A revised multi-exchange trading window may be implemented
at a later date.

2.2.1 Change log

Detailed release notes follow. This overview includes changes that affect
behavior, not code moves, refactors and string updates. For convenience in locating
the code changes and accompanying discussion, both the pull request and
git merge commit are mentioned.

RPC and other APIs

  • #130 ccb1526 [RPC] Add getstakingstatus method
  • #138 4319af3 [RPC] Require password when using UnlockAnonymizeOnly
  • #142 6b5cf7f [RPC] Remove Keepass code due to Valgrind warnings

Block and Transaction Handling

  • #146 bce67cb [Wallet] Look at last CoinsView block for corruption fix process
  • #154 1b3c0d7 [Consensus] Don't pass the genesis block through CheckWork

P2P Protocol and Network Code

  • #168 ac912d9 [Wallet] Update checkpoints with v2.2 chain
  • #162 0c0d080 Remove legacy Dash code IsReferenceNode
  • #163 96b8b00 [P2P] Change alert key to effectively disable it

GUI

  • #131 238977b [Qt] Adds base CSS styles for various elements
  • #134 f7cabbe [Qt] Edit masternode.conf in Qt-wallet
  • #135 f8f1904 [Qt] Show path to wallet.dat in wallet-repair tab
  • #136 53705f1 [Qt] Fix false flags for MultiSend notification when sending transactions
  • #137 ad08051 [Qt] Fix Overview Page Balances when receiving
  • #141 17a9e0f [Qt] Squashed trading removal code
  • #151 0409b12 [Qt] Avoid OpenSSL certstore-related memory leak
  • #165 0dad320 [Qt] More place for long locales

Miscellaneous

  • #133 fceb421 [Docs] Add GitHub Issue template and Contributor guidelines
  • #144 e4e68bc [Wallet] Reduce usage of atoi to comply with CWE-190
  • #152 6a1de07 [Trivial] Use LogPrint for repetitive budget logs
  • #157 41fdeaa [Budget] Add log for removed budget proposals
  • #166 d37b4aa [Utils] Add ExecStop= to example systemd service
  • #167 a6becee [Utils] makeseeds script update

Credits

Thanks to everyone who directly contributed to this release:

  • Aaron Miller
  • Fuzzbawls
  • Mrs-X
  • Spock
  • presstab

As well as everyone that helped translating on Transifex.

v2.2.0

19 Apr 06:19
v2.2.0
996160a
Compare
Choose a tag to compare

Important notes about v2.2.0 release

  • Mandatory update, all users will need to update their client. A resync is not required.
  • Syncing should be much quicker. The strict databasing requirement have been relaxed because code has been added that fixes most corruption issues.
  • Budget system will now work and the enforcement spork will be turned on.
  • Masternode payment system will now work and the enforcement spork will be turned on.

SHA1 HASHES:

pivx-2.2.0-aarch64-linux-gnu.tar.gz
6a993640d8dee30f38d5d2e4989daa85e865f1e9

pivx-2.2.0-arm-linux-gnueabihf.tar.gz
3156d459f3930077cc611f5e56e9f8e70ebb4ac7

pivx-2.2.0-i686-pc-linux-gnu.tar.gz
d3e852aace6c2cb4e664f5c2a284d8d8f0d0ea2e

pivx-2.2.0-x86_64-linux-gnu.tar.gz
82a70f028b962396e7e6eb3788b92dcbaa3f60a8

pivx-2.2.0-osx-unsigned.dmg
60eb4b917062a671f59e362630ae3506c1b63016

pivx-2.2.0-osx64.tar.gz
03e76f8f43509b46ebf98df46895a8c95eb202c0

pivx-2.2.0-win32-setup-unsigned.exe
9d3b8179cd2b23348565feaa2006b9538b8951ec

pivx-2.2.0-win32.zip
60943ae32f8e2e4fb73d84d5464a01582258d026

pivx-2.2.0-win64-setup-unsigned.exe
3d089aa7f23a7d20744475a686b395a4f9496627

pivx-2.2.0-win64.zip
1ca1217f46dfe7093d84e8a101a8c0a1d98bd3f6

Verify them at https://md5file.com/calculator

v2.1.7

10 Apr 21:57
Compare
Choose a tag to compare

v2.1.7

  • Stability Fixes
  • Fix Re-Index
  • UI Transaction Sorting Update
  • Multisend Fix
  • Checkpoint added
  • Update Translations

SHA-256 HASHES

pivx-2.1.7-aarch64-linux-gnu.tar.gz d5594959642d47b6894db4141ea9c16b47e3163918c35e2ebe15d1b858d04659

pivx-2.1.7-arm-linux-gnueabihf.tar.gz c662d7ce5bf0f3932f7f8320dafbe9d512760b8112aab07ceca549ada28f483a

pivx-2.1.7-i686-pc-linux-gnu.tar.gz 46a9073d9b1c1b5eef190734df344196a0cc3b86d2336d9e309991b83f8dace3

pivx-2.1.7-osx-unsigned.dmg 155442966f76a76103d6433dc1ae3eb38840f71b4eef60858cdbae859668ceda

pivx-2.1.7-osx64.tar.gz ec07341cf522ef5c479c50011495ff665334c6b7d9850fba73925892a26a61eb

pivx-2.1.7-win32-setup-unsigned.exe 9e8b994762f8ab80c50cc3a6f3866ae32562237683aa1b2d0e13a07f474b8fe6

pivx-2.1.7-win32.zip b43e3979e4f13abadd9a1eb28e4e4325bf2140939743913259cb8d622617bdeb

pivx-2.1.7-win64-setup-unsigned.exe 9ee62c7c122d392e526db03969187d2e9a244ef3fa85ba1a0ae2f276110f5a13

pivx-2.1.7-win64.zip 184cd35501afdd32ce5bb318135905afe440805531e2b2b15682658e9a203458

pivx-2.1.7-x86_64-linux-gnu.tar.gz 4ed904da9fa939463fc3e505011d02343ecba3650418f7add9e508797b55f1de

pivx-cli bcdef8e9159d9d0e5abf47c2b665eb96cbc30d72c31147cd159fb574f8887bbb

pivxd d0e306c5e639ca0a4d0a21b1a2f379cc2024fccb1549c5c9d2c50a1d89c90055

These SHA-256 Hashes can be verified here. https://md5file.com/calculator

v2.1.6

13 Mar 15:01
Compare
Choose a tag to compare

v2.1.6

Updated DNS Seed Nodes to help with connection issues.

v2.1.5

12 Mar 00:29
v2.1.5
Compare
Choose a tag to compare

v2.1.5

  1. Rpi wallet now has Static Qt binary!
  2. autocombinerewards feature - Automatically combines masternode reward once spendable into a single input.
  3. Network enhancements - Increase outbound connections.
  4. BIP38 tool now supports more characters.
  5. Icons changed to non-transparent icon for better visibility.
  6. Multisend now can filter between staking and masternode rewards (soon). Also some bugs addressed.
  7. Wallet crashing with certain blockchain corruption has been prevented.
  8. Lots of updates for OS X build.
  9. In-Wallet Blockexplorer! (still needs Styling)
  10. Added Fallback Seed Nodes - You no longer need to add initial addnodes lines to pivx.conf!
  11. Lots more minor updates (readme, copyright etc) and bug fixes.