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:
- Shut down your node completely.
- Back up your
wallet.datto a safe location outside the data directory. - Install Dpowcoin Core 26.3.2.
- 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.
getnetworkhashpsnow rejects invalidnblocks/height
arguments instead of silently clamping them, andsetmocktimevalidation 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
nBitshandling. - 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 rescanblockchainto rescan the chain.
Issues or questions? Use the issue tracker
or join the community on the resources page.