Skip to content

v0.1.0-testnet4

Choose a tag to compare

@kiwidream kiwidream released this 18 Jun 16:23
Immutable release. Only release title and notes can be modified.
v0.1.0-testnet4

Qbit: Post-quantum peer to peer digital value

Crypto is vulnerable to quantum theft, but it doesn't have to be. For the first
time, digital value can be secured natively with quantum-resistant signatures
from block zero.

Qbit version v0.1.0-testnet4 is available from the release page for that
version.

This release provides the public Qbit testnet4 node, wallet, GUI, mining, relay,
RPC, documentation, and release-verification surface. It includes Qbit-specific
network identity, consensus rules, wallet signing, mining flows, address
behavior, relay tooling, and operator workflows for public testnet
participation.

Testnet-era release artifacts are for public testnet use only unless the
release page explicitly says otherwise. Qbit mainnet is not launched. Do not
treat any in-tree mainnet genesis block, hash, seed placeholder, or endpoint
placeholder as an official mainnet launch commitment.

Testnet coins have no economic value, and the public testnet may be reset or
replaced during rehearsal.

This release starts a reset testnet4 lineage. It is not compatible with earlier
testnet4 rc chain data; operators who ran an earlier rc should remove or
archive their old testnet4 network directory before starting this release.

Please report bugs using the Qbit issue tracker.

Compatibility

The public Qbit testnet4 chain is selected with:

qbitd -testnet4
qbit-cli -testnet4 getblockchaininfo

Official testnet release binaries are expected to reject no-flag mainnet
startup and explicit -chain=main startup. Use -testnet4 or
-chain=testnet4 for the public testnet.

Supported and tested platforms for this release are the artifacts attached to
the GitHub Release page. The release page is the source of truth for available
platform builds, checksums, signatures, and attestations.

Public testnet4 identity in this release:

Item Value
Chain flag -testnet4 or -chain=testnet4
Default P2P port 48355
Default RPC/REST port 48352
Default onion bind port 48356
Address HRP tq
Message start / network magic 0xc7c41640
Genesis hash 000000000000796fe86bbc0bf1b66a07e4b4c0676f74b54cf7e5ce8b3f1a0090
Genesis bits 0x1a7f1ab5
Initial Cadence lane bits 0x1a7f1ab5
Spendable address model P2MR
DNS seeds coherence-testnet4.qbit.org, triplet-testnet4.qbit.org
Fixed seeds 57.129.86.61:48355, 40.160.66.196:48355
Archive endpoints fermion-testnet4.qbit.org:48355, boson-testnet4.qbit.org:48355
Minimum chain work 0000000000000000000000000000000000000000000000000000000000000000
Default assume-valid block 0000000000000000000000000000000000000000000000000000000000000000

No public faucet or explorer is assumed by this release note. Use only
resources explicitly published for this release.

Notable changes

Network identity and operator defaults

  • Qbit ships Qbit-native executable names: qbitd, qbit-cli, qbit-qt,
    qbit-tx, qbit-util, and qbit-wallet.
  • The default config filename is qbit.conf. Default data directories are
    ~/.qbit/ on Linux, ~/Library/Application Support/Qbit/ on macOS, and
    %LOCALAPPDATA%\Qbit\ on Windows.
  • Default RPC/REST ports are Qbit-specific: 8352 for mainnet, 18352 for
    testnet3, 48352 for testnet4, 38352 for signet, and 18452 for regtest.
  • Qbit init, service, manpage, CMake, package, Qt, NSIS, and product metadata
    have been aligned around Qbit names and assets.
  • Payment URIs use qbit:. The wallet and GUI reject incompatible payment URI
    variants for Qbit payments.

