agentdata.networkSource

infiniFi Data: operators

What a supplier needs to serve infinifi.

Service ID
infinifi
Required version
infinifi >= 1.0
Image
ghcr.io/thefeloniousmonk/infinifi:1.0.1
Minimum RAM
1 GB
RPC types
REST (expected)

Backend

The infinifi container (Node 22, no third-party dependencies; built from github.com/TheFeloniousMonk/portal-services, infinifi/backend) behind the HA RelayMiner with the rest backend pointed at it. A stateless pass-through: each relay makes one to five GETs to the public infiniFi API, which needs no key. Protocol-wide reads are cached in memory for 60 s (votes and opportunities 300 s) and served stale for up to 15 minutes if the upstream is down; wallet reads are never cached. Needs outbound HTTPS to api.infinifi.xyz. Light on CPU and RAM. Tunable with IF_* environment variables.

REST

Backend: infinifi container on :8080; mount at /

POST /v1/<endpoint> with a JSON body (endpoints without required input also answer GET), plus GET /v1/version, /healthz, /v1/capabilities, /v1/openapi.json. Every response is a JSON object, including errors (which carry an 'error' field).

Notes

Answers in well under a second when cached and within the 8 s upstream deadline otherwise. No rate limits to disable. SAGE operators: type generic (its name for passthrough), rpc_types ["rest"], relay_timeout at least 15s; see sage-service.yaml in the service repository.

Health checks

TypeRequestExpectWhy
RESTGET /v1/version$.service matches ^infinifi$Identity probe: pins the backend to this service so a wrong backend cannot be staked under this id.
RESTGET /healthz$.status matches ^ok$Readiness probe: 200 only while the infiniFi protocol data can be served, fresh or from the 15-minute stale window.
RESTPOST /v1/yields
{}
$.staked.token matches ^siUSD$Functional probe: the staked token is always siUSD, so the check is stable while the APYs change. Served from the shared 60 s cache.

Running it

Build the backend from backend/, or pull the published image:

docker pull ghcr.io/thefeloniousmonk/infinifi:1.0.1

Images are tagged with the version the backend reports at GET /v1/version. Keep up with the required version above; an older backend can reject requests that newer callers send.

The service's deploy/ folder has:

The service's docs cover its settings and anything a supplier must provide.