PIVX Development Update – 2019 October Week 1 | PIVX
This development update is an attempt to summarize all the core development work that is going on in the GitHub for the period covered (usually 2 weeks). This should show the vast amount of work of our developers that many may not realize is happening each and every day. Do note that this doesn't just cover the work by the PIVX core developers but will also highlight all community / open developers that contribute to the code base. If you think you can help out either as a hobby or full time, jump right in! It's open source after all. ;)
PIVX Development Update
Week 1, October 2019
This update covers the development between the last update back in end of August, up to October 1 (approx. 5 weeks) and as expected, a ton of work has been done during this time. Our development activity is higher than it’s ever been, and upcoming 4.0 wallet is shaping up to be one of our most solid upgrades to date!
Core wallet v3.4 Release Update
As a refresher for those who may have missed it, a mandatory PIVX wallet release v3.4.0 has been released on August 27, 2019, with a new Stake Modifier v2 (PR #983) plus other PoS hardening changes to prevent / eliminate stake grinding.
Successful hard fork occurred at block 1967000 on August 31 2019 with majority of major exchanges confirming the upgrade. If you are using a previous version, make sure you upgrade and check that you are on the right chain.
Although the majority of exchanges have been upgraded to 3.4, it is still advisable to make a small test transaction before making larger transactions when making wallet to wallet transfers just in case.
See detailed v3.4 release notes for a list of all changes & inclusions.
Next generation 4.0 UI Merged
“After 7 long months, a lot of planning, coding and reviewing, I’m really happy to announce that we just merged my #954 PR!” - furszy
What this means is that the new UI will be included in the next major wallet release!
The work included:
428 files changed
373 commits involved
50,844 lines of code added.
It was designed and coded from the ground up with unique code on top of the QT framework. So it's brand new just for PIVX! Watch the developer's demo video.
Cold Staking now in Testing
Cold Staking (PR #955) is being put through its paces in a segregated testnet maintained by the core developers and we are hearing reports that it’s running very smoothly along with some block explorer proofs! This new upcoming functionality will allow a more secure way to stake PIVX without the need for having the coins on a hot (online) wallet.
New PoS Time protocol v2
Core developer, random-zebra has been very busy working on a more robust Proof of Stake protocol for PIVX (PR #1002) with a host of improvements including difficulty algorithm changes, and removal of legacy PoW code engagement.
We can expect more consistent block times, more secure network, less energy consumption, more low-end device friendly, and fairer block distribution once this is merged. A detailed write up about this change is expected from the core developers once they are ready.
Community Developer Contributions
We are seeing some awesome contributions by our community developers and this activity can now be tracked on our new Community Developer Contributions Project page within the PIVX GitHub!
PIVXPress is back with a new host!
Long time PIVX member Jeffrey is now the new host for PIVXPress video updates. Expect some great lively updates including development news from the new series.
Complete GitHub Activity
(September 1, 2019 – October 1, 2019)
7 developers have pushed 217 commits to master and 358 commits to all branches. On master, 563 files have changed and there have been 60,391 additions and 24,852 deletions!
Just to put this amount of work into perspective, in the past 3 months, PIVX has had more unique commits than Ethereum, Monero, Decred, Waves, DASH, Zcash, and Zcoin.
29 pull requests merged
(sorted by latest first)
Merged #1027 [Cleanup] Get rid of compiler warnings
Merged #1026 [Cleanup] Prev 4.0 wallet UI files cleanup.
Merged #1025 [Startup] Stop loading the wallet if shutdown was requested.
Merged #1000 [Core] Spork code overhaul
Merged #1013 [Build] Clean up GUI dependency checking
Merged #1007 [Qt] Reintroduce networkstyle to title texts
Merged #1017 [GUI][Trivial] Remove hardcoded address.
Merged #1018 [GUI] Update amounts when entry is removed from SendMultiRow
Merged #999 [UI] Send screen, total amounts refresh after custom options cleaned.
Merged #1021 [Build] Use in-tree intermediary endian header
Merged #979 [Compilation] Pass caught exceptions by reference
Merged #643 [Crypto] Use stronger rand for key generation
Merged #1012 [Performance][Wallet][QT][Model] TransactionTableModel multi-thread initialization + tx filter sort speed improved.
Merged #1015 [Qt] Update source strings
Merged #1016 [GUI] Tx detail dialog, show seconds in toString date.
Merged #968 [Staking][Wallet] Add Multi-Split functionality to stake output splitting
Merged #1001 [Consensus] Remove Old message format in CMasternodeBroadcast
Merged #991 [Build] Remove OpenSSL 1.0 check
Merged #977 [Build] CMake Improvements
Merged #1014 [GUI] Refresh coin control upon reopening
Merged #1010 [Build] Fixup moc includes and generation
Merged #1008 [Qt] Don't set placeholder on QPlainTextEdit
Merged #1003 [QT][Performance] Memory leak re creating the row object instead of re initialize it.
Merged #1006 [Trivial] Fix mnrow ifdef typo
Merged #998 [Qt] Guard MN tab from possible missing TXs in masternode.conf
Merged #997 [Trivial][UI] MN screen, texts typo.
Merged #990 [Build] Fix wrong argument when verifying MacOS signatures
Merged #954 [GUI] [Model] New Wallet UI
Merged #989 [DB] Db runtime error cleaning the variable that needs to be logged
12 New pull requests (PR) proposed
Proposed #995 [Consensus] Define SPORK_18
Proposed #1002 [WIP][PoS] Time Protocol v2
Proposed #1009 [QT] Dashboard chart, left and right day range movement control buttons.
Proposed #1022 [Consensus] Block version 7: remove accumulators checkpoint
Proposed #1023 [Travis] Lower timeout for the full test suite
Proposed #1024 [Consensus] New signatures for network messages
Proposed #1028 [Build] Set file permissions for bdb depend package
Proposed #1029 [Startup][Refactor][Backport] Memory allocation fail handler + init step 1 refactored.
Proposed #1030 [Wallet][Startup][DB][Backport] Remove vchDefaultKey from wallet.h
Proposed #1031 [Wallet] fix CreateZerocoinSpendTransaction with empty addressesTo
Proposed #1032 [GUI] Dashboard chart map first segfault, background task error catching.
Proposed #1033 [WIP][GUI][Model][Wallet] Cold staking UI.
9 Issues closed
Closed #946 Wallet crashes while in governance tab
Closed #1004 [Build/UI] Windows Gitian builds do not build with qtcharts support
Closed #871 Deamon conflicts with other wallets.
Closed #1020 Unsupported SSL version Debian Buster
Closed #790 Sorry I made a mistake
Closed #718 Review `--with-unsupported-ssl` build argument utility
Closed #1005 Error when compiling on mac
Closed #996 New feature: address tagging via wifi
Closed #993 Loading the wallet but it keeps crashing on my mac
2 Issues created
Opened #1019 Windows Compilation Error
Opened #994 Crash with MacOs Mojave
(there are tons more that I haven’t highlighted here, so always check the GitHub if you want to see a full picture of what is going on)
PR #936 - [zPIV] PublicCoinSpend v4 - Coin Randomness Schnorr Signature - submitted by core developer random.zebra is being reviewed. (Targeted for v4.0 release)
This advanced function will allow spending of legacy zPIV v1 (minted prior to 3.1 release) back to PIV.
PR #953 - [RPC] [Wallet] AutoCombineRewards fixes and Improvements - submitted by community developer CaveSpectre11 is being reviewed. (Targeted for v4.0 release)
This enhances the AutoCombineRewards function allowing the user to configure how often to run the scan, and the amount to combine each time it executes; as well as adding a new One Shot option that enables sweep on next block, and at wallet startup.
PR #954 - [GUI] [Model] New Wallet UI - submitted by core developer furszy has been merged. (Targeted for v4.0 release)
This is a brand new UI/UX wallet, designed in collaboration with Krubit UI and UX designers and written from scratch in Qt by core dev furszy and Krubit front-end developers. More info and a full demo video can be seen HERE
Public testnet release of the next generation wallet GUI has been released.
PR #955 - [Core][Script][Wallet][RPC][Tests] Cold Staking - submitted by core developer random.zebra is being reviewed / worked on. (Targeted for v4.0 release)
This customized staking feature (name subject to change) allows a mutually agreed full-node online wallet to stake coins from an address that it has been given delegation to stake from. This provides extra security for stakers while still requiring a full node online wallet. More info can be found HERE
PR #956 - [Core][Qt] Add HD Wallet support - submitted by community developer akshaynexus is being reviewed / worked on. (Targeted for v4.0 release)
This is a highly requested feature where it provides users an option to backup and restore the entire wallet (all associated addresses and their balances) using a multi-word seed phrase instead of more complex file-based or private-key methods.
PR #968 - [Staking] Add Multi-Split functionality to stake output splitting - has been submitted by community developer CaveSpectre11 and is being reviewed / worked on. (Targeted for v4.0 release)
This enhancement will make the staking inputs split into 2 or more outputs based on the stake split threshold instead of splitting in half.
PR# 970 - [Wallet] Various transaction handling improvements - submitted by core developer Warrows is being reviewed / worked on.
This pull request is a happy melting pot of improvements regarding transactions handling with most being backports from bitcoin.
So far, there are more than 10 improvements included in this PR and the full list can be found in the initial PR notes.
PR #985 - [Wallet][RPC] Correct free tx selection and add user control - has been submitted by community developer CaveSpectre11 and is being reviewed / worked on.
This fixes and thus prevents very large free transactions being accepted into blocks, despite what the block creator sets the -blockminsize parameter to.
PR #992 - [Multisend][Wallet] Don't send multiple multisend transactions for a stake that resulted - has been submitted by community developer CryptoDev-Project and is being reviewed / worked on.
This improves the Multisend handling during staking when UTXO that won the block reward is split, thus preventing multiple transfers during that occurrence.
PR #1002 - [WIP][PoS] Time Protocol v2 - submitted by core developer random.zebra is being reviewed / worked on. (Targeted for v4.0 release)
This is a major step forward in improving the current Proof of Stake performance in order to enable more consistent & predictable block times.
PR #1033 - [WIP][GUI][Model][Wallet] Cold staking UI. - submitted by core developer furszy is being reviewed / worked on.
This adds the necessary GUI elements and backend connections for Cold Staking functionality into the next generation GUI included in 4.0.
PR #25 - Added support for Face id - submitted by community developer yakubbaev has been committed to master.
It’s been over a month since the last update (my apologies!) and means that this update ended up being massive! The sheer amount of work, both quantity and quality, by our PIVX developers is simply astounding with the number of unique commits by PIVX developers within the year exceeds much larger cryptocurrencies such as even Ethereum, Cardano, Monero, DASH, and Zcash etc! (ref. CryptoMiso) That’s some serious commitment! (pun not intended)
Also, we are not just talking about minor commits here. PIVX developers has been working very hard to make significant improvements to the PIVX core, as well as only adding new features & functionality that will improve usability, security, and stability of the PIVX wallet / blockchain..
PIVX is in great hands with world class development ongoing. Not a doubt in my mind. - jakiman
On a separate non-core development front, PIVX core developer furszy has been doing some serious parallel work and has recently announced a new decentralized multi-wallet and point of sale app called Exobit on the Android platform. Testnet version is now available and it is planned to include atomic swaps (essentially DEX) later on with PIVX being the first alt-coin to be listed alongside Bitcoin. So keep an eye out on the development progress as it could be an important first-party app for PIVX! More info plus an intro video can be seen here.
Major Development Targets
Q4 2019 - v4.0 Major feature release
Q4 2019 - Next generation privacy protocol open discussion
(Targets are subject to change of course)