Consensus and policy

  • Qbit defines its own public-chain genesis blocks, address prefixes,
    message-start bytes, ports, seeds, and chain parameters.
  • Blocks target a 60 second aggregate cadence with ASERT difficulty adjustment
    and a 2 hour half-life.
  • Cadence mining is active from genesis on public Qbit chains. Permissionless
    mining targets a 75 second lane, and AuxPoW merged mining targets a 300
    second lane.
  • Public Qbit chains use P2MR as the spendable output model. P2MR is a witness
    v2, 32-byte Merkle-root output with script-path spending only.
  • OP_CHECKSIGPQC is active inside P2MR execution and verifies bounded
    SLH-DSA-SHA2-128s signatures. Current PQC keys are 32-byte public keys,
    64-byte secret keys, and 3,680-byte signatures.
  • P2MR-only script validation rejects OP_CHECKSIGPQC outside P2MR and rejects
    executed legacy signature opcodes inside P2MR. P2MR authorization uses
    canonical PQC checksig, verify, and threshold forms.
  • P2MR-only data-signature opcodes OP_CHECKDATASIGPQC (0xbc) and
    OP_CHECKDATASIGADDPQC (0xbd) support 32-byte message-hash attestations.
  • P2MR-only OP_CHECKTEMPLATEVERIFY is available at opcode byte 0xbb, with
    node-canonical default CTV hash support.
  • Qbit has no witness discount. WITNESS_SCALE_FACTOR is 1, and max block
    weight is 2,000,000.
  • Coinbase maturity is 1,000 blocks.
  • The block subsidy starts at 210 QBT, steps every 43,200 blocks, and uses
    a compound floor stepdown of 598 / 625 until the 210,000,000 QBT money cap
    is reached.
  • Public-chain restricted-output mode accepts ordinary spendable P2MR outputs,
    reserved future witness forms, OP_RETURN, and PayToAnchor outputs. Legacy,
    P2SH-SegWit, native SegWit v0, and Taproot receive/change outputs are not the
    public Qbit payment path.
  • Public testnet4 starts this reset release without a post-genesis
    minimum-chainwork floor or assume-valid checkpoint. Those values should only
    be raised after a validated reset-chain checkpoint exists.
  • Regtest defaults follow Qbit's P2MR-only restricted-output behavior unless a
    test explicitly opts out.

Wallet, address, PSBT, and RPC behavior

  • Descriptor wallets are the supported wallet type. Legacy wallet creation is
    not supported.

  • Wallet receive and change flows use P2MR on launch and rehearsal chains:

    qbit-cli -testnet4 -rpcwallet=<wallet> getnewaddress "" "p2mr"
    qbit-cli -testnet4 -rpcwallet=<wallet> getrawchangeaddress "p2mr"
  • Qbit adds P2MR descriptors and script support, including mr(...),
    rawmr(...), pk(...), multi_a(...), sortedmulti_a(...), and pqc(...)
    where appropriate.

  • P2MR signing uses stateful PQC signature counters. Wallet and signing RPCs
    can report pqc_signature_count, pqc_signature_limit,
    pqc_signatures_remaining, pqc_limit_state, and related warning fields.

  • Do not run two active copies of the same signing wallet. Restore and backup
    procedures must preserve wallet state, including PQC signature counters.

  • Plain xpub-only watch-only flows are not enough for Qbit P2MR. Use
    exportpubkeydb, importpubkeydb, getnextpubkeydbaddress, and
    listpubkeydbstatus for watch-only P2MR address allocation.

  • Qbit supports P2MR PSBT signing and finalization, including dedicated P2MR
    data and Qbit-proprietary fields. Non-Qbit PSBT tooling should not be assumed
    to preserve or understand those fields.

  • Wallet transaction construction, PSBT, input, spend, coin-control, and fee
    estimate paths account for Qbit P2MR signature sizes.

  • Wallet-created payment outputs to reserved future witness versions are
    rejected before send, funding, PSBT, or bumpfee RPCs can report ordinary
    success.

  • Imported PQC secret material is validated before it reaches wallet storage,
    and deterministic PQC key derivation uses the trusted key-generation public
    key output.

  • Parallel PQC wallet signing is supported while preserving per-wallet lock
    ordering and failure handling.

  • Qbit adds or changes public RPCs for Qbit-specific operation, including
    createauxblock, submitauxblock, getarchivepeers, getorphanmetrics,
    getconfirmationtarget, exportpubkeydb, importpubkeydb,
    getnextpubkeydbaddress, listpubkeydbstatus, and getdefaultctvhash.

  • Existing RPCs such as getblocktemplate, getnetworkinfo, getblock,
    getnewaddress, getrawchangeaddress, validateaddress, getaddressinfo,
    walletprocesspsbt, decodepsbt, and signrawtransactionwithkey have
    Qbit-specific behavior where P2MR, PQC signing, archive service bits, witness
    pruning, Cadence, or AuxPoW apply.

