Latest Developments
PIVX Core Wallet 4.3.0 is out!
After a successful RC1 testing period that started on September 10th 2020, the final v4.3.0 core desktop wallet was released on September 28th.
This is by far the fastest, leanest, and the most stable PIVX wallet release we’ve ever had. It also includes many usability improvements and bug fixes over the previous versions and sets the foundation needed for the 5.0 privacy release coming later this quarter. It includes some Sapling protocol code PR (1553 and 1666), though in a disabled state until 5.0 release.
Core wallet v4.1.1 or higher is compatible with v4.3.0. So upgrade isn’t compulsory, but is highly recommended as always.
Release v4.3.0 Highlights:
– Massive performance & stability updates
– Network sync & staking process speedups
– Better resource management
– Huge code cleanup and refactoring over the tier 2 area (masternode network)
– New coin cache structure
– Improved shared resources sync access
– Improved transaction fee estimation
– Minor UI improvements
– Bug fixes
The chainstate database (which is used for tracking UTXOs) has been changed from a per-transaction model to a per-output model. As a result, validating the blockchain during Initial Block Download (IBD) and reindex is ~30-40% faster, uses 10-20% less memory, and flushes to disk far less frequently.
More info & download: https://github.com/PIVX-Project/PIVX/releases
Privacy Protocol Development Progress
PIVX privacy is coming back better than ever with the highly anticipated 5.0 release, and the custom integration of the Sapling protocol using zk-SNARKs is progressing well.
The protocol is working in regtest, meaning that it has been developed to a point where it is working in a private dev-only network. More and more public Sapling code work is popping up on GitHub, being actively reviewed and gradually to master branch.
Another great tidbit is that the same HD wallet seed that is used for the regular and staking addresses will also be used to generate the Sapling key’s derivation path. This means that pre-5.0 HD wallet backups will be able to restore post-5.0 privacy-enabled coins!
Tier-2 Network Upgrade
The second tier masternode network of PIVX is also getting a code overhaul with significant improvements to its network security, reliability, stability and performance expected. Core developer furszy posted this last week on Discord:
“we are first doing a full tier two network system revamp. Masternodes, budget and payments systems, all there is being drastically changed in one way or another (managers and sync process). Including the new add of regtest capabilities and a brand new test suite to verify the correct behavior of each of the tier two subsystems.
Once this gets to a solid base point, our own version of DIP3 will surely be ready and pushed with some fireworks.”
Recent Development Highlights & Reminders
PIVX Core Wallet – Mandatory Update Notice
If you are currently running 4.1.0 or older, you must upgrade to 4.1.1 or higher NOW (4.3.0 is latest) and then make sure that you are on the right chain by comparing your latest block / hash to the block explorers since 4.1.0 or older wallet is no longer valid on the current network. If you need further assistance on this matter, please join our discord! (You can go straight to 4.3 from 4.1.1 or 4.2.x as well if you wish)
[Important] zPIV support is going away! Change them back to PIV ASAP!
PublicCoinSpend v4 (PR #936) function has been incorporated into the 4.x wallet since January 2020. 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 will cease from 5.0.
So we urge everyone with zPIV to convert them back to PIV ASAP using core wallet 4.3.0 and request assistance in PIVX Discord public #support channel if you run into any issues or simply have questions on how to.
Complete GitHub Activity
(September 10, 2020 – October 10, 2020)
Excluding merges, 6 authors have pushed 168 commits to master and 184 commits to all branches. On master, 222 files have changed and there have been 9,515 additions and 5,808 deletions.
2 Releases published
46 Pull requests merged
- [Core][RPC][BUG] Use sum of utxo values as money supply
#1878 - [Cleanup] removing unused mapRelay and cs_mapRelay.
#1905 - [Wallet] Sapling keys management final round.
#1884 - [Backport] test: remove glibc fdelt sanity check
#1901 - [Masternodes] dead end over the activation process.
#1886 - [Test] Update sighash tests for shielded transactions.
#1885 - [wallet] Extra GetTransaction call in stakeable coins selection flow removed.
#1850 - [BUG] Set budget best height before reading budget DB during init
#1891 - [Bug] Fix misaligned height in calls to GetBlockValue
#1848 - [Test] Updating and enabling bip32 unit test
#1887 - [BUG][GUI] Fix wallet crashing on faq-buttons press
#1895 - [BUG][Script] Add fColdStaking boolean argument to IsSolvable
#1890 - [Sapling] Note Encryption unit tests back ported.
#1871 - [Sapling] Incremental merkle tree backport.
#1870 - [RPC][BUG] Fix ‘mnfinalbudget show’ returning a single budget
#1894 - [GUI] Autocomplete ‘help’ PRC commands in UI Consoles
#1881 - [Test] unit test checking cold staking script key extraction.
#1889 - [BUG] Fix regression with emplace_back on cold-staking scripts
#1888 - [BugFix] Migrate list serialization to the current flow.
#1879 - [wallet] GetMasternodeVinAndKeys wasn’t locking cs_wallet to obtain the collateral.
#1868 - [Build] Clean lcov artifacts from all paths
#1883 - BugFix: g_IsSaplingActive flag is not initialized at startup.
#1867 - [Build][Doc] Post branch-off/release maintenance
#1882 - Mrs Peacock in The Library with The Candlestick (killed main.{h,cpp})
#1872 - [Refactoring] Budget, round 2: review locks
#1844 - [Misc] Fixing recurrent compiler warnings
#1877 - BugFix: tx sync parsing problem fixed + extra refactoring.
#1875 - [Doc] 4.3.0 Release Notes
#1876 - [GUI] Update translations for 4.3.0
#1874 - [Refactor] Decouple peer-processing from block-connection logic
#1866 - [CMake] Add test_pivx unit test target
#1856 - [RPC] Update univalue and unify JSON obj pushes
#1869 - Make CBlock a vector of shared_ptr of CTransactions
#1815 - 4.3 final release back ports
#1865 - [GUI] do not decode the address twice in save contact.
#1857 - [Trivial][GUI] Fix init messages
#1863 - Missing mnping category added to logcategories
#1860 - Sapling transaction primitive data.
#1814 - [Wallet] Address book encapsulation.
#1819 - [Refactor] Emplace elements in maps and vectors
#1830 - [Bug] wrong reserveKey when committing budget/proposal collaterals
#1855 - [Refactoring] Faster mn Check() – remove AcceptableInputs
#1842 - [Cleanup] Removing unused and unneeded functions and members
#1853 - Use Optional template in guiinterface.h
#1837 - [Build] Prepare for 4.3.0 release
#1847 - [Wallet] Lock Sapling wallet functionality to regtest only for now.
#1841
11 Pull requests opened
- [Refactoring] Budget, round 4: remove Broadcast classes
#1851 - [Refactoring] Budget, round 5: proposals/budgets FeeTX indexes
#1858 - Refactor CWallet::AvailableCoins method signature
#1859 - [Refactoring] Budget, round 6: masternode vote for finalized budgets
#1861 - [Refactoring] Budget, round 7: split masternode-budget files
#1862 - [Refactor] Pass previous index from AcceptBlock to AcceptBlockHeader
#1898 - [QT] fixing qt flag deprecation
#1900 - [Sapling] Anchors and nullifiers integrated into the chain state view layered cache.
#1903 - [Validation] Introduce rolling cache for block hashes in masternode manager
#1904 - [RPC] Cache money supply on memory. Introduce getmoneysupplyinfo
#1906 - [Core] Add reindex-chainstate startup option
#1907
6 Issues closed
- [Bug] getinfo returns wrong moneysupply amount
#1873 - [Bug][GUI] Upgrading coins database… is now on every wallet start loading screen
#1897 - Updated Wallet to v4.3.0 But stuck at Block 1153936
#1896 - [Bug] Request payment with 0.00 PIV
#1614 - [BUG] [RPC] getbalance <account> get the info from getreceivedbyaccount <account>
#1642 - Compile error on Ubuntu
#1849
6 Issues by 3 people
- [Bug] Different wallets showing different results for getbudgetinfo command
#1902 - [Feature request] Allow the Masternode owners to vote with pre-defined number of masternodes only
#1893 - Re: 4.3.0: “This is the fastest, leanest, and the most stable PIVX wallet release to date” – NOT
#1892 - [GUI] Core wallet icon in the taskbar isn’t the same when pinned and not pinned to taskbar
#1880 - [Feature request][GUI] Show only the number of active connection when button is shrink
#1854 - [RFC] Budget proposals killing-no threshold
#1852
Major Core Wallet Development Targets
(subject to change and is never a complete list)
Q4 2020 – PIVX Core Wallet 5.0 on testnet
Q4 2020 – PIVX Core Wallet 5.0 GA release
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 (Q4 2020), logo refresh (Q4 2020), TV show feature (Q4 2020), and more. So we are going to be in for a treat this upcoming holiday season.
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 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/