Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/resources/gas-fees.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ gnokey maketx addpkg \
-gas-fee 1000000ugnot \
-remote https://rpc.gno.land:443 \
-broadcast \
-chainid staging \
-chainid gnoland1 \
-simulate only \
YOUR_KEY_NAME
```
Expand Down
15 changes: 8 additions & 7 deletions docs/resources/gnoland-networks.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@

## Network configurations

| Network | RPC Endpoint | Chain ID |
|---------|------------------------------------------|-----------|
| Staging | https://rpc.gno.land:443 | `staging` |
| Test11 | https://rpc.test11.testnets.gno.land:443 | `test11` |
| Network | RPC Endpoint | Chain ID |
|-------------------|------------------------------------------|--------------|
| Betanet (current) | https://rpc.gno.land:443 | `gnoland-1` |
| Staging | https://rpc.staging.gno.land:443 | `staging` |
| Test11 | https://rpc.test11.testnets.gno.land:443 | `test11` |

### WebSocket endpoints

Expand Down Expand Up @@ -68,8 +69,8 @@ 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](https://gno.land), while
the exposed RPC endpoints can be found on `https://rpc.gno.land:443`.
The Staging network deployment can be found at [staging.gno.land](https://staging.gno.land), while
the exposed RPC endpoints can be found on `https://rpc.staging.gno.land:443`.

#### A warning note

Expand Down Expand Up @@ -113,7 +114,7 @@ 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](https://gno.land)
a nightly build of the Gno tech stack. The home page of [staging.gno.land](https://staging.gno.land)
is the `gnoweb` render of the Staging testnet.

- **Persistence of state:**
Expand Down
6 changes: 3 additions & 3 deletions docs/users/explore-with-gnoweb.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ to explore the blockchain ecosystem.

## Networks

The main gnoweb instance is available at [gno.land](https://gno.land), which serves the Staging network.
The main gnoweb instance is available at [gno.land](https://gno.land), which serves the Betanet (`gnoland1`). The Staging network is accessible at [staging.gno.land](https://staging.gno.land).

For a complete list of all available networks (testnets and more), see [Networks](../resources/gnoland-networks.md).

Expand Down Expand Up @@ -74,7 +74,7 @@ func Render(path string) string {
Based on the provided path, `gnoweb` queries the Gno.land network using the
`qrender` ABCI query. It then renders the response data as Markdown.

The realm above can be found on the Staging network at [`gno.land/r/docs/hello`](https://gno.land/r/docs/hello).
The realm above can be found on the Staging network at [`gno.land/r/docs/hello`](https://staging.gno.land/r/docs/hello).

While JS/TS clients for Gno exist and developers can create custom websites for their
Gno.land applications as they see fit, the approach `gnoweb` takes with `Render()`
Expand All @@ -90,7 +90,7 @@ Custom getter methods tailored to the specifics of the realm can be built instea
All code uploaded to Gno.land is open-source and available for everyone to see,
by design.

Visit the [`gno.land/r/docs/source`](https://gno.land/r/docs/source) realm to learn
Visit the [`gno.land/r/docs/source`](https://staging.gno.land/r/docs/source) realm to learn
how you can do this.

## Alternative: Terminal UI with gnobro
Expand Down
99 changes: 99 additions & 0 deletions misc/deployments/gnoland-1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# gnoland-1 — Hard Fork of gnoland1

`gnoland-1` is the upgraded successor to `gnoland1`. It is produced via a
coordinated hard fork at a governance-approved halt height.

## Chain ID change

| Old | New |
|----------|------------|
| gnoland1 | gnoland-1 |

The hyphen was added to make the chain ID upgrade-compatible — `gnoland1`
could not support chain upgrades that preserve the chain ID cleanly because
the naming convention conflated chain identity with version. `gnoland-1` is
the permanent base name; future upgrades increment a suffix on a sub-release
tag (e.g., `chain/gnoland-1.1`).

## What changed

This hard fork bundles the following upgrades in one shot:

- **`r/sys/params` halt height** (gnolang/gno#5368): GovDAO can now vote to
halt the chain at a specific block and enforce a minimum binary version on
restart. _(awaiting merge)_
- **`r/gnops/valopers` fee = 0**: Registration fee was set to 0 via a GovDAO
transaction on gnoland1; preserved in genesis replay. No code change needed.
- **Namereg GovDAO whitelist** (gnolang/gno#5293): Namereg now checks GovDAO
membership before allowing name registration. ✅ _merged_
- **GovDAO scripts** (gnolang/gno#5375): Updated scripts for the new chain. ✅ _merged_

**Not confirmed for this hard fork** (need explicit sign-off from Jae):
- Gas parameter updates (gnolang/gno#5291, #5289, #5274)

## Upgrade workflow

Approach: **Scenario A — genesis tx-replay with InitialHeight preservation**.
All historical txs from gnoland1 are exported with their original block heights
and timestamps, then assembled into the genesis for gnoland-1. The new chain
starts at `initial_height = halt_height + 1`, preserving height continuity.

```
gnoland1 (running)
├── [gnoland1.2] Operators rolling-update with halt_height config
├── Chain halts at GovDAO-approved height
├── Each validator runs migrate-from-gnoland1.sh ← NOT YET IMPLEMENTED
│ - tx-archive exports all txs with block height + timestamp
│ - genesis-assemble produces genesis.json for gnoland-1
│ (chain_id=gnoland-1, initial_height=halt+1, original_chain_id=gnoland1)
├── Validators compare genesis.json SHA-256
│ (must all match before anyone restarts)
└── Validators restart with new binary + new genesis
chain-id: gnoland-1, starts at height halt+1
```

## ⚠️ Migration script not yet written

**The migration script (`migrate-from-gnoland1.sh`) is the critical missing
piece.** Until it exists and has been tested on a dry-run on test12, the
hard fork cannot happen.

Blockers:
- `tx-archive genesis-assemble` command (companion to gnolang/gno#5411)
- `tx-archive` offline export from block store (no live node required)
- Jae's tm2 `GenesisDoc.InitialHeight` port (hard blocker for gnolang/gno#5411)
- test12 dry-run: full halt → export → genesis-assemble → restart

See the TODO block inside `migrate-from-gnoland1.sh` for details.

Dry-run target: test12 (see gnoland1/govdao-scripts/ for tooling).

## GovDAO scripts

The govdao scripts in `govdao-scripts/` are identical to those in
`../gnoland1/govdao-scripts/` but default to `CHAIN_ID=gnoland-1`.

All scripts default to `GNOKEY_NAME=moul`, `CHAIN_ID=gnoland-1`, and
`REMOTE=https://rpc.gno.land:443`. Override via env vars.

```bash
./govdao-scripts/add-validator-from-valopers.sh ADDR
./govdao-scripts/add-validator.sh ADDR PUBKEY [POWER]
./govdao-scripts/rm-validator.sh ADDR
./govdao-scripts/unrestrict-account.sh ADDR [ADDR...]
```

## Config

Copy `config.toml` and edit the `# Change me` fields:

```shell
mkdir -p gnoland-data/config
cp config.toml gnoland-data/config/config.toml
grep -n "Change me" gnoland-data/config/config.toml
```
Loading
Loading