Skip to content

v4.1.0-rc1

Pre-release
Pre-release
Compare
Choose a tag to compare
@cronicc cronicc released this 31 Jul 19:53
· 259 commits to main since this release

zend v4.1.0-rc1

  • 4.1.0-rc1 is a Testnet pre-release candidate in anticipation of the release of ZEN 4.1.0 to Mainnet* later this September.
  • Pre-release 4.1.0-rc1 will perform network upgrade on Public Testnet via Hard Fork at block #1313400 which will occur August 8th, 2023 at approximately 10:00 UTC.
    • Related to ZenIP-42204 to remove shielded transactions with transparent inputs from the Horizen Mainchain
      • Shielding of coinbase transactions will not be possible anymore once the hard fork activates.
      • Coinbase Transactions continue to mature after 100 confirmations of blocks.
  • The Community Fund, Secure Node and Super Node addresses will be rotated with this Hard Fork.
  • Only nodes running on Public Testnet have to be updated.
  • An update of s-nomp for mining pools using it will be required for compatibility with 4.1.0-rc1.
    • requireShielding in the coin configuration will have to be set to false once the Hard Fork activates
    • Coinbase reward addresses for Community Fund, Secure Node and Super Node will change with the Hard Fork
  • If you are not using s-nomp as your mining pool software please refer to this example pull request for the required changes
  • Updated wallets incorporating changes for compatibility will be provided with the Mainnet release in September.

Important Notes

  • PR #526 implements ZenIP-42204, which introduces a hard fork disabling the possibility to move transparent funds to shield addresses. After the hard fork, only shielded-to-shielded and shielded-to-transparent transactions will be allowed. For this reason, the following RPC commands have been (partially or fully) deprecated: z_sendmany, z_shieldcoinbase and z_mergetoaddress (check inline documentation for additional details).
  • PR #539 modifies the data structure returned by RPC method getrawmempool
  • PR #541 fixes an issue that made explorers, relying on zend RPC commands, not to show old transactions including P2PK scripts. The fix has an effect only on transactions processed after the update, so in case of explorers it is recommended to run a (fast) reindex to properly handle also previously received transactions. However, reindexing is not mandatory.
  • Zend 4.0.0 was the last version supporting Ubuntu Bionic, whose End of Life started on May 31, 2023. PR #553 removes Ubuntu Bionic from Travis, and from that date the minimal supported version will be Ubuntu Focal.

New Features and Improvements

  • Implementation of ZenIP-42204: a hard-fork is introduced which results in shielding txs being deprecated #526
  • Removal of the p2p alert system #540
  • Added support for Pay-To-Public-Key (P2PK) scripts #541
  • Set a maximum limit to the size of the mempool (400 MB by default, configurable through -maxmempool startup parameter)#574

Bugfixes and Minor Changes

  • Fix compilation warnings for GCC (v12) and clang (v15), update boost to v1.81 #513
  • Refactoring of error code handling for proof verifier, UI improvements for reindex (fast) #504
  • Fix compilation errors for recent macOS versions #536
  • Fix for preventing already received and spent txs to be asked for again #537
  • Fix for limitedmap #538
  • Fix for return value of function mempoolToJSON #539
  • Fix logfile output for "Leaving block file" statement #530
  • Fix undefined behavior of a bitshift executed on a signed integer #552
  • Improve debug.log file reopening procedure #552
  • Introduce a maximum dns look up for one entry #561
  • Fix shieldedpooldeprecation_rpc.py and wallet_mergetoaddress_2.py Python tests #544
  • Make fReindex and fReindexFast flag variables thread safe #555
  • Remove zencash-apple as a dependency to build Zend on MacOS #558
  • Remove some unnecessary log lines from the command line interface #559
  • Update "contributing" documentation and the GitHub issue template #562
  • Remove the need to manually specify libzendoo dependencies one by one #565
  • General cleaning of code (static analysis) #564
  • Minor refactoring of sc_cert_getblocktemplate.py #568
  • Refactoring of the network functions in the Python test framework #563
  • Update cargo version from 1.51 to 1.70 #569
  • Remove pyblake2 Python dependency #570
  • Avoid unnecessary copies when passing parameters to functions (static analysis) #567
  • Improve syntax of autogen.sh (static analysis) #571
  • Updated MacOS version on Travis CI from 12.3 to 14.2 #572
  • Minor performance improvement during the processing of inv and getdata P2P messages #575
  • Minor change of the P2P inactivity timeout check #579
  • Improved the management of SSL disconnections #566
  • Added the possibility to pass parameters to the run_until_fails.py helper script #578
  • Avoid relaying transactions coming from whitelisted peers that would make the local node be banned #580

Contributors

@JackPiri
@a-petrini
@drgora
@dullerino
@titusen
@la10736
@AndreaLanfranchi
@ptagl

Special thanks to dullerino for the first contribution to Zen!

Binaries

Windows and MacOS binaries are signed with a valid certificate,
see included instructions.txt for Win/Mac command line wallets.

Install

Debian package dependencies:

Depends: libc6 (>= 2.29), libgcc-s1 (>= 4.2), libgomp1 (>= 4.9), libstdc++6 (>= 9)