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é pozorování objevování konverguje do jednoho omezeného registru, deduplikovaného podle identity uzlu a runtime napříč zdroji, chráněného proti replay na úrovni instance, a každý povrch tento registr promítá a nedrží žádné vlastní peery

Uzel zaslechnutý na multicastu a vrácený rendezvous je jeden záznam se dvěma

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

tests/mesh.rs dokazuje konvergenci k jednomu záznamu přes skutečný socket a unit testy registru dokazují deduplikaci z více zdrojů, zahazování replayů, zacházení s restartem a mez vyřazování; test/cases/130_mesh.sh pokrývá cestu operátora bez sítě a žádnou část tohoto tvrzení nenese; scripts/ci/mesh-check (kontrola mesh-check) odmítne UDP socket mimo src/mesh/ a druhé místo konstrukce MeshRegistry. Od discovery protokolu 2 (ADR 0067) je záznam jedním runtimem uzlu, takže dva worktrees jednoho stroje jsou dva záznamy pod jedním klíčem.

Co to znamená

Uzel zaslechnutý na multicastu a vrácený rendezvous je jeden záznam se dvěma pozorováními — nikdy dva řádky s jednou pravdou každý. CLI, /api/v1/mesh/nodes, nástroje MCP i stránka mesh v Cockpitu se nemohou neshodnout v tom, kdo existuje, protože žádný z nich nedrží seznam: všechny vykreslují mesh::MeshRegistry. Registr je omezený (256 záznamů; důvěryhodné uzly se kvůli místu nikdy nevyřazují, takže záplava nemůže vyplavit flotilu), zahazuje opakování podle pořadí na instanci, po minutě ticha ztlumí přítomnost a po patnácti minutách záznamy úplně expiruje. Restart — stejný klíč, nová instance — záznam aktualizuje a zvýší restarts; nikdy jej nezduplikuje.

Princip

Deduplikace probíhá podle id uzlu, což je digest veřejného klíče Ed25519 uzlu — nikdy podle adresy, takže stroj, který změní IP, je stále sám sebou. Poskytovatelé předávají surové bajty manažeru (mesh::manager), který vlastní jedinou ověřovací cestu — velikost, tvar, verze, meze, zastaralost, podpis — a teprve pak sahá do registru (apps/majordomus-cli/src/mesh/registry.rs). Unit testy registru dokazují konvergenci, zahazování replayů, zpracování restartu a mez vyřazování; test/cases/130_mesh.sh dokazuje cestu operátora; apps/majordomus-cli/tests/mesh.rs ji dokazuje přes skutečný socket. scripts/ci/mesh-check (kontrola mesh-check) odmítne UDP socket mimo src/mesh/ a druhé místo konstrukce MeshRegistry, takže vlastnost jednoho registru drží stroj, ne paměť.

Jak to vidět

majordomus mesh nodes                    # the registry, one row per node
curl http://127.0.0.1:8741/api/v1/mesh/nodes
scripts/ci/mesh-check                    # the structural half, as CI runs it
cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib mesh::registry

two_sources_converge_into_one_record a a_replay_is_dropped_and_counted jsou pojmenované unit důkazy; tests/mesh.rs ukazuje jeden záznam, který přežije restart přes HTTP.

Co nepokrývá

Registr není trvalý: restart serveru zapomene, co bylo pozorováno, a je to záměr. A neověřuje — ověření probíhá ve správci dřív, než cokoli dorazí do registru; slibem samotného registru je konvergence a meze.

Proč existuje

Charakteristickou vadou subsystémů objevování je jeden seznam peerů na transport, dokud se povrchy nerozejdou. Opravou je jeden omezený registr krmený jednou ověřovací cestou — a kontrola, která jej drží, aby vlastnost přežila přispěvatele, kteří ADR nikdy nečetli.

Detail vykreslený z docs/claims/mesh-one-registry.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Každé pozorování objevování konverguje do jednoho omezeného registru, deduplikovaného podle identity uzlu a runtime napříč zdroji, chráněného proti replay na úrovni instance, a každý povrch tento registr promítá a nedrží žádné vlastní peery

    Vytvořeno na Mesh.

  2. 2 · kanonické tvrzení

    mesh-one-registrydeklarovaný stav: zaručeno v docs/CLAIMS.yaml

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

  3. 3 · implementace

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

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

    Test: apps/majordomus-cli/tests/mesh.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.rs

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