Skip to content

Dpowcoin Core 26.3.2

Latest

Choose a tag to compare

@mraksoll4 mraksoll4 released this 11 Jul 02:00
Immutable release. Only release title and notes can be modified.
v26.3.2
fcdddcf

Dpowcoin Core 26.3.2 is now available.
This is a transition release: at block 225,000, the Yespower proof-of-work requirement is
dropped from consensus, and Argon2id alone secures the chain from that point on. It also brings a
maintenance and feature update on top of the 26.x branch.

⚠️ [!CAUTION]
THIS RELEASE IS NESSARY FOR ALL.
ALWAYS BACK UP YOUR WALLET DATA BEFORE ANY UPDATE. SHUTDOWN WALLET COMPLETELY,
THEN COPY YOUR wallet.dat FILE TO A SAFE PLACE BEFORE UPDATING.
IF POSSIBLE — ALWAYS ENCRYPT YOUR WALLET WITH A STRONG PASSWORD!

Transition release: Yespower dropped from consensus at block 225,000

From genesis through block 224,999, every header had to pass two independent PoW checks
sharing the same target — Yespower (N=2048, r=8) as a cheap filter, then dual-round Argon2id.
Starting at block 225,000, the Yespower check is removed from consensus; Argon2id alone secures
the chain from that height on. Both algorithms always shared the same target, so this changes
nothing for miners or SPV wallets already built on Argon2id — no action required. See the
white paper §3.6 for the full rationale.

This was a deliberate design decision, not a security response: because both algorithms shared the
same target, Yespower never added security beyond what Argon2id already provided on its own — it
only doubled the work the LWMA-3 retarget algorithm had to account for and added consensus-code
complexity. The "Dual PoW" name stays in project documentation for historical reference.

Era Block range PoW check(s) required
Dual PoW Era 0 – 224,999 Yespower and Argon2id (shared target)
Transition 225,000 Yespower requirement removed from consensus
Argon2id-Only Era 225,000+ Argon2id only

Upgrade from 26.2

If you are already running Dpowcoin Core 26.2, upgrading to 26.3.2 is straightforward:

  1. Shut down your node completely.
  2. Back up your wallet.dat to a safe location outside the data directory.
  3. Install Dpowcoin Core 26.3.2.
  4. Start the node — it will continue syncing from where it left off.

What's new in 26.3.2

New feature: header PoW verification cache

This release adds a new header proof-of-work verification cache (pow_cache), built on the
same CuckooCache::cache structure already used elsewhere in the codebase (e.g. the signature
cache). The cache stores the result of already-verified headers (64 MiB by default, configurable
via -headerpowcachesize) and sits behind a single choke point, CheckProofOfWorkCached(), used
by both header validation (CheckBlockHeader()) and block reads from disk
(BlockManager::ReadBlockFromDisk()). This means the cache speeds up essentially any PoW check on
an already-seen header — including re-reading blocks from local storage — not just initial header
sync. It starts empty and is warmed up by ordinary node operation; misses always fall back to a
full Argon2id recompute, so consensus rules are unaffected.

New feature: parallel header PoW check queue

Separately, header PoW checks can now be dispatched across a dedicated parallel check queue,
instead of being checked one at a time. This only engages once a batch of headers exceeds an
internal threshold (32 headers) — in practice this means it's mainly active during the presync
stage of initial headers sync, where large batches of headers arrive from a peer and need checking
before the chain's cumulative work is confirmed; during normal steady-state operation, where
headers usually arrive in small numbers, checks are still processed sequentially. Up to 6
threads
can be used, sized off the number of available CPU cores rather than the -par setting;
on machines with fewer than 3 CPU cores, header PoW checking automatically falls back to running
on the calling thread so it never starves the rest of the node.

Consensus-adjacent hardening

  • Tighter future-block time window. The maximum amount of time a block timestamp is allowed to
    exceed network-adjusted time has been reduced from 2 hours to 600 seconds, with the
    timestamp grace window used for RPCs and wallet key creation times widened to 2 hours
    separately. The previous 2-hour allowance was inherited from Bitcoin's 10-minute block target
    and was too permissive for Dpowcoin's 5-minute blocks.
  • BIP53-style malleation guard. Blocks without a coinbase transaction are now rejected as
    mutated if any transaction in them serializes to exactly 64 bytes, closing off a known Merkle
    tree malleability vector. This is not a consensus change in practice, since such blocks were
    already invalid for lacking a coinbase.
  • Stricter RPC input validation. getnetworkhashps now rejects invalid nblocks/height
    arguments instead of silently clamping them, and setmocktime validation was tightened.

Bug fixes and other improvements

  • Hardened Taproot miniscript parsing against malformed input, with added unit test coverage.
  • Fixed IPv6 handling issues in the networking code.
  • Corrected miner default nBits handling.
  • Updated DNS seed and fixed-seed lists for mainnet and signet.
  • Various build/dependency fixes (Qt zlib patch on newer toolchains, miniupnpc download URL, an
    API-compatible UPnP call).

See release notes
on GitHub for the full changelog.

Troubleshooting

  • Node won't start after upgrade — make sure you're upgrading from 26.2. If you're coming from
    an older release, upgrade to 26.2 first.
  • Balance shows zero after upgrade — run dpowcoin-cli rescanblockchain to rescan the chain.

Issues or questions? Use the issue tracker
or join the community on the resources page.