ProductCatalog backed by hero_ledger marketplace.listListings #52

Closed
opened 2026-03-28 05:45:44 +00:00 by mik-tf · 1 comment
Member

Goal

Replace the seed data product catalog with real TFGrid node listings from hero_ledger. The dev gateway already has 6 compute node listings with real resource specs and pricing.

Depends on

What works today

marketplace.listListings returns real TFGrid v3 nodes:

{"listing_id": 3, "node_id": 82, "country": "United States",
 "total_resources": {"cru": 8, "mru": 33541128192, "sru": 500107862016},
 "available_slices": 2, "pricing": {"on_demand_hourly": 1}}

No authentication needed — call_public method.

Tasks

  • P1 Create src/services/impl_ledger/product_catalog.rs implementing ProductCatalog trait
  • P2 Map hero_ledger listing fields to marketplace Product model
  • P3 Wire into ServiceProvider (when APP_WALLET_BACKEND=ledger, use ledger catalog for compute)
  • P4 Fallback: non-compute categories still read from OSIS until generic listing type is ready
  • P5 Add ledger integration test (tests/ledger_integration.sh) — verify real listings appear
  • P6 Deploy to dev with ledger mode, verify SPA shows real TFGrid nodes

— mik-tf

## Goal Replace the seed data product catalog with real TFGrid node listings from hero_ledger. The dev gateway already has 6 compute node listings with real resource specs and pricing. ## Depends on - https://forge.ourworld.tf/mycelium_code/home/issues/50 (hero_ledger integration — wallet done) - https://forge.ourworld.tf/lhumina_code/hero_ledger/issues/41 (generic listing type — for non-compute categories) ## What works today `marketplace.listListings` returns real TFGrid v3 nodes: ```json {"listing_id": 3, "node_id": 82, "country": "United States", "total_resources": {"cru": 8, "mru": 33541128192, "sru": 500107862016}, "available_slices": 2, "pricing": {"on_demand_hourly": 1}} ``` No authentication needed — `call_public` method. ## Tasks - [ ] **P1** Create `src/services/impl_ledger/product_catalog.rs` implementing `ProductCatalog` trait - [ ] **P2** Map hero_ledger listing fields to marketplace Product model - [ ] **P3** Wire into `ServiceProvider` (when `APP_WALLET_BACKEND=ledger`, use ledger catalog for compute) - [ ] **P4** Fallback: non-compute categories still read from OSIS until generic listing type is ready - [ ] **P5** Add ledger integration test (`tests/ledger_integration.sh`) — verify real listings appear - [ ] **P6** Deploy to dev with ledger mode, verify SPA shows real TFGrid nodes — mik-tf
Author
Member

Live and working — real TFGrid nodes in marketplace

Deployed with APP_WALLET_BACKEND=ledger on dev. The marketplace now displays real TFGrid v3 node listings from hero_ledger:

ledger_3: TFGrid Node 82 — 8 vCPU, 31GB RAM [compute] 1.0 USDH/hr (US)
ledger_4: TFGrid Node 390 — 4 vCPU, 8GB RAM [compute] 1.0 USDH/hr (Belgium)
ledger_5: TFGrid Node 391 — 4 vCPU, 8GB RAM [compute] 1.0 USDH/hr (Belgium)

6 real listings from marketplace.listListings (public method, no auth).

Done

  • P1: LedgerProductCatalog implemented
  • P2: Listing JSON → Product model mapping (CPU, RAM, SSD, country, slices, pricing)
  • P3: Wired into ServiceProvider (ledger mode uses LedgerProductCatalog)
  • P4: Non-compute categories fall back to OSIS
  • P6: Deployed to dev, verified real nodes show up

Remaining

  • P5: Ledger integration test suite

— mik-tf

## Live and working — real TFGrid nodes in marketplace Deployed with `APP_WALLET_BACKEND=ledger` on dev. The marketplace now displays real TFGrid v3 node listings from hero_ledger: ``` ledger_3: TFGrid Node 82 — 8 vCPU, 31GB RAM [compute] 1.0 USDH/hr (US) ledger_4: TFGrid Node 390 — 4 vCPU, 8GB RAM [compute] 1.0 USDH/hr (Belgium) ledger_5: TFGrid Node 391 — 4 vCPU, 8GB RAM [compute] 1.0 USDH/hr (Belgium) ``` 6 real listings from `marketplace.listListings` (public method, no auth). ### Done - [x] P1: LedgerProductCatalog implemented - [x] P2: Listing JSON → Product model mapping (CPU, RAM, SSD, country, slices, pricing) - [x] P3: Wired into ServiceProvider (ledger mode uses LedgerProductCatalog) - [x] P4: Non-compute categories fall back to OSIS - [x] P6: Deployed to dev, verified real nodes show up ### Remaining - [ ] P5: Ledger integration test suite — mik-tf
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
coopcloud_code/home#52
No description provided.