dash works !!! good data. billing seems to work

This commit is contained in:
Dobromir Popov
2026-07-02 23:07:41 +02:00
parent 1e0aa6ea8f
commit a938c19a82
14 changed files with 617 additions and 49 deletions

View File

@@ -1182,6 +1182,9 @@ class _TrackerHandler(http.server.BaseHTTPRequestHandler):
elif parsed.path.startswith("/v1/tracker-nodes/"):
model = urllib.parse.unquote(parsed.path.removeprefix("/v1/tracker-nodes/"))
self._handle_tracker_nodes(model)
elif parsed.path.startswith("/v1/head-workers/"):
model = urllib.parse.unquote(parsed.path.removeprefix("/v1/head-workers/"))
self._handle_tracker_nodes(model)
elif parsed.path == "/v1/raft/status":
self._handle_raft_status()
elif parsed.path == "/v1/stats":
@@ -1311,7 +1314,11 @@ class _TrackerHandler(http.server.BaseHTTPRequestHandler):
self._send_json(200, {"model": model, "coverage": coverage})
def _handle_tracker_nodes(self, model: str):
"""Return nodes registered with tracker_mode=True whose shard starts at layer 0."""
"""Return head workers: worker nodes that can start inference for a model.
The historical endpoint name is /v1/tracker-nodes, but these are not
tracker processes and they are the only machines that load model shards.
"""
server: _TrackerHTTPServer = self.server # type: ignore[assignment]
resolved_name, preset = _resolve_model_preset(server.model_presets, model)
if preset is None:
@@ -1337,6 +1344,15 @@ class _TrackerHandler(http.server.BaseHTTPRequestHandler):
]
self._send_json(200, {
"model": resolved_name,
"head_workers": [
{
"node_id": node.node_id,
"endpoint": node.endpoint,
"relay_addr": node.relay_addr,
"peer_id": node.peer_id,
}
for node in tracker_nodes
],
"tracker_nodes": [
{
"node_id": node.node_id,
@@ -2862,7 +2878,7 @@ class TrackerServer:
treasury = self._treasury
assert billing is not None and treasury is not None
while not self._settlement_stop.wait(self._settlement_check_interval):
if self._raft is not None and not self._raft.is_leader():
if self._raft is not None and not self._raft.is_leader:
continue # followers replicate the ledger but never sign
# resend batches whose transaction never confirmed
for settlement_id, payouts in billing.unconfirmed_settlements().items():