Arxi Docs

Documentación de grabación de pruebas y evidencia a prueba de manipulaciones.

Otros documentos del producto

Arquitectura de tiempo de ejecución y paquete de Arxi Recorder

Audience: Engineers changing ingest/runtime behavior, bundle export, or Audiencia: Ingenieros que cambian el comportamiento de ingestión/ejecución, exportación de paquetes o rutas de verificación.


Tabla de Contenidos

  1. Resumen Ejecutivo
  2. Ciclo de Vida del Motor de Grabación
  3. Auto-Sellado y Sellado de Segmentos
  4. Límite del Adaptador
  5. Pipeline de Constructor de Paquetes
  6. Verificador de 7 Fases
  7. Límite del Proveedor de Evidencia
  8. Estado de Dureza en Tiempo de Ejecución
  9. Referencia Cruzada Archivo por Archivo

Resumen Ejecutivo

arxi-recorder es la capa de orquestación en tiempo de ejecución. Sella entradas no confiables en sobres encadenados de solo anexar, controla el ciclo de vida de los segmentos, construye paquetes portátiles a partir de álgebra de selectores y verifica paquetes fuera de línea en memoria.

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


Ciclo de vida del motor de grabación

RecorderEngine posee el estado del segmento activo y hace cumplir las invariantes:

  • cero o un segmento activo,
  • la secuencia comienza en 0 por segmento,
  • progresión de la cabeza de la cadena por anexar,
  • comportamiento de solo anexar.

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

Comportamiento de inicio:

Comportamiento de ingestión:

  • cálculo del hash de contenido y del hash de cadena,
  • inyección de firma opcional,
  • almacenar anexos,
  • in-memory chain-head and envelope-count update. actualización de la cabeza de cadena en memoria y conteo de sobres. F:crates/arxi-recorder/src/engine.rs L376-L436

Auto-Sellado y Sellado de Segmentos

La configuración admite None, AfterCount, AfterDuration y Combined. Los umbrales de valor cero son rechazados en la validación. recorder_id debe satisfacer las mismas restricciones de forma de identidad utilizadas por los identificadores de actores en tiempo de ejecución, por lo que los IDs inválidos fallan en el inicio en lugar de más tarde en los flujos de segmento/sello. F:crates/arxi-recorder/src/config.rs L36-L85 F:crates/arxi-recorder/src/config.rs L117-L165

Flujo de sellado:

La evaluación de auto-sellado se invoca después de cada adición exitosa de un sobre de datos. F:crates/arxi-recorder/src/engine.rs L505-L565


Límite del Adaptador

LocalRecorderAdapter envuelve RecorderEngine en tokio::sync::Mutex para satisfacer los requisitos del rasgo compartido Send + Sync mientras se preserva el acceso exclusivo mutable en tiempo de ejecución. F:crates/arxi-recorder/src/local_adapter.rs L20-L24

emit_envelope y emit_with_attachments llaman a una validación explícita de fallo cerrado antes de la delegación del grabador. F:crates/arxi-recorder/src/local_adapter.rs L120-L165 F:crates/arxi-recorder/src/validation.rs L46-L83


Constructor de Paquetes Pipeline

BundleBuilder::build pipeline:

  1. resolver selector,
  2. agrupar sobres por segmento de manera determinista,
  3. construir metadatos de inclusión por segmento,
  4. calcular los padres omitidos y el cierre de adjuntos,
  5. ensamblar el manifiesto de verificación.

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

La álgebra de selectores incluye selectores de segmento/tiempo/filtro/ID y uniones compuestas con deduplicación determinista a través de BTreeMap. F:crates/arxi-recorder/src/bundle_builder.rs L415-L479

Los segmentos parciales utilizan anclajes de prueba (chain_hash inmediatamente antes del primer sobre incluido) para la verificación de continuidad. F:crates/arxi-recorder/src/bundle_builder.rs L255-L290


Verificador de 7 Fases

Verifier::verify ejecuta verificaciones de paquetes en memoria en este orden:

  1. formato de manifiesto/algoritmo de hash y verificaciones de integridad estructural,
  2. integridad del hash del archivo adjunto,
  3. hash del contenido del sobre y presencia de adjuntos,
  4. continuidad de la cadena por segmento,
  5. vinculación de predecesores entre segmentos,
  6. verificación de firma con raíz de confianza opcional + política de confianza,
  7. asamblea de veredictos.

