Skip to content

v4.1.0

Compare
Choose a tag to compare
@a-petrini a-petrini released this 04 Sep 07:02
· 256 commits to main since this release
v4.1.0

zend v4.1.0

Zend 4.0.0 is going to deprecate on Mainnet at block #1422426, which will occur on September 19th, 2023 at approximately 07:00 PM UTC.

Zend 4.1.0 expected to deprecate on Mainnet at block #1466716, which will occur on December 6th 2023 at approximately 02:00 PM UTC. Please, update to a newer version before December 6th.

A hard fork is going to activate on Mainnet at block #1426200, on September 26th 2023 at approximately 10:00 AM UTC.

  • The hard fork will introduce the following changes announced in 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.
  • All nodes running on Mainnet have to be updated.
  • An update of s-nomp for mining pools using it will be required for compatibility with 4.1.0.
    • 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

The Testnet coinbase vout addresses have changed at block #1313400:

Type From To
Treasury zrFwQjR613EuvLSufoNvUzZrfKvjSQx5a23 zrA11hUpuPNofRm3nhSrwBYZ3886B22zgX5
Secure Nodes zrQM7AZ1qpm9TPzLc2YinGhWePt7vaHz4Rg zrKHh4dNiRCqUe4F9iDUiQcyp9soH86Sx2L
Super Nodes zrSRNSqeBNEtXqn8NkAgJ9gwhLTJmXjKqoX zrDdMQS7nbn5d3o3Ufk1cQnjZPAxJEMBJ36

The Mainnet coinbase vout addresses will change at block #1426200:

Type From To
Treasury zshX5BAgUvNgM1VoBVKZyFVVozTDjjJvRxJ zsq5TpKdHRTXTaeKeToTiPTE4Re4279nUj3
Secure Nodes zsx68qSKMNoc1ZPQpGwNFZXVzgf27KN6a9u zstp5e9WBs5wUQcrNHx2S1UmkaN4koPVBBf
Super Nodes zszMgcogAqz49sLHGV22YCDFSvwzwkfog4k zsvR2ihXmtjGrmAyFWytLdj76VvdFxVUJpP

Reward percentages will stay unchanged.

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
  • Remove stale transactions when a hard fork activates #594
  • Fix for GUI when reindexing procedure is interrupted #597

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)