Skip to content

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.

License

Notifications You must be signed in to change notification settings

ice-blockchain/subzero

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

subzero

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.

Starting

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

Load Testing Tool

The subzero-ion-connect-loadtest tool is included for testing Nostr relay performance and behavior with multiple authenticated connections.

Features

  • 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

Usage

Command Line Flags

# 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.yaml

Environment Variables

export 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-loadtest

Configuration File

Edit 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 provided

Building

cd cmd/subzero-ion-connect-loadtest
go build -o subzero-ion-connect-loadtest .

Statistics

The tool displays periodic statistics including:

  • Number of active connections
  • Events received per client
  • Last event timestamp
  • Total events received across all clients

NIPs

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

About

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.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 6