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.

I2124 — Událost znovu načtená z disku splní platnou politiku důvěry a žádné razítko nepředběhne hodiny

Použít stejný predikát důvěry na události znovu načtené ze souboru žurnálu jako na události přicházející přes spojení a odmítnout událost, jejíž Lamportovo razítko předbíhá hodiny příjemce o víc než deklarovanou mez.

HOTOVO vlna 0 · p0 · profil implementation · bezpečné souběžně

Součást runtime-trust — Runtime je bezpečné zpřístupnit z jiného stroje a připojení k mesh nikomu nevěří omylem.

Cíl

Použít stejný predikát důvěry na události znovu načtené ze souboru žurnálu jako na události přicházející přes spojení a odmítnout událost, jejíž Lamportovo razítko předbíhá hodiny příjemce o víc než deklarovanou mez.

Proč

Základní audit balíku runtime (2026-10-09, na 1fb8d6be44) našel journal.rs:1419 znovu načítající perzistovaný žurnál s uzávěrem důvěry přijímajícím vše, vedle komentáře tvrdícího, že znovu načtené události procházejí stejnými kontrolami jako přijaté. Klíč stažený z trust.allow měl své události, nároky a předávky zpět při dalším restartu. Tentýž audit našel journal.rs:1952 přijímající jakékoli Lamportovo razítko, takže jeden důvěryhodný klíč mohl posunout hodiny každého runtime na u64::MAX.

Aktuální stav

Znovunačtení důvěřuje každému původu; příjem přijímá jakékoli razítko.

Cílový stav

Cooperation::new otevírá žurnál přes Journal::open_trusting s definicí důvěry, kterou používá živá cesta (key_trust, jedna funkce); odmítnutá opětovná načtení se počítají v Journal::reload_report a logují. Událost o více než MAX_LAMPORT_LEAD (2^32) před hodinami příjemce se odmítne jako clock_ahead, živá i znovu načtená. Zpětně datovaný nárok, který může stále přebít již přijatý nárok, je zaznamenán jako omezení v docs/MESH.md a ponechán práci milníku na fencingu.

Rozsah

  • apps/majordomus-cli/src/mesh/journal.rs
  • apps/majordomus-cli/src/mesh/cooperation.rs
  • apps/majordomus-cli/tests/mesh_trust_reload.rs
  • docs/MESH.md

Závislosti

Žádné. Tento úkol je kořenem grafu.

Kritéria přijetí

  • Klíč stažený ze seznamu povolených nemá po restartu žádnou ze svých událostí z žurnálového souboru věrohodnou a jsou znovu věrohodné, když je klíč znovu povolen
  • Událost, jejíž razítko předbíhá hodiny příjemce o více než MAX_LAMPORT_LEAD, je odmítnuta jako clock_ahead, a událost v mezi je přijata
  • Živá cesta a reload rozhodují o důvěře jedinou funkcí

Validace

  • cargo test --test mesh_trust_reload --test mesh_cooperation --test mesh_compaction

Požadované důkazy

  • mesh_trust_reload_red_then_green

Důkazy

pokrývátypcommandvýsledeku commitu
mesh_trust_reload_red_then_greencigh run view 38635619021 --log --job 116098148455 (validate na masteru c0e3585dc8, rust (3): cargo test --test mesh_trust_reload --test mesh_cooperation --test mesh_compaction)červená pak zelená: 477f417d916 (PR #865) uvádí oba testy v tests/mesh_trust_reload.rs červené na masteru před ním a zelené s ním; na masteru c0e3585dc8 běh validate 38635619021 (success) rust (3) hlásí a_key_withdrawn_from_the_allowlist_is_not_believed_from_the_journal_file ... ok a a_lamport_stamp_far_ahead_of_the_receiver_is_refused ... ok (2 prošly), mesh_cooperation 7 prošlo, mesh_compaction 3 prošlyc0e3585

Časová osa

zahájeno
2026-10-15T07:44:00Z
ověřeno
2026-10-15T07:44:07Z
dokončeno
2026-10-15T07:44:18Z

Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.

Kanonický záznam: .ai/repo/project/issues/I2124.yaml. Zpětně ho přečtete pomocí majordomus plan show I2124.

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