Skip to main content

Gno networks

Network configurations

NetworkRPC EndpointChain ID
Staginghttps://rpc.gno.land:443staging
Test5https://rpc.test5.gno.land:443test5

WebSocket endpoints

All networks follow the same pattern for websocket connections:

wss://<rpc-endpoint:port>/websocket

Staging Environments (Portal Loops)

XXX: tell that portal loop is currently using a custom code but will switch to a gnodev powered alternative, usable by anyone to run a staging

Staging is an always-up-to-date staging testnet that allows for using the latest version of Gno, gno.land, and TM2. By utilizing the power of Docker & the tx-archive tool, the Staging can run the latest code from the master branch on the Gno monorepo, while preserving most/all the previous transaction data.

The Staging chain allows for quick iteration on the latest version of Gno - without having to make a hard/soft fork.

Below is a diagram demonstrating how the Staging chain works:

                    +----------------------------------+
| Staging running | < ----+
+----------------------------------+ |
| |
| |
v |
+----------------------------------+ |
| Detect changes in 'master' | |
+----------------------------------+ |
| |
| |
v |
+----------------------------------+ |
| Archive transaction data & state | |
+----------------------------------+ |
| |
| |
v |
+----------------------------------+ |
| Load changes from 'master' | |
+----------------------------------+ |
| |
| |
v |
+----------------------------------+ |
| Replay transaction data | ------+
+----------------------------------+

Specifically, Staging behaves like a normal network until a change is detected in the master branch in the Gno monorepo. At this point, the Staging chain archives on-chain data using the tx-archive tool, saving all transactions that happened on it thus far.

It then pulls the latest changes from the master branch, and inserts all previously archived transactions into the genesis of the newly deployed chain. After genesis has been replayed, the chain continues working as normal.

Using the Staging network

The Staging network deployment can be found at gno.land, while the exposed RPC endpoints can be found on https://rpc.gno.land:443.

XXX: list or link to the list of available RPC endpoints.

A warning note

While allowing for quick iteration on the most up-to-date software, the Staging chain has some drawbacks:

  • If a breaking change happens on master, transactions that used the previous version of Gno will fail to be replayed, meaning data will be lost.
  • Since transactions are archived and replayed during genesis, block height & timestamp cannot be relied upon.

Deploying to Staging

There are two ways to deploy code to Staging:

  1. automatic - all packages in found in the examples/gno.land/{p,r}/ directory in the Gno monorepo get added to the new genesis each cycle,
  2. permissionless - this includes replayed transactions with addpkg, and new transactions you can issue with gnokey maketx addpkg.

Since the packages in examples/gno.land/{p,r} are deployed first, permissionless deployments get superseded when packages with identical pkgpath get merged into examples/.

The above mechanism is also how the examples/ on Staging get collaboratively iterated upon, which is its main mission.

Gno Testnets

gno.land testnets are categorized by 4 main points:

  • Persistence of state
    • Is the state and transaction history persisted?
  • Timeliness of code
    • How up-to-date are Gno language features and demo packages & realms?
  • Intended purpose
    • When should this testnet be used?
  • Versioning strategy
    • How is this testnet versioned?

Below you can find a breakdown of each existing testnet by these categories.

Staging chain

The Staging chain is an always up-to-date rolling testnet. It is meant to be used as a nightly build of the Gno tech stack. The home page of gno.land is the gnoweb render of the Staging testnet.

  • Persistence of state:
    • State is kept on a best-effort basis
    • Transactions that are affected by breaking changes will be discarded
  • Timeliness of code:
    • Packages & realms which are available in the examples/ folder on the Gno monorepo exist on Staging in matching state - they are refreshed with every new commit to the master branch.
  • Intended purpose
    • Providing access the latest version of Gno for fast development & demoing
  • Versioning strategy:
    • Staging infrastructure is managed within the misc/loop folder in the monorepo

Test5

Test5 a permanent multi-node testnet. It bumped the validator set from 7 to 17 nodes, introduced GovDAO V2, and added lots of bug fixes and quality of life improvements.

Test5 was launched in November 2024.

  • Persistence of state:
    • State is fully persisted unless there are breaking changes in a new release, where persistence partly depends on implementing a migration strategy
  • Timeliness of code:
    • Pre-deployed packages and realms are at monorepo commit 2e9f5ce
  • Intended purpose
    • Running a full node, testing validator coordination, deploying stable Gno dApps, creating tools that require persisted state & transaction history
  • Versioning strategy:
    • Test5 is to be release-based, following releases of the Gno tech stack.

TestX

These testnets are deprecated and currently serve as archives of previous progress.

Test4 (archive)

Test4 is the first permanent multi-node testnet. Archived data for test4 can be found here.

Launch date: July 10th 2024 Release commit: 194903d

Test3 (archive)

The third Gno testnet. Archived data for test3 can be found here.

Launch date: November 4th 2022 Release commit: 1ca2d97

Test2 (archive)

The second Gno testnet. Find archive data here.

Launch date: July 10th 2022 Release commit: 652dc7a

Test1 (archive)

The first Gno testnet. Find archive data here.

Launch date: May 6th 2022 Release commit: 797c7a1