If using Solana gRPC on Node.js for very large quantities of data, it is possible to overwhelm a single CPU. If you're building systems that need to process all transactions from busy programs or track multiple programs simultaneously, consider the following high performance alternatives:
-
Using multiple threads. Node.js has two modules:
cluster(multi-process, one thread per process) andworker(single process, multiple threads). Either will solve the problem of node overloading a single core, butclusteris simpler as each process is memory isolated. Divide the Solana gRPC subscriptions between multiple instances ofclusterorworkerto distribute the load. -
Using Solana gRPC on Rust (see also Solana gRPC on Rust guide)
-
Using Solana gRPC on Go (see also Solana gRPC on Go guide).
Overview
TypeScript is a strongly-typed superset of JavaScript, offering improved developer experience and tooling support. This document provides a step-by-step process for setting up a TypeScript environment for interacting with Solana gRPC (Yellowstone-compatible Geyser gRPC), including setting up a project, configuring dependencies, and implementing authentication mechanisms.
Authentication Required for TypeScript
Creates a client in order to communicate with Solana gRPC. It uses an endpoint URL and an authentication token for secure access.
import { Client } from '@rpcpool/yellowstone-grpc';
// For HTTP Provider URL: https://example-guide-demo.solana-mainnet.quiknode.pro/123456789/
const ENDPOINT = 'https://example-guide-demo.solana-mainnet.quiknode.pro:10000';
const TOKEN = '123456789';
const client = new Client(ENDPOINT, TOKEN, {});
To learn how to split your Solana gRPC-enabled URL into endpoint and token, refer to this section - Endpoint and Token Configuration
Setting up TypeScript
To run our TypeScript code examples, you'll need to have Node.js installed, as TypeScript is built on top of JavaScript. Ensure you also have TypeScript installed globally by running:
npm install -g typescript
Install Yellowstone gRPC Node Package
npm install @triton-one/yellowstone-grpc
Additional Resources
For more information about working with Solana gRPC in TypeScript, refer to Monitor Solana Programs with Solana gRPC (TypeScript). This guide provides an in-depth overview of setting up gRPC endpoints, managing authentication tokens, and understanding key concepts like commitment levels.
We ❤️ Feedback!
If you have any feedback or questions about this documentation, let us know. We'd love to hear from you!