PIVX Core version 3.4.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.
Please report bugs using the issue tracker at github: https://github.com/pivx-project/pivx/issues
PIVX Core v3.4.0 is a mandatory update for all users. This release contains new consensus rules and improvements that are not backwards compatible with older versions. Users will need to update their clients before enforcement of this update goes into effect.
Update enforcement goes into effect at the following times:
Testnet: Tuesday, August 27, 2019 7:00:00 PM GMT Mainnet: Friday, August 30, 2019 4:00:00 PM GMT
Masternodes will need to be restarted once both the masternode daemon and the controller wallet have been upgraded.
How to Upgrade
If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux).
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.
Internal (Core) Changes
Version 2 Stake Modifier
A new 256-bit modifier for the proof of stake protocol has been defined,
It is computed at every block, by taking the hash of the modifier of previous block along with the coinstake input.
To meet the protocol, the PoS kernel must comprise the modifier of the previous block.
Changeover enforcement of this new modifier is set to occur at block
1214000 for testnet and block
1967000 for mainnet.
Block index batch writing
Block index writes are now done in a batch. This allows for less frequent disk access, meaning improved performances and less data corruption risks.
Eliminate needless key generation
The staking process has been improved to no longer request a new (unused) key from the keypool. This should reduce wallet file size bloat as well as slightly improve staking efficiency.
Fix crash scenario at wallet startup
A program crash bug that happens when the wallet.dat file contains a zc public spend transaction (input) and the user had removed the chain data has been fixed.
Removal of zero-fee transaction option
The long term viability of acceptable zero-fee transaction conditions is in need of review. As such, we are temporarily disabling the ability to create zero-fee transactions.
Show latest block hash and datadir information tab
A QoL addition has been made to the Information tab of the UI's console window, which adds the display of both the current data directory and the latest block hash seen by the client.
Require valid URL scheme when preparing/submitting a proposal
submitbudget RPC commands now require the inclusion of a canonical URL scheme as part of their
url parameter. Strings that don't include either
https:// will be rejected.
The 64 character limit for the
url field is inclusive of this change, so the use of a URL shortening service may be needed.
Testing Suite Changes
Functional testing readability
Several changes have been introduced to the travis script in order to make the output more readable. Specifically it now lists tests left to run and prints the output of failing scripts.
Build System Changes
OpenSSL configure information
When the configure step fails because of an unsupported OpenSSL (or other library), it now displays more information on using an override flag to compile anyways. The long term plan is to ensure that the consensus code doesn't depend on OpenSSL in any way and then remove this configure step and related override flag.
3.4.0 Change log
Detailed release notes follow. This overview includes changes that affect behavior, not code moves, refactors and string updates. For convenience in locating the code changes and accompanying discussion, both the pull request and git merge commit are mentioned.
ac8cb7376d[PoS] Stake Modifier V2 (random-zebra)
454c487424[Staking] Modify miner and staking thread for efficiency (Cave Spectre)
9c5a300624Modify GetNextWorkRequired to set Target Limit correctly (Cave Spectre)
7ab673f6fa[Staking] Prevent potential negative out values during stake splitting (Cave Spectre)
0ac0116ae4[Refactor] Move ThreadStakeMinter out of net.cpp (Fuzzbawls)
924ec4f6dd[Node] Do all block index writes in a batch (Pieter Wuille)
92aa6c2daa[Build] Bump master to 3.3.99 (pre-3.4) (Fuzzbawls)
918852cb90[Travis] Show functional tests progress (warrows)
2c9f624455[Build] Add info about '--with-unsupported-ssl' (Warrows)
P2P Protocol and Network Code
fa1dbab247[Net] Protocol update enforcement for 70917 and new spork keys (Fuzzbawls)
e47fe3d379[Qt] Add blockhash + datadir to information tab (Mrs-X)
3d7e16e753[RPC] require valid URL scheme on budget commands (Cave Spectre)
a03fa6236d[Refactor] Combine parameter checking of budget commands (Cave Spectre)
b9ce433bd5[RPC] Correct issues with budget commands (Cave Spectre)
37ad934ad8[Wallet] Remove (explicitely) unused tx comparator (warrows)
bbeabc4d63[Wallet][zPIV] zc public spend parse crash in wallet startup. (furszy)
8b81d8f6f9[Wallet] Remove Bitcoin Core 0.8 block hardlinking (JSKitty)
a0a1af9f78[Miner] Don't create new keys when generating PoS blocks (random-zebra)
2269f10fd9[Trivial][Tests] Do not fail test when warnings are written to stderr (random-zebra)
f9d4ee0b15[Tests] Add Spork functional test and update RegTest spork key (random-zebra)
12de5ec1dc[Refactor] Fix stake age checks for regtest (random-zebra)
6ce55eec2d[Scripts] Sync github-merge.py with upstream (Fuzzbawls)
4a2b4831a9[Docs] Clean and re-structure the gitian-keys directory (Fuzzbawls)
9e4c3576af[Refactor] Remove all "using namespace" statements (warrows)
fa40040f80[Trivial] typo fixes (Cave Spectre)
fdd0cdb72f[Doc] Release notes update (Fuzzbawls)
Thanks to everyone who directly contributed to this release:
- Cave Spectre
- Chun Kuan Lee
- Isidoro Ghezzi
- Pieter Wuille
- Steven Roose
As well as everyone that helped translating on Transifex, the QA team during Testing and the Node hosts supporting our Testnet.