Mining and confirmation policy

  • Permissionless mining continues to use getblocktemplate and submitblock,
    but templates use Qbit Cadence, ASERT, restricted-output, and full-witness
    weight rules.
  • AuxPoW merged mining is exposed through createauxblock and
    submitauxblock. Public testnet's AuxPoW chain ID is 31430.
  • ASICBoost-compatible version-mask handling is available for Qbit mining
    templates. Custom and AuxPoW templates suppress inappropriate rolling masks
    where miners must not mutate Qbit chain-id, reserved, or AuxPoW layout bits.
  • getnetworkhashps can report estimates for all, permissionless, or
    auxpow lanes.
  • getconfirmationtarget estimates Qbit confirmation targets from transaction
    value, requested security level, observed stale rate, and observed or modeled
    hashrate. Exchanges and custodians should use it as an input to local deposit
    policy.
  • Fresh coinbase rewards mature after 1,000 Qbit blocks. Pool and custody
    accounting must not treat newly mined rewards as immediately spendable.
  • PayToAnchor mining payouts are rejected, and mining/RPC policy is tightened
    around Qbit output-script expectations.

Node operation and archive bootstrap

  • Qbit defaults to archive/full-history witness retention. Witness pruning is
    an explicit opt-in mode with -prunewitnesses=1.
  • Archive-capable nodes advertise NODE_ARCHIVE. Witness-pruned nodes
    advertise NODE_WITNESS_PRUNED.
  • -connectarchive=<host:port> provides a stricter archive bootstrap fallback.
    Peers configured this way must advertise the expected archive and witness
    service bits and must not advertise or imply witness-pruned history.
  • getarchivepeers reports archive-relevant connected peers and configured
    archive fallback targets.
  • Witness pruning is incompatible with -txindex. Indexers, explorers,
    exchanges, and support tooling that require historical witness data should
    run archive nodes.
  • Verbose historical getblock calls can fail on witness-pruned history when
    the node no longer has the needed witness data.
  • P2P sync handling preserves AuxPoW payloads during headers presync and
    redownload while bounding retained serialized AuxPoW bytes. Validated block
    download timeouts have been retuned for Qbit's slower block-validation paths.

PHOTON relay

  • qbit-photon is available as a standalone relay daemon for authenticated UDP
    block relay between Qbit nodes.
  • Deploy qbit-photon only when authenticated peer links and local qbitd
    RPC/ZMQ access are configured.
  • PHOTON subscribes to qbitd ZMQ block notifications, fetches blocks over qbitd
    RPC, relays encoded block data to configured peers, and submits reconstructed
    blocks to local qbitd.
  • PHOTON includes FEC support, peer freshness checks, replay protection,
    bounded inbound relay state, restart diagnostics, and per-peer session
    isolation so stale sessions do not poison current relay delivery.
  • Release tooling includes a separate PHOTON build path.

Release, CI, documentation, and supply chain

  • Qbit Guix build and attestation tooling includes Qbit-specific artifact
    naming and independent builder attestation support.
  • Signed-release publication gates validate pinned trusted refs, signer set
    size, release artifacts, builder attestations, and key metadata.
  • The libbitcoinpqc Qbit subtree has been refreshed and supported with AVX2,
    TSAN, upstream fuzz, low-cap failure, and wrapper evidence workflows.
  • CI coverage has been expanded for Windows builds, Windows Qt diagnostics,
    public testnet4 transport parameters, block-weight assumptions, scanner
    dependencies, and disk-pressure failure modes.
  • Public docs have been reorganized around Qbit users, integrators, operators,
    release verification, exchange/custody operation, mining pool integration,
    RPC deltas, P2MR wallet workflows, and full-validation bootstrap.
  • Generated Qbit RPC documentation can be installed with release artifacts
    under share/doc/qbit/rpc/ and published manually through the RPC docs
    workflow.

Credits

Thanks to everyone who contributed code, testing, review, infrastructure, and
release coordination for this release.


qbit v0.1.0-testnet4 Release Verification Linkage

  • Release tag: v0.1.0-testnet4
  • qbit-guix.sigs commit: 1946e109a8ac4b24637f3ef45b0aabdf5eb08bfe
  • Artifact manifest: SHA256SUMS
  • Project release signatures: SHA256SUMS.asc

Artifact hashes

