Subzero nodes operate the ION Connect protocol (Nostr-compatible), a high-throughput sidechain capable of processing millions of transactions per second, with linear scalability as additional nodes are deployed.
subzero --port=9998 --cert=./cmd/subzero/.testdata/localhost.crt --key=./cmd/subzero/.testdata/localhost.key --adnl-external-ip=127.0.0.1 --adnl-port=11512 --storage-root=./../.uploads --adnl-node-key=<hex> [--global-config-url=file://path/to/global.json]Parameters:
- port - port to start https/ws server for user iteraction
- cert - tls cert for https / ws server
- key - tls key for https / ws server
- adnl-external-ip - node's external address (needed to serve storage uploads), other nodes connect to :
- adnl-port - port to start adnl / storage server
- storage-root - root storage to store files
<storage-root>/<user's key>/files_here.ext - adnl-node-key - adnl key for the node in hex form (length: 64 bytes, 128 in hex), i.e
6cc91d96a67bcae7a7a4df91f9c04469f652cf007b33460c60c0649f1777df5703bec10efbd4520126e53d0d70552f873ba843d54352d59fa28989bdf3925a7d= random if not specified
_, key ,_ := ed25519.GenerateKey(nil)
fmt.Println(hex.EncodeToString(key))- global-config-url - url (supports file:// schema) of global config (to fetch initial DHT nodes for storage), by default = mainnet url
The subzero-ion-connect-loadtest tool is included for testing Nostr relay performance and behavior with multiple authenticated connections.
- Multiple concurrent connections to a single Nostr relay
- NIP-42 authentication support for each connection
- Dynamic key generation when no key is provided (each client gets unique key)
- Configuration via command-line flags, environment variables, or YAML config file
- Real-time event monitoring and statistics
- Periodic test event publishing
- Graceful shutdown with connection statistics
# Basic usage with 10 connections
./cmd/subzero-ion-connect-loadtest/subzero-ion-connect-loadtest -relay wss://relay.nostr.band -connections 10
# With provided key (all clients use same key)
./cmd/subzero-ion-connect-loadtest/subzero-ion-connect-loadtest -relay wss://relay.nostr.band -connections 10 -key <private_key>
# With config file
./cmd/subzero-ion-connect-loadtest/subzero-ion-connect-loadtest -config ./subzero_ion_connect_loadtest.yamlexport NOSTR_RELAY=wss://relay.nostr.band
export NOSTR_CONNECTIONS=10
export NOSTR_PRIVATE_KEY=<private_key> # Optional
./cmd/subzero-ion-connect-loadtest/subzero-ion-connect-loadtestEdit the subzero_ion_connect_loadtest.yaml config file with your settings:
relayURL: "wss://relay.nostr.band"
connections: 10
# privateKey: "" # Optional - will generate unique keys for each client if not providedcd cmd/subzero-ion-connect-loadtest
go build -o subzero-ion-connect-loadtest .The tool displays periodic statistics including:
- Number of active connections
- Events received per client
- Last event timestamp
- Total events received across all clients
| NIPs | latest commit hash implemented | comments |
|---|---|---|
| 01 | 9971db3 | |
| 02 | e655247 | |
| 05 | ||
| 09 | 5ae5a6d | |
| 10 | c343175 | |
| 11 | d67988e | |
| 13 | e7eb776 | |
| 18 | 996ef45 | |
| 19 | ||
| 21 | ||
| 23 | ca3c52e | |
| 24 | e30eb40 | |
| 25 | e655247 | |
| 26 | ||
| 27 | ||
| 32 | e655247 | |
| 40 | 5dcfe85 | |
| 45 | 38af1ef | |
| 50 | 38af1ef | |
| 51 | e655247 | |
| 56 | e655247 | |
| 58 | e655247 | |
| 65 | ||
| 90 | e655247 | |
| 92 | 84236ac | |
| 94 | ||
| 96 | 4e73e94d417f16fa3451e58ef921cb3b512c6f8e | |
| 98 | ae0fd96907d0767f07fb54ca1de9f197c600cb27 |
| data vending machive | latest commit hash implemented | comments |
|---|---|---|
| Nostr Event Count | d7bd5cc |