Skip to content

Add authenticated Rust machine-funding server - #35

Closed
ameya-deshmukh wants to merge 2 commits into
seismicfrom
codex/mock-provider-machine-funding
Closed

Add authenticated Rust machine-funding server#35
ameya-deshmukh wants to merge 2 commits into
seismicfrom
codex/mock-provider-machine-funding

Conversation

@ameya-deshmukh

@ameya-deshmukh ameya-deshmukh commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add a standalone Rust machine-funding server for exact SUSDC and native-gas funding
  • add a dedicated machine-operator role to the faucet contract without changing public drip behavior
  • persist signed transactions before broadcast and serialize one nonce queue across both assets
  • enforce permanent idempotency, receipt-confirmed success, recipient/global budgets, and deterministic retry behavior
  • isolate the signer under a dedicated Unix user and crash-durable Unix-socket Redis
  • expose the internal routes through TLS with an orchestration-staging egress allowlist

Deployment

  • deploy and seed the updated non-proxy faucet contract
  • configure the dedicated machine operator address during deployment
  • build the release binary, create the private 0600 environment file, and install the committed Redis, Supervisor, tmpfiles, and Nginx configuration through explicit SSH commands
  • point the mock-provider client at https://faucet.seismictest.net

No Linear issue exists for this work.

API

  • POST /api/internal/transfers
  • POST /api/internal/gas
  • GET /api/internal/health
  • GET /api/internal/readiness (authenticated)

Test plan

  • Rust format and clippy with warnings denied
  • 18 Rust tests covering HTTP auth/wire behavior, Redis concurrency/durability/leases, transaction signing, retries, receipts, and budgets
  • release build
  • frozen Bun installs, typechecks, and production builds for both public frontends
  • ABI drift validation against the fresh contract artifact
  • Foundry format/build and 27 contract tests
  • Supervisor launcher shell syntax

@ameya-deshmukh
ameya-deshmukh force-pushed the codex/mock-provider-machine-funding branch 2 times, most recently from 7114fcf to daeb6d2 Compare August 25, 2026 17:51
@ameya-deshmukh ameya-deshmukh changed the title Add authenticated machine funding Add authenticated Rust machine-funding server Aug 25, 2026
@ameya-deshmukh
ameya-deshmukh force-pushed the codex/mock-provider-machine-funding branch from daeb6d2 to af1e46b Compare August 25, 2026 17:54
@ameya-deshmukh
ameya-deshmukh marked this pull request as draft August 25, 2026 18:00
@ameya-deshmukh
ameya-deshmukh force-pushed the codex/mock-provider-machine-funding branch 2 times, most recently from ff7d248 to 9d32a45 Compare August 26, 2026 08:53
@ameya-deshmukh
ameya-deshmukh force-pushed the codex/mock-provider-machine-funding branch from 9d32a45 to 9091551 Compare August 26, 2026 11:32
@ameya-deshmukh

Copy link
Copy Markdown
Collaborator Author

Superseded by the smaller stacked PRs:

  1. Add bounded machine funding contract role #39 — contract capability
  2. Bootstrap the machine funding Rust workspace #38 — Rust workspace and lockfile
  3. Add the authenticated machine funding server #41 — authenticated server
  4. Configure staging machine funding deployment #40 — staging deployment

The tip of #40 is tree-identical to this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant