From 5686f17ac73e1b49c55230103b65ef2a2cd586a9 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 12 May 2026 12:42:06 +0200 Subject: [PATCH] docs: remove supernova walkthrough from docs/builders/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per #5651, docs/builders/ is for realm devs (writing, deploying, and integrating gno realms), not node operators. Supernova is a stress-testing tool whose audience is a handful of node operators — the walkthrough belongs in the supernova repo's README, not as a 154-line page here. Removes the page entirely (no replacement link) since there is no operator-tooling section in docs/ to host one. --- docs/README.md | 1 - .../builders/stress-testing-with-supernova.md | 154 ------------------ misc/docs/sidebar.json | 1 - 3 files changed, 156 deletions(-) delete mode 100644 docs/builders/stress-testing-with-supernova.md diff --git a/docs/README.md b/docs/README.md index 4c3d5cd0a83..9aa4b9eb74e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -30,7 +30,6 @@ Gno-specific features, connect to Gno apps with clients, and more. - [Example `minisocial` dApp](builders/example-minisocial-dapp.md) - Build a complete social media application while learning the full local development workflow for Gno packages. - [Deploying Gno packages](builders/deploy-packages.md) - Learn how to deploy your code to Gno.land networks using `gnokey` and understand gas requirements. - [Connecting clients](builders/connect-clients-and-apps.md) - Discover how to connect external applications to Gno.land networks using both Go and JavaScript clients. -- [Stress testing with Supernova](builders/stress-testing-with-supernova.md) - Learn how to stress test your Gno network using `supernova` to measure performance. - [Become a Gnome](builders/become-a-gnome.md) - Learn what makes a great Gno.land contributor and how to showcase your work in the ecosystem. ## Resources diff --git a/docs/builders/stress-testing-with-supernova.md b/docs/builders/stress-testing-with-supernova.md deleted file mode 100644 index ea2cbf31884..00000000000 --- a/docs/builders/stress-testing-with-supernova.md +++ /dev/null @@ -1,154 +0,0 @@ -# Stress Testing with Supernova - -## What is Supernova? - -[Supernova](https://github.com/gnolang/supernova) is a stress-testing -tool designed specifically for Gno TM2 networks. It helps node operators -and developers understand how their network behaves under load by -simulating realistic transaction patterns and measuring performance -metrics. - -## Why Stress Test Your Network? - -Stress testing answers critical questions before production deployment: - -| Question | Why It Matters | -|----------|----------------| -| What's my maximum TPS? | Know when performance will degrade under load | -| How do gas limits affect throughput? | Optimize block parameters | -| Where are the bottlenecks? | Find issues in consensus, storage, or network | -| How do workloads differ? | Plan capacity for deployments vs calls | - -## How Supernova Works - -Supernova operates in three phases: - -### 1. Account Setup - -Supernova derives multiple subaccounts from a single mnemonic. This simulates -realistic conditions where transactions come from many different addresses, -testing the network's ability to handle concurrent account state updates. - -The tool automatically distributes funds from the main account (index 0) to -all subaccounts before the test begins. - -### 2. Transaction Generation - -Based on the selected mode, supernova constructs and signs transactions. - -#### Stress Testing Modes - -| Mode | What it Does | Best For | -|------|--------------|----------| -| REALM_DEPLOYMENT | Deploys a new realm per tx | Heavy workloads | -| PACKAGE_DEPLOYMENT | Deploys pure packages | Code storage | -| REALM_CALL | Deploys realm, calls methods | Production | - -For most production scenarios, REALM_CALL provides the most relevant metrics -since it simulates typical user interactions. - -### 3. Result Collection - -After broadcasting transactions, supernova monitors the blockchain to collect -metrics like TPS, block utilization, and gas consumption. - -## Understanding the Results - -### TPS (Transactions Per Second) - -TPS reflects real-world throughput, accounting for: -- Transaction propagation time -- Block production intervals -- Consensus overhead - -A higher TPS indicates better network performance, but the optimal value -depends on your hardware, network configuration, and block parameters. - -### Block Utilization - -Block utilization reveals how efficiently blocks are being filled: - -- **Low utilization (\<50%)**: The network has spare capacity. Transaction - volume is below what the network can handle. -- **High utilization (\>80%)**: The network is near capacity. Consider - increasing gas limits or optimizing transaction costs. -- **Variable utilization**: May indicate inconsistent transaction batching or - network congestion patterns. - -## When to Use Supernova - -- **Before deployment**: Validate your network can handle expected load -- **After configuration changes**: Verify block gas limits, timing parameters -- **During capacity planning**: Determine hardware requirements for target TPS -- **Comparing node implementations**: Benchmark different setups objectively - -## Integration with Monitoring - -For deeper insights, run supernova against a node with -[OpenTelemetry enabled](../../misc/telemetry/README.md). This allows you to -correlate supernova's transaction metrics with internal node metrics like: - -- Memory and CPU usage during load -- Consensus round timing -- Storage I/O patterns -- Network message latency - -## Getting Started - -### Prerequisites - -- Go (see `go.mod` for the minimum version) -- A running Gno node (e.g., via `gnodev` or `gnoland start`) -- A funded mnemonic (the first derived address needs funds for distribution) - -### Installation - -```bash -# Clone the repository -git clone https://github.com/gnolang/supernova.git -cd supernova - -# Build the binary -make build - -# The binary will be at ./build/supernova -``` - -### Basic Usage - -```bash -./build/supernova \ - -url http://localhost:26657 \ - -mnemonic "source bonus chronic canvas draft south burst lottery \ -vacant surface solve popular case indicate oppose farm nothing bullet \ -exhibit title speed wink action roast" \ - -sub-accounts 5 \ - -transactions 100 \ - -mode REALM_CALL \ - -output results.json -``` - -You can check the results in `results.json`. For production-grade -testing, increase `-sub-accounts` (50-100) and `-transactions` (5000+). - -**Note:** The mnemonic above corresponds to `test1`, which is a pre-registered -and funded account on default deployments of gno.land (e.g., when using -`gnodev` or local testnets). - -### CLI Flags - -| Flag | Default | Description | -|------|---------|-------------| -| `-url` | (required) | JSON-RPC URL of the Gno node | -| `-mnemonic` | (required) | Mnemonic for deriving accounts | -| `-sub-accounts` | 10 | Number of accounts sending transactions | -| `-transactions` | 100 | Total transactions to send | -| `-mode` | REALM_DEPLOYMENT | Transaction mode (see Modes section) | -| `-batch` | 100 | Batch size for JSON-RPC calls | -| `-chain-id` | dev | Chain ID of the network | -| `-output` | (none) | Path to save results JSON | - -### Resources - -- [Supernova GitHub repository](https://github.com/gnolang/supernova) -- [Benchmark reports](https://github.com/gnolang/benchmarks/tree/main/reports/supernova) diff --git a/misc/docs/sidebar.json b/misc/docs/sidebar.json index beefce70c60..809d4c36935 100644 --- a/misc/docs/sidebar.json +++ b/misc/docs/sidebar.json @@ -24,7 +24,6 @@ "builders/example-minisocial-dapp", "builders/deploy-packages", "builders/connect-clients-and-apps", - "builders/stress-testing-with-supernova", "builders/become-a-gnome" ] },