Repository navigation
Releases: btcrcpu-max/rcpu
Release list
v1.3.2
v1.3.1
RCPU Core v1.3.1 - Etchash Dual-Algorithm Support (clean rebuild)
v1.3.0 - Etchash Dual-Algorithm Support
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
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:
nVersionbit 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
algoparameter 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
Release v1.1.19 - Fix fee limit for large CT transactions
v1.1.18
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
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 viaWalletModel::encryptionStatusChanged.
How it works
- Wallet is encrypted and locked. CT received during this period shows up
as a blinded (zero-looking) amount. - User clicks Unlock Wallet on the overview page and enters the
passphrase. AskPassphraseDialogunlocks the wallet and triggers
WalletModel::triggerUnblindRescan()(added in v1.1.16, commit 06f31e1).- A background thread runs
ScanForWalletTransactionsover the most
recent 2000 blocks (~1.4 days at 1-minute blocks), unblinding CT
outputs. Progress appears in the GUI status bar. - Balances and transaction history update automatically. No manual
rescanblockchainneeded.
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 theskip CT_VERSIONregression, UTXO-based
CONFIDENTIAL change gating).
v1.1.16
- 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
RCPU v1.1.15 - Fix CT change output disappearing after wallet re-locks
v1.1.14
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.