Dpowcoin Core 26.3.1


GitHub Release v26.3.1 다운로드 릴리스 노트

Dpowcoin Core 26.3.1 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. Shut down your wallet completely, then copy your wallet.dat file to a safe place before updating. If possible, always encrypt your wallet with a strong password.

Consensus change: the Yespower drop

From genesis through block 224,999, Dpowcoin required every header to pass two independent proof-of-work checks sharing the same target: Yespower (N = 2048, r = 8) as a cheap filter, followed by the dual-round Argon2id check described in the white paper if Yespower passed. Starting at block 225,000, the Yespower check is removed from consensus — Argon2id alone determines validity from that height onward.

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 only.

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.1 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.1.
  4. Start the node — it will continue syncing from where it left off.

What's new in 26.3.1

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.


뉴스