Skip to main content

getVersion gRPC Method

Retrieves the version information for both the Geyser gRPC service and the connected Solana node.

Updated on
Oct 25, 2024

getVersion gRPC Method

Please note that this RPC method requires the Yellowstone gRPC add-on enabled on your QuickNode endpoint.

Parameters

This method does not accept any parameters

Returns

version
object
The version object which contains the following fields:
package
string
Specifies the version of the yellowstone-grpc-geyser package being used
version
string
Indicates the plugin's version
proto
string
Version of the protocol buffer definition used by the Yellowstone gRPC plugin
solana
string
Specifies the version of the Solana blockchain that the plugin is compatible with
git
string
Provides the short hash of the Git commit from which this build was created
rustc
string
Version of the Rust compiler used to build the plugin
buildts
string
A timestamp indicating when this version was built
extra
object
The extra object which contains the following fields:
hostname
string
The hostname of the server or instance running the plugin
Request
1
package main
2
3
import (
4
"context"
5
"crypto/tls"
6
"fmt"
7
"log"
8
"time"
9
10
pb "yellowstone/proto"
11
12
13
"google.golang.org/grpc"
14
"google.golang.org/grpc/credentials"
15
"google.golang.org/grpc/encoding/gzip"
16
"google.golang.org/grpc/keepalive"
17
)
18
19
// QuickNode endpoints consist of two crucial components: the endpoint name and the corresponding token
20
// For eg: QN Endpoint: https://docs-demo.solana-mainnet.quiknode.pro/abcde123456789
21
// endpoint will be: docs-demo.solana-mainnet.quiknode.pro:10000 {10000 is the port number for gRPC}
22
// token will be : abcde123456789
23
24
var (
25
endpoint = "YOUR_QN_ENDPOINT:10000"
26
token = "YOUR_TOKEN_NUMBER"
27
)
28
29
func main() {
30
opts := []grpc.DialOption{
31
grpc.WithTransportCredentials(credentials.NewTLS(&tls.Config{})),
32
grpc.WithKeepaliveParams(kacp),
33
grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(1024*1024*1024), grpc.UseCompressor(gzip.Name)),
34
grpc.WithPerRPCCredentials(tokenAuth{token: token}),
35
}
36
37
conn, err := grpc.NewClient(endpoint, opts...)
38
if err != null {
39
log.Fatalf("Failed to connect: %v", err)
40
}
41
defer conn.Close()
42
43
client := pb.NewGeyserClient(conn)
44
45
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
46
defer cancel()
47
48
version, err := client.GetVersion(ctx, &pb.GetVersionRequest{})
49
if err != null {
50
log.Fatalf("Failed to get version: %v", err)
51
}
52
53
fmt.Printf("Yellowstone gRPC Version:\n")
54
fmt.Printf(" GeyserGrpc: %s\n", version.GetVersion())
55
56
}
Don't have an account yet?
Create your QuickNode endpoint in seconds and start building
Get started for free