Arxi Docs

Documentació de gravació de proves i evidències que mostren manipulació.

Altres documents de producte

Arxi Recorder Runtime i Arquitectura de Paquet

Audience: Engineers changing ingest/runtime behavior, bundle export, or Audiència: Enginyers que canvien el comportament d’ingestió/execució, l’exportació de paquets o els camins de verificació.


Taula de continguts

  1. Visió Executiva
  2. Cicle de vida del motor de gravació
  3. Auto-Sellar i Sellat de Segment
  4. Adaptador de límit
  5. Bundle Builder Pipeline
  6. 7-Fases Verificador
  7. Proveïdor d’Evidències Límits
  8. Estat de Dureça en Temps d’Execució
  9. File per Fitxer Referència Creuada

Executive Overview

arxi-recorder és la capa d’orquestració en temps d’execució. Segella entrades no fiables en sobres enllaçats en cadena només d’apèndix, controla el cicle de vida dels segments, construeix paquets portàtils a partir de l’àlgebra de selectors i verifica els paquets fora de línia en memòria.

F:crates/arxi-recorder/src/lib.rs L11-L29 F:crates/arxi-recorder/src/lib.rs L34-L56


Cicle de vida del motor de gravació

RecorderEngine posseeix l’estat del segment actiu i fa complir les invariants:

  • zero o un segment actiu,
  • la seqüència comença a 0 per segment,
  • progressió del cap de cadena per afegir,
  • comportament només d’append.

F:crates/arxi-recorder/src/engine.rs L22-L35 F:crates/arxi-recorder/src/engine.rs L108-L137

Comportament d’inici de l’aplicació:

Comportament d’ingestió:

  • càlcul del hash de contingut i del hash de cadena,
  • injecció de signatura opcional,
  • afegir a l’emmagatzematge,
  • in-memory chain-head and envelope-count update. actualització de la capçalera de cadena en memòria i del recompte d’envelopes. F:crates/arxi-recorder/src/engine.rs L376-L436

Auto-Sellar i Segellat de Segment

La configuració admet None, AfterCount, AfterDuration i Combined. Els llindars amb valor zero són rebutjats durant la validació. recorder_id ha de satisfer les mateixes restriccions de forma d’identitat que s’utilitzen per als identificadors d’actors en temps d’execució, de manera que els IDs no vàlids fallen tancats en iniciar-se en comptes de més tard en els fluxos de segment/seal. F:crates/arxi-recorder/src/config.rs L36-L85 F:crates/arxi-recorder/src/config.rs L117-L165

Flux de segellat:

L’evaluació d’auto-sellat s’invoca després de cada append de data-envelope exitós. F:crates/arxi-recorder/src/engine.rs L505-L565


Adaptador de límit

LocalRecorderAdapter envolta RecorderEngine en tokio::sync::Mutex per satisfer les exigències del trait compartit Send + Sync mentre es preserva l’accés mutable exclusiu en temps d’execució. F:crates/arxi-recorder/src/local_adapter.rs L20-L24

emit_envelope i emit_with_attachments criden a la validació explícita de fallada tancada abans de la delegació del gravador. F:crates/arxi-recorder/src/local_adapter.rs L120-L165 F:crates/arxi-recorder/src/validation.rs L46-L83


Bundle Builder Pipeline

BundleBuilder::build pipeline:

  1. resoldre selector,
  2. agrupar sobres per segment de manera determinista,
  3. construir metadades d’inclusió per segment,
  4. calcular pares omesos i tancament d’adjunció,
  5. assembleu el manifest de verificació.

F:crates/arxi-recorder/src/bundle_builder.rs L17-L35 F:crates/arxi-recorder/src/bundle_builder.rs L129-L172

L’àlgebra de selectors inclou selectors de segment/temps/filtre/ID i unions compostes amb deduplicació determinista mitjançant BTreeMap. F:crates/arxi-recorder/src/bundle_builder.rs L415-L479

Els segments parcials utilitzen ancoratges de prova (chain_hash immediatament abans del primer sobre inclòs) per a la verificació de continuïtat. F:crates/arxi-recorder/src/bundle_builder.rs L255-L290


7-Fases Verificador

Verifier::verify executa comprovacions de paquet en memòria en aquest ordre:

  1. format de manifest/hash-algorithm i comprovacions d’integritat estructural,
  2. integritat del hash d’adjunt,
  3. hash del contingut de l’enviament i presència d’adjunt,
  4. continuïtat de la cadena per segment,
  5. vinculació de predecessors entre segments,
  6. verificació de signatures amb arrel de confiança opcional + política de confiança,
  7. assemblea de veredicte.

Abans de l’execució de la fase, el verificador aplica una política de treball limitat i falla tancat si es superen els límits (segments, sobres per segment, sobres totals, adjunts totals i referències d’adjunt per sobre).

