Skip to main content

Validators and consensus

A Gora validator is a process that participates in producing and verifying app results. Validators are off-chain. The Gora network is not a blockchain — it agrees on app outcomes and writes attestations to whichever chain the result targets.

The short version

Each round picks a small committee out of all active validators. The committee runs the app, agrees on the result, and signs it. Anyone with the validators’ public keys can verify the signatures.

Who can be a validator

Anyone who stakes GORA on a supported chain can launch a validator. The MVP supports three entry chains: You stake on the chain you already use. Your voting power is the sum of any stake you have committed across all three chains.

Two keys, two roles

The owner key signs a delegation certificate once. The certificate binds a participation key to your on-chain identity. From then on, the validator process can sign votes and proofs without ever touching the cold key. If a participation key is compromised, the owner rotates it. Stake is unaffected.

Launching a validator from mobile

The Gora mobile apps (iOS and Android) include a Validators screen. The flow is:
  1. Pick a chain (Solana, Base, or Algorand) — only chains where you already have a wallet are offered.
  2. Pick a stake amount.
  3. The app asks the Gora node manager for a fresh participation key.
  4. The wallet signs a delegation certificate binding that participation key to your address.
  5. The wallet builds and signs the stake transaction for the chosen chain.
  6. The manager spawns a validator process for you on a Gora-provided host (during MVP) or on your own host (after MVP).
You can stop a validator at any time. Unbonded stake becomes withdrawable after the chain’s cooldown.

How a consensus round runs

Each round is short — usually under a few seconds — and proceeds in fixed phases.
Validators outside the committee for a round are observers. They learn the outcome through gossip and record it in their own audit log.

Networking model

Validators communicate over a gossip transport — push fan-out plus an anti-entropy pull every few seconds. There is no central coordinator. When a new validator joins, it bootstraps from a small list of well-known peers and diffuses its own signed announcement through gossip. During MVP, validators run on Gora-provided hosts as separate processes inside Linux network namespaces. From their own point of view, each validator is on its own machine: separate IP, separate routing table, separate ports. The same gossip code paths work for both local-isolated and remote deployments, so the eventual transition to user-hosted validators does not change the protocol.

Safety assumptions for MVP

What this means for app developers

You do not need to know which validator ran your request. You do need to know:
  • Your request is processed by a committee — typically five validators — not by one node you can trust unilaterally.
  • The result you get back is accompanied by an attestation that any supported chain can verify.
  • Deterministic apps (same input → same output) are checked by re-execution. Non-deterministic apps (AI-mediated) are checked by independent evaluation against your declared policy.
See Randomness and VRF for verifiable randomness from your app or contract, and External calls for how off-chain apps make HTTP requests while staying agreeable across validators.