github HoosatNetwork/HTND v2.12.0
HTND 2.12.0

3 hours ago

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 GetSortedMergeSet to use currentGhostdagData.SelectedParent() instead of assuming MergeSetBlues()[0] is the selected parent
  • Fixed selected parent detection in applyMergeSetBlocks to use hash comparison against GHOSTDAG metadata
  • Fixed error propagation in ResolveVirtual to properly propagate updateVirtualWithParents errors
  • 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 findSelectedParent to skip disqualified/invalid blocks (f08cb9ece)
  • Merge Sets: Added filtering of disqualified blocks in mergeSetWithoutSelectedParent, GetSortedMergeSet, getTipsInG, getPast, getFuture, and getAnticone (3aa4a8ab7)
  • Block Relay: Added checks to prevent relaying blocks with disqualified parents (ce9f35bf6)
  • Error Handling: Added graceful handling of ErrUnexpectedParents in 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

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.

Don't miss a new HTND release

NewReleases is sending notifications on new releases.