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.
- Related to ZenIP-42204 to remove shielded transactions with transparent inputs from the Horizen Mainchain
- 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 tofalse
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
andz_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
andwallet_mergetoaddress_2.py
Python tests #544 - Make
fReindex
andfReindexFast
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 from1.51
to1.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
to14.2
#572 - Minor performance improvement during the processing of
inv
andgetdata
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)