Antes de la ejecución de la fase, el verificador aplica una política de trabajo limitado y falla cerrado si se superan los límites (segmentos, sobres por segmento, sobres totales, adjuntos totales y referencias de adjuntos por 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

Todas las comparaciones de hash utilizan igualdad en tiempo constante. F:crates/arxi-recorder/src/verifier.rs L29-L52


Límite del Proveedor de Evidencia

RecorderEvidenceProvider implementa el rasgo EvidenceProvider delegando en almacenar consultas, construir paquetes y verificar. F:crates/arxi-recorder/src/evidence_provider.rs L48-L67

Métodos:

  • list_bundles enumerates sealed segments with stable IDs derived from list_bundles enumera segmentos sellados con IDs estables derivados de los IDs de segmento y admite la semántica de cursor/límite,
  • fetch_bundle resolves the requested bundle ID to a sealed segment and builds fetch_bundle resuelve el ID de paquete solicitado a un segmento sellado y construye con BundleSelector::BySegment,
  • verify_bundle delega a un verificador de 7 fases,
  • query_envelopes delega a las consultas de filtro del almacén de sobres.

Los controles de límite de proveedor ahora incluyen una normalización/rechazo explícito de fallo cerrado para los límites de solicitud y los límites de materialización del sobre de segmento.

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


Estado de Endurecimiento en Tiempo de Ejecución

Recientemente completado en tiempo de ejecución:

  1. Verifier phase 6 now enforces trust-root key lookup, cryptographic signature La fase 6 del verificador ahora impone la búsqueda de la clave raíz de confianza, la validación de la firma criptográfica y las comprobaciones de la política de confianza cuando se proporciona una raíz de confianza.
  2. Recorder startup now performs fail-closed read-back verification over the El inicio del grabador ahora realiza una verificación de lectura de cierre en caso de fallo sobre los últimos N sobres del segmento activo (startup_verification_depth).
  3. Evidence provider now exposes stable bundle IDs and true fetch-by-ID El proveedor de evidencia ahora expone identificadores de paquete estables y verdaderas semánticas de búsqueda por ID para segmentos sellados.
  4. Verifier phase 1 now fail-closes on manifest structural tampering (segment La fase 1 del verificador ahora se cierra por fallo ante la manipulación estructural del manifiesto (desajustes en los metadatos de segmento y la lista de adjuntos).
  5. Recorder config validation now fail-closes malformed recorder_id values La validación de la configuración del grabador ahora cierra de forma segura los valores recorder_id malformados antes de que se alcance el comportamiento de apertura/sellado en tiempo de ejecución.
  6. Verifier ahora impone límites de trabajo explícitos y acotados en el límite de la biblioteca.
  7. Evidence provider now enforces bounded query/list/materialization limits and El proveedor de evidencia ahora aplica límites de consulta/lista/materialización acotados y rechaza los límites proporcionados por el llamador que son excesivos.
  8. System tests now cover manifest structural tamper, single-open-segment Las pruebas del sistema ahora cubren la manipulación estructural del manifiesto, la aplicación de segmentos abiertos únicos y los caminos de corrupción de persistencia que fallan en cerrado de extremo a extremo.

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


Referencia Cruzada Archivo por Archivo

ÁreaArchivoNotas
Ciclo de vida del motorcrates/arxi-recorder/src/engine.rsFlujo de apertura/grabación/sellado y progresión de la cadena.
Configuración de tiempo de ejecucióncrates/arxi-recorder/src/config.rsInvariantes de configuración de auto-sellado y arranque.
Límite del adaptadorcrates/arxi-recorder/src/local_adapter.rsImplementación del adaptador en proceso.
Validación de entradacrates/arxi-recorder/src/validation.rsComprobaciones de sobres no sellados que fallan en cerrado.
Constructor de paquetescrates/arxi-recorder/src/bundle_builder.rsResolución de selectores y ensamblaje determinista de paquetes.
Verificadorcrates/arxi-recorder/src/verifier.rsAlgoritmo de verificación de 7 fases.
Proveedor de evidenciacrates/arxi-recorder/src/evidence_provider.rsImplementación de la interfaz de evidencia del lado de extracción.
Modelo de errorcrates/arxi-recorder/src/error.rsTaxonomía de fallos específica del grabador.