SHA256 Artifact
daa3e11161583925779679a6289019395d31c565ded202f390124908475d8837 qbit-0.1.0-testnet4-aarch64-linux-gnu-debug.tar.gz
0d8b1ae93e4c4b0d410dae50b3c7b4404649e454113a3ef7e3a7205d659e5615 qbit-0.1.0-testnet4-aarch64-linux-gnu.tar.gz
54a3c176762f440089669f33eae2762f271a89f4a844dbd5c7c5d9ba003edeaf qbit-0.1.0-testnet4-arm-linux-gnueabihf-debug.tar.gz
2daf5fb155477669dbda5b04440349ede67dac45103b78bebdc450d5d482e860 qbit-0.1.0-testnet4-arm-linux-gnueabihf.tar.gz
df2081ab7922192cf26c73f3f68ba184bcd6acb22f7f44293fc46f45a787d237 qbit-0.1.0-testnet4-arm64-apple-darwin-unsigned.tar.gz
10cfe9ecca34b8ab0560d05d1b211ab30b7eb6d007899c5839a739fd3e6774f5 qbit-0.1.0-testnet4-arm64-apple-darwin-unsigned.zip
a00fcd0b6ccbc4864de6ea98c6aceddcccab68dc47b9406042682ba5a8a4e96d qbit-0.1.0-testnet4-powerpc64-linux-gnu-debug.tar.gz
11cf2f28d0a0cdc88e4a2bcc9dc004ae421e4dee9d5e486863d032e522920e30 qbit-0.1.0-testnet4-powerpc64-linux-gnu.tar.gz
bbf00c475b7f88a547abe2716c4ea21323296a560b155aea10080cc05145d703 qbit-0.1.0-testnet4-riscv64-linux-gnu-debug.tar.gz
8b532ca3ff0451ba322911f5a2cf00a7b880c81f83583106cb32a99e1a59da4b qbit-0.1.0-testnet4-riscv64-linux-gnu.tar.gz
914575021c610053ee092f7b4eb58be3b03d987c5c4925c51cad6b6d288da298 qbit-0.1.0-testnet4-win64-debug.zip
5ef0ca1e6f780ca9fb57f32e24c9d9e727076b5e0f61cf7380ae453f08be9091 qbit-0.1.0-testnet4-win64-setup-unsigned.exe
7481993df622931a957fa804331dc0a698e50c4f8a783c3d13e632556429e76e qbit-0.1.0-testnet4-win64-unsigned.zip
3619a6a840e474267d7c3939008884722ee6ee8dc439617e731792805ca6181b qbit-0.1.0-testnet4-x86_64-apple-darwin-unsigned.tar.gz
a34b883275388ca9d529cb0475332774881bd2ed937ed8d3a47a3a0fb8db14bf qbit-0.1.0-testnet4-x86_64-apple-darwin-unsigned.zip
3ae45534a01bc1d6ad88faebf8d42a9b6dfb1decbbf1ed247b3c4da21015dacf qbit-0.1.0-testnet4-x86_64-linux-gnu-debug.tar.gz
aaa6c6a4e501809ef1b05a4e63280c24341acdc3a000cc686d928705f1455ac7 qbit-0.1.0-testnet4-x86_64-linux-gnu.tar.gz
a78035141a0ff0acebfa7ad51cf2daea43f9f5a7924b87e7fe0b9dc28e5782d0 qbit-photon-0.1.0-testnet4-x86_64-linux-gnu-debug.tar.gz
9e3082d03fc914e00c2ed483bcfc9705e34b8fae57f147487259f406e35472b2 qbit-photon-0.1.0-testnet4-x86_64-linux-gnu.tar.gz

Builder attestations

  • 0.1.0-testnet4/operator-01/noncodesigned.SHA256SUMS.asc
  • 0.1.0-testnet4/operator-01/photon-noncodesigned.SHA256SUMS.asc
  • 0.1.0-testnet4/operator-02/noncodesigned.SHA256SUMS.asc
  • 0.1.0-testnet4/operator-02/photon-noncodesigned.SHA256SUMS.asc

Verification model

The GitHub Release artifacts are linked to builder attestations by matching
artifact basename and SHA256 digest. The pinned qbit-guix.sigs commit above
contains the builder-signed Guix manifests used for quorum validation.

Local coordinator validation command:

contrib/release-process/verify-staged-release.sh