Skip to content

Releases: btcrcpu-max/rcpu

v1.3.2

Choose a tag to compare

@github-actions github-actions released this 20 Oct 13:22
RCPU Core v1.3.2 - Etchash Dual-Algorithm Support (filename fix)

v1.3.1

Choose a tag to compare

@github-actions github-actions released this 20 Oct 12:01
RCPU Core v1.3.1 - Etchash Dual-Algorithm Support (clean rebuild)

v1.3.0 - Etchash Dual-Algorithm Support

Choose a tag to compare

@btcrcpu-max btcrcpu-max released this 20 Oct 07:41

v1.3.0 - Etchash Dual-Algorithm Support

Etchash Activation: Block 21000 | Epoch Length: 6000

Changes

  • Etchash dual-algo consensus (ECIP-1099 light verification)
  • Bit-30 block verification with Etchash PoW
  • Dual-algorithm block template generation

Downloads

Platform Asset
Linux rcpu-1.3.0-x86_64-linux-gnu.tgz
Windows rcpu-1.3.0-win64-setup.zip
QT Wallet rcpu-qt-1.3.0-x86_64.tgz

Verification

SHA256 checksums in SHA256SUMS.txt

Pool Operators

Configure both RandomX and Etchash. Etchash activates at block 21000.

RCPU Core v1.2.0 — Dual-Algorithm Hard Fork

Choose a tag to compare

@github-actions github-actions released this 19 Oct 11:29

RCPU Core v1.2.0 — Dual-Algorithm Hard Fork

This is a consensus upgrade (hard fork). All nodes and pools MUST upgrade before block height 21,000.

Highlights

  • Dual-algorithm mining: RandomX + qPoW (qhash) run concurrently.
  • qhash marking: nVersion bit 30 (0x40000000).
  • Dual-algo difficulty: independent ASERT per algorithm, target spacing 600 s (10 min) per algorithm (~5 min overall).
  • Difficulty anchor: height 20,999, reference target = anchor nBits >> 1.
  • getblocktemplate: new algo parameter to request a template for a specific algorithm.

Activation

Network Activation height
Mainnet 21,000
Testnet 21,000
Regtest 150

Compatibility

  • Below activation height, the qhash bit is fully ignored — behavior is identical to v1.1.19, old nodes sync normally.
  • After activation, nodes running v1.1.19 or earlier will reject qhash blocks (hard fork). Upgrade before height 21,000.

Known Notes

  • Testnet min-difficulty uses 2 * nPowTargetSpacing (10 min) rather than the dual-algo formula; testnet only, no fork risk.
  • ASERT anchor uses its own timestamp rather than the parent block's (fixed one-block offset, ~0.003% effect at 2-day half-life).

Checksums

Verify with the RCPU Dev Team public key (RCPU-DEV-GPG-KEY.asc):

gpg --verify SHA256SUMS.txt.asc SHA256SUMS.txt
sha256sum -c SHA256SUMS-windows.txt
sha256sum -c SHA256SUMS-linux.txt

PFPs: rcpu-1.2.0-* enabled for both algorithms; pool operators must configure fallback algos.

v1.1.19

Choose a tag to compare

@github-actions github-actions released this 18 Oct 03:21
Release v1.1.19 - Fix fee limit for large CT transactions

v1.1.18

Choose a tag to compare

@btcrcpu-max btcrcpu-max released this 14 Oct 01:26

Fix

The overview "Unlock Wallet" button showed English text in the Chinese UI because its strings were missing from the Qt translation files. This release adds them to all six shipped Chinese locale files (simplified and traditional).

Upgrade notes

Drop-in replacement for v1.1.17. Only the Qt translation files changed; wallet behaviour is unchanged and no wallet or chain migration is needed.

v1.1.17

Choose a tag to compare

@btcrcpu-max btcrcpu-max released this 14 Oct 00:38

v1.1.17

Highlights

  • Overview page Unlock Wallet button. A new "Unlock Wallet" button now
    appears next to the Available balance on the overview page for encrypted
    wallets. Clicking it opens the passphrase dialog; after a successful
    unlock the wallet automatically rescans the most recent 2000 blocks to
    unblind any confidential transactions received while it was locked.

Changes

Qt / GUI

  • qt: add Unlock Wallet button next to Available balance on overview page
    (88199c3). The button is hidden for unencrypted wallets and for wallets
    without private keys; it shows "Unlock Wallet" while locked and becomes
    a disabled "Unlocked" indicator after a successful unlock. State is kept
    in sync via WalletModel::encryptionStatusChanged.

How it works

  1. Wallet is encrypted and locked. CT received during this period shows up
    as a blinded (zero-looking) amount.
  2. User clicks Unlock Wallet on the overview page and enters the
    passphrase.
  3. AskPassphraseDialog unlocks the wallet and triggers
    WalletModel::triggerUnblindRescan() (added in v1.1.16, commit 06f31e1).
  4. A background thread runs ScanForWalletTransactions over the most
    recent 2000 blocks (~1.4 days at 1-minute blocks), unblinding CT
    outputs. Progress appears in the GUI status bar.
  5. Balances and transaction history update automatically. No manual
    rescanblockchain needed.

For CT received more than 2000 blocks ago, run rescanblockchain <height>
manually from the RPC console.

Upgrade notes

  • Drop-in replacement for v1.1.16. No wallet or chain migration required.
  • Includes all v1.1.16 fixes (encrypted-wallet CT unblinding, auto-rescan
    after unlock, revert of the skip CT_VERSION regression, UTXO-based
    CONFIDENTIAL change gating).

v1.1.16

Choose a tag to compare

@github-actions github-actions released this 13 Oct 18:05
- Encrypted-wallet CT unblinding fixes (from v1.1.14/v1.1.15)
- Auto-rescan recent 2000 blocks after unlock to unblind CT in Qt GUI
- Revert skip-CT_VERSION optimization that broke mixed plaintext/CT txs
- Restore UTXO-based CONFIDENTIAL change gating (c969dad)

v1.1.15

Choose a tag to compare

@github-actions github-actions released this 13 Oct 13:44
RCPU v1.1.15 - Fix CT change output disappearing after wallet re-locks

v1.1.14

Choose a tag to compare

@github-actions github-actions released this 13 Oct 09:31
wallet: fix GetPrivKey for encrypted descriptor wallets

GetPrivKey() had a redundant HavePrivateKeys() guard before calling
GetSigningProvider(include_private=true). For encrypted wallets the
descriptor stores xpub (not xprv), so HavePrivateKeys() returned false,
causing GetPrivKey to abort early and never expanding private keys.

This prevented UnblindWalletOutput (receive.cpp line 104) from
retrieving the 85h private key needed to unblind Path-B/C CT outputs,
leaving amounts at 0 for all encrypted descriptor wallets.

Remove the guard; GetSigningProvider already handles include_private
correctly for encrypted wallets (GetKeys returns decrypted keys when
unlocked, empty when locked), and ExpandPrivate safely no-ops when no
keys are present.