{% 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 t in chart.ticks %} {{ "%.0f"|format(t.value) }}s{{ t.suffix }} {% endfor %} {# Height axis. The server draws it plain: gridlines and labels, no grips, since without JS there is nothing to drag them with. #} {% for t in chart.x_ticks %} {% set tx = chart.pad_l + t.frac * chart.plot_w %} {% if not loop.first and not loop.last %} {% endif %} {{ t.height }} {% endfor %} {% for p in chart.points %} {% if not loop.first %} {% set prev = chart.points[loop.index0 - 1] %} Block {{ p.height }}: {{ "%.1f"|format(p.seconds) }}s{{ ", " ~ p.builder if p.builder }}{{ " (off scale, clipped to the edge)" if p.clipped }} {% endif %} {% endfor %} window median {{ "%.0f"|format(race.median) }}s {% if chart.own_y is not none %} self pace{{ " (off scale)" if chart.own_clipped }} {% endif %}
{% for entry in chart.legend or [] %} {% if entry.label %}{{ entry.label[:10] }}…{% else %}Other{% endif %} ({{ entry.count }}) {% endfor %}

Block interval is a proxy for the winning builder's real build time.

{% endif %} {% endblock %}