PIVX Development Update
Week 4, January 2020
(Apologies for posting it a day late…) This update covers the PIVX GitHub development for the past 1 month of January 2020 (+ a bit of December 2019) in addition to any extra update provided by the core development team.
The month of January 2020 (and December 2019) has been another huge month/s for PIVX with some major milestones being hit. For example, a major 4.0 core wallet was released in December 2019 and this wallet included the long awaited brand new Qt GUI change, more secure Cold Staking, and the new PoS Time v2 protocol just to name a few!
A successful hard fork occurred on Sunday, January 5, 2020 12AM GMT at Block 2,153,200 and this led to more consistent block times thanks to the updated PoS Time v2 protocol.
Now that this is done and settled, we are now moving onto the next major phase in PIVX. Yes, it’s finally time for the developers to focus on a new privacy protocol for PIVX to replace the deprecated zerocoin protocol. Research has already been underway, and soon the plan will be disclosed publicly that will include what protocol will be integrated into PIVX, why it was chosen, and why our particular implementation would be more unique. From what little has been said about it so far, what I know is that it will be a significantly better protocol than Zerocoin in every way possible! Expect it to be revealed sometime in February.
We all know that we have developers that can talk the talk, and walk the walk. We also know that we have a hard working team that has been passionate since 2016, and the numbers have also have grown this year with more joining and volunteering.
So all in all, I just cannot stress enough on how exciting time this is, and how big this year will be for PIVX as a result of what is planned to happen this year! (Not financial advice! =p)
Check out what Jeffrey has to say about our recent development activity!
Cold Staking is now Active!
Cold Staking (PR #955) is now active in mainnet 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.
New PoS Time protocol v2 now enabled
A more robust Proof of Stake protocol for PIVX (PR #1002) has also been activated in the network that includes a host of improvements including difficulty algorithm changes, and removal of legacy PoW code engagement. What this means is that we now have more consistent block times, more secure network, less energy consumption, more low-end device friendly, and fairer block reward distribution.
New Wallet Releases – 4.0.2 Latest
Wallet version 4.0.1 was released shortly after 4.0.0 to address some zero day bugs, then version 4.0.2 was released on January 14th with some additional fixes and enhancements. As of this writing, 4.0.2 is the latest version of the core wallet. Note: If you are still running 3.x wallet, you must update to the 4.0.2 wallet and ensure you are in sync with the blockchain as the old wallet is no longer compatible with the new wallet’s chain.
All Zerocoins are now spendable!
PublicCoinSpend v4 (PR #936) function has been incorporated into 4.x wallet and so it is now possible for anyone with any version of zPIV (v1 or v2) to spend them back as PIV. We encourage everyone to convert their zPIV into PIV. (Wiki)
Complete GitHub Activity
(January 1, 2019 – January 30, 2019)
Excluding merges, 6 authors have pushed 97 commits to master and 214 commits to all branches. On master, 332 files have changed and there have been 5,229 additions and 8,695 deletions.
2 Wallet Version Releases
55 Pull requests merged
- #1316 [Trivial] fix typo “recomended” in sendcustomfee dialog
- #1302 [Refactor] Move CBlockFileInfo and CValidationState out of main
- #1044 [Qt] Define QT_NO_KEYWORDS
- #1290 [zPIV][Cleanup] Zerocoin Cleanup 1: remove Accumulators values
- #1295 [Tests] Set ‘-staking’ disabled by default on RegTest
- #1259 [Core] Remove StakeV1
- #1256 [Build][Scripts] Update translation flow
- #1281 [Trivial][Cleanup] Remove extra checks before GetBlocksToMaturity
- #1298 [Model][Performance] Unnecessary double cs_wallet and cs_main lock.
- #1282 [Trivial][Cleanup] Add IsRegTestNet() function in chainparams
- #1278 [Tests][Bug] Fix staking status in generate_pos()
- #1289 [GUI] Windowtitle parameter fix
- #1277 [Wallet] Refactor MintableCoins
- #1276 [Tests][Cleanup][Trivial] Remove legacy zerocoin spends tests
- #1286 [GUI] Set width and default minimum scrollbar height
- #1254 [Cleanup] ZLNP code removed entirely.
- #1247 [Cleanup] Remove automint and automint addresses
- #1283 [Backport] 4.0.2 backports
- #1284 [GUI] Min window size decreased to 1100px
- #1279 [GUI] Transaction record cold staking fixes.
- #1274 [RPC] Remove extra PoW rounds in ‘generate’
- #1272 [Trivial] Update copyright headers for 4.0.2
- #1273 [Core] Update checkpoints for first v7 block
- #1268 [GUI] Display latest block number in the top bar
- #1265 [GUI] Connect P2CSUnlockOwner and P2CSUnlockStaker records to the model
- #1269 [GUI] CoinControlDialog, every copy to clipboard action implemented.
- #1264 [Wallet] Don’t add P2CS automatically to GetLockedCredit
- #1266 [GUI] Quick minor GUI startup useful changes.
- #1263 [GUI] P2CS transaction divided in two types for visual accuracy.
- #1267 [Qt][Bug] Load the most recent instead of the first transactions
- #1260 [Doc] Add historical 4.0.0 release notes.
- #1261 [Bug][GUI] Double counted delegated balance.
- #1255 [Backport] 4.0.1 backports
- #1251 [RPC] Notate all account stuff as deprecated
- #1253 [Qt] Initialize isLoading to false for CS view
- #1252 [Trivial] Log log2_work value with 16 decimals
- #1245 [Core] Rework staking status
- #1250 [GUI] Every MN action checking tier two synced.
- #1242 [RPC] Add coldstaking address support in importprivkey and importaddress
- #1240 [Model][Wallet][Performance] Several changes in txRecord updateStatus.
- #1221 [GUI] Masternodes start all and start missing flows implemented.
- #1243 [Core][Trivial] Don’t log missing MNs during CleanAndRemove
- #1211 [GUI] MN creation wizard, fail event detailing the failure cause.
- #1229 [Wallet] Graceful shutdown in the unlock corrupted wallet.
- #1237 [Cleanup] Remove precomputing II
- #1218 [Tests] Functional Tests Suite Overhaul
- #1238 [RPC] Add optional arguments to delegatoradd and listdelegators
- #1207 [Doc] Update build-unix.md file
- #1234 [Cleanup] Remove precomputing
- #1217 [Startup][GUI][Performance] Optimizations for huge wallets.
- #1228 [GUI] Adding capability to decrease the screen size for small screens.
- #1231 [Wallet] IsEquivalentTo commented, removing an extra round of ser+hash calculation.
- #1224 [Trivial][GUI] Minor changes within 4.0 wallet FAQ
- #1233 [Trivial] Remove spammy log in in StakeV1
- #1184 [GUI][Trivial] Minor edits to written content
15 Pull requests proposed
- #1249 Optimize and Cleanup CScript::FindAndDelete
- #1275 [WIP][GUI] New double amount transaction row.
- #1287 [GUI] Load persisted transaction filter during start
- #1291 [zPIV][Cleanup] Zerocoin Cleanup 2: remove CZPivStake class
- #1293 [zPIV][Cleanup] Zerocoin Cleanup 3: remove old ZK proofs
- #1297 [GUI] Restore address list when switching panes in CSwidget
- #1299 [Trivial][Regtest][RPC] generate call failing properly when the wallet is locked
- #1300 [Wallet] Add function CMerkleTx::IsInMainChainImmature
- #1301 [ClientModel] Remove polling based chain height update entirely.
- #1306 [GUI] Hide privacy widget when the wallet has no zPIV balance
- #1307 [Net] Do not launch the clock warning dialog like crazy.
- #1308 [zPIV] Public coin, a super for-each removed.
- #1311 [GUI] Add address-label to sendconfirm-popup
- #1312 [Tests] Use V2 stake modifiers on regtest
- #1314 [zPIV][Cleanup] Zerocoin Cleanup 4: further main/wallet cleaning
13 Issues closed
- #1303 [GUI] Typo in Custom Fee dialog.
- #1313 I’m running a PIVX Windows desktop wallet v4.0.2 and block scanning stalls at 1866409. Any ideas to solve this problem?
- #1241 [Tracking] Cleanup/remove zPIV automint related code
- #1285 [POW][Bug] Mining does not work
- #1262 [GUI] Received coins from staking addresses show as “No Information”
- #1225 Orphan stake is returning “Immature” status with negative number of confirmations
- #1244 My PIVX address (DTufZ2KFCE94yAbEBXHNWih6z3vsz5pCxx) not found in new blockchain explorer
- #637 precompiled pivx-qt is trying to access /home/ubuntu
- #638 Scaling issue 3840×2160(16:9)
- #489 Scaling issue with Core wallet.
- #1246 Windows wallet – Staking Disabled
- #1210 Error creating masternode
- #1168 [GUI][Feature request] Number of confirmations shown directly on transaction
Upcoming PR Highlights
(This section may not include all highlight-able PRs)
- This is a highly requested & much needed feature where it provides users an option to backup and restore the entire wallet (all associated addresses and their balances) using a single seed phrase instead of more complex file-based or private-key backup methods.
Major Development Targets
(subject to change and is never a complete list)
Q1 2020 – New Privacy Protocol Reveal
(followed by a lot more info / Q&A etc)
Want to contribute?
Anyone and everyone is welcome to contribute to our code, as they will all go through the same process of developer/community peer review, and will be merged if it gets enough ACKs!
Editor: jakiman Twitter: @jakimanboy