This document describes how to reproduce protocol, transport, and kernel evidence locally in under 15 minutes on a typical developer machine.
- Rust toolchain from
rust-toolchain.toml. - No external
protocinstall needed (vendored protoc is used).
Run the same checks expected in CI:
cargo fmt --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspaceFor protocol/transport focused verification, run the targeted suite:
cargo test -p evidenceos-protocol
cargo test -p evidenceos-daemon protocol_compat_system
cargo test -p evidenceos-daemon transport_hardening_system
cargo test -p evidenceos-daemon schema_aliases_system>= 95%
daemon_protocol_v1_and_v2_smoke- proves daemon serves both
evidenceos.v1andevidenceos.v2client paths.
- proves daemon serves both
proto_roundtrip_backcompat_capsule- proves shared fields match when fetched through v1 and v2 clients.
tls_required_rejects_plaintext- plaintext gRPC traffic fails against TLS-only daemon.
mtls_rejects_no_client_cert- client-authenticated TLS enforcement rejects clients with no cert.
auth_rejects_missing_token- interceptor rejects missing bearer tokens with
UNAUTHENTICATED.
- interceptor rejects missing bearer tokens with
auth_accepts_valid_token- valid bearer token succeeds.
structured_claims_accepts_known_aliases- known DiscOS schema aliases are accepted.
topic_id_stability_under_aliases- canonicalization removes alias-induced topic drift.
Use existing project scripts when generating auditable CI-style logs:
make test-evidenceThis writes logs and coverage artifacts under artifacts/ (coverage, test output, clippy output, fuzz logs).
The adversarial scenario suite executes deterministic scenario specs from docs/scenarios/ against a live daemon using only public gRPC APIs and returned evidence artifacts.
Run locally:
./scripts/run_scenarios.shOr via CI-equivalent evidence generation:
make test-evidenceExpected artifacts:
artifacts/scenarios/summary.jsonartifacts/scenarios/lifecycle_pass.jsonartifacts/scenarios/reject_invalid_claim.json
Each artifact contains: scenario metadata, request/response summaries, expected vs observed verdict, and ETL proof verification results.
The following ignored test is intentionally excluded from default CI runtime because it is a long-running system matrix job:
crates/evidenceos-daemon/tests/aspec_rejections.rs—#[ignore = "long-running system matrix test"]
Run the dedicated system evidence test:
cargo test -p evidenceos-daemon probing_detection_system -- --nocaptureExpected artifact:
artifacts/probing/probing_detection_system.json
The test drives high-volume/high-diversity create-claim probing from one principal and verifies graded response (RESOURCE_EXHAUSTED throttle before PERMISSION_DENIED freeze), probe metrics in /metrics, and ETL probe_event evidence publication.