ZooBC wiki
Running a node

Node parameters on mainnet

The values below are mainnet's; testnet uses the same ones. A block comes every 15 seconds, so a day is 5,760 blocks and a week 40,320. 1 ZBC is 100,000,000 atomic units. A score unit (used for liveness and maturity) is max(n, 2,880 blocks), where n is the number of selectable nodes: 12 hours on a network of fewer than 2,880 nodes.

Registry

See node registry and its seats.

ParameterMainnet valueWhat it means
Genesis seats11Seats written at height 0, held by the ZooBC Foundation, with no locked stake
Genesis operating balance10 ZBC per seatCredited at genesis to each genesis node's own account
Starting score20 %The score every node receives at admission, genesis seats included
Score range0 to 100 %Kept internally as an integer from 0 to 10,000,000,000,000
Registration expirynoneA seat lasts until it is removed, expelled or claimed
min_registry_size7Below this many active nodes the admission delay is capped at 7 days; also the fewest seats and distinct owners a registry-wide vote needs

Registration and the queue

See registering a node and queue.

ParameterMainnet valueWhat it means
Queue minimum at launch100 ZBCStarting value of the voted minimum stake
Queue minimum vote range1 atomic unit to 250 ZBCBounds of the seats' votes on the queue minimum
Entry minimumthe larger of the queue minimum and half the median queued stakeChecked once, when a node enters the queue
Registration fee0.025 ZBC plus a bytes chargeThe base action fee at fee scale 1.0, plus the charge for the transaction's bytes
Proof-of-ownership ageat most 720 blocks (3 hours)How recent the block named in a proof of ownership must be
Queue orderstake × blocks waitedTies go to the earlier registration height, then the lower node id
Attendance window5,760 blocks (1 day)A queued node must show a sign of life once per window; failing any other sign it sends a QueueAttendance, whose fee comes out of the stake and goes to the longevity pool
Allowed missed windows90Over the whole wait, one admission cycle's worth: max(2, maximum delay ÷ 1 day); the 91st miss drops the node, and 90 % of its stake comes back at once

Admission pace

See admission pace.

ParameterMainnet valueWhat it means
Base delay600 daysDivided by the counted seats to give the delay between admissions
Minimum delay7 daysLower clamp; it binds from 86 counted seats
Maximum delay90 daysUpper clamp
First admission7 days after genesisWhen the first newcomer can be admitted
Admissions per cycle1Never in the block that queued the node
Genesis-seat cap11Genesis seats count as at most 11 in the pace; suspended seats do not count
Small-registry cap7 daysThe maximum delay while fewer than 7 nodes are active

Liveness and score

See missed turns, suspension and expulsion and participation score.

ParameterMainnet valueWhat it means
Loss while missing5 points per unitSpread over the unit's blocks, from a skipped turn to the node's next own block
Climbabout 1.67 points per unitAverage gain with perfect work: 0 to 100 % in 30 days
Suspension4th missed turn in a rowThe node leaves the draw and counts as missing
Suspension floor20 blocksA node that made its own block in the last 20 blocks is not suspended by a 4th miss
Pingat most 1 per 120 blocks, fee 0A suspended node's liveness attestation; it returns the node to the draw on probation
Expulsionat score 0Never if fewer than 3 active nodes would remain
Previous producerdemoted to round 10The last block's maker stays in the draw, but a turn it is drawn for before round 10 counts as round 10

Earnings

See maturity and earnings.

ParameterMainnet valueWhat it means
Maturity4 units and 1 own block2 days below 2,880 nodes; nothing is earned before
Reward poolcoinbase, all block fees, a longevity sliceShared in equal shares by a lottery weighted by score
Market taker feeto the block's producerThe one fee not shared by the lottery
Interest on the stakenoneThe stake is a bond

Leaving

See leaving the registry.

ParameterMainnet valueWhat it means
Exit cool-down40,320 blocks (7 days)Time between a removal, or the owner's own claim, and the automatic return of the stake
Stake at risk10 %Lost on expulsion (the other 90 % comes back at once), an exit while missing or suspended, leaving the queue or a queue drop; it goes to the longevity pool
Claim delay40,320 blocks (7 days)A claim from any account but the owner's executes after this, unless the owner removes the node first
Key rotation120 blocks (30 minutes)Delay before a new node key takes effect

Updates and new rules

See releases and updates.

ParameterMainnet valueWhat it means
Update delay11,520 blocks (2 days)Default wait before a node installs a new release; each node sets its own
Update slotsat most 2 nodes per blockDefault spread of the nodes' update start times
Updater checkevery 10 minutes (± 2)First run 15 minutes after boot; a failed update is retried after 12 hours
Activation floor5,760 blocks (1 day)A rule bundle switches on no earlier than this after its release's registration
Readiness thresholdtwo thirds of the seats, rounded upCounted over registered seats, suspended seats left out
Signalling windowmax(720 blocks, 5 blocks per node)Window in which the producers' versions are counted
Release vetotwo thirds of the seatsRevokes a release at once; 8 of 11
Authority replacementtwo thirds, oldest vote a week oldThe release authority changes only after a week of votes

The node process

See running a node.

ParameterMainnet valueWhat it means
Peer port8001The peer-to-peer network
API port8080The HTTP API and the web wallet
Ethereum-style RPC8545, loopbackThe JSON-RPC adapter for MetaMask, on the node's own machine by default
Production attemptevery 10 secondsHow often a registered node tries to produce; its selection thread runs every second
auto_resynconA wedged node rebuilds itself from the spine-anchored snapshots
StorageonHolding file pieces and archive chunks is a duty of the seat; an operator who switches it off only loses the storage rewards
Snapshot interval172,800 blocks (30 days)How often every node writes a snapshot of the state
Blocks kept30 to 60 daysOne to two snapshot periods; older blocks are pruned unless keep_all_history is set

See also