isBlockhashValid gRPC Method - Solana gRPC
Solana gRPC is included with Scale plans and up. Learn more on our pricing page.
参数
blockhash
字符串
必填
正在加载...
承诺
字符串
正在加载...
PROCESSED
字符串
正在加载...
CONFIRMED
字符串
正在加载...
FINALIZED
字符串
正在加载...
退货
valid
布尔型
正在加载...
插槽
字符串
正在加载...
请求
1包 main23import (4"上下文"5"crypto/tls"6"fmt"7“日志”8“时间”910pb "yellowstone"111213"google.golang.grpc"14"google.golang.grpc"15"google.golang.grpc"16"google.golang.grpc"17)1819// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token20// For eg: QN Endpoint: https://docs-demo.solana-mainnet.quiknode.pro/abcde12345678921// endpoint will be: docs-demo.solana-mainnet.quiknode.pro:443 {443 is the port number for gRPC}22// token will be : abcde1234567892324var (25endpoint = "YOUR_QN_ENDPOINT:443"26token = "您的令牌编号"27)2829var kacp = keepalive.ClientParameters{30Time: 10 * time.Second,31Timeout: time.Second,32PermitWithoutStream: true,33}3435type tokenAuth struct {36token 字符串37}3839func (t tokenAuth) GetRequestMetadata(ctx context.Context, in ...string) (map[string]string, error) {40返回 map[字符串]字符串{41"x-token": t.token,42}, nil43}4445func (tokenAuth) RequireTransportSecurity() bool {46返回 true47}4849func main() {50opts := []grpc.DialOption{51grpc.WithTransportCredentials(凭证.NewTLS(&tls.配置{})),52grpc.WithKeepaliveParams(kacp),53grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(1024*1024*1024), grpc.UseCompressor(gzip.名称)),54grpc.WithPerRPCCredentials(tokenAuth{token: token}),55}5657conn, err := grpc.NewClient(endpoint, opts...)58如果 err != nil {59log.Fatalf("连接失败:%v", err)60}61推迟 conn.关闭()6263client := pb.NewGeyserClient(conn)6465ctx, 取消 := context.带超时(context.Background(), 10*时间.第二次)66推迟 取消()6768const BLOCKHASH_TO_CHECK = "FJcV9hJycVRkyHWf3P8qjxE2vLs6dF38RTZzZBNvNM1z"6970isBlockhashValid, err := client.IsBlockhashValid(ctx, &pb.IsBlockhashValidRequest{71Blockhash: BLOCKHASH_TO_CHECK,72})73如果 err != nil {74log.Fatalf("Failed to check blockhash validity: %v", err)75}767778fmt.Printf("Slot: %d\n", isBlockhashValid.Slot)79fmt.Printf("Valid: %v\n", isBlockhashValid.Valid)808182}83
1包 main23import (4"上下文"5"crypto/tls"6"fmt"7“日志”8“时间”910pb "yellowstone"111213"google.golang.grpc"14"google.golang.grpc"15"google.golang.grpc"16"google.golang.grpc"17)1819// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token20// For eg: QN Endpoint: https://docs-demo.solana-mainnet.quiknode.pro/abcde12345678921// endpoint will be: docs-demo.solana-mainnet.quiknode.pro:443 {443 is the port number for gRPC}22// token will be : abcde1234567892324var (25endpoint = "YOUR_QN_ENDPOINT:443"26token = "您的令牌编号"27)2829var kacp = keepalive.ClientParameters{30Time: 10 * time.Second,31Timeout: time.Second,32PermitWithoutStream: true,33}3435type tokenAuth struct {36token 字符串37}3839func (t tokenAuth) GetRequestMetadata(ctx context.Context, in ...string) (map[string]string, error) {40返回 map[字符串]字符串{41"x-token": t.token,42}, nil43}4445func (tokenAuth) RequireTransportSecurity() bool {46返回 true47}4849func main() {50opts := []grpc.DialOption{51grpc.WithTransportCredentials(凭证.NewTLS(&tls.配置{})),52grpc.WithKeepaliveParams(kacp),53grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(1024*1024*1024), grpc.UseCompressor(gzip.名称)),54grpc.WithPerRPCCredentials(tokenAuth{token: token}),55}5657conn, err := grpc.NewClient(endpoint, opts...)58如果 err != nil {59log.Fatalf("连接失败:%v", err)60}61推迟 conn.关闭()6263client := pb.NewGeyserClient(conn)6465ctx, 取消 := context.带超时(context.Background(), 10*时间.第二次)66推迟 取消()6768const BLOCKHASH_TO_CHECK = "FJcV9hJycVRkyHWf3P8qjxE2vLs6dF38RTZzZBNvNM1z"6970isBlockhashValid, err := client.IsBlockhashValid(ctx, &pb.IsBlockhashValidRequest{71Blockhash: BLOCKHASH_TO_CHECK,72})73如果 err != nil {74log.Fatalf("Failed to check blockhash validity: %v", err)75}767778fmt.Printf("Slot: %d\n", isBlockhashValid.Slot)79fmt.Printf("Valid: %v\n", isBlockhashValid.Valid)808182}83
1import Client, { CommitmentLevel } from "@triton-one/yellowstone-grpc";23// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token4// For eg: QN Endpoint: https://docs-demo.solana-mainnet.quiknode.pro/abcde1234567895// endpoint will be: https://docs-demo.solana-mainnet.quiknode.pro:443 {443 is the port number for gRPC}6// token will be : abcde12345678978const ENDPOINT = "https://YOUR_QN_ENDPOINT:443";9const TOKEN = "您的令牌编号";1011const BLOCKHASH_TO_CHECK = "FJcV9hJycVRkyHWf3P8qjxE2vLs6dF38RTZzZBNvNM1z";1213async 函数 main() {14const client = new Client(ENDPOINT, TOKEN, {15grpcDefaultCompressionAlgorithm: 0, // 0 = gzip, 1 = zstd16});17await client.connect();1819const 承诺 = 承诺级别.已确认;2021试一试 {22const result = await client.isBlockhashValid(BLOCKHASH_TO_CHECK, commitment);23console.log(`Blockhash validity check for ${BLOCKHASH_TO_CHECK}:`);24console.log(JSON.stringify(result, null, 2));2526} catch (error) {27console.error("Error checking blockhash validity:", error);28}29}3031主()32.catch((err) => {33控制台.错误("未处理的错误:", err);34流程.退出(1);35});36
1import Client, { CommitmentLevel } from "@triton-one/yellowstone-grpc";23// Quicknode endpoints consist of two crucial components: the endpoint name and the corresponding token4// For eg: QN Endpoint: https://docs-demo.solana-mainnet.quiknode.pro/abcde1234567895// endpoint will be: https://docs-demo.solana-mainnet.quiknode.pro:443 {443 is the port number for gRPC}6// token will be : abcde12345678978const ENDPOINT = "https://YOUR_QN_ENDPOINT:443";9const TOKEN = "您的令牌编号";1011const BLOCKHASH_TO_CHECK = "FJcV9hJycVRkyHWf3P8qjxE2vLs6dF38RTZzZBNvNM1z";1213async 函数 main() {14const client = new Client(ENDPOINT, TOKEN, {15grpcDefaultCompressionAlgorithm: 0, // 0 = gzip, 1 = zstd16});17await client.connect();1819const 承诺 = 承诺级别.已确认;2021试一试 {22const result = await client.isBlockhashValid(BLOCKHASH_TO_CHECK, commitment);23console.log(`Blockhash validity check for ${BLOCKHASH_TO_CHECK}:`);24console.log(JSON.stringify(result, null, 2));2526} catch (error) {27console.error("Error checking blockhash validity:", error);28}29}3031主()32.catch((err) => {33控制台.错误("未处理的错误:", err);34流程.退出(1);35});36