Skip to content

Retire or clearly label legacy faucet.py (records drips, sends nothing) + fix FAUCET.md + audit mock_mode #8243

Description

@Scottcjn

Fallout from #8240 (the one confirmed finding).

  • Root faucet.py drip() writes drip_requests and returns {ok:true, amount:0.5} with UI copy 'Sent X RTC', but contains no node call at all (faucet.py:383-432). Anyone running it per FAUCET.md gets a faucet that lies to every caller.
  • The real faucet is faucet_service/faucet_service.py (POST /wallet/transfer with X-Admin-Key, records tx_hash, wired into testnet/systemd/rustchain-testnet-faucet.service). But its mock_mode defaults to True (faucet_service.py:806), so even the real one is a no-op unless explicitly configured.

Tasks:

  • Retire root faucet.py, or stamp it '# DEMO - records requests, does not pay' and change the success copy so it does not claim RTC was sent
  • Update FAUCET.md to point at faucet_service/ as the only supported faucet
  • Flip mock_mode default to False, or fail loudly at startup when mock_mode is on
  • Audit deployed faucet_config.yaml: mock_mode false, RC_ADMIN_KEY present

Credit: surfaced in #8240 Additional Observation (aiidentificationmachines-coder), verified by Vyacheslav-Tomashevskiy and two independent adjudication agents.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions