مستندات دارا
مرجع فنیعملیات
این صفحه فقط به انگلیسی موجود است.

Stellar RPC runbook

The platform talks to Stellar only through our own Stellar RPC nodes (no hosted RPC in production; STELLAR_RPC_NODES, at least two in UAT and production). Each node is stellar-rpc with captive core, following the network (Testnet or Mainnet) and retaining a window of recent ledgers.

What the gateway does

  • Samples every node every STELLAR_HEALTH_INTERVAL (5 s): network passphrase (a node on the wrong network is never used), getHealth, latest ledger and its close time, history window, latency.
  • States: HEALTHY, DEGRADED (slow or lagging the best node by more than a few ledgers), UNHEALTHY. Reads go to the best usable node; submissions go to every usable node (the same signed bytes; duplicates are harmless).
  • Expiry proof before any retry: an attempt is only declared EXPIRED when a healthy node has closed a ledger past the transaction's maxTime without the hash (STELLAR_ARCHITECTURE.md §7).

Sizing and settings

SettingGuidance
History windowAt least 7 days of ledgers (RPC default); the indexer must never fall further behind than the window, or it needs the SEP-54 backfill
NodesTwo or more on separate hosts and, for Mainnet, separate providers' networks; one may be under maintenance
HardwarePer the current stellar-rpc requirements for the chosen window (captive core needs fast disk)
TimeNTP on every host; ledger close time, not local time, decides expiry

Common situations

SymptomCheckAction
One node UNHEALTHY (StellarNodeUnhealthy)System page reason; node logsRestart; if captive core is catching up, wait; rebuild from a recent snapshot if corrupted
All nodes UNHEALTHY (StellarNoHealthyNode)Network reachability, wrong passphrase in node config, disk fullRestore one node first; the gate reopens after the hold-down
Ledger stale (StellarLedgerStale)Compare with an independent public view of the networkIf the network is halted, wait; nothing is lost: intents stay pending and are proven later
Indexer behind the window (INDEXER_GAP)oldest_ledger vs the indexer cursor (System page)Check that Galexie is running and its lake directory is mounted (deploy/datalake/, BACKFILL_DATASTORE_TYPE=Filesystem); once the lake covers the cursor the indexer continues
UpgradesNetwork protocol upgrades are announced in advanceUpgrade one node at a time; the gateway routes around the one being upgraded

Adding or replacing a node

Add it to STELLAR_RPC_NODES (name=url), restart the services; the gateway starts sampling it and routes to it once healthy. Remove a node the same way. No data is stored in a node that the platform depends on: the platform's records are in PostgreSQL and on-chain.

در این صفحه