HTND v2.12.0
This release focuses on DAGKnight compatibility fixes and comprehensive disqualified block handling improvements.
What's Changed
DAGKnight Compatibility
- Fixed selected-parent attribution in
GetSortedMergeSetto usecurrentGhostdagData.SelectedParent()instead of assumingMergeSetBlues()[0]is the selected parent - Fixed selected parent detection in
applyMergeSetBlocksto use hash comparison against GHOSTDAG metadata - Fixed error propagation in
ResolveVirtualto properly propagateupdateVirtualWithParentserrors - Result: Blue-block miner rewards are now correctly attributed to the originating block if the blue block is qualified block.
Note: The fix is active immediately (no hard fork required). It is practically soft fork.
Disqualified Block Handling
- GHOSTDAG: Added block status checking in
findSelectedParentto skip disqualified/invalid blocks (f08cb9ece) - Merge Sets: Added filtering of disqualified blocks in
mergeSetWithoutSelectedParent,GetSortedMergeSet,getTipsInG,getPast,getFuture, andgetAnticone(3aa4a8ab7) - Block Relay: Added checks to prevent relaying blocks with disqualified parents (
ce9f35bf6) - Error Handling: Added graceful handling of
ErrUnexpectedParentsin block relay (1be312261) - Peer Management: Nodes no longer ban peers for sending disqualified blocks when the node already has the block (
d88ffbc10)
Other Changes
- Disabled indirect parent check for two days as a temporary network stability measure (
19672e371) - Moved excessive logging from info/trace to debug level (
58be23a32) - Removed ASCII art from codebase (
a2561b795)
Upgrade Instructions
No special action required. Upgrade to v2.12.0 to benefit from:
- DAGKnight compatibility fixes
- Disqualified block protections across multiple layers
Compatibility
- ✅ Backward Compatible: Yes
- ❌ Hard Fork: No
- ✅ Soft Fork: Yes
- ✅ P2P Protocol: Compatible with v2.11.0 nodes for 2 days after release upto DAAScore 214869019
Contributors
- @ToniLukkaroinen
- @copilot-swe-agent
- @MattF42
Commits
58be23a32 - Move logging to debug
d88ffbc10 - Don't ban for sending disqualified block when the node already has the block.
19672e371 - Disable indirect parent check for two days.
1be312261 - Handle ErrUnexpectedParents gracefully in block relay
ce9f35bf6 - Add checks in block relay to prevent relaying blocks with disqualified parents
3aa4a8ab7 - Add filtering of disqualified blocks in GHOSTDAG/DAGKnight merge sets
f08cb9ece - Add check in findSelectedParent to skip disqualified blocks
a2561b795 - Remove the ASCII art, let it live in the commit history.
ed09f1b0f - Rip the HF stuff from previous pull request
786819feb - Merge pull request #17 from HoosatNetwork/copilot/dagknight-compatibility-fix
efc48f14d - Block version 8: DAAScore-gated selected-parent fix + version bump at 214_600_000
9a2d7f67f - Plan: bump block version to 8 at SelectedParentFixActivationDAAScore
623108ac4 - Fix DAGKnight selected-parent attribution and error propagation
08f8ccb8c - Initial plan
Full Changelog: 14 commits since v2.11.0 (commit ae9d5d3b3)
Note: Commits efc48f14d and 9a2d7f67f added a block version 8 upgrade which was reverted in ed09f1b0f. The underlying DAGKnight fixes remain. There is no block version 8 upgrade in this release.