# πŸ›°οΈ Obsero Probe Lightweight monitoring agent for generating Proof-of-Observability JSON files. This probe performs HTTP health checks, automatically geolocates itself, and exports signed observation files compliant with the Obsero specification. --- ## βš™οΈ Requirements - Go 1.21+ - Internet access (for geo lookup and ping) --- ## πŸš€ Quick Start ### 1. Clone & Enter ```bash cd probe ``` ### 2. Install dependencies ```bash go mod tidy ``` ### 3. Run the probe ```bash go run ./cmd/obsero-probe ``` This will: - Ping `https://example.com` - Auto-detect country, city and region - Output a file named `proof_http_result.json` --- ## πŸ“„ Output Format The output file is a valid Obsero proof: ```json { "timestamp": "2025-04-29T14:00:00Z", "target": "https://example.com", "status": "up", "http_status_code": 200, "latency_ms": 145, "error_message": null, "observer": { "address": "0xABCD...1234", "country": "France", "region": "Île-de-France", "city": "Paris", "probe_version": "0.1" }, "version": "0.1" } ``` --- ## πŸ“¦ Next steps - Add CLI support (`--target`, `--output`) - Add cryptographic signature of the proof - Upload to IPFS - Submit hash + CID on Base chain --- ## πŸ“ Structure ``` probe/ β”œβ”€β”€ cmd/ β”‚ └── obsero-probe/ β”‚ └── main.go # CLI entrypoint β”œβ”€β”€ pkg/ β”‚ β”œβ”€β”€ geo/ # IP geolocation β”‚ β”œβ”€β”€ probe/ # HTTP ping logic β”‚ └── proof/ # Proof struct + output β”œβ”€β”€ go.mod β”œβ”€β”€ go.sum ``` --- ## πŸ“œ License MIT β€” Cryptolab.re