Files
2025-04-29 23:40:33 +02:00

2.5 KiB

🛰️ Obsero Probe (Full)

Obsero Probe is a lightweight Go-based agent that generates cryptographically signed uptime proofs and can optionally upload them to IPFS.


🚀 Features

  • HTTP ping with latency measurement
  • Automatic geolocation of probe (city, region, country)
  • SHA256 hashing of observation data
  • EVM-compatible signature using Ethereum private key
  • IPFS upload support (--ipfs)
  • CLI support for target, output, and IPFS toggle
  • Cross-platform Makefile for easy builds

⚙️ Requirements

  • Go 1.21+
  • Local IPFS node (optional, for --ipfs)
  • Ethereum private key (test key included by default)

📦 Quick Start

1. Install dependencies

cd probe
go mod tidy

2. Run a probe

go run ./cmd/obsero-probe   --target https://example.com   --output proof_http_signed.json   --ipfs

🛠️ CLI Options

Flag Description
--target URL to ping
--output Output file name
--ipfs Upload the proof to IPFS

📄 Proof Format (simplified)

{
  "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",
  "proof": {
    "hash": "ab13...cdef",
    "signature": "0x..."
  }
}

📁 Project Structure

probe/
├── cmd/
│   └── obsero-probe/main.go        # CLI entrypoint
├── pkg/
│   ├── geo/geo.go                  # Geolocation
│   ├── probe/ping.go               # HTTP ping
│   └── proof/format.go             # Build, sign and upload proof
├── Makefile                        # Multi-platform build support
├── go.mod / go.sum

🧱 Next Steps

  • JSON signed and stored locally
  • Upload to IPFS (--ipfs)
  • 🔗 Submit submitProof(hash, cid, timestamp) to a smart contract on Base chain (coming soon)

🛠️ Makefile Usage

make build         # Build for local platform
make build-linux   # Build for Linux amd64
make build-mac     # Build for macOS
make build-arm     # Build for ARM64 (Raspberry Pi, etc.)

📜 License

MIT — Cryptolab.re