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
- Visió Executiva
- Cicle de vida del motor de gravació
- Auto-Sellar i Sellat de Segment
- Adaptador de límit
- Bundle Builder Pipeline
- 7-Fases Verificador
- Proveïdor d’Evidències Límits
- Estat de Dureça en Temps d’Execució
- 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ó:
- valida
RecorderConfig, - rebutja valors
recorder_idmal formats durant la validació de la configuració, - recupera metadades del segment actiu si estan presents,
- executes startup read-back verification for active segment tails when
startup_verification_depth > 0. F:crates/arxi-recorder/src/engine.rs L154-L197 F:crates/arxi-recorder/src/engine.rs L372-L543
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:
- el segell afegeix
system.segment.sealedcom a sobre final, - persisteix
SealRecord, - marks segment sealed and clears active state. marca el segment segellat i neteja l’estat actiu. F:crates/arxi-recorder/src/engine.rs L438-L503
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:
- resoldre selector,
- agrupar sobres per segment de manera determinista,
- construir metadades d’inclusió per segment,
- calcular pares omesos i tancament d’adjunció,
- 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:
- format de manifest/hash-algorithm i comprovacions d’integritat estructural,
- integritat del hash d’adjunt,
- hash del contingut de l’enviament i presència d’adjunt,
- continuïtat de la cadena per segment,
- vinculació de predecessors entre segments,
- verificació de signatures amb arrel de confiança opcional + política de confiança,
- 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_bundlesenumerates sealed segments with stable IDs derived fromlist_bundlesenumera segments segellats amb IDs estables derivats dels IDs de segment i suporta la semàntica de cursor/límits,fetch_bundleresolves the requested bundle ID to a sealed segment and buildsfetch_bundleresol el bundle ID sol·licitat a un segment segellat i construeix ambBundleSelector::BySegment,verify_bundledelega a un verificador de 7 fases,query_envelopesdelega 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ó:
- 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.
- 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
Nsobres del segment actiu (startup_verification_depth). - 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.
- 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).
- Recorder config validation now fail-closes malformed
recorder_idvalues La validació de la configuració del gravador ara tanca en fallada els valorsrecorder_idmalformats abans que es produeixi el comportament d’obertura/tancament en temps d’execució. - El verificador ara aplica límits de treball explícits i delimitats a la frontera de la biblioteca.
- 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.
- 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
| Àrea | Fitxer | Notes |
|---|---|---|
| Cicle de vida del motor | crates/arxi-recorder/src/engine.rs | Flux d’obertura/registres/tancament i progressió de la cadena. |
| Configuració d’execució | crates/arxi-recorder/src/config.rs | Invariants de configuració d’auto-tancament i inici. |
| Límit d’adaptador | crates/arxi-recorder/src/local_adapter.rs | Implementació d’adaptador en procés. |
| Validació d’entrada | crates/arxi-recorder/src/validation.rs | Comprovacions d’envelopes no segellats amb fallada tancada. |
| Constructor de paquets | crates/arxi-recorder/src/bundle_builder.rs | Resolució de selectors i assemblatge determinista de paquets. |
| Verificador | crates/arxi-recorder/src/verifier.rs | Algorisme de verificació de 7 fases. |
| Proveïdor d’evidències | crates/arxi-recorder/src/evidence_provider.rs | Implementació de la interfície d’evidències del costat de tirada. |
| Model d’error | crates/arxi-recorder/src/error.rs | Taxonomia de fallades específica del registrador. |