Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

Každý řádek knihy jen pro připojování je správně utvořená událost a poškozený řádek je selhání, ne přeskočený záznam

.ai/local/state/ledger.jsonl se jen připisuje a je jediným záznamem o tom, co se stalo, který nic jiného nedokáže zrekonstruovat: které úlohy byly zahájeny, měly checkpoint, byly předány a dokončeny a na jakém kontraktu. Řádek, který není správně utvořenou událostí, hlásí jménem a číslem řádku check, doctor i watch.

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

Čtenář vadný řádek přeskočí, místo aby spadl, a check, doctor i watch jej hlásí. Kniha je jediný trvalý záznam, který nelze zrekonstruovat odjinud.

Co to znamená

.ai/local/state/ledger.jsonl je jen pro přidávání a je jediným záznamem o tom, co se stalo, který nic jiného nezrekonstruuje: které úlohy byly zahájeny, checkpointovány, předány a dokončeny a podle jaké smlouvy. Řádek, který není dobře utvořenou událostí, je hlášen jménem a číslem řádku příkazem check, doctor a watch.

Princip

mj_ledger_bad_lines v lib/common.sh načte soubor a vrátí čísla řádků, které nejsou objekty JSON nesoucí ts a event. mj_validate_ledger z toho udělá nález; doktrína majordomus.ledger-integrity je deklarována jako blokující a vynucována přes check, doctor a watch, takže třída je to, co způsobí zastavení příkazu, a ne rozhodnutí uvnitř validátoru. Čtečky — history, search — poškozený řádek přeskočí a pokračují, místo aby spadly, takže poškozený ledger se zkrátí, ale nestane se nepoužitelným.

Jak to vidět

echo 'this is not json' >> .ai/local/state/ledger.jsonl
majordomus history --validate     # exit 10, naming the line
majordomus doctor                 # FAIL records  ledger.jsonl — line(s) 8 are not well-formed events
majordomus watch                  # DRIFT records ledger.jsonl

Co nepokrývá

Dobře utvořený neznamená pravdivý. Kontrola dokládá, že každý řádek je událost s časovou značkou a jménem; neověřuje, že událost popisuje něco, co se stalo, a nedokáže odhalit řádek, který byl odstraněn. Append-only je konvence, kterou příkazy dodržují, ne vlastnost, kterou vynucuje souborový systém.

Proč existuje

Každý další trvalý záznam tu lze znovu sestavit: projekce se regenerují z politiky a nesou vlastní razítka, záznam úlohy se píše znovu pomocí start. Hlavní kniha (ledger) ne. Jediný poškozený řádek, který potichu useká historii, podle níž se čtenář bude řídit, je selhání, na jehož kontrolu se vyplatí vynaložit úsilí.

Detail vykreslený z docs/claims/ledger-integrity.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Každý řádek knihy jen pro připojování je správně utvořená událost a poškozený řádek je selhání, ne přeskočený záznam

    Vytvořeno na Provenance, State.

  2. 2 · kanonické tvrzení

    ledger-integritydeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si to na tomto webu · docs/DOCTRINE.md

  3. 3 · implementace

    lib/check.sh · majordomus check

  4. 4 · test a scénáře

    Test: test/cases/22_history.sh

    Provedeno v Přečíst zpět, co se stalo, a držet účetní knihu v limitu, Zaznamenat, co jeden worker udělal za jedno sezení.

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 22_history

Kde se toto tvrzení používá

Související tvrzení stejná implementace

Okamžiky, na které to odpovídá

Prohledává názvy a popisy všech stránek, které tento web publikuje.