node/hack/findmissing: add simple script to find all missing messages
This is different from "admin find-missing-messages" insofar as having a hardcoded list of emitters. commit-id:b934f672
This commit is contained in:
parent
8bf1176401
commit
de7cfe6cc7
|
@ -0,0 +1,74 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"flag"
|
||||
"fmt"
|
||||
"github.com/certusone/wormhole/node/pkg/common"
|
||||
nodev1 "github.com/certusone/wormhole/node/pkg/proto/node/v1"
|
||||
"github.com/certusone/wormhole/node/pkg/vaa"
|
||||
"google.golang.org/grpc"
|
||||
"log"
|
||||
)
|
||||
|
||||
var (
|
||||
adminRPC = flag.String("adminRPC", "/run/guardiand/admin.socket", "Admin RPC address")
|
||||
shouldBackfill = flag.Bool("backfill", true, "Backfill missing sequences")
|
||||
onlyChain = flag.String("only", "", "Only check this chain")
|
||||
)
|
||||
|
||||
func getAdminClient(ctx context.Context, addr string) (*grpc.ClientConn, error, nodev1.NodePrivilegedServiceClient) {
|
||||
conn, err := grpc.DialContext(ctx, fmt.Sprintf("unix:///%s", addr), grpc.WithInsecure())
|
||||
|
||||
if err != nil {
|
||||
log.Fatalf("failed to connect to %s: %v", addr, err)
|
||||
}
|
||||
|
||||
c := nodev1.NewNodePrivilegedServiceClient(conn)
|
||||
return conn, err, c
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
conn, err, admin := getAdminClient(ctx, *adminRPC)
|
||||
defer conn.Close()
|
||||
if err != nil {
|
||||
log.Fatalf("failed to get admin client: %v", err)
|
||||
}
|
||||
|
||||
var only vaa.ChainID
|
||||
if *onlyChain != "" {
|
||||
only, err = vaa.ChainIDFromString(*onlyChain)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to parse chain id: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
for _, emitter := range common.KnownEmitters {
|
||||
if only != vaa.ChainIDUnset {
|
||||
if emitter.ChainID != only {
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
log.Printf("requesting missing sequences for %v %s", emitter.ChainID, emitter.Emitter)
|
||||
|
||||
msg := nodev1.FindMissingMessagesRequest{
|
||||
EmitterChain: uint32(emitter.ChainID),
|
||||
EmitterAddress: emitter.Emitter,
|
||||
RpcBackfill: *shouldBackfill,
|
||||
BackfillNodes: common.PublicRPCEndpoints,
|
||||
}
|
||||
resp, err := admin.FindMissingMessages(ctx, &msg)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to run find FindMissingMessages RPC: %v", err)
|
||||
}
|
||||
|
||||
for _, id := range resp.MissingMessages {
|
||||
fmt.Println(id)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue