cuckoo

Concepts

The race model

How the site's lab simulates senders, and every assumption in it.

The lab and the hero on the home page use a model, not a measurement. It is in src/engine/cuckoo-engine.mjs, in a few lines, and every parameter is shown on the page.

The model

  • A block lasts 100 ms (the real chain advanced 10 blocks in 1.38 s through a public RPC).
  • A sender aims its transaction to reach the sequencer at the start of the target block. The real arrival is spread around the aim by a normal distribution of width jitter (its network plus its device).
  • The sequencer puts a transaction in the block that is open when it arrives.
  • A plain transaction from a phone has a large jitter (the lab starts at 170 ms). Nothing refuses it, wherever it lands.
  • A keeper has a small jitter (6 ms) and aims two spreads after the start of the block, so it is rarely early. If it is early, the contract refuses and the keeper retries one block later.
  • With several keepers, the earliest valid arrival wins.

What it does not claim

It does not say that keepers on Robinhood Chain have a jitter of 6 ms, or that phones have 170 ms. It says: if they do, here is what happens. The real numbers come from cuckoo measure, which sends transactions aimed at a block and prints where they land. Until that run is published, treat the percentages on the site as an illustration of the mechanism.