PIVX Development Update
Week 1, May 2020
This (slightly late) update covers the PIVX GitHub development for the beginning of April 2020 through to 1st week of May 2020 in addition to any extra announcements or news provided by the core development team.
To clarify, 4.1 is a non-mandatory update. So you don’t have to upgrade if you don’t want to. However, we highly recommend all users to upgrade as it is better in pretty much every way possible. Yes, even for masternodes and it does not restart the timer so no worries there.
It’s a huge update so here are some highlights:
- More Optimized – It uses less than half the amount of RAM compared to any of our previous wallets. A huge win. This also makes the wallet launch and shut down significantly faster for most.
- Faster & Smoother – It syncs the entire blockchain in nearly half the time now, and with more granular block increments for a smoother progression. Also has improved lock management for better overall performance.
- More Secure – It now incorporates a Hierarchical Deterministic (HD) capability to store your private keys in a more recoverable manner. It can upgrade your wallet.dat to benefit from this feature.
- Easier to Use – It includes a ton of GUI improvements that really brings our new Qt wallet much more user friendly, and complete. There are simply too many to list.
- More Capable – It now includes a feature to export wallet data such as all your transactions and/or your address book into a CSV file.
- More Languages – It also includes more complete language translations thanks to many more community members who jumped in Transifex to help out!
- Optimized Staking – The default utxo split threshold has been reduced from 2000 to 500 to smoothen out the network difficulty fluctuations.
Note that the above list is just covering a subset of the complete change list in a very simplistic way; so I really suggest you to read its release notes once it is released for more details.
So yeah, it has been another huge month for PIVX development, with our core developers clearly displaying the sheer amount of quality work that is being put into making PIVX a better cryptocurrency. Oh, and you would think after such a big wallet release, they would take some break, but nope! They are still pounding our GitHub like no tomorrow.
Even before the wallet release, they already delivered us an unexpected surprise toward the end of April with our very first glimpse of dedicated 5.0 privacy related work! A new Pull Request 1533 was posted by core developer furszy, named Sapling Foundations that is composed of some key ingredients that are needed to support the new privacy protocol.
But, we’ve also been hinted that there are many more juicy code work that’s being developed in the private GitHub repository for the next major milestone release. Some of this has already been recently publicly mentioned in our Discord by the developers that include no less than additional Masternode-related enhancements such as DIP 2, DIP 3, DIP 5, and possibly more! That would surely improve our usage of the masternodes significantly, making 5.0 even bigger than we initially anticipated!
Recent Development Highlights & Reminders
PIVX Core Wallet 4.1 now available for download!
The new wallet is now available to download under the v4.1.0 tag on the main PIVX GItHub and the pivx.org website urls have also been updated. Please make sure to take a full read of its release notes to get a good sense of what has changed and how much work has gone into this major release. As previously mentioned, it is not a mandatory update but we recommend everyone to upgrade to ensure you benefit from all the latest fixes as well as its improvements.
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 platforms such as Discord!
zPIV is now spendable! Convert them back 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.
Complete GitHub Activity
(April 5, 2020 – May 5, 2020)
Excluding merges, 6 authors have pushed 133 commits to master and 138 commits to all branches. On master, 328 files have changed and there have been 24,659 additions and 60,066 deletions.
2 Releases published
69 Pull requests merged
- #1601 [GUI] Tor state missing translation
- #1602 [Backport] 4.1.0 backports
- #1584 [Doc] Finalize 4.1.0 release notes
- #1589 [GUI][Bug] Don’t clear address label during send address validation
- #1588 [GUI][Bug] Fix editing of CS address labels
- #1599 [GUI][Bug] Fix language selection invalidly stored
- #1590 [GUI] Update translations from Transifex for 4.1
- #1595 [GUI][Bug] Fix “Select all” / “Unselect all” logic in coincontrol
- #1591 Removing dead seeder
- #1594 [GUI][Bug] Reconnect CS owner address edit-label action
- #1583 Update copyright headers for files changed in 2020
- #1576 [GUI] SendCustomFeeDialog: prevent user from saving insane fees
- #1581 [GUI] Do not create new SettingsMultisendWidget
- #1580 [QA][Bug] Shorter wallet_basic.py functional test
- #1578 [GUI][Bug] Fix transaction details output-index
- #1577 [RPC][GUI][Bug] Disable/Hide multisend
- #1574 [Bug][GUI] SendCustomFee: reset checkbox on clearAll
- #1565 [Bug] Simpler nTimeSmart computation
- #1575 [Bug][Wallet] Fix insane fees
- #1551 [GUI][Bug] Reset custom change address
- #1573 [Doc] Note that v3 onion addresses are not supported
- #1556 [GUI] CoinControlDialog remove duplicate esc button
- #1543 [GUI][Bug] CoinControl: mark delegated after setting checked state
- #1545 [GUI] MasternodeWizard validations
- #1550 [QA] Avoid printing to console during cache creation
- #1537 BugFix: Cleanup invalid IsMasternodeReward method in OutPoint primitive.
- #1538 [P2P] Update hard coded seed nodes
- #1535 [Qt] Don’t translate dummy strings in mnrow
- #1536 [Build] Disable apt-cacher for Windows WSL gitian setup
- #1529 [Trivial] Fix compiler warning in mousePressEvent.
- #1527 [GUI] Warn about change address not belonging to the wallet.
- #1532 [Build] Bump master to 4.1.99
- #1429 [GUI] Dark theme, inactive icons color fix.
- #1425 [Trivial][GUI] Add more room to contacts dropdown
- #1530 [GUI] Don’t log to console by default.
- #1528 update manpages
- #1525 [Build] Bump version to 4.1.0rc1
- #1523 [Trivial] [GUI] Fix masternodeswidget snackbar typos
- #1522 [Qt] Fixup filter dropdown localizations
- #1479 [BUG][GUI] Fix MasternodeWidget StartAll
- #1459 [Util] Refactor logging code into a global object
- #1520 SetMerkleBranch: remove unused code, remove cs_main lock requirement
- #1515 [GUI] Back port latest MacOS dock icon handler.
- #1436 [Trivial] Rewording of remote masternode data export notification
- #1503 [GUI] Fix cold staking owner dropdown position.
- #1423 [GUI][Trivial] Fix button size in welcomecontentwidget
- #1388 [GUI] Customize the timeout of the SnackBar based on its message length
- #1490 [Cleanup] Nuke obfuscation from orbit
- #1517 Shutdown: remove PID file at the very end.
- #1513 [Trivial] Remove CMasternode::SliceHash
- #1502 [Core] Reduce CBlockIndex RAM usage
- #1508 [BUG] Prevent StartAll from starting mns with immature collateral
- #1507 [Trivial] Remove leftover temporary comment
- #1504 [BUG] Fix ambiguous call to distance in ParseAccChecksum
- #1510 [GUI] Fix text cut-off in sendchangeaddressdialog
- #1509 Correct the reference to ColdStakingWidget address
- #1455 [Init] Add `-debuglogfile` option
- #1475 [GUI] Hide charts at startup or at runtime
- #1494 [Qt] Convert leftover connects to Qt5 syntax
- #1485 [Wallet] Fix BIP38 import crashing on empty DecKey
- #1491 [Consensus] Revert62
- #1499 [GUI] Settings console, clear history button.
- #1391 [GUI] Spend cold-stake delegations
- #1470 [GUI] Mark delegated UTXOs in CoinControl
- #1406 [GUI] Save custom fee selected
- #1447 [GUI] Add address-label to sendconfirm-popup
- #1493 [Depends] Include qt-gif plugin.
- #1501 [GUI] Update MNs count every 40 seconds.
- #1047 [Qt] Add more information to settings info panel
- #1446 [Test] Wallet testing setup.
- #1498 [Wallet] Initialize zwalletMain to prevent memory access violations.
- #1451 [RPC] Add logging RPC
- #1450 [Util] Buffer log messages and explicitly open logs
23 Pull requests proposed
- #1516 [GUI] MacOS fix open files with no default app.
- #1518 [WIP] Zerocoin validations improvement.
- #1519 MN ping not checked against the active chain.
- #1531 [Backport] Implement accurate UTXO cache size accounting
- #1533 [Backport] Make connect=0 disable automatic outbound connections.
- #1534 [Backport] Preemptively catch a few potential bugs
- #1542 [Net] Add and document network messages in protocol.h
- #1547 [Refactor] Define constant string variable for currency unit
- #1548 [Cleanup][GUI] Remove zPIV faqs
- #1549 [Cleanup][GUI] Nuke zPIV from the GUI
- #1553 [WIP] Sapling Foundations (Build System + ZIP32)
- #1554 [Core] Big endian support
- #1557 [Core] Prevector
- #1564 Abstract out CTransaction-specific signing into SignatureCreator
- #1568 [Trivial] Unused Image Removal & Readme Revisions
- #1579 [Net] Use SeedSpec6’s rather than CAddress’s for fixed seeds
- #1585 [Trivial][GUI] Rename clear history and remove clsKey
- #1586 [Wallet] Minimum value for stake split threshold
- #1587 [Backport] Shut down if trying to connect a corrupted block
- #1593 Prepare for non-Base58 addresses [Step 1]
- #1598 [GUI] Split “Delegators” address type in the table model
- #1601 [GUI] Tor state missing translation
- #1602 [Backport] 4.1.0 backports
42 Issues closed
- #1597 [Bug] Translations aren’t showing although language is 100% translated
- #1592 [Bug] Select all button in Coin Control isn’t working properly
- #1500 Hot staking stops getting rewards
- #1570 [Feature Request] Add warning for a Custom Fee selected too high
- #1572 [Feature Request] Don’t allow creation of proposals with the same name and URL
- #1567 [Feature request] Allow MultiSend to remove particular address only instead of all
- #1563 [Bug] MultiSend send rewards for each newly created UTXO after stake-split
- #1561 [Bug] Receive tab shows the address outside the wallet
- #1560 [Bug] Multisend button stays Active although it wasn’t activated
- #1569 [Bug] Custom Fee is still selected after clicking Clear all button
- #1346 [GUI] Transaction date issue
- #881 insane fees
- #1526 [Bug] Unable to return Change Address to default
- #1539 [Bug] Select all isn’t working properly with Include delegated box checked
- #1555 GUI: “Payment to yourself” did not make entry in Home/Transactions
- #1471 Can not use special character for Masternode name
- #1478 [Feature Request] Add ‘Backup Chain’ (AKA Snapshot) functionality.
- #1544 [Bug] Include delegated checkbox goes missing after sending new delegation
- #1216 Wallet closes itself
- #1482 [GUI][Visual bug][Trivial] The icons are overwritten when selecting the folder.
- #1170 [GUI][Feature request] Fixed/non-moving Cold Staking addresses and Contacts
- #1213 CTRL + L is not working to clear the console history
- #1524 [GUI][Feature Request] Show warning when Change Address is outside address
- #1379 [Feature Request] API access to know Vote Finalization details would support Governance.
- #1422 [Feature request] Set Dark Theme as a default theme after first wallet startup
- #1416 [GUI][Feature request] Expand Cold Staking dropdown menus
- #1419 [GUI][Trivial] Word “Masternodes” is cutted out during initial wallet startup screen
- #1512 MAC OS Catalina 10.15.4, PIVX 4.0 doesn’t compile
- #764 Ram usage
- #1226 Hot wallet is returning “waiting for remote activation” while it’s not fully synced
- #1511 Debug file error check signature
- #1144 [GUI] Visual bug, text is not shown properly in Custom Change Address window
- #1514 Payment to self showing 3 times
- #1310 [Feature request] Ask if user have previous wallet backup during the initial wallet startup
- #1152 [Feature request] Offer checkbox option in Settings for automatic wallet locking after 30 minutes of idle
- #1232 [GUI] Staking Rewards Chart counts Orphan Stakes
- #1257 Transactions screen not showing recent
- #1304 [GUI] Delete Masternode not fully working
- #1384 Debug file
- #1219 [Feature request] Don’t spend the previously created Masternode coins for creating a new Masternode with creation wizard
- #1349 [Feature request] Don’t spent Cold Stake delegations if there are available (and non-staking) coins in wallet
- #1398 [Feature request] Save the Custom Fee selection after wallet is closed with manually selected Custom Fee
11 Issues created
- #1600 [Bug] Transifex isn’t taking all translations properly
- #1596 [Feature request] Add warning if invalid address is entered into Owner address field
- #1582 Syncing fails at block 2308853 with cold staking error
- #1571 [Bug] Stake split splitted an UTXO on lower UTXOs than it was set
- #1566 [Bug] Highlighter goes back to PIVX address after selecting an address from contacts
- #1562 [Feature request][GUI] Remove unnecessary white space around QR code
- #1558 [Feature request] Don’t allow saving the same Address Label that already exist
- #1546 [GUI][Visual bug] Pull down menu / transactions disapears.
- #1541 [GUI][Visual bug] Notification message in systembar
- #1540 Change word Unconfirme to Unconfirmed
- #1505 4.1 Feature Freeze
Major Development Targets
(subject to change and is never a complete list)
Q2 2020 – PIVX Core Wallet 4.1.0 release
Q3 2020 – Incremental PIVX Core Wallet release
Q4 2020 – PIVX Privacy Integration
Q4 2020 – PIVX Core Wallet 5.0 release
Please also check our roadmap for some more info on what is coming.
Also, we have many other 2020 developments in the works at a project level such as a brand new website, logo refresh, and more. So it’s going to be one heck of a year for PIVX!
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, the 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/