How Crosslink works on the Feature Net, and what the words on this dashboard mean.

01About#

The Crosslink Dashboard shows the Crosslink Feature Net: whether blocks are being finalized, how stake is spread across finalizers, and how each finalizer has behaved. It is an open view made by the community. It is independent of Shielded Labs.

The principle: we build the tool we would want to exist even if we did not run a finalizer. Every finalizer is measured by the same rules. Nobody pays for a place on the page.

The Feature Net is the test network where Shielded Labs runs Crosslink before mainnet. The software is experimental, and mainnet may differ. What this page says about the protocol is checked against the Crosslink source code, the running network and the release notes.

02Words#

Finalizer
A node that signs blocks to finalize them. It is known by its key and run by an operator.
Active finalizer
One of the largest 12 finalizers by stake. Only they sign blocks. A finalizer outside them holds stake but signs nothing, and is shown as not active.
Stake
cTAZ locked with a finalizer until it is unstaked and withdrawn.
Voting power
An active finalizer's share of all stake with the active finalizers. A block is finalized by two thirds of it.
Active set
The active finalizers together. Its edge is where it ends: between the last active finalizer and the first one that is not.
Commission
The part of the rewards an active finalizer keeps from the stake placed with it: 10%, the same for every active finalizer.
Delegator
A person who stakes cTAZ with a finalizer.
Staking Day
The blocks when staking, unstaking and withdrawing are allowed: blocks 0–3,455 of every 10,368.
Unbonding
The wait after unstaking, before the stake can be withdrawn.
Finalized
Signed by finalizers holding two thirds of voting power. A finalized block cannot be reversed.
Finality gap
How many blocks the newest block is ahead of the last finalized block.
Finality stall
No block finalized for 3 minutes or more, while mining continues.
Round
One try at finalizing a block. One finalizer proposes a block and the others vote on it. If no block gets two thirds, a new round starts.
Uptime
The share of finalized blocks a finalizer signed.
Online / offline
Whether a finalizer signed a recent finalized block.
Participation
The share of voting power that signed a finalized block.
Nakamoto coefficient
The fewest finalizers that together hold more than a third of voting power.
Miner
A node that produces blocks by proof of work. It is known here by the address each block pays it.
Activation
How a new chain starts: proof of work alone, then staking opens, then the first finalizers are chosen from the stakes, then finality starts.
cTAZ
The test coin of the Feature Net (Crosslink TAZ). What you earn by mining or staking decides your share of the ZEC Shielded Labs gives out at the end of a season.
Name
A finalizer's or a miner's public name, from the community's name lists. Most are claimed with a signature by the key; some are shared by the community and not claimed.
Nickname
Your own name for a finalizer or a miner, shown in quotes and kept in your browser.
Feature Net
The test network where Crosslink runs before mainnet.

03Finality#

Zcash stays proof of work: miners produce the blocks. Crosslink adds finalizers, which sign blocks to finalize them. A block is finalized when finalizers holding two thirds of voting power (66.67%) have signed it. From then on it cannot be reversed. Signatures count by stake, not by finalizer, and only the active finalizers sign.

finality gap = latest block − last finalized block

The gap is normally a few blocks. It grows while finality is stalled, because mining continues.

The finalizers sign finality blocks, numbered on their own. Each one names a mined block, a few under the tip, and makes it and everything under it final, usually one or two mined blocks at a time. Every mined block carries the newest finality block its miner's node knew, with the signatures that node had received: that is how a signature travels with the chain. A node marks a block final once the next mined block carries the finality block that names it, so between the two a block is decided: a finality block covers it, and the node calls it final one mined block later. The Chain page draws both rails.

Mined blocks and miners#

Every block says who mined it: the first output of its coinbase transaction pays the block reward to the miner's payout address. The outputs after it go to the dev fund. A miner can send its reward to a shielded address instead. Such a block shows no payout address, and is counted as shielded.

An address is a payout address, not a person or a machine. One operator can mine to several addresses, and many machines can mine to one. Miners set the block times, so a block time here is an average over recent blocks. The newest blocks can still be replaced by a reorganization. A block is settled once it is finalized.

Why finality stalls#

Finality is stalled when no block has been finalized for 3 minutes or more. Mining continues. Nobody loses stake in a stall (§08). A stall has one of two causes:

Stake offline
Finalizers holding more than a third of voting power are not signing, so less than two thirds is signing.
No agreement
Enough stake is online, but no proposed block gets two thirds of the signatures, and the rounds keep starting again.

A stall is a network event, not the fault of any one finalizer. A node without a finalizer key receives a block's signatures only after the block is finalized, so from outside the rounds of a stall cannot be seen.

04Decentralization#

The Nakamoto coefficient is the fewest finalizers that together hold more than a third of voting power. A block needs signatures from two thirds of voting power. So any group holding more than a third can stall finality by stopping together, on purpose or by accident. The higher the number, the more finalizers would have to stop at once. At 1, one finalizer alone holds more than a third, and finality depends on that one finalizer staying online.

It is in the delegators' power. Nothing in the protocol spreads stake. Where it goes is each delegator's choice. Stake placed with the finalizers that are not among the largest raises the number; stake placed with the largest lowers it. Rewards are the same with every active finalizer (§08), so spreading stake costs a delegator nothing. A finalizer may also grow by staking its own rewards. That is its own stake to place, and a delegator choosing where to stake can take it into account.

More than a third means more than 33.34% of the stake with the active finalizers. Stake added with the other active finalizers lowers the largest ones' share, and also grows the total. So:

stake needed = active stake × (their share − 33.34%) ÷ 33.34%

05Uptime#

uptime = finalized blocks signed ÷ finalized blocks in the window

The window is the last 100,000 finalized blocks, counted from when the finalizer joined. Blocks finalized while a finalizer was not active are not counted, because it could not sign them.

No node holds every signature. Each node keeps the signatures that reached it, which is always enough to finalize the block but not always all of them. So uptime can only be too low, never too high. A finalizer with no signed block on record shows no uptime (—), never 0%: it may be down, or it may never have been active.

The suggestion rule#

A finalizer can be suggested, and is listed under “Meets the rule”, when all of these hold:

  1. uptime of at least 80%;
  2. 1,000 or more finalized blocks since it joined;
  3. active and online now;
  4. signed at least 8 of the last 10 finalized blocks;
  5. not one of the finalizers counted by the Nakamoto coefficient.

One of them is picked at random. No suggestion is made while finality is stalled.

06Online and offline#

A finalizer is online when it signed a finalized block within

A finalizer is online when it signed a finalized block within 10 minutes of the latest one. Otherwise it is offline, also when it has never signed. While finality is stalled no block is finalized, so the status stays as it was at the last finalized block. A finalizer that has had no connection for 1 hour during a stall is offline. A finalizer that is online by that rule but signed none of the last 7 finalized blocks is missing. Its next signature clears that.

A finalizer outside the active ones is not active. It signs nothing, so it is neither online nor offline. Online stake is the stake of the online finalizers as a share of all stake with the active finalizers. A missing finalizer's stake is not in it.

07Participation#

Participation is the share of voting power that signed a finalized block, each finalizer counted by its stake at the time. A block needs two thirds. Like uptime, it can only be too low, never too high (§05).

08Staking#

A delegator stakes cTAZ with a finalizer from their own wallet. The coins stay theirs and are locked until unstaked and withdrawn. Staking, unstaking and withdrawing are allowed only while Staking Day is open: blocks 0–3,455 of every 10,368. Each stake takes one action per Staking Day: stake on one, unstake on a later one, withdraw on a third. Moving stake to another finalizer works at any time. Unstaked stake is unbonding until it can be withdrawn. Stakes come in fixed amounts, so that the size of a stake does not identify its owner.

When a change counts. Nothing is settled at the end of a Staking Day. A stake, an unstake or a move changes the finalizer's stake in the block that carries it, and the finalizers sign with the new stake as soon as that block is finalized, usually a few blocks later. An unstake stops counting at once, before it can be withdrawn. So the order of the finalizers, and which of them are active, can change at any finalized block: all through a Staking Day, and between Staking Days when stake is moved. While finality is stalled the active finalizers stay as they were at the last finalized block.

  1. Get cTAZ. The desktop app mines to its wallet once its node has synced, and its Receive cTAZ button asks the faucet.
  2. Copy the finalizer's address from the desktop app's finalizer list, or from a source you trust. A wallet takes the finalizer's address, which is not the same text as its key.
  3. While Staking Day is open, press Stake, paste the address and choose an amount. Try a small amount first.
  4. A few blocks later, check that the finalizer's stake grew.

No slashing. Nothing takes stake away automatically because of what a finalizer does. Staked cTAZ stays the delegator's and can always be unstaked and withdrawn. The Crosslink FAQ expects delegators to watch their finalizers and move stake to the reliable ones. One exception: a hard fork led by the users can terminate a finalizer and burn the stake with it, including stake moved away from it shortly before.

Activation on a new chain#

A new Feature Net starts as proof of work alone, like mainnet, and grows into Crosslink from its own stakes. No staking action is valid below block 20,736. From there, Staking Day runs on its cycle. The stakes at block 34,560 choose the first finalizers, and finality starts at block 36,288. Only the largest 12 finalizers by stake are active at any height. A finalizer with stake outside them signs nothing. The first finalizers are the one fixed list: they sign from the block finality starts at until the first block is finalized. From then on the active finalizers follow the stake (when a change counts). Staking rewards start with finality. No reward is paid before it.

Rewards and yield#

Each block's reward is split in fixed shares between the miner, the stakers and a dev fund. The stakers' share is spread over all stake, in proportion, and added to it. An active finalizer keeps 10% of the rewards on the stake with it as commission, which becomes part of its own stake. A delegator there keeps the rest. The rate is the protocol's and the same for every active finalizer, so the same stake earns the same with any of them. Stake with a finalizer that is not active pays no commission, and that finalizer signs nothing: the stake earns, but does not help finalize blocks. Rewards do not depend on uptime. What you earn by mining or staking decides your share of the ZEC given out at the end of a season. cTAZ received and held earns no share.

Estimated yield is measured from how stake grows. It is not a promise. The stake the finalizers sign with is updated when a block is finalized, so there is nothing to measure while finality is stalled. The reward per block is fixed, so the yield falls as more is staked.

09Stake changes#

net change = stake at the end − (stake at the start + its rewards)

So rewards are not counted. The net change is stake added, removed or moved between finalizers.

10Names and nicknames#

A finalizer is known by its key. A wallet stakes to its address, which carries the key. A miner is known by its payout address. None of these is a name. The names on this site come from the community's public name lists. Most are claimed: the finalizer or the miner signed a message with its finalizer key, or with the key behind its payout address. Some are shared: a name the community knows a finalizer by, published without such a signature, and the finalizer's page says so. A signature shows who holds the key, not who the person is. Names are not claimed on this site. Without a name, a page shows the short key or the short payout address.

A nickname is your own name for a finalizer or a miner. Press the edit mark beside its name on a list to set one. It is shown in quotes in place of the name, on your pages only. It stays in your browser and is never sent. Names and nicknames never change uptime, rank or the suggestion.

11Data and privacy#

The dashboard shows only what the chain already makes public.

For visitors: no cookies and no third-party requests. Your browser keeps the theme and any nickname you give a finalizer or an address, and never sends them. The web host keeps ordinary request logs.