Skip to content

w3f/substrate-telemetry-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Substrate Telemetry Client

A TypeScript client library for connecting to Substrate Telemetry backend service. Get real-time information about nodes in Substrate-based networks like Polkadot and Kusama.

Installation

yarn install

Basic Usage

import { TelemetryClient, CHAIN_GENESIS } from 'substrate-telemetry-client';

const client = new TelemetryClient();
await client.connect();
client.subscribe(CHAIN_GENESIS.POLKADOT);

// Event-based updates example:
client.onUpdate((nodes) => {
  console.log('Total nodes:', nodes.length);
});

// Polling-based updates examples:

// 1. Get all nodes
const nodes = client.getNodes();
console.log('Current nodes:', nodes.length);

// 2. Get nodes filtered by node names
const nodeNames = ['Alice', 'Bob', 'Charlie'];
const specificNodes = client.getNodesFiltered(node => nodeNames.includes(node.name));

API Reference

TelemetryClient

Constructor Options

interface TelemetryConfig {
  url?: string;                    // Telemetry WebSocket URL
  autoReconnect?: boolean;         // Auto reconnect on disconnect
  maxReconnectAttempts?: number;   // Max reconnection attempts
}

Methods

  • connect(): Promise<void> - Connect to telemetry service
  • disconnect(): void - Disconnect from service
  • subscribe(chain: GenesisHash): void - Subscribe to chain updates
  • onUpdate(handler: (nodes: NodeInfo[]) => void): () => void - Register update handler
  • getNodes(): NodeInfo[] - Get all nodes
  • getNode(id: number): NodeInfo | undefined - Get specific node
  • getNodesFiltered(predicate: (node: NodeInfo) => boolean): NodeInfo[] - Filter nodes
  • getNodesSorted(compareFn: (a: NodeInfo, b: NodeInfo) => number): NodeInfo[] - Sort nodes
  • getChainStats(): ChainStats | undefined - Get chain statistics

Supported Networks

  • Polkadot (CHAIN_GENESIS.POLKADOT)
  • Kusama (CHAIN_GENESIS.KUSAMA)
  • Other Substrate-based networks (use their genesis hash)

Development

# Install dependencies
yarn install

# Build
yarn build

# Run examples
yarn basic
yarn detailed

You can find example code in:

  • examples/basic.ts - Simple connection and node information display
  • examples/detailed.ts - Detailed output with node information

Issues

If you find a bug or have a feature request, please create an issue in our GitHub repository.

License

MIT License

About

TypeScript client for Substrate Telemetry WebSocket API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published