hero_cloud_explorer — multi-node aggregator and RPC proxy #3

Closed
opened 2026-03-05 08:16:18 +00:00 by mahmoud · 1 comment
Owner

Description

A new standalone service that sits in front of multiple hero_cloud nodes. Nodes register themselves with the Explorer every ~5 minutes. Users connect to the Explorer and can deploy VMs across any registered node without knowing the node's address directly.

How It Works

Each hero_cloud node periodically pings the Explorer with:

  • Node specs (RAM, disk, slice count, available slices)
  • Node status (online/offline/degraded)
  • Mycelium address (used for routing RPC calls)

The Explorer:

  • Aggregates all registered nodes into a directory
  • Exposes the same RPC interface as hero_cloud_server
  • Proxies VM operations to the correct backend node
  • Adds extra methods: list_nodes, node_heartbeat

Deployment Model

Deploy 2-3 Explorers under DNS names:

  • explorer.cloud1.hero.tf
  • explorer.cloud2.hero.tf
  • explorer.cloud3.hero.tf

Nodes connect to all Explorers via Mycelium.
Users connect to any Explorer — they all have the same view.

New Crate

crates/hero_cloud_explorer

  • Same Hero RPC / OSIS framework as hero_cloud_server
  • New schema: explorer.oschema
  • Methods: node_heartbeat, list_nodes, get_node,
    and all 14 hero_cloud methods proxied to backends

Notes

  • Nodes report via Mycelium — no public IP needed on nodes
  • Explorer needs a public IP or DNS
  • Secret auth (Issue #2) must be done first — the Explorer passes secrets through to backend nodes unchanged
  • Start with one Explorer instance, scale to 3 later
### Description A new standalone service that sits in front of multiple hero_cloud nodes. Nodes register themselves with the Explorer every ~5 minutes. Users connect to the Explorer and can deploy VMs across any registered node without knowing the node's address directly. ### How It Works Each hero_cloud node periodically pings the Explorer with: - Node specs (RAM, disk, slice count, available slices) - Node status (online/offline/degraded) - Mycelium address (used for routing RPC calls) The Explorer: - Aggregates all registered nodes into a directory - Exposes the same RPC interface as hero_cloud_server - Proxies VM operations to the correct backend node - Adds extra methods: `list_nodes`, `node_heartbeat` ### Deployment Model Deploy 2-3 Explorers under DNS names: - `explorer.cloud1.hero.tf` - `explorer.cloud2.hero.tf` - `explorer.cloud3.hero.tf` Nodes connect to all Explorers via Mycelium. Users connect to any Explorer — they all have the same view. ### New Crate `crates/hero_cloud_explorer` - Same Hero RPC / OSIS framework as hero_cloud_server - New schema: `explorer.oschema` - Methods: `node_heartbeat`, `list_nodes`, `get_node`, and all 14 hero_cloud methods proxied to backends ### Notes - Nodes report via Mycelium — no public IP needed on nodes - Explorer needs a public IP or DNS - Secret auth (Issue #2) must be done first — the Explorer passes secrets through to backend nodes unchanged - Start with one Explorer instance, scale to 3 later
despiegk added this to the now milestone 2026-03-09 10:11:11 +00:00
Author
Owner

Fixed

Fixed
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_compute#3
No description provided.