ZooBC wiki
Running a node

Registering a node

You are looking at an old version of this page: revision #63 by zoobc.how, 2026-10-26 20:39 UTC. See the current version

Registering is the step that turns a node that only follows the chain into a candidate for a seat. The owner sends one transaction that names the node key, locks a stake and proves that the owner and the node key belong together. The node then joins the public queue. It makes blocks only once it is admitted.

Three steps: register with node key, stake and proof; wait in the public queue ordered by stake times time waited; be admitted one node at a time into the ring of seats
Three steps: register with node key, stake and proof; wait in the public queue ordered by stake times time waited; be admitted one node at a time into the ring of seats

The registration transaction

NodeRegistration (type 2) carries the node key, the owner account, the stake and a proof of ownership. The owner signs it like any other transaction. The stake and the fee are debited from the owner's account; the minimum fee is the base action fee of 0.025 ZBC (2,500,000 atomic units) plus a charge for the transaction's bytes (fees).

Nobody reviews the operator, there is no hardware test and there is no approval step. The only checks are rules that every node applies in the same way.

The proof of ownership

The proof binds one node key to one owner. It is a message signed by the node key, laid out like this for an ordinary ZBC_ owner:

FieldBytes
owner account type4
owner key32
hash of a recent block32
height of that block4
Ed25519 signature by the node key64

The first 72 bytes are signed as they are, not hashed first, so the whole proof is 136 bytes. Every node checks four things:

  1. the signature verifies with the node key;
  2. the account in the message is exactly the transaction's sender, byte for byte;
  3. the block exists on the checking node's own chain, with that hash;
  4. the block is at most 720 blocks (3 hours) old.

Because the proof names a recent block, it cannot be prepared long in advance or reused later. The same proof is required when the stake is raised and when a node is claimed, and a new node key signs one when the seat moves to it (keys of a node).

The message strip of owner address, recent block hash and height, signed by the node key, inside a registration signed by the owner key, with the four checks every node makes
The message strip of owner address, recent block hash and height, signed by the node key, inside a registration signed by the owner key, with the four checks every node makes

How much to lock

The smallest stake a node can enter the queue with is the larger of two values:

  • the queue minimum, which starts at 100 ZBC on mainnet. It is one of the prices the seats vote on (price votes): it can range from one atomic unit to 250 ZBC and moves at most once per snapshot cycle, each vote being limited to a rise of 20 % or a cut to half.
  • half the median stake of the nodes already queued, which follows demand.

The check applies only at entry. Nodes already waiting keep their place when the minimum rises. Anyone may lock more than the minimum to move up the queue, which is ordered by stake multiplied by time waited, and a queued node may raise its stake later while keeping the wait it has built up (queue).

After registering

The registered node is queued. It has no participation score yet, and it must show once a day that it is online (queue). When the admission timer reaches it, it becomes registered with the default score of 20 % (admission pace), and it starts earning once it is mature (maturity and earnings).

Withdrawing a node before it is admitted costs 10 % of its stake (leaving the registry). A node key whose seat was deleted may register again; it starts a fresh queue record and inherits no missed turns from its past.

See also