Spaces:
Running on Zero
Running on Zero
GitHub Actions commited on
Commit ·
c88a878
1
Parent(s): 428efdf
docs: add local-node<->HF-Space connection proof (screenshots + make_proof.py)
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +1 -0
- docs/screenshots/01-alice-ask-empty.png +0 -0
- docs/screenshots/01-hf-space-live.png +3 -0
- docs/screenshots/02-alice-ask-response.png +0 -0
- docs/screenshots/02-connection-proof.png +3 -0
- docs/screenshots/03-alice-chat.png +0 -0
- docs/screenshots/04-alice-marketplace.png +0 -0
- docs/screenshots/05-alice-files.png +0 -0
- docs/screenshots/06-alice-emergency.png +0 -0
- docs/screenshots/07-alice-settings.png +0 -0
- docs/screenshots/08-alice-settings-peers.png +0 -0
- docs/screenshots/08b-alice-mesh-before-refresh.png +0 -0
- docs/screenshots/08c-alice-mesh-live.png +0 -0
- docs/screenshots/09-bob-ask-tab.png +0 -0
- docs/screenshots/09b-bob-ask-response.png +0 -0
- docs/screenshots/10-bob-mesh-sees-alice.png +0 -0
- docs/screenshots/10-bob-settings.png +0 -0
- docs/screenshots/10b-bob-settings-peers.png +0 -0
- docs/screenshots/10b-bob-settings.png +0 -0
- docs/screenshots/10c-bob-settings-peers.png +0 -0
- docs/screenshots/README.md +49 -0
- docs/screenshots/alice-ask-fresh.png +0 -0
- docs/screenshots/alice-ask-tab-full.png +0 -0
- docs/screenshots/alice-ask-tab.png +0 -0
- docs/screenshots/alice-home.png +0 -0
- docs/screenshots/local-ask-tab.png +0 -0
- docs/screenshots/node-a-ask-tab.png +0 -0
- docs/screenshots/node-b-settings-tab.png +0 -0
- docs/screenshots/stories/US01-01-alice-home.png +0 -0
- docs/screenshots/stories/US01-02-ask-empty.png +0 -0
- docs/screenshots/stories/US01-03-ask-response.png +0 -0
- docs/screenshots/stories/US01-04-routing-trace.png +0 -0
- docs/screenshots/stories/US02-01-ask-with-rag.png +0 -0
- docs/screenshots/stories/US03-01-chat-tab.png +0 -0
- docs/screenshots/stories/US03-02-chat-sent.png +0 -0
- docs/screenshots/stories/US04-01-mesh-tab-initial.png +0 -0
- docs/screenshots/stories/US04-02-mesh-live-topology.png +0 -0
- docs/screenshots/stories/US04-03-mesh-capability-matrix.png +0 -0
- docs/screenshots/stories/US05-01-settings-identity.png +0 -0
- docs/screenshots/stories/US05-02-settings-peers.png +0 -0
- docs/screenshots/stories/US05-03-settings-join-mesh.png +0 -0
- docs/screenshots/stories/US05-04-settings-specialized-nodes.png +0 -0
- docs/screenshots/stories/US05-05-settings-impl-status.png +0 -0
- docs/screenshots/stories/US06-01-marketplace-tab.png +0 -0
- docs/screenshots/stories/US06-02-marketplace-after-post.png +0 -0
- docs/screenshots/stories/US07-01-files-tab.png +0 -0
- docs/screenshots/stories/US08-01-emergency-tab.png +0 -0
- docs/screenshots/stories/US09-01-bob-home.png +0 -0
- docs/screenshots/stories/US09-02-bob-ask-response.png +0 -0
- docs/screenshots/stories/US09-03-bob-mesh-sees-alice.png +0 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
*.png filter=lfs diff=lfs merge=lfs -text
|
docs/screenshots/01-alice-ask-empty.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/01-hf-space-live.png
ADDED
|
Git LFS Details
|
docs/screenshots/02-alice-ask-response.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/02-connection-proof.png
ADDED
|
Git LFS Details
|
docs/screenshots/03-alice-chat.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/04-alice-marketplace.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/05-alice-files.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/06-alice-emergency.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/07-alice-settings.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/08-alice-settings-peers.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/08b-alice-mesh-before-refresh.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/08c-alice-mesh-live.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/09-bob-ask-tab.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/09b-bob-ask-response.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/10-bob-mesh-sees-alice.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/10-bob-settings.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/10b-bob-settings-peers.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/10b-bob-settings.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/10c-bob-settings-peers.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/README.md
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# HearthNet — Local node ↔ live HF Space (connection proof)
|
| 2 |
+
|
| 3 |
+
These artifacts demonstrate a **local Python HearthNet node peering with the live
|
| 4 |
+
Hugging Face Space** and routing real capability calls over HTTPS through the
|
| 5 |
+
capability bus.
|
| 6 |
+
|
| 7 |
+
Space: https://build-small-hackathon-hearthnet.hf.space
|
| 8 |
+
|
| 9 |
+
## Screenshots
|
| 10 |
+
|
| 11 |
+
| File | What it shows |
|
| 12 |
+
| --- | --- |
|
| 13 |
+
| `01-hf-space-live.png` | The live HF Space UI (HearthNet mesh view). |
|
| 14 |
+
| `02-connection-proof.png` | A local node peered with the Space (38 remote capabilities routable) and a real `llm.chat` + `rag.list_corpora` routed to the Space. |
|
| 15 |
+
|
| 16 |
+
## Reproduce
|
| 17 |
+
|
| 18 |
+
```powershell
|
| 19 |
+
# Peer a local node with the live Space and route a real llm.chat call
|
| 20 |
+
python scripts/connect_to_hf.py --ask "In one sentence, how do I store water safely?"
|
| 21 |
+
|
| 22 |
+
# Regenerate the proof image from live calls
|
| 23 |
+
python scripts/make_proof.py
|
| 24 |
+
```
|
| 25 |
+
|
| 26 |
+
## How the connection works
|
| 27 |
+
|
| 28 |
+
1. The local node exposes `discovery.peer.add@1.0` (added in `hearthnet/discovery/service.py`).
|
| 29 |
+
2. `discovery.peer.add` fetches the Space's `/manifest`, registers all remote
|
| 30 |
+
capabilities into the local bus registry, and records the HTTPS endpoint.
|
| 31 |
+
3. When a capability (e.g. `llm.chat`) is only available remotely, the bus router
|
| 32 |
+
picks the remote peer and `HttpBusTransport` (`hearthnet/bus/http_transport.py`)
|
| 33 |
+
POSTs to the Space's `/bus/v1/call`.
|
| 34 |
+
4. The Space serves `/bus/v1/call`, `/manifest`, `/health`, and
|
| 35 |
+
`/bus/v1/capabilities` via FastAPI routes mounted into the Gradio app
|
| 36 |
+
(`_mount_bus_endpoints` in `app.py`).
|
| 37 |
+
|
| 38 |
+
## Notes / limitations
|
| 39 |
+
|
| 40 |
+
- **Sharing works:** `llm.chat`, `llm.complete`, `rag.query`, `rag.list_corpora`,
|
| 41 |
+
`rag.federated_query`, chat, market, file, evidence, civdef, OCR, translation,
|
| 42 |
+
STT/TTS, and image capabilities are all routable cross-network.
|
| 43 |
+
- **`embed.text` on the Space:** fails over the raw bus route with a ZeroGPU CUDA
|
| 44 |
+
error. GPU ops on HF ZeroGPU only run inside Gradio's `@spaces.GPU` event path,
|
| 45 |
+
not from a plain FastAPI route. This is an HF runtime constraint, not a bus bug;
|
| 46 |
+
embeddings work locally and on dedicated/CPU Spaces.
|
| 47 |
+
- **`invite redeem` / QR codes** are a separate *community-membership* flow
|
| 48 |
+
(`community.redeem`), not transport peering. Transport peering between nodes is
|
| 49 |
+
done via `discovery.peer.add` as shown here.
|
docs/screenshots/alice-ask-fresh.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/alice-ask-tab-full.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/alice-ask-tab.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/alice-home.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/local-ask-tab.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/node-a-ask-tab.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/node-b-settings-tab.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US01-01-alice-home.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US01-02-ask-empty.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US01-03-ask-response.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US01-04-routing-trace.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US02-01-ask-with-rag.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US03-01-chat-tab.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US03-02-chat-sent.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US04-01-mesh-tab-initial.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US04-02-mesh-live-topology.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US04-03-mesh-capability-matrix.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US05-01-settings-identity.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US05-02-settings-peers.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US05-03-settings-join-mesh.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US05-04-settings-specialized-nodes.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US05-05-settings-impl-status.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US06-01-marketplace-tab.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US06-02-marketplace-after-post.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US07-01-files-tab.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US08-01-emergency-tab.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US09-01-bob-home.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US09-02-bob-ask-response.png
CHANGED
|
|
Git LFS Details
|
docs/screenshots/stories/US09-03-bob-mesh-sees-alice.png
CHANGED
|
|
Git LFS Details
|