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.

Runtimy obsluhující různé repozitáře nikdy nevytvoří kooperativní spojení, ani když se navzájem objeví

Dva servery Majordomus ve stejné síti, stejné verze, se stejnými důvěryhodnými klíči, jeden obsluhuje

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

Identita repozitáře je digest kořenových commitů nebo deklarovaná hodnota, nikdy cesta; handshake odmítne neshodu oběma směry a ingest odmítne událost jiného repozitáře. Laboratoř to dokazuje mezi uzly Linuxu, které se navzájem objevily multicastem.

Co to znamená

Dva servery Majordomus ve stejné síti, stejné verze, se stejnými důvěryhodnými klíči — jeden slouží repozitáři X, druhý repozitáři Y — slyší navzájem svá oznámení a mohou se vzájemně uvádět jako pozorované uzly. Nikdy se nepropojí: každý hello se odmítne jako repository_mismatch, odmítnutí je uvedeno na obou stranách a žádná relace, nárok, předávka ani recenze jednoho repozitáře se k druhému nedostane. Server repozitáře X na jiném stroji se propojí.

Princip

Mesh identita repozitáře se odvozuje z jeho kořenových commitů — obsahu, který sdílí každý klon a žádný nesouvisející repozitář — nebo se deklaruje jako cooperation.repository v deklaraci mesh, a nikdy z cesty, adresy ani názvu hostitele (apps/majordomus-cli/src/mesh/repository.rs). Handshake porovnává identity v obou směrech a každá událost nese identitu svého repozitáře, takže událost jiného repozitáře je odmítnuta při příjmu, i když ji něco přeposlalo.

Jak to vidět

majordomus mesh doctor                      # the repository check names this runtime's identity
curl http://127.0.0.1:8741/api/v1/mesh/cooperation | jq '.repository, .refused'
cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test mesh_cooperation runtimes_of_different_repositories

two_clones_at_different_paths_are_one_repository_and_another_is_not dokazuje identitu; runtimes_of_different_repositories_never_link_and_say_why dokazuje izolaci mezi dvěma procesy serveru; test/mesh-lab/run (scénář repository_isolation) ji dokazuje mezi oddělenými linuxovými uzly, které se navzájem objevily přes multicast.

Co nepokrývá

Fork sdílí kořenové commity svého původu a pro mesh je tímž repozitářem, pokud jedna ze stran nedeklaruje vlastní cooperation.repository. Mělký klon nemá spolehlivý kořen a musí ho deklarovat; doctor to hlásí.

Proč existuje

Lokální síť běžně obsahuje servery několika repozitářů. Spolupráce, která by ve výchozím stavu překračovala hranice repozitářů, by nechala nároky jednoho projektu blokovat práci jiného a předávala kontext jednoho projektu relacím jiného.

Podrobnosti vykresleny z docs/claims/mesh-repository-isolation.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Runtimy obsluhující různé repozitáře nikdy nevytvoří kooperativní spojení, ani když se navzájem objeví

    Vytvořeno na Mesh.

  2. 2 · kanonické tvrzení

    mesh-repository-isolationdeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v .ai/repo/rules/project/mesh-cooperation-is-authenticated.v1.md

  3. 3 · implementace

    apps/majordomus-cli/src/mesh/repository.rs

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

    Test: apps/majordomus-cli/tests/mesh_cooperation.rs

  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 apps/majordomus-cli/tests/mesh_cooperation.rs

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