Chain rules
The consensus rules of the Requant test network, summarised from CHAIN.md. They are a draft for the test network: values may change before a main network, and every change updates the rules, the consensus code and its tests together. The work function, TNet v1, is frozen.
Parameters
| Parameter | Test network | Main network (planned) |
|---|---|---|
| Unit | 1 RQT = 10^8 atoms | same |
| Work function | TNet v1: n = 8192, B = 65,536, L = 8, w = 256, M = 2505 | same |
| Target block interval | 60 s | 60 s |
| Difficulty adjustment | ASERT (aserti3-2d, anchored at genesis), half-life 2 h | same |
| Epoch length / seed look-back | 1440 blocks / 60 blocks | same |
| Largest target (pow limit) | 2^248 − 1 | 2^240 − 1 |
| Genesis target | 2^229 − 1, about 2^27 tickets per block | set at launch from the test network's hashrate |
| Genesis time | 9 October 2026, 17:34 UTC | set at launch |
| Coinbase maturity | 100 blocks | 100 blocks |
| Spending conditions active from | height 1400 | genesis |
| Revocable outputs, revocable HTLCs, anyone-can-pay from | height 4700 | genesis |
| Address prefix | trq1 | rq1 |
| Maximum block size | 1 MiB | same |
| Maximum inputs or outputs per transaction | 10,000 | same |
Maximum coinbase extra | 64 bytes | same |
A regtest network (prefix rqrt1, a tiny work function, maturity 2) exists for local development.
Blocks
- A block is a 116-byte header, the 272-byte work claim and the transactions; see transactions and addresses for the encodings.
- A block is valid when it extends its parent by one height, its time is later than the median of the last 11 blocks, its target is the one the difficulty rule gives, its work claim is valid for its header and epoch, its transaction root matches, it is at most 1 MiB, its first and only coinbase pays no more than reward plus fees (and the fund share, below), and every transfer is valid.
- Nodes also hold back blocks timed more than 2 hours in the future until that time (policy, not consensus).
Fork choice
The valid chain with the most cumulative work wins, where a block's work is floor(2^256 / (target + 1)). On a tie the node keeps its current chain. Nodes refuse reorganisations deeper than --max-reorg (1440 blocks by default).
Difficulty
ASERT, the absolutely scheduled exponential rule of Bitcoin Cash (aserti3-2d), anchored at genesis: the target doubles for every 2 hours the chain falls behind its schedule of one block per minute and halves for every 2 hours it runs ahead. Each block's target depends only on its parent's height and time, so there are no retarget windows to game.
Epochs and weights
epoch(h) = floor(h / 1440).seed_0 = H("requant/epoch0", chain_id);seed_e = H("requant/epoch", LE64(e) || block_id(e·1440 − 60)).- Nodes derive the next epoch's 512 MiB of weights after block
e·1440 − 60, about 7 s on one core, so they are ready before the epoch starts.
Emission and the development fund
reward(generated) = max(TAIL, (S − generated) >> 22) S = 2^24 RQT, TAIL = 0.25 RQT
- The first block reward is 4 RQT; it decays smoothly by a factor of
1 − 2^−22per block. There is no halving cliff. generatedis the scheduled total of earlier rewards, so a reward a miner leaves unclaimed is never issued later.- For heights 1 to 2,097,152 (about four years) the coinbase must pay at least
floor(reward × 6 / 100)to the network's development-fund key hash. Fees are never shared. After that height the rule ends by itself. - Genesis issues nothing; there is no premine.
Numbers and their meaning: economics.
Signatures and hashes
- ed25519 with strict verification; each input signs
H("requant/sighash", chain_id || txid || LE32 index). - Every hash is
SHA256(tag || data)with arequant/tag. - Spending conditions (2-of-2, HTLC, time locks) are fixed templates: spending conditions.
Node policy (not consensus)
- Minimum relay fee rate 1 atom per byte, transactions up to 100,000 bytes, a 32 MiB mempool with 72-hour expiry and at most 25 unconfirmed ancestors, block templates of up to 900,000 bytes of transactions.
- Child pays for parent: blocks take transactions by the rate of the package they complete with their unconfirmed ancestors.
- Eviction judges a transaction by the better of its own rate and its rate with its descendants.
- Replace by fee: a conflicting transaction replaces a pooled one and its descendants (at most 100) when it pays more than all of them plus its own size at the minimum rate, at a higher rate than each one it conflicts with.