Skip to Content
MiningMining Pool Operator Guide

Mining Pool Operator Guide

A Tidecoin-ready pool has two operating modes: pre-AuxPoW standalone mining and post-AuxPoW merged mining. The post-AuxPoW path requires both a Tidecoin node and a scrypt parent-chain source.

This page is the operational guide. The exact AuxPoW proof format is covered in AuxPoW Integration.

Reference Architecture

ComponentResponsibility
Tidecoin nodeCandidate creation, submitauxblock, wallet/payout RPC, chain state.
Parent-chain nodeParent getblocktemplate, parent block submission, parent chain state.
Stratum frontendMiner sessions, extranonce assignment, vardiff, share parsing.
Job builderParent coinbase, Tidecoin commitment, parent merkle root, Stratum notify.
Share validatorParent scrypt hash check against share, Tidecoin target, and parent target.
Payout engineCredits, maturity handling, batching, Tidecoin PQ fee/weight checks.
MonitorRPC health, tip freshness, stale job rate, submit result, payout state.

Tidecoin Node Setup

For a pool-facing Tidecoin node:

server=1 txindex=1 rpcbind=127.0.0.1 rpcauth=<generated-rpcauth-line>

Use a dedicated wallet or payout address for block rewards. Back it up with backupwallet and keep RPC private.

AuxPoW RPCs are unavailable before activation for the next block height. Test on testnet or regtest before mainnet activation.

Job Builder Flow

  1. Fetch parent template with parent getblocktemplate.
  2. Fetch Tidecoin candidate with createauxblock.
  3. Build the AuxPoW commitment blob:
fabe6d6d || tide_aux_hash || size_le || nonce_le
  1. Insert that blob into the parent coinbase input script.
  2. Split coinbase for Stratum:
coinbase1 || extranonce1 || extranonce2 || coinbase2
  1. Build the merkle branch from parent template transactions.
  2. Send parent job data to miners.
  3. On winning shares, reconstruct the parent coinbase and header.
  4. Submit Tidecoin AuxPoW when the parent scrypt hash meets the Tidecoin target.
  5. Submit the parent block when the same hash meets the parent target.

Share Validation

For every share:

  • reconstruct the coinbase from the exact extranonce values;
  • recompute the parent merkle root;
  • reconstruct the 80-byte parent header;
  • compute the parent scrypt proof hash;
  • compare it to pool share difficulty;
  • compare it to Tidecoin target if Tidecoin is enabled;
  • compare it to parent target if parent block submission is enabled.

Do not trust miner-side “block solved” messages without recomputing the header and proof hash server-side.

Payout Handling

Tidecoin payout transactions are larger than Bitcoin-style ECDSA transactions because Tidecoin uses post-quantum signatures. A pool payout engine should:

  • estimate Tidecoin transaction weight from actual input script type and PQ scheme;
  • use walletcreatefundedpsbt, walletprocesspsbt, finalizepsbt, and testmempoolaccept where practical;
  • enforce maximum standard transaction weight;
  • batch carefully;
  • keep wallet backups current;
  • wait for coinbase maturity before spending rewards;
  • handle reorgs by reversing or suspending affected credits.

Use Transaction Size and Fees for the sizing model.

Confirmation and Reorg Policy

Pool accounting should distinguish:

StateMeaning
submittedNode accepted the block or submit result is believed successful.
unknown submitTransport failed after submission attempt; reconcile from chain.
pendingBlock exists but is not mature enough for payout.
confirmedBlock is deep enough for accounting policy.
orphanedBlock is no longer in the active chain.

Do not mark transport-level submit failures as permanent rejection until the chain has been checked.

Monitoring Checklist

  • Tidecoin tip height and parent tip height.
  • Candidate age and candidate refresh reason.
  • Parent longpoll freshness.
  • Share acceptance and stale-share rate.
  • Tidecoin target wins and parent target wins.
  • submitauxblock accepted, rejected, and ambiguous counts.
  • Coinbase maturity queue.
  • Payout batch status.
  • Wallet balance, locked UTXOs, and fee estimation failures.
  • RPC latency and error rate for both nodes.

Activation Readiness Checklist

  • AuxPoW end-to-end test passes on testnet or regtest.
  • Parent coinbase has exactly one merged-mining marker.
  • Single-chain Tidecoin commitment uses size 1 and nonce 0, or multi-chain index calculation is tested.
  • Parent merkle branch byte order is verified against Tidecoin submission.
  • Reorg reconciliation is tested.
  • Payout batches pass testmempoolaccept.
  • Monitoring alerts exist for stale candidates, submit failures, and payout backlog.

See also: AuxPoW Integration, Merged Mining, Transaction Size and Fees, Node & Operations.

Last updated on