PIVX Development Update
Week 1, June 2020
This update covers the PIVX GitHub development for the beginning of May 2020 through to 1st week of June 2020 in addition to any extra announcements or news provided by the core development team.
For those that would like to keep up to date on our core development as they happen, the best way is to monitor the #important-updates and #github-updates channel in the PIVX Discord.
Apologies for the delayed update…but better late than never…and our GitHub was on fire as usual which I’m sure many already do keep close tabs on. 😉
As always, the past month has been another action packed month for PIVX core development, with many new PRs being submitted and committed for 4.2, more new privacy protocol work appearing on our public branch, many bug fixes, and even a new wallet release!
The most important news is that a new mandatory 4.1.1 core wallet update was released near the end of May. This was released to prevent a masternode payment bug that was inadvertently introduced with 4.1 release as per the recent report. Core developers quickly identified and coded the fix, performed a successful segregated network testing, then released the wallet. This was a mandatory update due to a consensus update, and the network enforcement was successfully activated on Friday, June 5, 2020 9:00:00 PM GMT. All exchanges and services that we know of were notified of the update, and many have confirmed upgrading. TL;DR: If you are still running 4.1.0 or older, please upgrade to 4.1.1 and make sure you are on the right chain by comparing your latest block / hash to the block explorers.
Our next major PIVX core wallet scheduled for release is 4.2. Currently, a lot of back-ports from Bitcoin are being merged into master for better performance and security. Also, many usability improvements and fixes in both GUI and RPC form are being added which many users will certainly appreciate. Going by the sheer number things that are being added to its milestone, it looks as though 4.2 is going to be a hugely improved wallet that will set a much better foundation for the Q4-scheduled 5.0 Privacy Edition release!
Oh, and for anyone with minted zPIV in their wallets, make sure to convert them back to PIV asap as support for them will be removed later this year with 5.0!
Major Development Highlights & Reminders
PIVX Core Wallet 4.1.1 Hotfix Release – MANDATORY
New mandatory PIVX core wallet 4.1.1 update was released. The protocol bump cut-over successfully occurred on Friday, June 5, 2020 9:00:00 PM GMT as scheduled.
If you are still running 4.1.0 or older, make sure to upgrade to 4.1.1 and check that you are on the right chain by comparing your latest block / hash to the majority of block explorers. If you need further assistance, please join our discord!
Convert your zPIV back to PIV ASAP!
PublicCoinSpend v4 (PR #936) function has been incorporated into the 4.x wallet and so it is now possible for anyone with any version of zPIV to spend them back as PIV. However, as per the recent Road to 5.0 announcement, the support for zPIV as we know it will cease once 5.0 (Sapling Update) is released. So we urge everyone with zPIV to convert them back to PIV as soon as possible and request assistance in PIVX Discord #support channel if you run into any issues or simply have questions.
Cold Staking is Active!
Cold Staking (PR #955) has been active in mainnet since January 2020. So all users are now able to cold stake their coins if the required steps have been executed. We have created a basic how-to guide here. Also, some non-custodial (thus safe) cold staking services have started popping up so that is another option if you feel comfortable with their service levels. Feel free to ask what they are in the PIVX community.
Complete GitHub Activity
(May 5, 2020 – June 5, 2020)
Excluding merges, 8 authors have pushed 120 commits to master and 127 commits to all branches. On master, 424 files have changed and there have been 10,177 additions and 7,615 deletions.
2 Releases published
38 Pull requests merged
- #1587 [Backport] Shut down if trying to connect a corrupted block
- #1548 [Cleanup][GUI] Remove zPIV faqs
- #1652 [GUI] cs widget: minor usability improvements
- #1660 [RPC] Change btc to PIV in help text
- #1645 [Core] Implement accurate memory accounting for mempool
- #1659 Few compiler warnings fixed.
- #1641 [Core] New fee estimation code
- #1630 [Refactoring] Lightweight abstraction of boost::filesystem
- #1633 [Core] Bitcoin 0.12-0.14 serialization improvements
- #1629 [DB] Bitcoin 0.12-0.14 dbwrapper improvements
- #1640 [P2P][RPC] Rework addnode behaviour
- #1644 [GUI] Fix invalid Destination toString encoding.
- #1643 Fix Destination wrapper segfault on copy constructor
- #1626 [GUI][Bug] Notify transaction creation failure reason
- #1634 [Core] prevector: named union and defaults vars initialization
- #1638 [Net] Fix masking of irrelevant bits in address groups
- #1547 [Refactor] Define constant string variable for currency unit
- #1564 Abstract out CTransaction-specific signing into SignatureCreator
- #1534 [Backport] Preemptively catch a few potential bugs
- #1533 [Backport] Make connect=0 disable automatic outbound connections.
- #1516 [GUI] MacOS fix open files with no default app.
- #1593 Prepare for non-Base58 addresses [Step 1]
- #1557 [Core] Prevector
- #1488 CCrypter using secure allocator vector.
- #1554 [Core] Big endian support
- #1486 Replace OpenSSL AES with ctaes-based version
- #1531 [Backport] Implement accurate UTXO cache size accounting
- #1618 [P2P] Do not set extra flags for unfiltered DNS seed results
- #1625 [Doc] save historical release notes for 4.1.0 and reset template
- #1610 [GUI][UX] Add accept/close keyboard controls to all dialogs
- #1616 [P2P] Enforce expected outbound services
- #1414 uint256 to arith_uint256 migration (Second step).
- #1604 [Refactor][GUI] Set static texts in .ui files + add missing tr()
- #1607 [QT] Add password mismatch warnings
- #1568 [Trivial] Unused Image Removal & Readme Revisions
- #1542 [Net] Add and document network messages in protocol.h
- #1579 [Net] Use SeedSpec6’s rather than CAddress’s for fixed seeds
- #1601 [GUI] Tor state missing translation
13 Pull requests proposed
- #1611 [GUI][Bug] CoinControl payAmounts and nBytes calculation
- #1612 [GUI] CoinControlDialog: fix SelectAll / UnselectAll
- #1623 [GUI][Trivial] Change Custom fee amount when Recommended fee is selected
- #1631 Miner: removing 2017 invalid outputs check .
- #1646 [Net]: Turn net structures into dumb storage classes
- #1647 [Core] MemPool package tracking and limits
- #1650 [Tests] Benchmarking Framework
- #1653 [GUI] Reuse collateral UTXOs in MnWizard
- #1657 Remove unneeded cs_main lock in checkBalanceChanged.
- #1662 [Cleanup] Remove obsolete multisig code
- #1663 [Wallet][RPC] FundTransaction – fundrawtransaction
- #1664 [Wallet] ATMP failure in CommitTransaction
- #1665 New upgrade structure.
10 Issues closed
- #1305 [GUI] Remove zPIV FAQ sections.
- #1596 [Feature request] Add warning if invalid address is entered into Owner address field
- #1654 [BUG][CLI] pivx-cli gettxout’s error message mentions “btc” instead of “piv”
- #1648 Can’t run 4.1 GUI on Mac Mojave (10.14.6)
- #1619 [Feature request] Better feedback to the users when Transaction creation failed error appears
- #1317 [Refactor] Define constant string variable for currency unit
- #1606 [Bug] Edit Address Label dialog does not accept ENTER keyboard button press
- #1605 [Feature request] Prevent going next step if initial wallet encryption passphrases do not match
- #1582 Syncing fails at block 2308853 with cold staking error
- #1505 4.1 Feature Freeze
22 Issues created
- #1658 [GUI][Trivial] :: Language for the dismiss help box says `Exit` – confusing?
- #1655 PIVX 4.1.0 failed to open on Mac 10.11.6.
- #1651 4.1.0, crash on MacOS, pointer being freed was not allocated
- #1649 [BUG] [CLI] notify options don’t work
- #1642 [BUG] [RPC] getbalance <account> get the info from getreceivedbyaccount <account>
- #1639 [GUI][Trivial] Box outside of the PIVX address stays red when it’s empty
- #1637 [GUI] Removal of contact label text
- #1636 [Feature request] Add/remove address label in real time
- #1635 [GUI][Feature Request] Add search option to My Addresses list
- #1632 missing Zpiv in my 4.1 wallet
- #1628 [RFC] Remove zPIV controls from the GUI
- #1627 [Bug] Wallet changing language after restarting depending on OS language settings
- #1624 [Bug] Transaction date issue still happening
- #1622 [Bug] Wallet returns Restart required when it’s not needed
- #1621 [GUI][Trivial] Unselected Custom shows lower fee than possibly accepted
- #1620 [Bug] Unable to deselect UTXOs under Masternode address through Coin Control in Tree mode
- #1617 [Bug][GUI] Add/Edit Label button isn’t showing as expected
- #1615 [Bug][GUI][Trivial] Set language isn’t showing
- #1614 [Bug] Request payment with 0.00 PIV
- #1613 Cannot install 4.1.0 on MacOS 10.13.6
- #1609 [GUI][Cold Staking] Oddities with Cold Staking Coin Control
- #1608 [Feature request] Allow spending Cold Staking Contracts for MN creation
Major Development Targets
(subject to change and is never a complete list)
Q3 2020 – PIVX Core Wallet 4.2.0 release
Q4 2020 – PIVX Core Wallet 5.0 release (with zk-SNARKs Privacy)
Please also check our roadmap page for more info on what else is planned.
Also, there are many other 2020 developments in the works at a project level such as a brand new website, logo refresh, and more. So 2020 is going to be a great year!
Want to contribute?
Anyone and everyone is welcome to contribute to our code on GitHub, and they will all go through the same process of multi-dev peer review and will be merged if it gets enough ACKs!
Language Translation Needed
We also welcome all translators who can assist in making our wallets multi-lingual! From now on, our core wallets will only include support for languages that are at least 80% translated on Transifex; so any extra assistance in this area would be greatly appreciated! https://www.transifex.com/pivx-project/