Skip to content

@Fuzzbawls Fuzzbawls released this Sep 28, 2020 · 357 commits to master since this release

PIVX Core version 4.3.0 is now available from: https://github.com/pivx-project/pivx/releases

This is a new major version release, including various bug fixes and performance improvements, as well as updated translations.

Please report bugs using the issue tracker at github: https://github.com/pivx-project/pivx/issues

Recommended Update

This version is an optional, but recommended, update for all users and services.

How to Upgrade

If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux).

Downgrading warning

The chainstate database for this release is not compatible with previous releases, so if you run 4.3.0 and then decide to switch back to any older version, you will need to run the old release with the -reindex option to rebuild the chainstate data structures in the old format.

Compatibility

PIVX Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and later.

Microsoft ended support for Windows XP on April 8th, 2014, No attempt is made to prevent installing or running the software on Windows XP, you can still do so at your own risk but be aware that there are known instabilities and issues. Please do not report issues about Windows XP to the issue tracker.

Apple released it's last Mountain Lion update August 13, 2015, and officially ended support on December 14, 2015. PIVX Core software starting with v3.2.0 will no longer run on MacOS versions prior to Yosemite (10.10). Please do not report issues about MacOS versions prior to Yosemite to the issue tracker.

PIVX Core should also work on most other Unix-like systems but is not frequently tested on them.

Notable Changes

Performance Improvements

Version 4.3.0 contains a number of significant performance improvements, which make Initial Block Download, startup, transaction and block validation much faster:

  • The chainstate database (which is used for tracking UTXOs) has been changed from a per-transaction model to a per-output model (See PR 1801). Advantages of this model are that it:

    • avoids the CPU overhead of deserializing and serializing the unused outputs;
    • has more predictable memory usage;
    • uses simpler code;
    • is adaptable to various future cache flushing strategies.

    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. The only downside is that the on-disk database is 15% larger. During the conversion from the previous format a few extra gigabytes may be used.

  • LevelDB has been upgraded to version 1.22 (See PR 1738). This version contains hardware acceleration for CRC on architectures supporting SSE 4.2. As a result, synchronization and block validation are now faster.

Removal of Priority Estimation

Estimation of "priority" needed for a transaction to be included within a target number of blocks has been removed. The rpc calls are deprecated and will either return -1 or 1e24 appropriately.

The format for fee_estimates.dat has also changed to no longer save these priority estimates. It will automatically be converted to the new format which is not readable by prior versions of the software.

Dedicated mnping logging category

mnping related debug log messages have been moved to their own category of the same name. This is to reduce log spam when debugging with the masternode category enabled.

RPC Changes

Modified input/output for existing commands

  • The new database model no longer stores information about transaction
    versions of unspent outputs. This means that:
    • The gettxout RPC no longer has a version field in the response.
    • The gettxoutsetinfo RPC reports hash_serialized_2 instead of hash_serialized,
      which does not commit to the transaction versions of unspent outputs, but does
      commit to the height and coinbase/coinstake information.
    • The getutxos REST path no longer reports the txvers field in JSON format,
      and always reports 0 for transaction versions in the binary format
  • Three filtering options for the getbalance command have been reinstated:
    • minconf (numeric) Only include transactions confirmed at least this many times.
    • includeWatchonly (bool) Also include balance in watchonly addresses.
    • includeDelegated (bool) Also include balance delegated to cold stakers.
  • estimatefee is now deprecated and replaced by estimatesmartfee:
    • Input argument is the same for estimatesmartfee.
    • Output is now a JSON object with 2 fields: feerate and blocks
  • The getrawmempool RPC command now includes an additional output field:
    • modifiedfee (numeric) transaction fee with fee deltas used for mining priority.::ZZZZexit

Removed commands

The following commands have been removed from the interface:

  • estimatepriority

4.3.0 Change log

Detailed release notes follow. This overview includes changes that affect behavior, not code moves, refactors and string updates. For convenience in locating the code changes and accompanying discussion, both the pull request and git merge commit are mentioned.

Core Features

  • #1666 5a092159f6 [Core] Base work for the Sapling signatureHash (furszy)
  • #1746 128978d45b [Core] Only include undo.h from main.cpp (random-zebra)
  • #1768 6881e1063f [Core] Use SipHash-2-4 for various non-cryptographic hashes (Pieter Wuille)
  • #1771 bda654c5f3 [Core] Use SipHash for node eviction (Pieter Wuille)
  • #1773 90ffc6683b [Core] per-txout model preparation (random-zebra)
  • #1774 68df9a7d5b [Core] Alter assumptions in CCoinsViewCache::BatchWrite (random-zebra)
  • #1775 85b5f2eb83 [Core] Remove BIP30 check (random-zebra)
  • #1777 3c767c46b5 [Core] ModifyNewCoins saves database lookups (random-zebra)
  • #1788 823ba8e334 [Core] Remove priority estimation (random-zebra)
  • #1793 af793b7bb9 [Core] Safer modify new coins (Russell Yanofsky)
  • #1795 afafd7f6a9 [Core] Use unordered_map for CCoinsMap and fix empty vectors in streams (Pieter Wuille)
  • #1799 fcb546ad05 [Core] Remove UTXO cache entries when the tx they were added for is removed (Pieter Wuille)
  • #1801 30d353edab [Core] Per-txout model for chainstate database (random-zebra)
  • #1804 5c8b992033 [Core] Use std::unordered_{map,set} (C++11) instead of boost::unordered_* (random-zebra)

GUI

  • #1754 93d574170d [Model] Wallet interface refactor + code cleanup. (furszy)
  • #1776 2ad27b1407 [Model] TransactionRecord decomposeTransaction refactoring (furszy)
  • #1782 ada4462782 [GUI] Start masternodes polling timer only when is needed. (furszy)
  • #1805 f0cc6fcc38 [BUG][GUI] Don't append cold-stake records twice (random-zebra)
  • #1863 ad15bce2f5 [Trivial][GUI] Fix init messages (random-zebra)

Wallet

  • #1752 2e32285a70 [Wallet] Simple unused methods cleanup. (furszy)
  • #1755 eeb129b477 [wallet] List COutput solvability + wallet_ismine refactoring. (furszy)
  • #1757 e2cc4aa411 [Wallet] add cacheable amounts for caching credit/debit values (furszy)
  • #1759 dcc92f8157 [Wallet] AvailableCoins remove duplicated watchonly config argument. (furszy)
  • #1760 3b030f9978 [Wallet] AvailableCoins code readability improved (furszy)
  • #1764 6847d0d648 [Wallet] Securely erase potentially sensitive keys/values (Thomas Snider)
  • #1767 8ab63d3e5b [Wallet] Ignore MarkConflict if block hash is not known (random-zebra)
  • #1781 4715915d4c [Wallet] Acquire cs_main lock before cs_wallet during wallet initialization (random-zebra)
  • #1783 abf7c62934 [Wallet] Do not try to resend transactions if the node is importing or in IBD (furszy)
  • #1787 4b1f3eb792 [Wallet] Improve usage of fee estimation code (random-zebra)
  • #1802 7db7724cff [Wallet] Make nWalletDBUpdated atomic to avoid a potential race (furszy)
  • #1810 49bd99929d [Wallet] wtx cached balances test coverage + getAvailableCredit problem fix. (furszy)
  • #1811 e89e20eca1 [Wallet][Refactoring] wallet/init refactoring backports (random-zebra)
  • #1817 6480c7d9bf [Wallet] Speedup coinstake creation removing redundancies. (furszy)
  • #1832 c14d130b48 [Wallet] Cleanup getbalance methods that are not fulfilling any purpose. (furszy)

P2P Protocol and Network Code

  • #1769 1e334200bb [Net] Remove bogus assert on number of oubound connections. (Matt Corallo)
  • #1780 5fcad0c139 [Net] cs_vSend-cs_main deadlock detection fixed. (furszy)
  • #1800 616b102f8b [P2P] Improve AlreadyHave (Alex Morcos)
  • #1812 777638e7bc [P2P] Begin Network Encapsulation (random-zebra)
  • #1835 cbd9271afb [Net] Massive network refactoring and speedup (Fuzzbawls)

RPC/REST

  • #1753 e288a4508b [Trivial] [RPC] Fix listcoldutxos help text (JSKitty)
  • #1828 4fc36b59ee [RPC][BUG] Fix ActivateBestChain calls in reconsider(invalidate)block (random-zebra)
  • #1831 28509bf9e8 [RPC] re introducing filtering args in getbalance (furszy)

Build Systems

  • #1553 fddf765132 [Build] Sapling Foundations (Build System + ZIP32) (furszy)
  • #1703 2e11030e8b [Build] Require minimum boost version 1.57.0 (Fuzzbawls)
  • #1738 21c467b1eb [Build] Update leveldb to 1.22+ (Fuzzbawls)
  • #1750 544e619ebe [Trivial] openssl.org dependency download link changed (CryptoDev-Project)
  • #1770 32a2e8a031 [Build] Bump minimum libc to 2.17 for release binaries (Fuzzbawls)
  • #1790 6e7b9b2a82 [Build] Fix glibc compat (Fuzzbawls)
  • #1792 a3da3aa9f5 [Build] allow for empty RUST_TARGET in offline builds (Fuzzbawls)
  • #1794 760f426430 [Build] Use syslibs for nightly snap builds (Fuzzbawls)
  • #1813 259523cdc2 [CMake] Define MAC_OSX for cmake builds on macOS (Fuzzbawls)
  • #1823 d675fa3a1a [Travis] Lower the build timeout for the functional tests job (random-zebra)

Layer 2 (MN/Budget)

  • #1791 6162df962b [Masternodes] Missing cs main locks in CalculateScore and GetMasternodeInputAge (furszy)
  • #1803 69ec4a3fdf [Cleanup] masternode-budget tiny cleanup. (furszy)
  • #1825 a06c0fd993 [MN] more cleanup over the tier two area. (furszy)
  • #1826 961f5373bf [Refactor] Masternode Budget first refactoring and cleanup (random-zebra)
  • #1843 f4d5d34bed [Bug] Update budget manager best height even if mnSync is incomplete (random-zebra)

Miner/Block Generation

  • #1700 40742084de [Miner] Move coinbase & coinstake to P2PKH (furszy)
  • #1809 959d707bc9 [Miner] decouple zPIV duplicated serials checks from CreateNewBlock (furszy)
  • #1816 0fa40d7695 [Miner] Unifying the disperse coinbase tx flow + further clean up. (furszy)
  • #1818 242356d012 [Miner] PoS process (furszy)

Miscellaneous

  • #1694 0604a98bd0 [Backport] Test LowS in standardness (furszy)
  • #1721 8e19562dc4 [Validation] Reduce cs_main locks during ConnectTip/SyncWithWallets (furszy)
  • #1725 e59d8e59fa [Backport] mempool score index. (Alex Morcos)
  • #1735 ee749c5b9c [Validation] DisconnectBlock updates. (furszy)
  • #1785 277b1114d9 [Bug] lock cs_main for Misbehaving (furszy)
  • #1796 6d62df529b [BUG] Properly copy fCoinStake memeber between CTxInUndo and CCoins (random-zebra)
  • #1797 b909e96121 [Refactoring] Break circular dependency main txdb (random-zebra)
  • #1806 b9f30f65f2 [Refactor] Cleanup access to chainActive in a few places (random-zebra)
  • #1808 948e1a99c0 [Tests][Trivial] Remove mining in rpc_deprecated test (random-zebra)
  • #1820 846dca7b83 [Cleanup] remove unneeded chainActive access. (furszy)
  • #1821 4b3fb02dc3 [Cleanup] removing unused GetMasternodeByRank method (furszy)
  • #1822 48d7475bd4 [Refactor] Dedicated logging category for masternode pings (random-zebra)
  • #1824 6ec609f93d [Cleanup] IsBlockValueValid refactored properly. (furszy)
  • #1827 70bf7203ee [Cleanup] removed null check comparison against a new object. (furszy)
  • #1833 9c06e5d7ce [Refactor] Remove GetInputAge and GetMasternodeInputAge (random-zebra)
  • #1853 e8d13ef4b0 [Cleanup] Removing unused and unneeded functions and members (furszy)
  • #1855 3cd52771f2 [Bug] wrong reserveKey when committing budget/proposal collaterals (random-zebra)
  • #1860 5aed03f6fe [Bug] Missing mnping category added to logcategories (furszy)

Credits

Thanks to everyone who directly contributed to this release:

  • Alex Morcos
  • Cory Fields
  • CryptoDev-Project
  • Daniel Kraft
  • Ethan Heilman
  • Fuzzbawls
  • Gregory Maxwell
  • JSKitty
  • Jack Grigg
  • Jeremy Rubin
  • Luke Dashjr
  • Matt Corallo
  • Patrick Strateman
  • Pavel Janík
  • Philip Kaufmann
  • Pieter Wuille
  • Russell Yanofsky
  • Suhas Daftuar
  • Thomas Snider
  • Wladimir J. van der Laan
  • furszy
  • jtimon
  • random-zebra

As well as everyone that helped translating on Transifex, the QA team during Testing and the Node hosts supporting our Testnet.

Assets 12
Pre-release
Pre-release

@Fuzzbawls Fuzzbawls released this Sep 11, 2020 · 357 commits to master since this release

First release candidate for the upcoming 4.3.0 release.

Full, finalized release notes will be available with the final release version.

Assets 12
Pre-release
Pre-release

@Fuzzbawls Fuzzbawls released this Aug 21, 2020 · 978 commits to master since this release

First release candidate for the upcoming 4.2.1 release.

Full, finalized release notes will be available with the final release version.

Assets 13

@Fuzzbawls Fuzzbawls released this Jul 27, 2020 · 978 commits to master since this release

PIVX Core version 4.2.0 is now available from: https://github.com/pivx-project/pivx/releases

This is a new major version release, including various bug fixes and performance improvements, as well as updated translations.

Please report bugs using the issue tracker at github: https://github.com/pivx-project/pivx/issues

Recommended Update

This version is an optional, but recommended, update for all users and services.

How to Upgrade

If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux).

Compatibility

PIVX Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and later.

Microsoft ended support for Windows XP on April 8th, 2014, No attempt is made to prevent installing or running the software on Windows XP, you can still do so at your own risk but be aware that there are known instabilities and issues. Please do not report issues about Windows XP to the issue tracker.

Apple released it's last Mountain Lion update August 13, 2015, and officially ended support on December 14, 2015. PIVX Core software starting with v3.2.0 will no longer run on MacOS versions prior to Yosemite (10.10). Please do not report issues about MacOS versions prior to Yosemite to the issue tracker.

PIVX Core should also work on most other Unix-like systems but is not frequently tested on them.

Notable Changes

Removed zerocoin GUI

