Release: marketplace v3 listing with TFChain ownership proof #42

Merged
mik-tf merged 6 commits from development into main 2026-03-02 20:08:29 +00:00
Member

Promotes development to production with V3 node marketplace registration and related fixes.

Changes

  • Migrate to marketplace_create_v3_listing with TFChain ownership proof — farmers now sign a SR25519 challenge heroledger-v3-claim:{node_id}:{account_id}:{timestamp} to prove node ownership before listing
  • Upgrade heroledger_gateway_client to latest (commit 267be5f1) — picks up Network enum with baked-in gateway URLs and updated account_activate API (domain + email params)
  • Replace HEROLEDGER_GATEWAY_URL env var with HEROLEDGER_NETWORK build-time config
  • Add bulk move-all-nodes-to-mycelium functionality
  • Fix k8s manifests for cluster compatibility
  • Fix CI container build (Docker socket automount, Forgejo-compatible runner commands)

Testing

  • 71 unit + integration tests pass (cargo test --all)
  • Clippy clean, WASM compiles
  • deploy-dev.yml CI passed on commit 782c9ca4 — deployed and smoke-tested against staging.hub.projectmycelium.com and ledger.dev.projectmycelium.com
  • Gateway health confirmed live: {"status":"ok"}
Promotes development to production with V3 node marketplace registration and related fixes. ## Changes - Migrate to `marketplace_create_v3_listing` with TFChain ownership proof — farmers now sign a SR25519 challenge `heroledger-v3-claim:{node_id}:{account_id}:{timestamp}` to prove node ownership before listing - Upgrade `heroledger_gateway_client` to latest (commit `267be5f1`) — picks up `Network` enum with baked-in gateway URLs and updated `account_activate` API (domain + email params) - Replace `HEROLEDGER_GATEWAY_URL` env var with `HEROLEDGER_NETWORK` build-time config - Add bulk move-all-nodes-to-mycelium functionality - Fix k8s manifests for cluster compatibility - Fix CI container build (Docker socket automount, Forgejo-compatible runner commands) ## Testing - 71 unit + integration tests pass (`cargo test --all`) - Clippy clean, WASM compiles - `deploy-dev.yml` CI passed on commit `782c9ca4` — deployed and smoke-tested against `staging.hub.projectmycelium.com` and `ledger.dev.projectmycelium.com` - Gateway health confirmed live: `{"status":"ok"}`
fix: use Docker socket automount instead of DinD for container builds
All checks were successful
Test / check (push) Successful in 2m34s
Deploy Dev / build-and-deploy (push) Successful in 6m55s
04ad313650
Remove docker:24-dind container to avoid privileged mode requirement.
The runner's default Ubuntu image gets the host Docker socket automounted,
so docker commands work directly without Docker-in-Docker.
fix: replace GitHub Actions with plain docker commands for Forgejo compatibility
Some checks failed
Test / check (push) Successful in 2m38s
Deploy Dev / build-and-deploy (push) Has been cancelled
96a560ce5a
- Rename secrets to REGISTRY_TOKEN/REGISTRY_USERNAME to avoid
  conflicting with Forgejo built-in token used by checkout
- Replace docker/setup-buildx-action and docker/build-push-action
  with plain docker build/push (no socket dependency issues)
- Replace docker/login-action with direct docker login
fix: install docker.io in workflow for docker CLI availability
Some checks failed
Test / check (push) Successful in 2m37s
Deploy Dev / build-and-deploy (push) Failing after 13m57s
aa2a726c98
feat: add bulk move-all-nodes-to-mycelium functionality
All checks were successful
Test / check (push) Successful in 2m52s
Deploy Dev / build-and-deploy (push) Successful in 6m23s
2f6b102760
fix: update k8s manifests for cluster compatibility
All checks were successful
Test / check (push) Successful in 2m50s
Deploy Dev / build-and-deploy (push) Successful in 6m51s
4135ead6d7
- Add namespace migrate-mycelium to all resources
- Add imagePullSecrets for forge.ourworld.tf registry
- Use :latest tag with imagePullPolicy Always for CI-triggered deploys
- Fix ingress to use Traefik + letsencrypt instead of cert-manager
- Add namespace.yml
feat: migrate to marketplace_create_v3_listing with TFChain ownership proof
Some checks failed
Test / check (pull_request) Successful in 2m40s
Test / check (push) Successful in 5m8s
Deploy Dev / build-and-deploy (push) Has been cancelled
782c9ca4e4
Update heroledger_gateway_client to latest development branch (267be5f1),
which adds signed V3 node ownership verification to marketplace listings.

- Switch gateway URL from env var / hardcoded string to Network enum baked
  into the client library (HEROLEDGER_NETWORK build-time var, default "dev")
- Replace create_listing with marketplace_create_v3_listing: farmer signs
  challenge "heroledger-v3-claim:{node_id}:{account_id}:{timestamp}" with
  their TFChain SR25519 key before the gateway accepts the listing
- Add WalletState::sign_v3_challenge() for the SR25519 challenge signing
- Update account_activate to pass domain + email (new API signature)
- Extend tests: 14 new cases covering v3 listing, Network enum, activate API

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Merge branch 'main' into development
Some checks failed
Test / check (pull_request) Successful in 2m42s
Deploy Dev / build-and-deploy (push) Has been cancelled
Test / check (push) Has been cancelled
1237c6406b
mik-tf changed title from WIP: Release: marketplace v3 listing with TFChain ownership proof to Release: marketplace v3 listing with TFChain ownership proof 2026-03-02 20:01:45 +00:00
mik-tf force-pushed development from 1237c6406b
Some checks failed
Test / check (pull_request) Successful in 2m42s
Deploy Dev / build-and-deploy (push) Has been cancelled
Test / check (push) Has been cancelled
to 782c9ca4e4
Some checks failed
Test / check (pull_request) Successful in 2m40s
Test / check (push) Successful in 5m8s
Deploy Dev / build-and-deploy (push) Has been cancelled
2026-03-02 20:04:57 +00:00
Compare
mik-tf merged commit ddf4dbed47 into main 2026-03-02 20:08:29 +00:00
Sign in to join this conversation.
No reviewers
No labels
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
mycelium/www_migrate_mycelium!42
No description provided.