diff --git a/assets/proof_of_observability_flow.md b/assets/proof_of_observability_flow.md new file mode 100644 index 0000000..b24368b --- /dev/null +++ b/assets/proof_of_observability_flow.md @@ -0,0 +1,14 @@ +# Proof-of-Observability Flow + +This document describes the core flow of how Obsero transforms raw service observations into decentralized, verifiable monitoring proofs. + +Each observation follows this lifecycle: + +```mermaid +flowchart TD + A[Observer Probe] --> B[Ping Target] + B --> C[Generate JSON Observation] + C --> D[Hash + Sign Observation] + D --> E[Upload JSON to IPFS] + E --> F[Submit Hash + CID to Smart Contract] + F --> G[Proof is Publicly Verifiable (on-chain + IPFS)] diff --git a/specs/prof_format_down_v0.1.json b/specs/prof_format_down_v0.1.json new file mode 100644 index 0000000..3425c3f --- /dev/null +++ b/specs/prof_format_down_v0.1.json @@ -0,0 +1,19 @@ +{ + "timestamp": "2025-04-29T14:05:00Z", + "target": "10.255.255.1", + "status": "down", + "latency_ms": null, + "error_message": "Destination Host Unreachable", + "observer": { + "address": "0x1234567890ABCDEF1234567890ABCDEF12345678", + "country": "France", + "region": "Île-de-France", + "city": "Paris", + "probe_version": "0.1" + }, + "proof": { + "hash": "0xa2b3457df1e39bfe9f04d2e31d612ea1c4c135e4724db53a8c364c8eb1337e2a", + "signature": "0x304402200b3f9a...789def" + }, + "version": "0.1" +} diff --git a/specs/prof_format_up_v0.1.json b/specs/prof_format_up_v0.1.json new file mode 100644 index 0000000..34a139e --- /dev/null +++ b/specs/prof_format_up_v0.1.json @@ -0,0 +1,20 @@ +{ + "timestamp": "2025-04-29T14:00:00Z", + "target": "8.8.8.8", + "status": "up", + "latency_ms": 32, + "error_message": null, + "observer": { + "address": "0x1234567890ABCDEF1234567890ABCDEF12345678", + "country": "France", + "region": "Île-de-France", + "city": "Paris", + "probe_version": "0.1" + }, + "proof": { + "hash": "0x8c5e3e81e8f304bd1c5b6a207d7553e51a3cd4e927df95a4c26c62f948b2a239", + "signature": "0x3045022100f1f5e3a...abc123" + }, + "version": "0.1" + } + \ No newline at end of file