F:crates/arxi-recorder/src/verifier.rs L13-L26 F:crates/arxi-recorder/src/verifier.rs L95-L136 F:crates/arxi-recorder/src/verifier.rs L500-L651

Totes les comparacions de hash utilitzen igualtat en temps constant. F:crates/arxi-recorder/src/verifier.rs L29-L52


Proveïdor d’Evidències Límits

RecorderEvidenceProvider implementa el trait EvidenceProvider delegant a l’emmagatzematge de consultes, constructor de paquets i verificador. F:crates/arxi-recorder/src/evidence_provider.rs L48-L67

Mètodes:

  • list_bundles enumerates sealed segments with stable IDs derived from list_bundles enumera segments segellats amb IDs estables derivats dels IDs de segment i suporta la semàntica de cursor/límits,
  • fetch_bundle resolves the requested bundle ID to a sealed segment and builds fetch_bundle resol el bundle ID sol·licitat a un segment segellat i construeix amb BundleSelector::BySegment,
  • verify_bundle delega a un verificador de 7 fases,
  • query_envelopes delega a les consultes de filtre de l’emmagatzematge d’envelopes.

Els controls de límits del proveïdor ara inclouen una normalització/rebuig explícit de límits de fallada tancada per a límits de sol·licitud i límits de materialització de segments-envolupants.

F:crates/arxi-recorder/src/evidence_provider.rs L123-L286


Estat de Dureça en Temps d’Execució

Recentment completat en temps d’execució:

  1. Verifier phase 6 now enforces trust-root key lookup, cryptographic signature La fase 6 del verificador ara imposa la cerca de la clau de confiança arrel, la validació de signatures criptogràfiques i les comprovacions de política de confiança quan es proporciona una arrel de confiança.
  2. Recorder startup now performs fail-closed read-back verification over the El inici del gravador ara realitza una verificació de lectura de tancament de fallades sobre els darrers N sobres del segment actiu (startup_verification_depth).
  3. Evidence provider now exposes stable bundle IDs and true fetch-by-ID El proveïdor d’evidències ara exposa ID de paquet estables i una veritable semàntica de recuperació per ID per a segments segellats.
  4. Verifier phase 1 now fail-closes on manifest structural tampering (segment La fase 1 del verificador ara tanca automàticament en cas de manipulació estructural del manifest (mismatch de metadades de segment i llista d’adjuncions).
  5. Recorder config validation now fail-closes malformed recorder_id values La validació de la configuració del gravador ara tanca en fallada els valors recorder_id malformats abans que es produeixi el comportament d’obertura/tancament en temps d’execució.
  6. El verificador ara aplica límits de treball explícits i delimitats a la frontera de la biblioteca.
  7. Evidence provider now enforces bounded query/list/materialization limits and El proveïdor d’evidències ara aplica límits de consulta/llista/materialització delimitats i rebutja límits proporcionats pel cridant que són massa grans.
  8. System tests now cover manifest structural tamper, single-open-segment Les proves del sistema ara cobreixen la manipulació estructural del manifest, l’aplicació de segments d’obertura única i els camins de fallada tancats per corrupció de persistència de principi a fi.

F:crates/arxi-recorder/src/verifier.rs L509-L651 F:crates/arxi-recorder/src/engine.rs L154-L197 F:crates/arxi-recorder/src/engine.rs L380-L543 F:crates/arxi-recorder/src/evidence_provider.rs L52-L300 F:system-tests/tests/suites/bundle.rs L563-L684 F:system-tests/tests/suites/recorder.rs L279-L327 F:system-tests/tests/suites/persistence.rs L375-L468


File per Fitxer Referència Creuada

ÀreaFitxerNotes
Cicle de vida del motorcrates/arxi-recorder/src/engine.rsFlux d’obertura/registres/tancament i progressió de la cadena.
Configuració d’execuciócrates/arxi-recorder/src/config.rsInvariants de configuració d’auto-tancament i inici.
Límit d’adaptadorcrates/arxi-recorder/src/local_adapter.rsImplementació d’adaptador en procés.
Validació d’entradacrates/arxi-recorder/src/validation.rsComprovacions d’envelopes no segellats amb fallada tancada.
Constructor de paquetscrates/arxi-recorder/src/bundle_builder.rsResolució de selectors i assemblatge determinista de paquets.
Verificadorcrates/arxi-recorder/src/verifier.rsAlgorisme de verificació de 7 fases.
Proveïdor d’evidènciescrates/arxi-recorder/src/evidence_provider.rsImplementació de la interfície d’evidències del costat de tirada.
Model d’errorcrates/arxi-recorder/src/error.rsTaxonomia de fallades específica del registrador.