Spending zPIV and getting zPIV balance information is no longer available in the graphical interface (#1549). The feature remains accessible through the RPC interface: getzerocoinbalance, listmintedzerocoins, listzerocoinamounts, spendzerocoin, spendzerocoinmints.

Memory pool limiting

Previous versions of PIVX Core had their mempool limited by checking a transaction's fees against the node's minimum relay fee. There was no upper bound on the size of the mempool and attackers could send a large number of transactions paying just slighly more than the default minimum relay fee to crash nodes with relatively low RAM.

PIVX Core 4.2.0 will have a strict maximum size on the mempool. The default value is 300 MB and can be configured with the -maxmempool parameter. Whenever a transaction would cause the mempool to exceed its maximum size, the transaction that (along with in-mempool descendants) has the lowest total feerate (as a package) will be evicted and the node's effective minimum relay feerate will be increased to match this feerate plus the initial minimum relay feerate. The initial minimum relay feerate is set to 1000 satoshis per kB.

PIVX Core 4.2.0 also introduces new default policy limits on the length and size of unconfirmed transaction chains that are allowed in the mempool (generally limiting the length of unconfirmed chains to 25 transactions, with a total size of 101 KB). These limits can be overridden using command line arguments (#1645, #1647).

Benchmarking Framework

PIVX Core 4.2.0 backports the internal benchmarking framework from Bitcoin Core, which can be used to benchmark cryptographic algorithms (e.g. SHA1, SHA256, SHA512, RIPEMD160, Poly1305, ChaCha20), Base58 encoding and decoding and thread queue. More tests are needed for script validation, coin selection and coins database, cuckoo cache, p2p throughtput (#1650).

The binary file is compiled with pivx-core, unless configured with --disable-bench.

After compiling pivx-core, the benchmarks can be run with:

src/bench/bench_pivx

The output will be similar to:

#Benchmark,count,min(ns),max(ns),average(ns),min_cycles,max_cycles,average_cycles
Base58CheckEncode,131072,7697,8065,7785,20015,20971,20242

'label' and 'account' APIs for wallet

A new 'label' API has been introduced for the wallet. This is intended as a
replacement for the deprecated 'account' API. The 'account' can continue to
be used in v4.2 by starting pivxd with the '-deprecatedrpc=accounts'
argument, and will be fully removed in v5.0.

The label RPC methods mirror the account functionality, with the following functional differences:

  • Labels can be set on any address, not just receiving addresses. This functionality was previously only available through the GUI.
  • Labels can be deleted by reassigning all addresses using the setlabel RPC method.
  • There isn't support for sending transactions from a label, or for determining which label a transaction was sent from.
  • Labels do not have a balance.

Here are the changes to RPC methods:

Deprecated Method New Method Notes
getaccount getaddressinfo getaddressinfo returns a json object with address information instead of just the name of the account as a string.
getaccountaddress n/a There is no replacement for getaccountaddress since labels do not have an associated receive address.
getaddressesbyaccount getaddressesbylabel getaddressesbylabel returns a json object with the addresses as keys, instead of a list of strings.
getreceivedbyaccount getreceivedbylabel no change in behavior
listaccounts listlabels listlabels does not return a balance or accept minconf and watchonly arguments.
listreceivedbyaccount listreceivedbylabel Both methods return new label fields, along with account fields for backward compatibility.
move n/a no replacement
sendfrom n/a no replacement
setaccount setlabel Both methods now:
  • allow assigning labels to any address, instead of raising an error if the address is not receiving address.
  • delete the previous label associated with an address when the final address using that label is reassigned to a different label, instead of making an implicit getaccountaddress call to ensure the previous label still has a receiving address.
Changed Method Notes
listunspent Returns new label fields, along with account fields for backward compatibility if running with the -deprecatedrpc=accounts argument
sendmany The first parameter has been renamed to dummy, and must be set to an empty string, unless running with the -deprecatedrpc=accounts argument (in which case functionality is unchanged).
listtransactions The first parameter has been renamed to dummy, and must be set to the string *, unless running with the -deprecatedrpc=accounts argument (in which case functionality is unchanged).
getbalance account, minconf and include_watchonly parameters are deprecated, and can only be used if running with the -deprecatedrpc=accounts argument
getcoldstakingbalance The account parameter is deprecated, and can only be used if running with the -deprecatedrpc=accounts argument (in which case functionality is unchanged)
getdelegatedbalance The account parameter is deprecated, and can only be used if running with the -deprecatedrpc=accounts argument (in which case functionality is unchanged)

GUI Changes

Topbar navigation

  • The "sync" button in the GUI topbar can be clicked to go directly to the Settings --> Information panel (where the current block number and hash is shown).

  • The "connections" button in the GUI topbar can be clicked to open the network monitor dialog (#1688).

Functional Changes

Stake-Split threshold

If the stake split is active (threshold > 0), then stake split threshold value must be greater than a minimum, set by default at 100 PIV. The minimum value can be changed using the -minstakesplit startup flag (#1586). A value 0 is still allowed, regardless of the minimum set, and, as before, can be used to disable the stake splitting functionality.

Changed command-line options

  • new command -minstakesplit to modify the minimum allowed for the stake split threshold (#1586).

  • new commands -maxmempool, to customize the memory pool size limit, and -checkmempool=N, to customize the frequency of the mempool check (#1647).

  • new commands -limitancestorcount=N and limitancestorsize=N, to limit the number and total size of all in-mempool ancestors for a transaction (#1647).

  • new commands -limitdescendantcount=N and limitdescendantsize=N, to limit the number and total size of all in-mempool descendants for a transaction (#1647).

RPC Changes

In addition to the afore mentioned 'label' and 'account' API changes, other RPC changes are as follows:

Low-level API changes

  • The asm property of each scriptSig now contains the decoded signature hash type for each signature that provides a valid defined hash type (#1633).

    The following items contain assembly representations of scriptSig signatures
    and are affected by this change: RPC getrawtransaction, RPC decoderawtransaction, REST /rest/tx/ (JSON format), REST /rest/block/ (JSON format when including extended tx details), pivx-tx -json

Modified input/output for existing commands

  • new "usage" field in the output of getmempoolinfo, displaying the total memory usage for the mempool (#1645).

  • new "upgrades" field in the output of getblockchaininfo, showing upcoming and active network upgrades (#1665, #1687).

  • listreceivedbyaddress has a new optional "addressFilter" argument that will filter the results to only the specified address

Removed commands

  • masternodedebug. Use getmasternodestatus instead. (#1698).

4.2.0 Change log

Detailed release notes follow. This overview includes changes that affect behavior, not code moves, refactors and string updates. For convenience in locating the code changes and accompanying discussion, both the pull request and git merge commit are mentioned.

Core Features

  • #1414 e3ceda31c5 uint256 to arith_uint256 migration (Second step). (furszy)
  • #1486 e146131780 Replace OpenSSL AES with ctaes-based version (furszy)
  • #1488 cc84157e52 CCrypter using secure allocator vector. (furszy)
  • #1531 1f9e7e45ba [Backport] Implement accurate UTXO cache size accounting (furszy)
  • #1533 898bcd24ad [Backport] Make connect=0 disable automatic outbound connections. (furszy)
  • #1534 d45c58e89d [Backport] Preemptively catch a few potential bugs (furszy)
  • #1554 0dedec8157 [Core] Big endian support (random-zebra)
  • #1557 8dfc4806f7 [Core] Prevector (random-zebra)
  • #1564 2c11e37c91 Abstract out CTransaction-specific signing into SignatureCreator (furszy)
  • #1587 c9741c53b1 [Backport] Shut down if trying to connect a corrupted block (furszy)
  • #1593 f59c8fb625 Prepare for non-Base58 addresses [Step 1] (furszy)
  • #1629 73d26f20e9 [DB] Bitcoin 0.12-0.14 dbwrapper improvements (random-zebra)
  • #1630 a9ac1cc51f [Refactoring] Lightweight abstraction of boost::filesystem (random-zebra)
  • #1631 56b414761c [Miner] Remove 2017 invalid outputs check (furszy)
  • #1633 8cd9c592a9 [Core] Bitcoin 0.12-0.14 serialization improvements (random-zebra)
  • #1634 e0239f801d [Core] prevector: named union and defaults vars initialization (random-zebra)
  • #1641 7c102142c7 [Core] New fee estimation code (random-zebra)
  • #1645 49867086da [Core] Implement accurate memory accounting for mempool (random-zebra)
  • #1647 eb00d0f62f [Core] MemPool package tracking and limits (Alex Morcos)
  • #1650 4ed15cc69d [Tests] Benchmarking Framework (random-zebra)
  • #1665 602ad3d7f8 New upgrade structure. (furszy)
  • #1668 7e65a82e7d [Backport] Make sigcache faster (furszy)
  • #1669 c072659135 Better sigcache implementation (CuckooCache) (furszy)
  • #1670 8d7e7808d0 [Refactoring] CValidationState logging (random-zebra)
  • #1673 a5ba7200c6 [Core] Separate Consensus CheckTxInputs and GetSpendHeight in CheckInputs (furszy)
  • #1676 961e2d2a70 [Backport] Base58 performance improvements (Kaz Wesley)
  • #1677 95fefe9c0d Prepare for non-Base58 addresses [Step 2] (furszy)
  • #1679 c157deb76b Prepare for non-Base58 addresses [Step 3] (furszy)
  • #1687 f054e3e627 [Refactor] Network upgrades management cleanup (random-zebra)
  • #1697 13576cfe14 [BUG] Fix mempool entry priority (furszy)
  • #1707 6bc917e859 RPC & Mempool back ports. (furszy)
  • #1728 1c472ebae8 IsInitialBlockDownload: usually avoid locking (furszy)
  • #1729 76ea490ac1 [Core] Add checkpoints for PIVX v4.1.1 enforcement (random-zebra)
  • #1733 e4ae10db31 Move zerocoin validation to its own legacy file. (furszy)
  • #1747 6f90e8be13 NU custom activation height startup arg. (furszy)

Build System

  • #1681 131ec069fd [Build] Set complete cpp/cxx flags for bench_pivx binary (Fuzzbawls)
  • #1684 69fa8dce5e [Travis] Bump macOS CMake target image (Fuzzbawls)
  • #1710 ed63a331a3 [Depends] Update dependency fallback URL (Fuzzbawls)

P2P Protocol and Network Code

  • #1542 87feface84 [Net] Add and document network messages in protocol.h (Fuzzbawls)
  • #1579 e941230894 [Net] Use SeedSpec6's rather than CAddress's for fixed seeds (Cory Fields)
  • #1616 f295ee4e4e [P2P] Enforce expected outbound services (Pieter Wuille)
  • #1618 077ab3db70 [P2P] Do not set extra flags for unfiltered DNS seed results (Pieter Wuille)
  • #1638 cadf9e6daa [Net] Fix masking of irrelevant bits in address groups (Alex Morcos)
  • #1646 4c829bb274 [Net] Turn net structures into dumb storage classes (furszy)
  • #1672 745a05804f [Bug] removed "dseg" message support re-introduced. (furszy)
  • #1704 8bbc0650e6 [Net] Pre-requirements for network encapsulation (random-zebra)

GUI

  • #1059 39a0fa6e04 [UI] Improve staking chart workflow (Akshay)
  • #1287 e7dd0947c0 [GUI] Load persisted transaction filter during start (Mrs-X)
  • #1516 93df7ce6ec [GUI] MacOS fix open files with no default app. (furszy)
  • #1548 176d3ae558 [Cleanup][GUI] Remove zPIV faqs (random-zebra)
  • #1549 47bf23aa14 [Cleanup][GUI] Nuke zPIV from the GUI (random-zebra)
  • #1598 f66f72656d [GUI] Split "Delegators" address type in the table model (furszy)
  • #1601 78a2923184 [GUI] Tor state missing translation (furszy)
  • #1604 8ec6bbe737 [Refactor][GUI] Set static texts in .ui files + add missing tr() (random-zebra)
  • #1607 749d42a812 [QT] Add password mismatch warnings (JSKitty)
  • #1610 9ac68cffd5 [GUI][UX] Add accept/close keyboard controls to all dialogs (random-zebra)
  • #1611 3d9222edf0 [GUI][Bug] CoinControl payAmounts and nBytes calculation (random-zebra)
  • #1612 eea3f42ab6 [GUI] CoinControlDialog fix SelectAll / UnselectAll (random-zebra)
  • #1623 b7e2d97a42 [GUI][Trivial] Change Custom fee amount when Recommended fee is selected (Ambassador)
  • #1626 5b064a6145 [GUI][Bug] Notify transaction creation failure reason (random-zebra)
  • #1644 34bf1c0583 [GUI] Fix invalid Destination toString encoding. (Fuzzbawls)
  • #1652 a2850ce0fe [GUI] cs widget: minor usability improvements (random-zebra)
  • #1653 6ad9bfcc48 [GUI] Reuse collateral UTXOs in MnWizard (random-zebra)
  • #1657 169fc34192 [GUI][Model] Remove unneeded lock in checkBalanceChanged (furszy)
  • #1667 730566d510 [GUI] removing unused bitcoinamountfield file (furszy)
  • #1678 fb14a8fb46 [GUI][Model] Remove zerocoin methods. (furszy)
  • #1683 68e1ee69e5 [GUI] Add missing QPainterPath include (Fuzzbawls)
  • #1688 129563c273 [GUI] TopBar navigation (sync/peers) (random-zebra)
  • #1690 12a8f8a5c4 [BUG][GUI] check for available "unlocked" balance in prepareTransaction (random-zebra)
  • #1696 f84445af1e [BUG][GUI] Restore message() connection for ColdStakingWidget (random-zebra)
  • #1699 9bba19c62e [GUI] Fix dashboard txs list blinking issue (furszy)
  • #1708 f3b54df58d [BUG][GUI] Non-static coinControl object in CoinControlDialogs (random-zebra)
  • #1715 37c01cf359 [GUI][Trivial] Update settingsfaqwidget.ui (Jeffrey)
  • #1724 c178aab2fe [GUI] Return early in pollBalanceChanged (Fuzzbawls)
  • #1732 be99df3342 [GUI] Better start single MN error description. (furszy)
  • #1737 78ed084999 [GUI] Replace more deprecated Qt methods (Fuzzbawls)
  • #1740 141141c9cf [GUI] Periodic make translate (Fuzzbawls)
  • #1741 ffae965fad [GUI] Settings console message moved to read only. (furszy)
  • #1742 a94f8f9a90 [GUI] Fix settings language combobox initialization. (furszy)
  • #1744 fda84ee710 [GUI] Recognize key event for clearing console (Fuzzbawls)
  • #1749 e182e112bc [GUI] Solving old, not loaded at startup, transactions notification issue. (furszy)

RPC/REST

  • #1640 0b84a5025d [P2P][RPC] Rework addnode behaviour (Pieter Wuille)
  • #1660 10876c6c80 [RPC] Change btc to PIV in help text (PeterL73)
  • #1663 0724bbbad2 [Wallet][RPC] FundTransaction - fundrawtransaction (random-zebra)
  • #1702 7a849ca06a [RPC] Table registration update and wallet table decoupled. (furszy)
  • #1731 fe845a83d2 [RPC][Wallet] Deprecate internal account system (Fuzzbawls)

Wallet

  • #1586 73c3ecc388 [Wallet] Minimum value for stake split threshold (random-zebra)
  • #1695 98cf582557 [Wallet] Abandon tx in CommitTransaction if ATMP fails (random-zebra)
  • #1698 ccecffd144 [Wallet] Masternodes start performance boost (furszy)
  • #1713 f31b51f08e [Refactor] zerocoin code moved from wallet.cpp to wallet_zerocoin.cpp (furszy)
  • #1717 f928674bf7 [Wallet] AddToWallet split in AddToWallet and LoadToWallet (furszy)
  • #1734 78a4f68ab2 [Wallet][BUG] fix detection of wallet conflicts in CWallet::AddToWallet (random-zebra)

Scripts and Tools

  • #1693 a5265a4db4 Upstream scripts back ports [Step 1] (furszy)
  • #1701 f8f0fe0bf1 [Tools] logprint-scanner for error() and strprintf() (random-zebra)

Miscellaneous

  • #1547 1824def118 [Refactor] Define constant string variable for currency unit (random-zebra)
  • #1568 8c06746f18 [Trivial] Unused Image Removal & Readme Revisions (Yuurin Bee)
  • #1643 80c5499b39 Fix Destination wrapper segfault on copy constructor (furszy)
  • #1659 494c841f7e Few compiler warnings fixed. (furszy)
  • #1662 5d3266c25c [Cleanup] Remove obsolete multisig code (random-zebra)
  • #1674 360ee1dfc5 Remove unused MultiSigScriptSet typedef and member (furszy)
  • #1689 9205aa6277 [Cleanup] Small main.cpp cleanup (furszy)
  • #1692 1221efd5d6 [Cleanup] Don't sign MESS_VER_STRMESS network msgs anymore (random-zebra)
  • #1705 2d6835e734 [Doc] Add/Update some release notes for 4.2 (random-zebra)
  • #1718 5e75d4c344 [Trivial] Spelling Error (Yuurin Bee)
  • #1719 b72ec2ff52 [Cleanup] remove masternode broadcast from CActiveMasternode class (random-zebra)
  • #1722 f68acbe01e Unused methods cleanup (furszy)
  • #1736 fc5d36ac77 [Cleanup] Transaction primitive unused methods cleanup. (furszy)
  • #1751 dbcbf8a995 [Miner] Unused reserveKey cleanup (furszy)

Credits

Thanks to everyone who directly contributed to this release:

  • Akshay
  • Alex Morcos
  • Ambassador
  • Ben Woosley
  • Cory Fields
  • Ethan Heilman
  • Fuzzbawls
  • Gavin Andresen
  • Gregory Maxwell
  • JSKitty
  • Jeffrey
  • Jeremy Rubin
  • Jiaxing Wang
  • John Newbery
  • Jonas Schnelli
  • João Barbosa
  • Kaz Wesley
  • Marko Bencun
  • Patrick Strateman
  • Peter Todd
  • PeterL73
  • Pieter Wuille
  • Suhas Daftuar
  • Wladimir J. van der Laan
  • Yuurin Bee
  • furszy
  • practicalswift
  • random-zebra

As well as everyone that helped translating on Transifex, the QA team during Testing and the Node hosts supporting our Testnet.

Assets 13
Pre-release
Pre-release

@Fuzzbawls Fuzzbawls released this Jul 13, 2020 · 978 commits to master since this release

First release candidate for the upcoming 4.2.0 release.

Full, finalized release notes will be available with the final release version, until then, you can view the draft, in-progress release notes at https://github.com/PIVX-Project/PIVX/blob/4.2/doc/release-notes.md

Assets 11

@Fuzzbawls Fuzzbawls released this May 31, 2020 · 1611 commits to master since this release

PIVX Core version 4.1.1 is now available from: https://github.com/pivx-project/pivx/releases

This is a new minor version release, including various bug fixes and performance improvements, as well as updated translations.

Please report bugs using the issue tracker at github: https://github.com/pivx-project/pivx/issues

Mandatory Update

PIVX Core v4.1.1 is a mandatory update for all users. This release contains new consensus rules and improvements that are not backwards compatible with older versions. Users will need to update their clients before enforcement of this update goes into effect.

Update enforcement is currently scheduled to go into effect at the following time:

Mainnet: Friday, June 5, 2020 9:00:00 PM GMT

Masternodes will need to be restarted once both the masternode daemon and the controller wallet have been upgraded.

How to Upgrade

If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux).

Compatibility

PIVX Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and later.

Microsoft ended support for Windows XP on April 8th, 2014, No attempt is made to prevent installing or running the software on Windows XP, you can still do so at your own risk but be aware that there are known instabilities and issues. Please do not report issues about Windows XP to the issue tracker.

Apple released it's last Mountain Lion update August 13, 2015, and officially ended support on December 14, 2015. PIVX Core software starting with v3.2.0 will no longer run on MacOS versions prior to Yosemite (10.10). Please do not report issues about MacOS versions prior to Yosemite to the issue tracker.

PIVX Core should also work on most other Unix-like systems but is not frequently tested on them.

Notable Changes

We have identified and fixed Layer 2 check that was causing some nodes to disagree on Masternode winners list and thus resulted in these nodes forking.

Credits

Thanks to everyone who directly contributed to this release:

  • Fuzzbawls
  • furszy
  • random-zebra

As well as everyone that helped translating on Transifex, the QA team during Testing and the Node hosts supporting our Testnet.

Assets 13

@Fuzzbawls Fuzzbawls released this May 6, 2020 · 1611 commits to master since this release

PIVX Core version 4.1.0 is now available from: https://github.com/pivx-project/pivx/releases

This is a new major version release, including various bug fixes and performance improvements, as well as updated translations.

Please report bugs using the issue tracker at github: https://github.com/pivx-project/pivx/issues

Recommended Update

This version is an optional, but recommended, update for all users and services.

How to Upgrade

If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux).

Compatibility

PIVX Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and later.

Microsoft ended support for Windows XP on April 8th, 2014, No attempt is made to prevent installing or running the software on Windows XP, you can still do so at your own risk but be aware that there are known instabilities and issues. Please do not report issues about Windows XP to the issue tracker.

Apple released it's last Mountain Lion update August 13, 2015, and officially ended support on December 14, 2015. PIVX Core software starting with v3.2.0 will no longer run on MacOS versions prior to Yosemite (10.10). Please do not report issues about MacOS versions prior to Yosemite to the issue tracker.

PIVX Core should also work on most other Unix-like systems but is not frequently tested on them.

Notable Changes

Hierarchical Deterministic Wallet (HD Wallet)

Wallets under a tree derivation structure in which keypairs are generated deterministically from a single seed, which can be shared partially or entirely with different systems, each with or without the ability to spend coins, BIP32.

Enabling major improvements over the keystore management, the PIVX wallet doesn't require regular backups as before, keys are following a deterministic creation path that can be verified at any time (before HD Wallet, every keypair was randomly created and added to the keypool, forcing the user to backup the wallet every certain amount of time or could end up loosing coins forever if the latest wallet.dat was not being used).
As well as new possibilities like the account extended public key that enables deterministic public keys creation without the private keys requisite inside the wallet (A good use case could be online stores generating fresh addresses).

This work includes a customization/extension to the BIP44 standard. We have included an unique staking keys derivation path which introduced the deterministic generation/recovery of staking addresses.

An extended description of this large work can be found in the PR here.

HD Wallet FAQ

  • How do i upgrade to HD Wallet?

    GUI:

    1. A dialog will appear on every wallet startup notifying you that you are running a pre-HD wallet and letting you upgrade it from there.
    2. If you haven't upgraded your wallet, the topbar (bar with icons that appears at the top of your wallet) will have an "HD" icon. Click it and the upgrade dialog will be launched.

    RPC:

    1. If your wallet is unlocked, use the -upgradewallet flag at startup and will automatically upgrade your wallet.
    2. If your wallet is encrypted, use the upgradewallet rpc command. It will upgrade your wallet to the latest wallet version.
  • How do i know if i'm already running an HD Wallet?

    1. GUI: Go to settings, press on the Debug option, then Information.
    2. RPC: call getwalletinfo, the walletversion field must be 169900 (HD Wallet Feature).

Boosted wallet performance

This release introduces a number of upgrades and improvements that greatly increase the wallet performance. RAM usage is reduced by ~64% and wallet's initial sync is ~42% faster.

Drop Windows 32-bit Binaries

We are no longer shipping pre-compiled 32-bit Windows binaries as the demand for such binaries has been observed to be non-existent. While it may still be possible to self-compile for 32-bit Windows (x86), no efforts henceforth will be made to maintain that compatibility.

Any users currently running a 32-bit Windows OS should seek to upgrade to a 64-bit Windows OS in order to continue using the Core wallet now and in the future.

Removal of Partially translated locales

From version 4.1.0 and onward, releases will no longer include any translation for languages that are not at least 80% translated.

MultiSend Disabled

The MultiSend wallet feature has been effectively disabled as it's flow is clunky, out of date, and in need of a full re-code and review.

This has no effect on user funds.

GUI Changes

Keyboard navigation

Dialogs can now be accepted with the ENTER (RETURN) key, and dismissed with the ESC key (#1392).

Address sorting

Address sorting in "My Addresses" / "Contacts" / "Cold Staking" can now be customized, setting it either by label (default), by address, or by creation date, ascending (default) or descending order.
Addresses in the dropdown of the "Send Transaction" and "Send Delegation" widgets are now automatically sorted by label with ascending order (#1393).

Custom Fee

The custom fee selected when sending a transaction is now saved in the wallet database and persisted across multiple sends and wallet's restarts (#1406). The fee is now also validated against the maximum value (10000 times minRelayTxFee) and minimum value (minTxFee) (#1576).

Include delegations in send

The send and cold-staking page present a checkbox to make the automatic input selection algorithm include delegated (P2CS) utxos if needed. The option is unchecked by default. (#1391)

Optional Hiding of Staking Charts

The staking charts can now be hidden at startup (with a flag --hidecharts) or at runtime with a checkbox in settings --> options --> display (#1475).

Context Lock/Unlock

Present the unlock dialog directly (instead of an error message), whenever an action on encrypted/locked wallet requires full unlock.

Restore the previous locking state ("locked" or "locked for staking only") when the action is completed. (#1387)

External Change Address Warning

A new warning/confirmation dialog is displayed if a custom change address is not part of the wallet. (#1527)

Cold Stake delegations marked in Coin Control

The Coin Control window now includes an icon next to the select checkbox when the UTXO is a Cold Stake delegation. This shares the space with the locked UTXO indicator icon, and locked UTXO's take priority in their icon display. (#1470)

Hide zPIV balance info as needed

When the wallet contains no zPIV, the zPIV balance details will be hidden, reducing visual clutter.

CSV Exporting

Transaction and address data can now be quickly exported to a CSV file from the Settings area of the GUI.

Transaction output format is comma separated with header row as follows:

"Confirmed","Date","Type","Label","Address","Amount (PIV)","ID"

Address output format is comma separated with header row as follows:

"Label","Address","Type"

Functional Changes

zPIV Backup Removed

Automatic zPIV backup has been disabled. Thus, the following configuration options have been removed (either as entries in the pivx.conf file or as startup flags):

  • autozpivbackup
  • backupzpiv
  • zpivbackuppath

Stake-Split threshold

The stake split threshold is no longer required to be integer. It can be a fractional amount. A threshold value of 0 disables the stake-split functionality.

The default value for the stake-split threshold has been lowered from 2000 PIV, down to 500 PIV.

Changed command-line options

  • -debuglogfile=<file> can be used to specify an alternative debug logging file. This can be an absolute path or a path relative to the data directory
  • -debugexclude=<category> can be used to specify which debug categories to not log, useful when pairing with the -debug=<exclude> option.
  • The -reservebalance configuration/startup option has been removed (#1373).

Dependencies

The minimum required version of QT has been increased from 5.0 to 5.5.1 (the depends system provides 5.9.7)

RPC Changes

Modified input/output for existing commands

  • "CoinStake" JSON object in getblock output is removed, and replaced with the strings "stakeModifier" and "hashProofOfStake"

  • "obfcompat" JSON field in getmasternodecount output is removed as it is/was redundant with the enabled field.

  • "moneysupply" and "zpivSupply" attributes in getblock output are removed.

  • "isPublicSpend" boolean (optional) input parameter is removed from the following commands:

    • createrawzerocoinspend
    • spendzerocoin
    • spendzerocoinmints
    • spendrawzerocoin

    These commands are now able to create only public spends (private spends were already enabled only on regtest).

  • "mintchange" and "minimizechange" boolean input parameters are removed from the following commands:

    • spendzerocoin

    Mints are disabled, therefore it is no longer possible to mint the change of a zerocoin spend. The change is minimized by default.

  • setstakesplitthreshold now accepts decimal amounts. If the provided value is 0, split staking gets disabled. getstakesplitthreshold returns a double.

  • dumpwallet no longer allows overwriting files. This is a security measure
    as well as prevents dangerous user mistakes.

  • The output of getstakingstatus was reworked. It now shows the following information:

    {
       "staking_status": true|false,       (boolean) whether the wallet is staking or not
       "staking_enabled": true|false,      (boolean) whether staking is enabled/disabled in pivx.conf
       "coldstaking_enabled": true|false,  (boolean) whether cold-staking is enabled/disabled in pivx.conf
       "haveconnections": true|false,      (boolean) whether network connections are present
       "mnsync": true|false,               (boolean) whether masternode data is synced
       "walletunlocked": true|false,       (boolean) whether the wallet is unlocked
       "stakeablecoins": n,                (numeric) number of stakeable UTXOs
       "stakingbalance": d,                (numeric) PIV value of the stakeable coins (minus reserve balance, if any)
       "stakesplitthreshold": d,           (numeric) value of the current threshold for stake split
       "lastattempt_age": n,               (numeric) seconds since last stake attempt
       "lastattempt_depth": n,             (numeric) depth of the block on top of which the last stake attempt was made
       "lastattempt_hash": xxx,            (hex string) hash of the block on top of which the last stake attempt was made
       "lastattempt_coins": n,             (numeric) number of stakeable coins available during last stake attempt
       "lastattempt_tries": n,             (numeric) number of stakeable coins checked during last stake attempt
     }
    

Removed commands

The following commands have been removed from the RPC interface:

  • createrawzerocoinstake
  • getmintsinblocks
  • reservebalance
  • getpoolinfo

Newly introduced commands

The following new commands have been added to the RPC interface:

  • logging Gets and sets the logging configuration.

    When called without an argument, returns the list of categories that are currently being debug logged.

    When called with arguments, adds or removes categories from debug logging.

    E.g. logging "[\"all\"]" "[\"http\"]""

4.1.0 Change log

Detailed release notes follow. For convenience in locating the code changes and accompanying discussion, both the pull request and git merge commit are mentioned.

GUI

  • #1044 9d259c93c7 [Qt] Define QT_NO_KEYWORDS (Fuzzbawls)
  • #1047 ebe1fcbce4 [Qt] Add more information to settings info panel (Fuzzbawls)
  • #1049 521d13b6f0 [Qt] Switch to newer connect syntax (Fuzzbawls)
  • #1286 b0e43379ee [GUI] Set width and default minimum scrollbar height (Mrs-X)
  • #1289 4c39ad1ec6 [GUI] Windowtitle parameter fix (Mrs-X)
  • #1297 5e407c71cc [GUI] Restore address list when switching panes in CSwidget (random-zebra)
  • #1298 5dfad15c57 [Model][Performance] Unnecessary double cs_wallet and cs_main lock. (furszy)
  • #1301 af90f927a0 [ClientModel] Remove polling based chain height update entirely. (furszy)
  • #1306 65ba128634 [GUI] Hide privacy widget when the wallet has no zPIV balance (furszy)
  • #1316 bcb04a44a1 [Trivial] fix typo "recomended" in sendcustomfee dialog (random-zebra)
  • #1323 e2c07184f9 [Qt] Hide zPIV balances when they are zero (Fuzzbawls)
  • #1332 a5be177025 [GUI] Do not update the GUI so often when reindex/import is being executed. (furszy)
  • #1339 1716e6e835 [GUI] Tor topbar icon status. (furszy)
  • #1353 ff7b460ef4 [GUI] Export csv files. (furszy)
  • #1354 8c31fed2f5 [Trivial] Minor showed amount fix (NoobieDev12)
  • #1357 85497fed21 [Qt] Replace deprecated Qt methods (Fuzzbawls)
  • #1361 0a613c0a5e [GUI] Dashboard, include owner cold stakes in the chart (furszy)
  • #1377 5a600bab11 [Trivial] Fix typo in settingsbittoolwidget.cpp (RottenCoin)
  • #1385 be05f52000 [GUI] Don't change selected address after editing its label (random-zebra)
  • #1387 cc072687db [GUI] Add Unlock/Relock context flow (random-zebra)
  • #1388 c80688e02a [GUI] Customize the timeout of the SnackBar based on its message length (random-zebra)
  • #1389 f80888b770 [GUI] MasternodeWidget-Wizard bugfixes (random-zebra)
  • #1391 2bdc9f8689 [GUI] Spend cold-stake delegations (random-zebra)
  • #1392 da2f6e56f8 [GUI] Accept dialogs with ENTER (random-zebra)
  • #1393 541a688bee [GUI] Customizable sorting for address books (random-zebra)
  • #1396 b56172a01b [GUI] Topbar MNs sync phase status. (furszy)
  • #1400 f1206ed87d [Trivial] Rewording of Custom Fee dialog text (NoobieDev12)
  • #1402 023e7719f2 [GUI][Bug] Fix max decimals in sendcustomfeedialog (random-zebra)
  • #1403 de5fb73775 [GUI] SendWidget: automatically set focus on last recipient entry (random-zebra)
  • #1404 28bc0e3104 [GUI] SendMultiRow: clear address label when address is changed (random-zebra)
  • #1405 d8663a8410 [GUI] Upgrade to HD wallet functionality. (furszy)
  • #1406 ca26229afc [GUI] Save custom fee selected (random-zebra)
  • #1408 8bd8c2ca93 [GUI][Model] Save cache BlockIndex tip in the model (random-zebra)
  • #1413 4fdd3225b3 [GUI] Explicit cast from quint32 to bool in filterAcceptsRow (random-zebra)
  • #1423 ca48a453eb [GUI][Trivial] Fix button size in welcomecontentwidget (random-zebra)
  • #1424 592aa52fca [GUI] One-click export to file (random-zebra)
  • #1425 be6f1279b6 [Trivial][GUI] Add more room to contacts dropdown (random-zebra)
  • #1428 1ba03cc688 [GUI][Trivial] Emphasize warning better (NoobieDev12)
  • #1429 623821c799 [GUI] Dark theme (furszy)
  • #1430 1907a80938 [Trivial][GUI] Fix capsLabel color (make it text-warning) (random-zebra)
  • #1431 01651b6c63 [GUI] Automatic wallet backup after upgrade to HD (random-zebra)
  • #1436 98e6867e0c [Trivial] Rewording of remote masternode data export notification (NoobieDev12)
  • #1443 0b0c8267a6 [GUI] Removing unused DenomGenerationDialog. (furszy)
  • #1447 ec666ec8d8 [GUI] Add address-label to sendconfirm-popup (random-zebra)
  • #1454 110aa9c83d [GUI] Settings widget (furszy)
  • #1464 0bbf18ee1a [GUI][Model] Fix staking address validation (random-zebra)
  • #1468 8860401a75 [GUI] Less GUI locks (furszy)
  • #1469 7521d6d193 [GUI][Cleanup] Coin Control Cleanup (random-zebra)
  • #1470 02ede334f2 [GUI] Mark delegated UTXOs in CoinControl (random-zebra)
  • #1473 ca7f351350 [GUI] Hide charts container when not USE_QTCHARTS (random-zebra)
  • #1475 3dddd25def [GUI] Hide charts at startup or at runtime (random-zebra)
  • #1477 6879786153 [GUI][Trivial] ColdStakingWidget: fix containerSend margins (random-zebra)
  • #1479 c9c618e365 [BUG][GUI] Fix MasternodeWidget StartAll (furszy)
  • #1481 8e9214014b [GUI][BugFix] Tor topbar button text. (furszy)
  • #1487 ac7a5b302f [GUI] ClientModel cacheTip sync with back-end. (furszy)
  • #1489 e4d6c26f61 [GUI] Add missing error notification in encrypt wallet. (furszy)
  • #1494 3ea8c577d4 [Qt] Convert leftover connects to Qt5 syntax (Fuzzbawls)
  • #1499 5e6c05305e [GUI] Settings console (furszy)
  • #1501 417e8cb73c [GUI] Update MNs count every 40 seconds. (furszy)
  • #1503 66f523d46f [GUI] Fix cold staking owner dropdown position. (furszy)
  • #1508 104db7d7f3 [BUG] Prevent StartAll from starting mns with immature collateral (random-zebra)
  • #1509 13c4302087 [GUI] Correct the reference to ColdStakingWidget address (PWRB-Project)
  • #1510 5a4b0f9a70 [GUI] Fix text cut-off in sendchangeaddressdialog (JSKitty)
  • #1515 24bc866346 [GUI] Back port latest MacOS dock icon handler. (furszy)
  • #1522 ab353d9848 [Qt] Fixup filter dropdown localizations (Fuzzbawls)
  • #1523 e92c8ed86a [Trivial] [GUI] Fix masternodeswidget snackbar typos (JSKitty)
  • #1527 6e1745be85 [GUI] Warn about change address not belonging to the wallet. (furszy)
  • #1529 f05a451021 [Trivial] Fix compiler warning in mousePressEvent. (furszy)
  • #1530 b7c0c0e31d [GUI] Don't log to console by default. (furszy)
  • #1535 7d25604239 [Qt] Don't translate dummy strings in mnrow (Fuzzbawls)
  • #1543 440c8f514b [GUI][Bug] CoinControl: mark delegated after setting checked state (random-zebra)
  • #1545 7fdf25b4f7 [GUI] MasternodeWizard validations (random-zebra)
  • #1551 8b25a1eaf5 [GUI][Bug] Reset custom change address (random-zebra)
  • #1556 5ba10f0d58 [GUI] CoinControlDialog remove duplicate esc button (furszy)
  • #1574 18bce1bfaf [Bug][GUI] SendCustomFee: reset checkbox on clearAll (random-zebra)
  • #1576 e99a18e410 [GUI] SendCustomFeeDialog: prevent user from saving insane fees (random-zebra)
  • #1577 2205e3d302 [RPC][GUI][Bug] Disable/Hide multisend (random-zebra)
  • #1578 c064baaf6e [GUI][Bug] Fix transaction details output-index (random-zebra)
  • #1581 55c9236429 [GUI] Do not create new SettingsMultisendWidget (furszy)
  • #1588 7694d5fc6d [GUI][Bug] Fix editing of CS address labels (Fuzzbawls)
  • #1589 7694d5fc6d [GUI][Bug] Don't clear address label during send address validation (Fuzzbawls)
  • #1590 1fc629be86 [GUI] Update translations from Transifex for 4.1 (Fuzzbawls)
  • #1594 e001ddf106 [GUI][Bug] Reconnect CS owner address edit-label action (Fuzzbawls)
  • #1595 7779ab1194 [GUI][Bug] Fix "Select all" / "Unselect all" logic in coincontrol (random-zebra)
  • #1599 72595d7692 [GUI][Bug] Fix language selection invalidly stored (furszy)

RPC Interface

  • #1299 523db49f49 [Trivial][Regtest][RPC] generate call failing properly when the wallet is locked (furszy)
  • #1321 d382a249be [RPC][Tests] Don't throw when generate doesn't create all blocks (PoS) (random-zebra)
  • #1343 735d8ddb4d [Bug] nStakeSplitThreshold: division by zero (random-zebra)
  • #1368 d610d013dd [RPC] Expand getstakingstatus output (random-zebra)
  • #1381 88256004a3 [RPC][Bug] Fix masternodecurrent: return next winner, not rank-1 mn (random-zebra)
  • #1399 eb8cb624f9 [RPC] Upgrade to HD wallet. (furszy)
  • #1451 1fa5156a97 [RPC] Add logging RPC (random-zebra)
  • #1497 fd77102258 [Trivial][RPC] Remove references to old command list-conf (random-zebra)

Wallet

  • #1277 d870d5c003 [Wallet] Refactor MintableCoins (random-zebra)
  • #1300 0e3644d531 [Wallet] Add function CMerkleTx::IsInMainChainImmature (random-zebra)
  • #1327 d58fd6fee1 [Wallet] HD Wallet - v2. (furszy)
  • #1345 abdc0e762e [Wallet][RPC][GUI] nStakeSplitThreshold as CAmount (random-zebra)
  • #1356 d6298c5fa0 [Wallet][GUI] Set default stake-split threshold to 500 (random-zebra)
  • #1369 bb9b762bb1 [Wallet] Fix staking balance calculation (random-zebra)
  • #1373 5d004d514c [Wallet] Remove reserve balance (random-zebra)
  • #1382 df2db0d5c6 [Wallet] Don't initialize zpivwallet on first run (Fuzzbawls)
  • #1401 e1585f7609 [Wallet][Bug] Fix ScriptPubKeyMan::CanGetAddresses (random-zebra)
  • #1411 3c34c34fd1 [Wallet][Bug] Fix ScriptPubKeyMan::CanGenerateKeys (random-zebra)
  • #1458 8d8050fa6d [Wallet][Bug] Fix min depth requirement for stake inputs in AvailableCoins (random-zebra)
  • #1474 840821321c [Wallet] Fix wrong Lock/Unlock zWallet method call. (furszy)
  • #1485 d43d5fa1f6 [Wallet] Fix BIP38 import crashing on empty DecKey (JSKitty)
  • #1495 caa91b08fd [Wallet] Clean wrong pwalletMain inside wallet class. (furszy)
  • #1498 ebfa5979a6 [Wallet] Initialize zwalletMain to prevent memory access violations. (furszy)
  • #1520 b92584a482 [Wallet] remove unused code, remove cs_main lock requirement (furszy)
  • #1537 dabb5168f1 [Wallet] Cleanup invalid IsMasternodeReward method in OutPoint primitive. (furszy)
  • #1565 7fb724ffe4 [Bug] Simpler nTimeSmart computation (random-zebra)
  • #1575 f16125b83d [Bug][Wallet] Fix insane fees (random-zebra)

Core Systems

  • #1249 fbcc5305d6 [Script] Optimize and Cleanup CScript::FindAndDelete (Akshay)
  • #1259 cf1bab30d5 [Core] Remove StakeV1 (random-zebra)
  • #1302 e9ceb6daf9 [Refactor] Move CBlockFileInfo and CValidationState out of main (Fuzzbawls)
  • #1308 ca912fc823 [zPIV] Public coin, a super for-each removed (furszy)
  • #1319 fc6d9514f4 [Refactor] Move CDiskTxPos/CBlockUndo to txdb.h/undo.h respectively (barrystyle)
  • #1320 563d5c2515 [Refactor] Move transaction checks out to consensus/tx_verify.cpp (barrystyle)
  • #1325 91566195ee Add WITH_LOCK macro: run code while locking a mutex. (furszy)
  • #1328 6143e95f98 [Refactor] Introduce Consensus namespace (barrystyle)
  • #1331 484a98673f [Core] CheckColdStakeFreeOutput: skip SPORK checks if mnsync incomplete (random-zebra)
  • #1333 6bb09adfbb [Backport] Wait locking for genesis connection. (furszy)
  • #1335 535baaacd7 Inlining sync.cpp with latest upstream (furszy)
  • #1336 f30074a123 Sync Upgrades, part 2 (furszy)
  • #1337 c5fc9cc7a3 Sync upgrade, part 3 (furszy)
  • #1338 d00ac8c3d2 [Core] CBlockIndex cleanup - Bump client version to 4.0.99.1 (random-zebra)
  • #1341 c992fc1523 [Refactor] ChainParams::consensus - Part 1 (random-zebra)
  • #1342 dc530c072f [Refactor] Move zerocoin checks out of main (Fuzzbawls)
  • #1344 e4041b1631 [Refactor] ChainParams::consensus - Part 2 (random-zebra)
  • #1359 9869a384e2 [Chain][Bug] Fix mapZerocoinSupply recalculation (random-zebra)
  • #1364 f4339f4621 [Refactor][PoS] Kernel Refactoring (random-zebra)
  • #1375 41aae2d589 [Init] Do parameter interaction before creating the UI model (Jonas Schnelli)
  • #1376 ac4ab94dd8 [Init] Combine common error strings so translations can be shared (Luke Dashjr)
  • #1395 b3fcbea5b1 Replace uint256/uint160 with opaque blobs where possible (First) (furszy)
  • #1407 678d3ed933 [Consensus] CheckColdStakeFreeOutput when mnsync not complete (random-zebra)
  • #1409 8c112d3ac0 [MN] Refactor to the mapMasternodesLastVote map. (furszy)
  • #1418 87e3dcddef [Consensus] Remove IsSuperMajority (random-zebra)
  • #1445 9896879fff [Refactor] Init wallet parameters interaction (furszy)
  • #1450 cb6d15a6ac [Util] Buffer log messages and explicitly open logs (random-zebra)
  • #1457 841f702d13 [Bug] Fix g_best_block initialization in ABC (random-zebra)
  • #1465 1c5d9c641e [Bug] Fix height_start_StakeModifierV3 (Stamek)
  • #1502 0c8950a8ec [Core] Reduce CBlockIndex RAM usage (random-zebra)
  • #1504 4689f7e9a6 [BUG] Fix ambiguous call to distance in ParseAccChecksum (random-zebra)
  • #1517 c4834eb1b6 [Shutdown] remove PID file at the very end. (furszy)

P2P Protocol and Network Code

  • #1307 31a56e9cf9 [Net] Do not launch the clock warning dialog like crazy. (furszy)
  • #1360 aee230135f [Net] Split DNS resolving functionality out of net structures (Cory Fields)
  • #1363 7c78ece64d [Net] Banlist updates (Philip Kaufmann)
  • #1367 82b4147a30 [Net] Max block locator entries size. (furszy)
  • #1372 59fdfee134 [P2P] Remove p2p alert system (random-zebra)
  • #1378 2055163092 [Net] Fix de-serialization bug where AddrMan is corrupted after exception (Fuzzbawls)
  • #1452 a86ee0f271 [Net] Add support for dnsseeds with option to filter by servicebits (Jonas Schnelli)
  • #1453 195d46690c [Net] Addrman offline attempts (Gregory Maxwell)
  • #1460 18fa545831 [Net] Do not print an error on connection timeouts through proxy (furszy)
  • #1463 976f46d6e1 [Net] Protocol update enforcement for 70919 (random-zebra)
  • #1484 0a4072e4fc [Net] Fix resource leak in ReadBinaryFile (practicalswift)
  • #1492 86ecb08159 [Net] Relay actual peers instead of localhost on getaddr (akshaynexus)
  • #1538 38f848ecb1 [P2P] Update hard coded seed nodes (Fuzzbawls)
  • #1591 8a96306de6 [P2P] Removing dead seeder (furszy)

Build Systems

  • #1256 05bd016774 [Build][Scripts] Update translation flow (Fuzzbawls)
  • #1324 586a051c7f [Build] Remove Windows 32 bit build. (furszy)
  • #1351 5ad9c81acc [Build] Bump minimum required Qt version to 5.5.1 (Fuzzbawls)
  • #1358 1517dbe271 [Build] Cleanup Qt m4 file (Fuzzbawls)
  • #1390 d84d6bea2e [Build] Add flag for enabling thread_local (Fuzzbawls)
  • #1435 79c539acf7 [Travis][Build] Restore macOS Travis tests (Fuzzbawls)
  • #1448 ab0be2f1e4 [CMake] Fix missing file error (Fuzzbawls)
  • #1483 f79a7026d0 [Depends] Update OpenSSL download URL (Fuzzbawls)
  • #1493 5df2b6767b [Depends] Include qt-gif plugin. (furszy)
  • #1536 be79988a8f [Build] Disable apt-cacher for Windows WSL gitian setup (Fuzzbawls)

Testing Systems

  • #1278 805800164e [Tests][Bug] Fix staking status in generate_pos() (random-zebra)
  • #1295 e7cd10434f [Tests] Set '-staking' disabled by default on RegTest (random-zebra)
  • #1312 f860860e4d [Tests] Use V2 stake modifiers on regtest (random-zebra)
  • #1410 0b5fef0376 [Tests] Run tests on pre-HD wallets (random-zebra)
  • #1434 c2ddd267f5 [QA] Continuous Testing Environment for legacy pre-HD wallets (random-zebra)
  • #1442 a5288eca97 [Tests] Remove non-determinism which is breaking net_tests (random-zebra)
  • #1446 2f9bfc84b0 [Test] Wallet testing setup. (furszy)
  • #1472 46585f7b62 [Tests][Refactor] Remove connect_nodes_bi (random-zebra)
  • #1550 f246e104e5 [QA] Avoid printing to console during cache creation (random-zebra)
  • #1580 3d36502c3a [QA][Bug] Shorter wallet_basic.py functional test (random-zebra)

Logging

  • #1437 8a6f5147c9 [Util] LogAcceptCategory: use uint32_t rather than sets of strings (random-zebra)
  • #1438 37d53b777c [Trivial] Remove spammy log in CheckSignature (random-zebra)
  • #1439 eb1ed66c2e [Core] Add -debugexclude option (random-zebra)
  • #1449 9ef9f5dea1 [Util] tinyformat / LogPrint backports (random-zebra)
  • #1455 b26dbc4e55 [Init] Add -debuglogfile option (random-zebra)
  • #1459 c94f2412af [Util] Refactor logging code into a global object (random-zebra)

Cleanup

  • #1247 3e1233cccb [Cleanup] Remove automint and automint addresses (Fuzzbawls)
  • #1254 cc547e7927 [Cleanup] ZLNP code removed entirely. (furszy)
  • #1276 e5d6fdfd38 [Tests][Cleanup][Trivial] Remove legacy zerocoin spends tests (random-zebra)
  • #1281 a293072cdb [Trivial][Cleanup] Remove extra checks before GetBlocksToMaturity (random-zebra)
  • #1282 76f29fccf3 [Trivial][Cleanup] Add IsRegTestNet() function in chainparams (random-zebra)
  • #1290 2ceeb2cca0 [zPIV][Cleanup] Zerocoin Cleanup 1: remove Accumulators values (random-zebra)
  • #1291 16d7dac5f7 [zPIV][Cleanup] Zerocoin Cleanup 2: remove CZPivStake class (random-zebra)
  • #1293 28e0048b3e [zPIV][Cleanup] Zerocoin Cleanup 3: remove old ZK proofs (random-zebra)
  • #1314 185194bd7e [zPIV][Cleanup] Zerocoin Cleanup 4: further wallet cleaning (random-zebra)
  • #1322 5bd387e18d [zPIV][Cleanup] Zerocoin Cleanup 5: further main.cpp cleaning (random-zebra)
  • #1326 6bbd575860 [zPIV][Cleanup] Zerocoin Cleanup 6: Remove zerocoin mint checks (random-zebra)
  • #1330 b766048068 [Cleanup] Remove stale UNITTEST network (Fuzzbawls)
  • #1340 57cf8a67bd [Cleanup] Remove MineBlocksOnDemand function in chainparams (random-zebra)
  • #1352 fe60594c4a [Cleanup] Remove unused blockexplorer GUI files (Fuzzbawls)
  • #1412 35c58d8ef7 [Cleanup] Remove walletbroadcast and resendwallettransactions tests (random-zebra)
  • #1456 42567f14b2 [Trivial] Cleaning not used pCheckpointCache. (furszy)
  • #1461 0a63983ac2 [Cleanup] Remove old governancepage and proposalframe code (Akshay)
  • #1467 aa50351b18 [Cleanup] Remove redundant and unused code (Fuzzbawls)
  • #1490 dfda1b80af [Cleanup] Nuke obfuscation from orbit (Fuzzbawls)
  • #1507 172387aad5 [Trivial] Remove leftover temporary comment (random-zebra)
  • #1513 ae4fde3b3a [Trivial] Remove CMasternode::SliceHash (random-zebra)

Documentation

  • #1573 f973fb6fd6 [Doc] Note that v3 onion addresses are not supported (Fuzzbawls)

Scripts and Tools

  • #1433 f5f6c3cd92 [Scripts] Only fetch translations for high-completion locals (Fuzzbawls)

Misc

  • #1583 7fdf29f816 Update copyright headers for files changed in 2020 (Fuzzbawls)

Credits

Thanks to everyone who directly contributed to this release:

  • Cory Fields
  • EthanHeilman
  • Fuzzbawls
  • Gregory Maxwell
  • JSKitty
  • Jonas Schnelli
  • Luke Dashjr
  • Mrs-X
  • NoobieDev12
  • PWRB-Project
  • Philip Kaufmann
  • RottenCoin
  • Stamek
  • akshaynexus
  • barrystyle
  • furszy
  • practicalswift
  • random-zebra

As well as everyone that helped translating on Transifex, the QA team during Testing and the Node hosts supporting our Testnet.

Assets 13
Pre-release
Pre-release

@Fuzzbawls Fuzzbawls released this Apr 16, 2020 · 1611 commits to master since this release

First release candidate for the upcoming 4.1.0 release.

Full, finalized release notes will be available with the final release version, until then, you can view the draft, in-progress release notes at https://github.com/PIVX-Project/PIVX/blob/4.1/doc/release-notes.md

Assets 13

@Fuzzbawls Fuzzbawls released this Jan 17, 2020 · 2561 commits to master since this release

PIVX Core version v4.0.2 is now available from: https://github.com/pivx-project/pivx/releases

This is a new revision version release, including various bug fixes and performance improvements, as well as updated translations.

Please report bugs using the issue tracker at github: https://github.com/pivx-project/pivx/issues

Recommended Update

PIVX Core v4.0.2 is NOT a mandatory update, and user can choose to stay with v4.0.0/v4.0.1 if they wish. However, v4.0.2 does contain minor bug fixes and performance improvements to address feedback from the v4.0.0/v4.0.1 versions.

How to Upgrade

If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux).

Compatibility

PIVX Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and later.

Microsoft ended support for Windows XP on April 8th, 2014, No attempt is made to prevent installing or running the software on Windows XP, you can still do so at your own risk but be aware that there are known instabilities and issues. Please do not report issues about Windows XP to the issue tracker.

Apple released it's last Mountain Lion update August 13, 2015, and officially ended support on December 14, 2015. PIVX Core software starting with v3.2.0 will no longer run on MacOS versions prior to Yosemite (10.10). Please do not report issues about MacOS versions prior to Yosemite to the issue tracker.

PIVX Core should also work on most other Unix-like systems but is not frequently tested on them.

Notable Changes

Bug Fixes

Double counting of delegated values

Fixed a bug where the values/amounts for cold staking delegations was being double counted in the UI's available/total balance calculation.

Incorrect sorting for transaction loading

Fixed a bug where The 20,000 limit for loading wallet transactions was incorrectly sorting these transactions, resulting in the first 20,000 transactions to be loaded instead of the most recent 20,000 transactions.

No information shown for spent cold stake delegations

Fixed a bug where the transaction record for spent cold stake delegations was showing as "No information".

GUI Changes

Add latest block height to top bar

The top bar's sync status button now shows the latest block height (number) when hovering over the button.

Coin Control copy functions

The coin control screen now allows for copying the various values to the OS clipboard

v4.0.2 Change log

Detailed release notes follow. For convenience in locating the code changes and accompanying discussion, both the pull request and git merge commit are mentioned.

Core

  • #1273 d114eda990 [Core] Update checkpoints for first v7 block (Fuzzbawls)

GUI

  • #1261 c02cc4acdd [Bug][GUI] Double counted delegated balance. (furszy)
  • #1267 350184044d [Qt][Bug] Load the most recent instead of the first transactions (Fuzzbawls)
  • #1263 1d0c1bb81c [GUI] P2CS transaction divided in two types for visual accuracy. (furszy)
  • #1266 f659cbf1ef [GUI] Quick minor GUI startup useful changes. (furszy)
  • #1269 0771075668 [GUI] CoinControlDialog, every copy to clipboard action implemented. (furszy)
  • #1265 da7c50eca1 [GUI] Connect P2CSUnlockOwner and P2CSUnlockStaker records to the model (random-zebra)
  • #1268 912cf67847 [GUI] Display latest block number in the top bar (random-zebra)
  • #1279 c09cd0d40f [GUI] Transaction record cold staking fixes. (furszy)

Wallet Code

  • #1264 1a12735df5 [Wallet] Don't add P2CS automatically to GetLockedCredit (random-zebra)

Documentation

  • #1272 d4a9475e40 [Trivial] Update copyright headers for 4.0.2 (Fuzzbawls)

RPC Interface

  • #1274 f5c3552c96 [RPC] Remove extra PoW rounds in 'generate' (random-zebra)

Credits

Thanks to everyone who directly contributed to this release:

  • Fuzzbawls
  • furszy
  • random-zebra

As well as everyone that helped translating on Transifex, the QA team during Testing and the Node hosts supporting our Testnet.

Assets 15

@Fuzzbawls Fuzzbawls released this Jan 13, 2020 · 2561 commits to master since this release

PIVX Core version v4.0.1 is now available from: https://github.com/pivx-project/pivx/releases

This is a new revision version release, including various bug fixes and performance improvements, as well as updated translations.

Please report bugs using the issue tracker at github: https://github.com/pivx-project/pivx/issues

Recommended Update

PIVX Core v4.0.1 is NOT a mandatory update, and user can choose to stay with v4.0.0 if they wish. However, v4.0.1 does contain minor bug fixes and performance improvements to address feedback from the v4.0.0 version.

How to Upgrade

If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/PIVX-Qt (on Mac) or pivxd/pivx-qt (on Linux).

Compatibility

PIVX Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and later.

Microsoft ended support for Windows XP on April 8th, 2014, No attempt is made to prevent installing or running the software on Windows XP, you can still do so at your own risk but be aware that there are known instabilities and issues. Please do not report issues about Windows XP to the issue tracker.

Apple released it's last Mountain Lion update August 13, 2015, and officially ended support on December 14, 2015. PIVX Core software starting with v3.2.0 will no longer run on MacOS versions prior to Yosemite (10.10). Please do not report issues about MacOS versions prior to Yosemite to the issue tracker.

PIVX Core should also work on most other Unix-like systems but is not frequently tested on them.

Notable Changes

Startup Fixes + Performance Improvements

There was a regression in the wallet startup flow causing an excessively growing time based on the amount of stored transactions. In the extreme situation of a wallet with 400k transactions, for example, it was taking over an hour.

4.0.1 fixes it and includes several performance improvements in the wallet's startup flow.

Test:

Environment:

Wallet with 450,000 transactions.

Time:

3.4.0 ---> ~14 minutes.
4.0.0 ---> +60 minutes.
4.0.1 ---> ~8 minutes 🚀 .

NOTE: Currently the GUI interface only loads the latest 20k transaction records. A "load-on-demand" feature for such big wallets will be provided in a future release.

GUI Enable Smaller Window Resize

There was a request from many users about our GUI window not fitting in their less than 13 inches screens.

4.0.1 implemented a scrolled navigation bar and permit to decrease the screen height up to 620 px (4.0.0 minimum was 740px). Solving, in this way, the small devices fitting issue.

GUI Masternodes Locked Balance Bug Fix.

There was a bug in 4.0.0 not showing the locked balance (Masternodes collateral utxo) in the topbar's available balance. 4.0.1 fixed it.

GUI Masternodes Start all and Start Missing flows.

The new Masternodes GUI is now implementing the Start all and Start missing flows.

RPC/GUI Rework staking status

Fixed bug with staking icon off while the wallet is actually staking.
Improved staking status detection and expanded getstakingstatus output.

Account System Deprecation

The internal accounting system is planned for removal in a future version. As such, this release contains notations in RPC help texts that state it's deprecation.

Some instances of the term "account" are rather loose, and possibly technically incorrect (confusing "label" with "account"). These instances will be corrected in a subsequent pull request.

Functional Test Suite Overhaul

Our Regression/Functional testing suite has undergone a substantial overhaul, particularly in regards to the cached chain that can be used to speed up testing. Full details can be found in the description of #1218.

Further Zerocoin Code Cleanup

Initial cleanup work towards a clean zerocoin code sources. 4.1.0 will continue and finish this work.
The house needs to be organized for 5.0.0 new privacy protocol.

RPC Changes

getstakingstatus

The staking_status is now the first attribute.
validtime has been removed and replaced with tiptime (displaying the time of the current block at the tip of the chain). Fixed enoughcoins attribute and added the following:

  • staking_enabled (whether staking is enabled via conf file / startup flag)
  • hashLastStakeAttempt (hash of the block on top of which the last stake attempt was made)
  • heightLastStakeAttempt (height of the block on top of which the last stake attempt was made)
  • timeLastStakeAttempt (time of the last stake attempt)

delegatoradd

This command now takes an additional optional argument (string: label) that allows associating a label with the added owner address in the address book.

listdelegators

This command now takes an optional argument (boolean: fBlacklist) that allows the command to show only owner addresses that have been removed from the whitelist (done by using the delegatorremove command).

The default behavior of this command if the new argument isn't provided remains the same as before.

importprivkey and importaddress

Added support for cold-staking addresses.

v4.0.1 Change log

Detailed release notes follow. For convenience in locating the code changes and accompanying discussion, both the pull request and git merge commit are mentioned.

Core

  • #1203 f72660f89 [Backport][Performance] Cache + guard best block hash. (furszy)
  • #1205 4f19cd0df [Cleanup] Remove unnecessary QtCreator files (Fuzzbawls)
  • #1233 2e4d9142f [Trivial] Remove spammy log in in StakeV1 (random-zebra)
  • #1234 2d6d48c74 [Cleanup] Remove precomputing (Fuzzbawls)
  • #1237 51e7ea2a0 [Cleanup] Remove precomputing II (random-zebra)
  • #1243 fcb21d851 [Core][Trivial] Don't log missing MNs during CleanAndRemove (random-zebra)
  • #1245 9cf807d80 [Core] Rework staking status (random-zebra)
  • #1252 e7e1dd4d1 [Trivial] Log log2_work value with 16 decimals (random-zebra)

GUI

  • #1184 23313ac4f [GUI][Trivial] Minor edits to written content (random-zebra)
  • #1211 a2912a9d6 [GUI] MN creation wizard (furszy)
  • #1217 d49e4a6d6 [Startup][GUI][Performance] Optimizations for huge wallets. (furszy)
  • #1221 e62da0bda [GUI] Masternodes start all and start missing flows implemented. (furszy)
  • #1223 f2d429114 [GUI][Bug] Show locked balance in the available total amount. (furszy)
  • #1224 a3f09c422 [Trivial][GUI] Minor changes within 4.0 wallet FAQ (NoobieDev12)
  • #1228 ec3c7d67b [GUI] Adding capability to decrease the screen size for small screens. (furszy)
  • #1250 276e1e08b [GUI] Every MN action checking tier two synced. (furszy)
  • #1253 f65d0d828 [Qt] Initialize isLoading to false for CS view (Fuzzbawls)

Wallet Code

  • #1222 69f897be3 [Wallet] Remove un-necessary CheckTransaction call when loading wallet. (Fuzzbawls)
  • #1229 87c369bcc [Wallet] Graceful shutdown in the unlock corrupted wallet. (furszy)
  • #1231 ccb2402d4 [Wallet] IsEquivalentTo commented (furszy)
  • #1240 310deb9b0 [Model][Wallet][Performance] Several changes in txRecord updateStatus. (furszy)

Build Systems

  • #1199 d40686f43 Clean up 4.0 compiler warnings (Cave Spectre)

Documentation

  • #1207 1968f6107 [Doc] Update build-unix.md file (Fuzzbawls)

RPC Interface

  • #1206 80414f979 [BUG][RPC] fix signature check (against old format) in mnbudgetrawvote (random-zebra)
  • #1238 fd43ba5f2 [RPC] Add optional arguments to delegatoradd and listdelegators (random-zebra)
  • #1242 2bfde4e7b [RPC] Add coldstaking address support in importprivkey and importaddress (random-zebra)
  • #1251 441d790d8 [RPC] Notate all account stuff as deprecated (Fuzzbawls)

Testing Systems

  • #1218 a70e82a86 [Tests] Functional Tests Suite Overhaul (random-zebra)

Credits

Thanks to everyone who directly contributed to this release:

  • Cave Spectre
  • Fuzzbawls
  • NoobieDev12
  • furszy
  • random-zebra

As well as everyone that helped translating on Transifex, the QA team during Testing and the Node hosts supporting our Testnet.

Assets 15
You can’t perform that action at this time.