{% extends "base.html" %}
{% block content %}
{% if not race %}
Race odds
Not enough chain history yet, check back after a few blocks.
{% else %}
{% if not mining_enabled %}
Not building right now: mining is off. Still fully validating and
syncing every block. Turn on in Settings.
{% endif %}
Odds
{% if waiting_zero_odds %}
Not mining
odds are 0%, watching before building
{% else %}
{{ ("%.1f"|format(race.odds_pct) ~ "%") if race.odds_pct is not none else "--" }}
{% set w = "%g"|format(race.draw_window) %}{% if race.odds_pct is none %}no blocks to judge from yet{% elif race.odds_pct == 0 %}never inside the {{ w }}s draw window{% elif race.in_draw_pct < 95 %}in the {{ w }}s draw window on {{ "%.0f"|format(race.in_draw_pct) }}% of heights{% elif race.entrants < 1.05 %}only builder inside the {{ w }}s draw window{% else %}{{ "%.1f"|format(race.entrants) }} builders inside the {{ w }}s draw window{% endif %}
{% endif %}
Blocks won
{{ ("%.1f"|format(race.win_share_pct) ~ "%") if race.win_share_pct is not none else "--" }}
{{ "%d of the last %d"|format(race.own_blocks, race.window|length) }}
Self pace
{{ ("%.1f"|format(race.own_pace) ~ "s") if race.own_pace is not none else "--" }}
{{ "median interval of blocks we built" if race.own_pace_measured else ("estimated from calibration, no build finished yet" if own_is_estimate else "VDF clock: no block of ours in this window") }}
Window median
{{ "%.1f"|format(race.median) }}s
{{ race.window|length }} blocks
Deepest reorg
{{ reorgs.deepest if reorgs.deepest else "none" }}
{% if reorgs.count %}{{ reorgs.count }} seen, one-block ties not counted
{% else %}nothing deeper than a tie so far{% endif %}
{% if hardware %}
Hardware
{{ hardware.cpu }} · {{ hardware.os }}
{% endif %}
Block-to-block time, last {{ race.window|length }} blocks
{% for entry in chart.legend or [] %}
{% if entry.label %}{{ entry.label[:10] }}…{% else %}Other{% endif %}
({{ entry.count }})
{% endfor %}
Drag a marker along the bottom axis to
give the blocks beside it more room; every block stays on the chart, so spreading one
stretch out squeezes its neighbour.
Block interval is a proxy for the winning builder's real build time.