Trefferhistorie

Jeder Treffer. Jeder Fehlschlag.

Jede Prognose wird vor dem Anpfiff festgeschrieben — mit Begründung, und ohne dass sie sich danach noch ändern lässt. Die Ergebnisse kommen später dazu, auch die verfehlten. Daneben steht immer, was der reine Tabellenfavorit getroffen hätte: eine Prognose, die ihn nicht schlägt, ist keine.

Bisher geprüft

Bilanz je Wettbewerb

So rechnest du nach

Für jede Partie zählt der größte Modellwert. Vergleiche ihn mit dem Ergebnis-Ereignis derselben matchId. Der Tabellenfavorit ist richtig, wenn sein gespeicherter Ausgang dem Ergebnis entspricht.

Die fertig gerechnete Bilanz steht unter /v1/competitions/de.bl1/record, die Rohdaten unter /v1/ledger. Beide Antworten sind offen abrufbar und brauchen keinen Schlüssel.

Eine Partie ohne festgeschriebene Prognose zählt nicht mit. Sie verschwindet aber nicht: Sie steht als eigenes Ereignis im Protokoll, damit sichtbar bleibt, dass nachträglich nichts gefüllt wurde.

Warum nichts nachträglich passt

Jedes Ereignis trägt eine Prüfsumme über sich selbst und über seinen Vorgänger: sha256(prevHash + "\n" + JSON des Ereignisses), Schlüssel alphabetisch sortiert, ohne die Felder hash und prevHash selbst. Wer eine ältere Antwort aufbewahrt hat, erkennt jede spätere Änderung an einer Prüfsumme, die nicht mehr aufgeht.

Die Kette macht eine Änderung sichtbar, nicht unmöglich. Wir rechnen sie im Browser bewusst nicht nach: Die gespeicherte Nutzlast enthält Werte wie 0.0, die JavaScript beim Umwandeln zu 0 verkürzt — die Nachrechnung meldete dann einen Bruch, wo keiner ist. Das Werkzeug tool/verify_ledger_chain.dart rechnet sie in Dart korrekt nach.

Im Protokoll unten steht deshalb, was das Feld chainIntact der Dienstantwort meldet — eine Auskunft des Dienstes über sich selbst, keine Prüfung durch diese Seite.

socometrix im App Store