Skip to main content

Running a node

Usually you don't need to. Running a node is an infrastructure job, and most of what people want one for is already covered by a tool — or a public endpoint — that needs no node at all.

So before anything else, name what you're actually trying to do:

I want to…What you actually needWhere to go
Write, test, and debug contractsgnodev, or a current testnetDevelop contracts
Read chain state, or build an app on top of a chainA public RPC endpoint, or an indexerRead a chain
My own synced, low-latency copy of a public networkA full nodeJoin a network as a full node
Sign blocks on a public networkA validator nodeBecome a validator
Learn how a Gno chain works, or just for funA throwaway local chainRun a chain locally

Develop contracts

No node needed. gnodev boots a local devnet with hot reload, pre-funded accounts, and a built-in web UI — a faster loop than any real chain. gno test runs your tests with no chain at all, and the Playground runs Gno in your browser with nothing installed.

When you want your code on a shared chain, deploy to a current testnet rather than operating your own — see Networks.

Start with Getting started, or Quick Start if you already know Go.

Read a chain

No node needed. Every network exposes a public RPC endpoint — see Networks — and tx-indexer serves indexed history over GraphQL for the queries an RPC node can't answer efficiently.

Run your own node for this only if you need the state locally: heavy read traffic, custom indexing, or archival history.

Join a network as a full node

A full node syncs a public network's blocks without taking part in consensus. Two things to read, and neither is in this section of the docs: the operator guide in gno.land/cmd/gnoland, and the target network's own genesis, peer list, and README.md under deployment files — each network pins its own.

warning

Don't point a master build at a released network. Chains run pinned releases; a node built from master will not reach consensus with them.

Become a validator

This is not "a full node, but voted in". Expect to run that node behind sentries, sign through a remote signer such as tmkms, monitor it, and go through an onboarding process on Discord that ends in a GovDAO vote. None of that is enforced by the software, but the review team checks your node is synced before approving you, and registering entitles you to nothing.

Get the node running first, then start onboarding. Two places:

  • gno.land/cmd/gnoland — the operator documentation: sentry architecture, remote signing, hardware, and the step-by-step onboarding process, which is kept up to date there rather than duplicated here.
  • misc/deployments/ — the target network's own genesis, peers, and VALIDATOR.md.

Onboarding starts in #general-chat on Discord; the #testnet-* channels only become visible once you hold a candidate or validator role.

Run a chain locally

Here a node is the point: no network to join, no genesis to fetch — just gnoland running a single-validator chain you can break. See gno.land/cmd/gnoland.

Install the binary with the --full flag of the one-line installer.

Still not sure?

Ask on Discord. Say what you're trying to build; someone will tell you whether a node is part of the answer.