The past 5 weeks has been a milestone-hitting period for PIVX. So this update is packed full of good news! Simply put, we are now just weeks away from releasing our highly-anticipated 5.0 wallet with SHIELD User Data Protection feature!
SHIELD Testnet Wallet (TR2) Released! (DEC 9)
After weeks of intense internal regtest testing, the official SHIELD test release (TR2) of the highly anticipated pre-5.0 core wallet has been released to the public, and the testnet has successfully hard forked and activated SHIELD on the network on December 9th 2020!
For more info on what SHIELD is, please scroll below to the More About SHIELD section.
SHIELD Testnet Wallet (TR2) Testing Phase Completed! (DEC 18)
In the past 2 weeks, TR2 testnet testing results have been very favorable with no issues with the blockchain since the hard fork with SHIELD transactions being active. The wallet’s GUI also had no serious issues and all functions worked as it should.
During this period, there have been numerous bug fixes and optimizations that have been implemented. One particular change involved a new consensus (PR #2068) change to limit our blocks to include a maximum of 750KB shielded transactions. This was required as slower devices took longer to process a lot of shielded devices and caused an issue with our 60 second block time target.
SHIELD Testnet Wallet (TR3) Released! (DEC 21)
A new testnet5 network has been started and TR3 is now available for download! As it started a new network, the previous testnet4 folder will not be used, nor will the coins and configurations carry over. So use the faucet to start with new coins again.
More About SHIELD
SHIELD is our name for the new user data protection protocol that has been in development for the past 9 months. It is specifically customized for the PIVX blockchain and has been enhanced in a number of areas to have better performance and usability.
(Although not versioned specifically, I will call the first release as SHIELD v1 for simplicity)
SHIELD v1 will allow transaction data protection capability for the sender and receiver alike using zk-SNARKs for zero-knowledge-proofs to enable provable transactions over the blockchain without revealing personal information such as sender or receiver address, the amount send or received, and the held balance of the addresses involved.
Simply put, those that weren’t part of that transaction are not able to see anything about that transaction. This is all done in a very logical and intuitive way that involves 2 specific address types. Transparent and Shielded.
SHIELD v1 also allows sending and receiving of encrypted messages of up to 512 bytes long within the shielded transaction. So the sender can attach any text based message that only the receiver can see. This can be very useful in providing proof of the transfer and/or receipt, and it is stored on the blockchain to provide immutability.
We are expecting the final 5.0 with SHIELD v1 to be released in the first half of January.
More info about SHIELD here: https://pivx.org/privacy-protocol
SHIELD v2 in the works already!?
While SHIELD v1 hasn’t even been fully released yet, our developers have already hinted on what is coming next (aka SHIELD v2). That’s right. Shielded Proof of Stake (aka Shielded Staking) is coming and has already been said publicly that the development is progressing well! (as mentioned by PIVX core developer random.zebra in a public discord channel)
What this means is that PIVX will have fully protected Proof of Stake, including the block reward! It’s like having the cake, and eating it as well!
Lastly but not at the least, SHIELD v2 may also include Shielded Masternodes! More accurately, it would mean the enablement of both the shielded masternode collateral, and its rewards.
Now, Shielded Masternodes being part of SHIELD v2 is going into speculation territory as it sounds too good to be true to have both massive features coming at the same time, but going by our developer’s track records, I wouldn’t be surprised if they do!
Another great feature mentioned that’s coming post-5.0 is the Deterministic Masternodes. This feature allows the masternode list to be fully derived from the blockchain data, making it part of the consensus and thus truly decentralized.
All in all, expect all the puzzle pieces coming together in 2021, making PIVX one of the most advanced and capable cryptocurrency in existence!
Complete GitHub Activity
(November 14, 2020 – December 21, 2020)
Excluding merges, 9 authors have pushed 333 commits to master and 335 commits to all branches. On master, 253 files have changed and there have been 10,605 additions and 12,769 deletions.
2 Releases published
113 Pull requests merged
- [Trivial][Refactor] Pass caught logic_error by reference in CreateSig
#2091 merged - [RPC] Use "shield" nomenclature instead of "shielded"
#2086 merged - [GUI] Settings information, fix missing initial masternodes count value.
#2075 merged - [GUI] coin-control: remove column checkbox extra white space in tree-mode
#2070 merged - [Core] Prevector Optimizations
#2083 merged - [RPC] Cleanup RPC help output
#2088 merged - [Build] Unify header file extensions
#2087 merged - [BUG][Masternode] Miner not paying valid finalized budget if <20 active masternodes
#2084 merged - [Tests] minor fixes for mining_pos_reorg.py
#2081 merged - [BUG][Wallet] return unconfirmed balance for all spendable coins by default
#2080 merged - [Consensus] Update Spork keys for v5
#2071 merged - [GUI] Dashboard, fix type filtering disappearance.
#2073 merged - [Consensus] Start new Testnet (v5)
#2069 merged - [Consensus] Budget: Fix instant killing of proposals
#2068 merged - [BUG][GUI] Receive widget: check typeRole before refreshing view
#2066 merged - [Wallet][Sapling] Dummy ECDSA sigs and zk-proofs during fee calculation loop
#2065 merged - [Consensus] Bump TxVersion::SAPLING to 3
#2051 merged - [Consensus][Validation] Reject outdated block version after v5 enforcement
#2067 merged - [Backport] Fix races for strMiscWarning and fLargeWork*Found
#2063 merged - [Script][BUG] Fix signature malleability for t inputs in Sapling txes
#2064 merged - [GUI][Trivial] Adjust CoinControl column widths for readability
#2033 merged - [Consensus] Max block space available for shielded txes
#2062 merged - [Trivial] Add Zcash copyright statement
#2061 merged - [RPC] redirect sendtoaddress to shieldedsendmany for shielded recipient
#2050 merged - [BUG][MN] Immediately detect forked masternodes
#2060 merged - [Cleanup] Removing unused DisconnectBlocks and ReprocessBlocks
#2058 merged - [Masternode] Encapsulate global and do not parse privkey redundantly everywhere.
#2056 merged - [Net] Socks5 netbase back ports, less scary failures.
#2054 merged - [GUI] Transaction detail, scroll memo fix, starting from the top.
#2055 merged - [Test] Make rpc_ban unit test pass again
#2059 merged - [Wallet] BugFix: automatic upgrade for unlocked wallet
#2048 merged - [RPC] Add nullifiers to listshieldedunspent output
#2049 merged - [BUG][RPC] Fix check in wallet upgrade RPC
#2047 merged - [Miner] Update block header's current version to v8
#2052 merged - [TierTwo] Remove unneeded extra logging.
#2045 merged - [Sapling] Transparent inputs selection, fixing inverted order.
#2046 merged - [Test] Adding sapling transaction validation unit test coverage.
#2042 merged - [Build] CMake pivxd and unit tests: fixing missing MacOS framework.
#2041 merged - [Build] Bump version to 4.9.99tr1
#2040 merged - [Consensus] Set final enforcement height for V5 on Testnet
#2038 merged - [GUI] Periodic make translate
#2039 merged - [GUI] Double confirmation dialog for dumpwallet command.
#1928 merged - [Build] Proper coverage for ppa, local, and snapcraft
#2036 merged - doc: Windows WSL build recommendation to temporarily disable Win32 PE support
#2032 merged - [GUI] Address generation error on locked wallets fix plus extra corrections.
#2037 merged - [BUG][GUI] TxDetail dialog memo: plain text edit + copy button
#2035 merged - [SSPKM] Crash fix, external notes witness decrement
#2034 merged - [GUI] Workaround to the MN MISSING/REMOVE labeling
#2030 merged - [Masternodes] remove recursive lock in CMasternode::Status()
#2031 merged - [GA] Reduce number of concurrent jobs
#2021 merged - [Build] Package sapling params in repo/release
#2022 merged - [RPC] Add additional warning to dumpwallet result object
#1927 merged - [Sapling] Try to recover corruption of notes cache during send operation
#2027 merged - [P2P] When clearing addrman clear mapInfo and mapAddr
#2029 merged - [P2P] Add missing lock in CAddrMan::Clear()
#2028 merged - [Wallet] HD wallets automatic upgrade to sapling features.
#2020 merged - [Cleanup] [Trivial] Remove stale siphash.py file
#2026 merged - [GUI] Cold staking screen, hide memo entry button.
#2025 merged - [BUG][RPC] Save collateral errors into proposals/budgets strInvalid
#2018 merged - [GUI] Guard shielded flows pre-v5 enforcement
#2017 merged - [BUG] GetLastPaid/SecondsSincePayment locking cs_main
#2024 merged - [BUG] Fix lock order issue with CMMan::CheckAndRemove and CMPayments::CleanPaymentList
#2023 merged - [Tests] Add --all option to test_runner for complete functional tests coverage
#2016 merged - [RPC] redirect sendmany to shieldedsendmany when recipient is shielded
#2014 merged - [Wallet] Initial cleanup to the v1 transparent CreateTransaction flow.
#2013 merged - [BUG][GUI] memo not reset after hitting reset button
#2011 merged - [Net] Prevent un-necessary disconnections in version handshake
#2015 merged - [BUG][GUI] Encrypted memo with transparent recipient address
#2010 merged - [Trivial] constant functions in SaplingScriptPubKeyMan
#2009 merged - [Refactor] Masternode activeState on-demand
#2006 merged - [Backport] P2P open network connection, fix race condition
#2012 merged - [Cleanup] Remove zerocoin wallet
#1985 merged - [Wallet] Sapling: don't update witnesses for external notes
#2007 merged - [BUG] g_IsSapling active flag during reindex
#1998 merged - [GUI] Encrypted memo feature implemented
#1999 merged - [BUG] label of coin type in send widget after shielded coin control
#2008 merged - [BugFix] [GUI] Shield all transparent balance fee calculation.
#2004 merged - [Build] Address more issues with GA
#2001 merged - [GUI] Tx detail, don't show inputs if there is no information for them.
#2003 merged - [Core] Masternode collateral index
#2000 merged - [GUI] Fixing export addressbook, shielded addresses missing type
#2005 merged - [Consensus] Bump active protocol version to 70920
#1994 merged - [Trivial] Rename placeholder for v5 network upgrade info
#1988 merged - [Tests] Fix double bug in sapling_mempool functional test
#1995 merged - [BUG][GUI] CControl: cache utxo amount values properly
#1997 merged - Sapling milestone 5: Graphical User Interface
#1963 merged - [Validation] v5 zerocoin final deprecation.
#1993 merged - [Sapling][Bug] Fixing multi-source notes spending
#1989 merged - CActiveMasternode::ManageStatus remove unneded GetAvailableBalance check
#1834 merged - [Consensus][Validation] Dynamic Fee for Shielded Transactions + Max Size.
#1979 merged - [Consensus] Introduce SPORK_19 and SPORK_20
#1976 merged - [Tests] Add sapling_supply functional test
#1987 merged - [Build] Fix a few GA issues
#1991 merged - [Cleanup][Sapling] Final Sprout cleanup
#1981 merged - [Sapling] Remove Sprout parameters
#1980 merged - [Build] Pass proper commit range to linter
#1990 merged - [Build] Replicate TravisCI tests in Github Actions
#1986 merged - [TierTwo] Missing misbehaving + ban score not introduced on the new msg dispatcher flow
#1968 merged - [RPC] shielded supply in getsupplyinfo and getinfo
#1982 merged - [Core] Special Transactions base layer
#1966 merged - [Tests][Cleanup] Nuke zerocoin from the functional test framework
#1983 merged - Coin control dialog utxo processing/update flow large cleanup and improvements
#1977 merged - [RPC] [scripted-diff] Don't use snake case in RPC command names
#1971 merged - [Validation][RPC] Delegate from shielded addresses
#1970 merged - [RPC][Tests] Memo field for sapling transactions
#1972 merged - [Trivial] Log changed count for sapling nullifiers and anchors
#1975 merged - [GUI] FAQ "Exit" moved to "Close FAQ"
#1978 merged - [Refactoring] Budget, round 7: split masternode-budget files
#1862 merged - [Refactor] SaplingOperation: support for multisig, cold-staking, and OP_RETURN outputs
#1967 merged - [Tests] Add support for sapling txes and v8 blocks in the framework
#1969 merged - [Wallet][DB] Back ports up to the CWallet/CWalletDB/CDB refactor.
#1943 merged - [RPC][Tests] Add sapling mempool test + getbestsaplinganchor
#1965 merged - [RPC] shielded_sendmany from multiple sources + raw_shielded_sendmany
#1964 merged
13 Pull requests opened
- [WIP][Validation] Back ports up to "bye bye" boost signal usages.
#1973 opened - [Refactoring] Use c++11 list initialization for maps/vectors
#1974 opened - [Build] Add GitHub Action Script
#1984 opened - [GUI] Fixing invalid masternode presented status.
#2019 opened - [GUI][Trivial] Adjust CoinControl column widths for readability
#2033 opened - [Wallet] Making CWalletTx store TransactionRef.
#2044 opened - [RPC] redirect sendtoaddress to shieldedsendmany for shielded recipient
#2050 opened - [Consensus] Bump TxVersion::SAPLING to 3
#2051 opened - [Tests] Stress test, filling a block with shield transactions functional test.
#2053 opened - [Net] Socks5 netbase back ports, less scary failures.
#2054 opened - [Masternode] Encapsulate global and do not parse privkey redundantly everywhere.
#2056 opened - [Cleanup] Removing unused DisconnectBlocks and ReprocessBlocks
#2058 opened - [BUG][MN] Immediately detect forked masternodes
#2060 opened
5 Issues closed
- 4.9.99 Launches with "cannot find sapling" error
#2043 closed - [GUI] Budget allocation is considered as a Masternode Reward
#1917 closed - Compiling latest master problem
#1992 closed - [GUI][Bug] Selecting the UTXO shows remaining transparent instead of shielded coins
#2002 closed - [GUI][Trivial] :: Language for the dismiss help box says `Exit` - confusing?
#1658 closed
2 Issues opened
- [Documentation] v5 release new capabilities and changes
#2057 opened - [GUI][Bug][Trivial] Console not showing output text when changing the wallet theme
#1996 opened
Major Development Targets
DEC 2020 - PIVX Testnet Wallet TR5 release
JAN 2021 - PIVX Core Wallet 5.0 mainnet release
JAN 2021 - SHIELD Activation on mainnet
Q2 2021 - SHIELD v2 with Private Staking
Note: Above target dates are subject to change and is not a complete list.
Please also check our roadmap page for more info on what else is planned.
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! Oh, and if it does get merged, you may also receive a contribution bonus depending on its contribution level!
Language Translation Needed
We also welcome all translators who can assist in making our wallets multi-lingual! PIVX core wallets will include support for languages that are at least 80% translated on Transifex. https://www.transifex.com/pivx-project/