Skip to main content
Verifiable Storage is more than a storage utility—it is the trust anchor that guarantees on-chain data really originated from your robot. By combining ROS 2 lifecycle management, DID-backed authentication, and IPFS persistence (with optional managed pinning), the bridge turns raw telemetry into signed, auditable evidence.

Why It Matters

  • Authenticity first – every ingest request is checked against the robot’s DID and RBAC grants before it ever touches the blockchain.
  • Tamper proof – payloads are hashed, pinned to IPFS, and referenced on-chain so downstream consumers can verify integrity independently (managed pinning services remain optional).
  • Production ready – lifecycle nodes, retries, and detailed status topics keep operators informed without leaving ROS tools.
Big picture: ROS 2 fleets can now publish verifiable data streams that regulators, partners, or marketplaces can trust instantly.

Architecture

Launch the Bridge

Verification-Centric Configuration

Secrets for managed gateways (JWT/API keys) and wallet passwords must stay out of source control—load them via environment variables before launch.

IPFS Setup

Local IPFS (Kubo)

Update the config YAML to point at your node:
Optional quality-of-life settings:
  • local_ipfs.save_dir: cache directory for downloaded blobs
  • local_ipfs.pin_results=true: keep data pinned locally for quick replays

Managed Gateway (Optional)

Use a third-party IPFS pinning/gateway provider (e.g., Pinata, web3.storage, NFT.storage) only if you need off-device persistence or public access. Example environment variables:
Reference them in the YAML (the pinata block name is historical—you can still point it at any managed gateway):
Using both local IPFS and a managed gateway provides redundancy—set mode: both to mirror uploads.

Access Control & Wallets

  • Ensure the wallet referenced in wallet.path has enough balance on the target network (fund via faucet for Agung).
  • Combine with RBAC by allow-listing roles under storage_bridge.robot.allowlist_roles when you want to restrict which robots can publish telemetry.

Publishing Verifiable Data

The storage status stream surfaces the CID, IPFS URL, transaction hash, and success state for each submission. Combine it with peaq/tx_status to see the confirmation phases tied back to the robot DID in logs.

Reading & Verifying Downstream

The response includes the payload, IPFS CID, and the originating DID. Consumers can recompute the hash against the IPFS artifact and ensure it matches the on-chain record.

Manual Verification Checklist

  1. Fetch the CID from the service response.
  2. Retrieve the payload: ipfs cat <CID> or curl <gateway>/<CID>.
  3. Recompute the hash and compare with the value logged in storage bridge outputs.
  4. Confirm DID ownership using /peaq_core_node/identity/read.

Automated Attestation

  • Attach mission metadata via the metadata_json field in StorageIngest so every record includes firmware versions or profile IDs.
  • Pair with the Access Control guides to revoke publishing rights instantly.
  • Leverage /tmp/storage_bridge_failures.jsonl and the replay scripts to prove that no data was dropped—even during outages.

Observability & Audit

  • Switch to JSON logs (PEAQ_ROBOT_LOG_FORMAT=json) for ingestion into SIEM or compliance tooling.
  • Track wallet-derived DID and CID pairs in your log pipeline to detect impersonation attempts.
  • Use ros2 lifecycle get /peaq_storage_bridge in your health probes; the node exports ready/active states so Kubernetes or fleet managers can react quickly.

Dashboard Pointers

  • peaq/storage/status: success vs failure counts
  • /tmp/storage_bridge_failures.jsonl: monitor size/age to detect backlogs
  • peaq/tx_status: confirmation latency per network
With verifiable telemetry in place, your ROS 2 fleet can supply zero-trust data to marketplaces, regulators, or partners. Continue with Event Streams to surface confirmations to autonomy stacks.