v0.15.7
What's Changed
Fixes a UTXO-set membership regression that wedged all Teranode testnets when a bare OP_RETURN output was spent. Pre-Genesis rules were being applied to post-Genesis outputs: bare OP_RETURN was dropped from the UTXO set at store time, so any later block spending it could not resolve the outpoint and the node stopped advancing.
The rule now mirrors SV Node's era-aware CScript::IsUnspendable, keyed to the output's creation (mining) height. Post-Genesis: only OP_FALSE OP_RETURN is provably unspendable; bare OP_RETURN is retained. Pre-Genesis: bare OP_RETURN, OP_FALSE OP_RETURN, and locking scripts longer than 10000 bytes are provably unspendable. The rule is value-agnostic — the output's satoshi value plays no role.
External-outpoint reconstruction applies the same era-aware filter, keyed to the parent transaction's creation-height era read from the Aerospike blockHeights bin, so reconstructed sets match what create stored.
Identical to v0.15.7-beta-1.
- fix(utxo): make ShouldStoreOutputAsUTXO era-aware and value-agnostic (backport #1116 to release/v0.15) by @oskarszoon in 01f0697
Full Changelog: v0.15.6...v0.15.7