Latest Developments
Introducing SHIELD
PIVX has announced its branding for the upcoming User Data Protection (aka privacy) protocol called SHIELD.
“SHIELD stands for just that: A SHIELD. When using PIVX’s anonymity feature, users can rest confidently that PIVX, whose logo and brand is a shield in and unto itself, is in fact being that SHIELD for them in the world, protecting their rights, preserving their privacy.”
Announcement: https://pivx.org/news/introducing-shield-the-new-privacy-protocol-from-pivx
More info on SHIELD:
https://pivx.org/privacy-protocol
Development progress of SHIELD v1
We’ve hit a major milestone in the past weeks with the main Sapling protocol (PR 1798) being reviewed, tested, and merged into master! This means that the main part of the protocol integration is now complete. Recently, @justmoonwalker has provided an actual shielded transaction CLI screenshot made using this integration on regtest and it worked perfectly. That’s right, it’s no longer some hopeful feature but is already part of PIVX code and is ready to be released!
Another great news is that the Pull Request #1963 for the Sapling GUI has been opened and it is already possible to send and receive shielded transactions on regtest directly through the new GUI! Final touches are currently being made, and soon the Sapling GUI will be ready to merge to master!
Fully Anonymous Staking is in the works! (SHIELD v2)
Now this was a big surprise. Core developer random.zebra has recently revealed some new upcoming features for both 5.0 and beyond!
A recent PR 1970 with a self-explanatory name of “Delegate from shielded addresses” has just been opened. A community member mentioned this on the PIVX discord and the original dev himself explained what it is and how it benefits the user.
RZ then let out a huge tidbit of information on what was secretly in the works!
So it’ll come out as part of the next major release after 5.0, but PIVX will still most likely be the first to have this capability on mainnet with zk-SNARKs once it is released. That’s right, fully SHIELD’ed staking is coming!
Recent Development Highlights & Reminders
PIVX Core Wallet - MANDATORY UPDATE
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).
zPIV support is going away! SPEND YOUR zPIV NOW or LOSE IT!
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, the support for zPIV will cease once 5.0 is released due to the deprecation of the Zerocoin protocol, and it is being replaced by SHIELD.
So we urge everyone with zPIV to convert them back to PIV ASAP and request assistance in PIVX Discord's public #support channel if you run into any issues or simply have questions.
Complete GitHub Activity
(October 12, 2020 – November 14, 2020)
Excluding merges, 5 authors have pushed 321 commits to master and 321 commits to all branches. On master, 208 files have changed and there have been 14,291 additions and 6,740 deletions.
52 Pull requests merged
- [RPC] shielded_sendmany from multiple sources + raw_shielded_sendmany
#1964 merged - [Refactor] Removing prev index pointer from FillBlockPayee flow.
#1937 merged - [Cleanup] Stop using Boost where possible
#1953 merged - [Validation] Sapling nullifiers mempool connection
#1958 merged - Sapling operation new spend from several different sources feature + send/build decoupling.
#1961 merged - [Bug] Updated stakeable coins in staker thread
#1962 merged - [BUG] Fix transaction size limits for sapling version
#1956 merged - [Wallet] fix GetShieldedChange, tx isSapling renamed to isSaplingVersion
#1959 merged - [Wallet] Shielded transactions balance cache system.
#1952 merged - [Core] Sapling transaction version
#1955 merged - [Refactoring] Budget, round 6: masternode vote for finalized budgets
#1861 merged - [Refactor] Move CFeeRate out of the consensus module
#1954 merged - [Test] Introducing tier two functional test suite + several fixes
#1916 merged - [Core] Say "Goodbye" to SwiftTX
#1945 merged - Sapling Integration: Chain + Wallet transaction manager.
#1798 merged - [Cleanup] Remove unconfirmed/immature zerocoin balance calculations
#1924 merged - [Refactor] Strip out cs_main lock for misbehaving from Masternodeman:ProcessMessage
#1922 merged - [wallet] CWalletTx: missing fStakeDelegationVoided initialization
#1951 merged - [Backport] Moving GetDustThreshold out of transaction primitive
#1950 merged - [Refactoring] Budget, round 5: proposals/budgets FeeTX indexes
#1858 merged - [RPC][Refactor] Register calls where they are defined
#1926 merged - [BUG][RPC] Add missing lock in sendrawtransaction
#1949 merged - [BUG][Wallet] Lock cs_main before accessing CheckFinalTx
#1948 merged - [Validation] Introducing Sapling transaction network connection and validations.
#1940 merged - Testing framework, adding mocktime startup arg.
#1946 merged - [Travis] Set stricter timeout for Dash 32bit job
#1947 merged - [Core] Arg parsing overhaul
#1938 merged - [Tests] Split out zerocoin and sapling unit tests to their own targets
#1944 merged - [Cleanup] Remove ZLNP remnants in bloom.h/bloom.cpp
#1934 merged - [Cleanup] Remove Q_FOREACH, PAIRTYPE, and BOOST_REVERSE_FOREACH
#1936 merged - [Cleanup] Remove duplicate header includes
#1933 merged - [Travis] Increase Travis ccache size and reduce spam
#1942 merged - [Refactoring] Budget, round 4: remove Broadcast classes
#1851 merged - [RPC] Speeding up listmasternodes command
#1930 merged - [Wallet] Sapling notes, nullifiers and witnesses management.
#1918 merged - [Validation] v8 blocks, Sapling merkle tree inclusion.
#1910 merged - [Trivial] Remove unused var in SaplingSPKM::AddSaplingSpendingKey
#1932 merged - [Mempool] Add tags to mempool's mapTx indices
#1913 merged - [BUG][GUI] guarding wallet ptr access in WalletModel:getEncryptionStatus .
#1931 merged - [GUI] isStakingStatusActive pointers guarded.
#1919 merged - [Validation] Introduce rolling cache for block hashes in masternode manager
#1904 merged - [Refactoring] Budget, round 3: split UpdateValid checks for proposals / finalized budgets
#1845 merged - Fix block-connection performance regression and mempool not copying tx performance improvement
#1915 merged - [Core] Lock cs_vSend and cs_inventory in a consistent order even in TRY
#1921 merged - [Sapling] Sapling transaction: builder, sapData net validation and builder unit tests coverage
#1912 merged - Tier two network sync new architecture, regtest support + MN activation functional test.
#1829 merged - [bug] Swiftx DoConsensusVote missing brackets always returning without doing anything.
#1914 merged - [Sapling] Anchors and nullifiers integrated into the chain state view layered cache.
#1903 merged - [RPC] Cache money supply on memory. Introduce getsupplyinfo
#1906 merged - [Refactor] Pass previous index from AcceptBlock to AcceptBlockHeader
#1898 merged - [Wallet] Kill Accounts
#1911 merged
18 Pull requests opened
- [RPC] Add additional warning to dumpwallet result object
#1927 opened - [GUI] Double confirmation dialog for dumpwallet command.
#1928 opened - [WIP][TierTwo] New Synchronization, initial DoS protection layer work.
#1935 opened - [Refactor] Removing prev index pointer from FillBlockPayee flow.
#1937 opened - CMasternode::GetLastPaid cleaning another strange piece of "code"
#1939 opened - [Wallet][DB] Back ports up to the CWallet/CWalletDB/CDB refactor.
#1943 opened - [Cleanup] Stop using Boost where possible
#1953 opened - [Validation] Sapling nullifiers mempool connection
#1958 opened - Update rust.mk
#1960 opened - Sapling operation new spend from several different sources feature + send/build decoupling.
#1961 opened - [WIP] Sapling milestone 5: Graphical User Interface
#1963 opened - [RPC] shielded_sendmany from multiple sources + raw_shielded_sendmany
#1964 opened - [RPC][Tests] Add sapling mempool test + getbestsaplinganchor
#1965 opened - [Core] Special Transactions base layer
#1966 opened - [Refactor] SaplingOperation: support for multisig, cold-staking, and OP_RETURN outputs
#1967 opened - [TierTwo] Missing misbehaving + ban score not introduced on the new msg dispatcher flow
#1968 opened - [Tests] Add support for sapling txes and v8 blocks in the framework
#1969 opened - [Validation][RPC] Delegate from shielded addresses
#1970 opened
4 Issues closed
- [Bug] TX gets marked as conflicted - 2 scenarios outlined
#1923 closed - [Bug] TX output size is validated with the wrong constant value.
#1929 closed - Tracking: Backport upstream network encapsulation
#1374 closed - [Tracking] Remove wallet 'account' API
#1706 closed
3 Issues opened
- socket send error Connection reset by peer
#1957 opened - [Bug] Segmentation fault when importing a private key
#1925 opened - [GUI] Budget allocation is considered as a Masternode Reward
#1917 opened
Major Development Targets
(subject to change and is never a complete list)
Q4 2020 - PIVX Core Wallet 5.0 testnet release
Q4 2020 - PIVX Core Wallet 5.0 mainnet release
Q1 2021 - SHIELD Activation on mainnet
Q2 2021 - SHIELD v2 with Private Staking
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/