Litecoin Core version 0.21.5.5 is now available from:
.
This is a patch version release that includes important MWEB consensus
hardening, node reliability improvements, wallet and mining fixes, and
build/test updates.
Please report bugs using the issue tracker at GitHub:
Notable changes
===============
Important MWEB updates
----------------------
This release contains important MWEB validation and state-handling fixes.
Upgrading is recommended for all users, especially miners, pools, and node
operators using MWEB.
- Added additional validation for MWEB inputs, pegins, HogEx data, kernel fees,
and kernel lock heights (`e7cbf1d`, `42e7071`, `8f8ad64`, `b9bd99a`,
`7564f05`, `a549004`).
- Hardened MWEB amount and fee calculations against overflow and invalid edge
cases (`42e7071`, `1cd94bb`).
- Added fallback handling for rare hash-to-secret-key cases so derived MWEB
keys are valid scalars (`773c138`).
- Added consensus parameters for known frozen or approved MWEB transactions and
outputs needed to keep MWEB state balanced (`1dcbf3f`, `17f16ce`, `66f6856`).
- Improved handling of mutated or invalid MWEB block data so invalid data does
not leave stale block data or mutate cached chainstate (`742ee94`, `ff309cd`,
`17f16ce`).
- Updated MWEB chainstate during block replay and crash recovery (`bbd3b78`).
Network and policy changes
--------------------------
- Increased the maximum P2P protocol message length to 32 MB so valid MWEB
blocks and messages fit under the message-size limit (`457bcd7`).
- Enforced standard script policy checks for pegout scripts (`c25bf89`).
Mining changes
--------------
- Avoid reading the previous block from disk when constructing HogEx
transactions; use MWEB data already stored in the block index (`873d9d2`).
- Improved `getblocktemplate` fee and sigop accounting for transactions carrying
MWEB data (`873d9d2`).
- Avoid including MWEB transactions in candidate blocks when their input and
output commitments would sum to zero (`f423a84`).
Wallet and RPC changes
----------------------
- Fixed MWEB balance and pegout accounting (`1dcbf3f`, `1cc1cee`).
- Added MWEB view keys to `dumpwallet` (`eae9e47`).
- Supported `maxfeerate=0` for MWEB transactions in `sendrawtransaction` and
`testmempoolaccept` (`8782ab9`).
- Allowed `getblocktemplate` on test chains when the node is unconnected or in
initial block download (`455aff8`).
Bug fixes
---------
- Fixed MWEB PMMR rewind corruption and improved MMR file write durability
(`23e5eac`, `bf25a7c`, `3110a7e`).
- Fixed a cache leaf bounds check (`6dd2952`).
- Fixed a transaction index consistency issue that could occur if writing block
data failed after the index commit (`eb7f68a`).
- Fixed wallet loading with Boost 1.78 and newer (`3c3aedb`, `c882663`).
- Fixed a debug build logger symbol conflict and made MWEB logger initialization
safer (`6fc0530`, `b4c0037`).
Build and test changes
----------------------
- Added missing `` includes needed by some compilers (`58f89ba`).
- Replaced the functional test dependency on the external `litecoin_scrypt`
Python package (`d139222`).
- Added and expanded tests for MWEB P2P messages, duplicate pegins, crash
recovery, mutated blocks, mining, and wallet/RPC behavior.
- Normalized line endings in selected documentation, Qt resources, and fuzz test
files (`dcc7bc5`).
- Fixed the broken Transifex link in the README (`0f5f7d5`).
Credits
=======
Thanks to everyone who directly contributed to this release:
- [David Burkett](https://github.com/DavidBurkett/)
- [Loshan](https://github.com/losh11)