Skip to content
Available on private testnetTestnet: yesMainnet: Not availableSoftware: Core bad4a06ea · protocol pqwerai-v8-testnet/1Updated

Become a miner (GhostRider)

PQWERAI blocks are sealed by GhostRider proof of work computed by a pinned native helper (pqwerai_hash_worker). Mining is CPU-only. Every node verifies the helper's SHA-256 and refuses any other binary.

Prerequisites: a synced PQWERAI node (Install a node), Linux x86-64 (Windows: WSL2), an address for rewards whose key is not stored on the mining host.

1. Choose how to run the node

Edit /etc/pqwerai/core.env (installed by the release package):

PQWERAI_MINE=true
PQWERAI_ETHERBASE=0xYourRewardAddress     # key kept elsewhere (hardware wallet, offline machine)
sudo systemctl restart pqwerai-core
journalctl -u pqwerai-core -f | grep -i -E "sealed|mined|GhostRider"

Node page → Set up and start my node (runs the verified Linux Core inside WSL2) → Mine with this node. Rewards go to the selected wallet account.

pqwerai-core --datadir ./data --genesis genesis.json \
  --helper ./pqwerai_hash_worker \
  --helper-sha256 3a54f0bb461f296b606c9386c68ebf37514a703e5dbff3de4c4a5828637099a8 \
  --difficulty 64 --expect-genesis-hash <manifest genesis hash> \
  --mine --etherbase 0xYourRewardAddress

--difficulty must equal the network's base difficulty (64 for testnet-rc1, see network parameters). All flags: Core CLI.

2. How difficulty and rewards work

  • Target block interval 3–7 s. Difficulty doubles after a block ≤ 2 s and halves after a block ≥ 8 s, clamped to [base, 16 × base]. Above roughly 1024 hashes per 3 s of aggregate hash rate, blocks come faster than the band.
  • Fork choice: greatest total difficulty; the node never reorganises below the BFT-finalized checkpoint.
  • Each block's new issuance is split 79.2 % to the miner, 19.8 % to active Smartnode validators, 1 % to the founder treasury. Transfers, gas fees and AI payments are never taxed. The base fee is burned; the priority fee goes to the miner. There is no supply cap.
  • Rewards are exact integers kept by consensus; g4_status exposes the lifetime counters.

3. Inspect confirmed rewards

mining/check-rewards.sh
# Read the exact issuance counters kept in consensus state and the miner's balance.
# MINER = the address passed as --etherbase / PQWERAI_ETHERBASE.
cast rpc g4_status --rpc-url "$RPC" | python3 -c '
import json, sys
s = json.load(sys.stdin)
print("head", s["head"], "finalized", s["finalized_height"])
for key in ("pow_issued_wei", "pos_issued_wei", "founder_issued_wei", "fee_burn_wei", "minted_wei"):
    print("%-20s %.6f PQAI" % (key, int(s.get(key, "0")) / 1e18))'
cast balance "$MINER" --ether --rpc-url "$RPC"
# How many of the last 20 blocks this address sealed (the miner is the header coinbase).
HEAD=$(cast block-number --rpc-url "$RPC")
for n in $(seq $((HEAD - 19)) "$HEAD"); do cast block "$n" --field miner --rpc-url "$RPC"; done | grep -ic "${MINER#0x}"

Expected output (local testnet, numbers differ):

head 4501 finalized 4448
pow_issued_wei       1.475139 PQAI
pos_issued_wei       0.368785 PQAI
founder_issued_wei   0.018625 PQAI
fee_burn_wei         0.001109 PQAI
minted_wei           1019143.862550 PQAI
1.512361080541570015
20

minted_wei includes the genesis allocations; pow/pos/founder are issuance since genesis. Treat rewards in blocks above finalized_height as reversible. The explorer shows per-block issuance at /api/v1/issuance.

Operational guidance

  • Do not run AI hosting on the cores you mine with (cpu_affinity in the AI configuration).
  • Keep the reward key off the server; a compromised miner should only lose electricity.
  • A node with a different genesis, chain ID or helper hash cannot peer or will refuse to start — that is intended.

Troubleshooting

Symptom Cause
--mine requires --etherbase Set PQWERAI_ETHERBASE / --etherbase
helper SHA-256 mismatch Wrong or modified helper binary — use the release package
Blocks found but reorganised away Another miner's heavier branch won before finality; normal below the finalized checkpoint
eth_getWork returns no mining work available yet The legacy external-miner interface is not how GhostRider mining works; mine inside the node

Found a problem? Report a documentation issue · Build testnet-rc1+72057fe3ec