package core_grpc import ( "net" "time" "google.golang.org/grpc" cmn "github.com/tendermint/tendermint/libs/common" ) // Config is an gRPC server configuration. type Config struct { MaxOpenConnections int } // StartGRPCServer starts a new gRPC BroadcastAPIServer using the given net.Listener. // NOTE: This function blocks - you may want to call it in a go-routine. func StartGRPCServer(ln net.Listener) error { grpcServer := grpc.NewServer() RegisterBroadcastAPIServer(grpcServer, &broadcastAPI{}) return grpcServer.Serve(ln) } // StartGRPCClient dials the gRPC server using protoAddr and returns a new // BroadcastAPIClient. func StartGRPCClient(protoAddr string) BroadcastAPIClient { conn, err := grpc.Dial(protoAddr, grpc.WithInsecure(), grpc.WithDialer(dialerFunc)) if err != nil { panic(err) } return NewBroadcastAPIClient(conn) } func dialerFunc(addr string, timeout time.Duration) (net.Conn, error) { return cmn.Connect(addr) }