v1.0.7-stable is live. Release page: v1.0.7-stable · INT-devs / intcoin · GitLab
No consensus or wire-format changes. v1.0.7 interoperates with v1.0.6.1 peers unchanged — no forced upgrade. Datadir, wallet, and key formats carry forward; upgrade is a binary swap with no re-sync.
Headlines
IIP-0603 end-to-end longpoll fix
Daemon-side TipChangeNotifier fan-out + miner-side LongpollWatcherThread. Closes the ~50% stale-work loss @hammersfan10 quantified on v1.0.6.1; stale templates abandoned within milliseconds of a chain advance instead of grinding to the next find.
Details:
- Daemon fires the notify on every RPC-driven
ActivateBestChain()(submitblock,generatetoaddress,generateblock), so long-poll callers wake on actual tip change rather than the 30s timeout. intcoin-minerruns aLongpollWatcherThreadthat blocks ongetblocktemplate({longpollid, longpolltimeout: 30}), setsg_templateStaleon return, and mining threads check every ~2ms.- Functional regtest
feature_iip0603_longpoll.pypins the end-to-end timing.
Cross-network defence-in-depth
Closes the theft class where an attacker mines a cheap regtest/testnet block, hands the matching tint1q.../rint1q... address to a mainnet user, and silently receives real INT to a hash160 they hold the privkey for.
Chain-aware HRP rejection now applies to:
- Every send path (
sendtoaddress,sendmany,send,sendall,createrawtransaction,generatetoaddress, ISMS recovery). - Key-import paths (
CExtPubKey::Decode,CExtKey::Decode,PaymentCode::Decoderequire HRP + version-bytes to match active chain). loadwalletrejects wallet.dat files tagged for a different network (WalletError::WRONG_NETWORK).mempool.datv3 + chainstate genesis-hash tags.intcoin-minerstartup gate + explorer search.- ISMS multisig descriptor no longer hardcodes mainnet HRP.
Chain-aware IBD
Regtest short-circuits IBD (operator-controlled by definition); testnet drops the 24h tip-age requirement (no-miners → no recent tip → IBD true → getblocktemplate refuses → no mining → loop. Fixed by chain-aware exit logic.)
Also in this release
- IIP-0604 PQ block-template field adaptations (mutable-field contract, weight × 4, 100→150 byte coinbase scriptSig).
- IIP-0210 ancestor package relay (BIP-331-style
SENDPACKAGES). - IIP-0422 wallet backup + key export (
dumpmnemonicRPC, opt-in encrypted-at-reststore_mnemonicflag, mnemonic.txt sibling file on every create path). - IIP-0121 Lightning consensus + policy prerequisites (script templates, channel-reserve table, anchor-output policy).
- IIP-0423 INTcoin URI scheme + IIP-0424 display denomination units (both at Proposed).
- Multi-wallet Qt UX (status-bar picker, create/load/unload dialogs, per-wallet
/wallet/<name>/RPC routing). - Miner derives expected chain from
getblockchaininfo.chainover RPC rather than command-line flag alone. - 53 Coverity-flagged defects fixed; expanded unit + functional + fuzz + race test coverage.
Full changelog: docs/user/CHANGELOG.md · v1.0.7-stable · INT-devs / intcoin · GitLab
Verifying your download
gpg --import intcoin-release-key-35B70313.asc
gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum -c SHA256SUMS --ignore-missing
Release key fingerprint: DA59 591A 0E99 3644 7EF6 4492 6C9C 7A2A 35B7 0313.
Known gap
Fedora / Rocky / openSUSE RPM, Arch, Snap, and Docker packages didn’t make it into this release. The cause was pre-existing CI-pipeline bugs that surfaced on the first real release-stage exercise — every prior release pipeline since v1.0.6.1 was source=schedule and skipped the release-stage jobs entirely, so the bugs sat dormant.
Fix queued for v1.0.7.x / v1.0.8. Build-from-source remains the recommended path on those platforms in the meantime:
git clone --recurse-submodules https://gitlab.com/INT-devs/intcoin.git
cd intcoin && git checkout v1.0.7-stable
cd depends && make -j$(nproc) && cd ..
cmake -B build --toolchain depends/$(depends/config.guess)/toolchain.cmake
cmake --build build -j$(nproc) && sudo cmake --install build
— INT-devs