mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-09 15:37:56 -05:00
Delete slasher client files
This commit is contained in:
@@ -7,7 +7,6 @@ go_library(
|
||||
"cli_import.go",
|
||||
"external.go",
|
||||
"log.go",
|
||||
"slasher_client.go",
|
||||
],
|
||||
importpath = "github.com/prysmaticlabs/prysm/validator/slashing-protection",
|
||||
visibility = [
|
||||
@@ -15,7 +14,6 @@ go_library(
|
||||
"//validator:__subpackages__",
|
||||
],
|
||||
deps = [
|
||||
"//api/grpc:go_default_library",
|
||||
"//cmd:go_default_library",
|
||||
"//cmd/validator/flags:go_default_library",
|
||||
"//io/file:go_default_library",
|
||||
@@ -23,17 +21,9 @@ go_library(
|
||||
"//validator/accounts/userprompt:go_default_library",
|
||||
"//validator/db/kv:go_default_library",
|
||||
"//validator/slashing-protection/local/standard-protection-format:go_default_library",
|
||||
"@com_github_grpc_ecosystem_go_grpc_middleware//:go_default_library",
|
||||
"@com_github_grpc_ecosystem_go_grpc_middleware//retry:go_default_library",
|
||||
"@com_github_grpc_ecosystem_go_grpc_middleware//tracing/opentracing:go_default_library",
|
||||
"@com_github_grpc_ecosystem_go_grpc_prometheus//:go_default_library",
|
||||
"@com_github_pkg_errors//:go_default_library",
|
||||
"@com_github_sirupsen_logrus//:go_default_library",
|
||||
"@com_github_urfave_cli_v2//:go_default_library",
|
||||
"@io_opencensus_go//plugin/ocgrpc:go_default_library",
|
||||
"@org_golang_google_grpc//:go_default_library",
|
||||
"@org_golang_google_grpc//connectivity:go_default_library",
|
||||
"@org_golang_google_grpc//credentials:go_default_library",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -42,7 +32,6 @@ go_test(
|
||||
srcs = [
|
||||
"cli_import_export_test.go",
|
||||
"external_test.go",
|
||||
"slasher_client_test.go",
|
||||
],
|
||||
embed = [":go_default_library"],
|
||||
deps = [
|
||||
@@ -59,6 +48,5 @@ go_test(
|
||||
"//validator/slashing-protection/local/standard-protection-format/format:go_default_library",
|
||||
"//validator/testing:go_default_library",
|
||||
"@com_github_urfave_cli_v2//:go_default_library",
|
||||
"@org_golang_google_grpc//metadata:go_default_library",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -1,116 +0,0 @@
|
||||
package slashingprotection
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
middleware "github.com/grpc-ecosystem/go-grpc-middleware"
|
||||
grpc_retry "github.com/grpc-ecosystem/go-grpc-middleware/retry"
|
||||
grpc_opentracing "github.com/grpc-ecosystem/go-grpc-middleware/tracing/opentracing"
|
||||
grpc_prometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
|
||||
grpcutil "github.com/prysmaticlabs/prysm/api/grpc"
|
||||
ethsl "github.com/prysmaticlabs/prysm/proto/prysm/v1alpha1"
|
||||
"go.opencensus.io/plugin/ocgrpc"
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/connectivity"
|
||||
"google.golang.org/grpc/credentials"
|
||||
)
|
||||
|
||||
// Service represents a service to manage the validator
|
||||
// slashing protection.
|
||||
type Service struct {
|
||||
cfg *Config
|
||||
ctx context.Context
|
||||
cancel context.CancelFunc
|
||||
conn *grpc.ClientConn
|
||||
grpcHeaders []string
|
||||
slasherClient ethsl.SlasherClient
|
||||
}
|
||||
|
||||
// Config for the validator service.
|
||||
type Config struct {
|
||||
Endpoint string
|
||||
CertFlag string
|
||||
GrpcMaxCallRecvMsgSizeFlag int
|
||||
GrpcRetriesFlag uint
|
||||
GrpcRetryDelay time.Duration
|
||||
GrpcHeadersFlag string
|
||||
}
|
||||
|
||||
// Start the slasher protection service and grpc client.
|
||||
func (s *Service) Start() {
|
||||
if s.cfg.Endpoint != "" {
|
||||
s.slasherClient = s.startSlasherClient()
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Service) startSlasherClient() ethsl.SlasherClient {
|
||||
var dialOpt grpc.DialOption
|
||||
|
||||
if s.cfg.CertFlag != "" {
|
||||
creds, err := credentials.NewClientTLSFromFile(s.cfg.CertFlag, "")
|
||||
if err != nil {
|
||||
log.Errorf("Could not get valid slasher credentials: %v", err)
|
||||
return nil
|
||||
}
|
||||
dialOpt = grpc.WithTransportCredentials(creds)
|
||||
} else {
|
||||
dialOpt = grpc.WithInsecure()
|
||||
log.Warn("You are using an insecure slasher gRPC connection! Please provide a certificate and key to use a secure connection.")
|
||||
}
|
||||
|
||||
s.ctx = grpcutil.AppendHeaders(s.ctx, s.grpcHeaders)
|
||||
|
||||
opts := []grpc.DialOption{
|
||||
dialOpt,
|
||||
grpc.WithDefaultCallOptions(
|
||||
grpc_retry.WithMax(s.cfg.GrpcRetriesFlag),
|
||||
grpc_retry.WithBackoff(grpc_retry.BackoffLinear(s.cfg.GrpcRetryDelay)),
|
||||
),
|
||||
grpc.WithStatsHandler(&ocgrpc.ClientHandler{}),
|
||||
grpc.WithStreamInterceptor(middleware.ChainStreamClient(
|
||||
grpc_opentracing.StreamClientInterceptor(),
|
||||
grpc_prometheus.StreamClientInterceptor,
|
||||
grpc_retry.StreamClientInterceptor(),
|
||||
)),
|
||||
grpc.WithUnaryInterceptor(middleware.ChainUnaryClient(
|
||||
grpc_opentracing.UnaryClientInterceptor(),
|
||||
grpc_prometheus.UnaryClientInterceptor,
|
||||
grpc_retry.UnaryClientInterceptor(),
|
||||
grpcutil.LogRequests,
|
||||
)),
|
||||
}
|
||||
conn, err := grpc.DialContext(s.ctx, s.cfg.Endpoint, opts...)
|
||||
if err != nil {
|
||||
log.Errorf("Could not dial slasher endpoint: %s, %v", s.cfg.Endpoint, err)
|
||||
return nil
|
||||
}
|
||||
log.Debug("Successfully started slasher gRPC connection")
|
||||
s.conn = conn
|
||||
return ethsl.NewSlasherClient(s.conn)
|
||||
|
||||
}
|
||||
|
||||
// Stop the validator service.
|
||||
func (s *Service) Stop() error {
|
||||
s.cancel()
|
||||
log.Info("Stopping slashing protection service")
|
||||
if s.conn != nil {
|
||||
return s.conn.Close()
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Status checks if the connection to slasher server is ready,
|
||||
// returns error otherwise.
|
||||
func (s *Service) Status() error {
|
||||
if s.conn == nil {
|
||||
return errors.New("no connection to slasher RPC")
|
||||
}
|
||||
if s.conn.GetState() != connectivity.Ready {
|
||||
return fmt.Errorf("can`t connect to slasher server at: %v connection status: %v ", s.cfg.Endpoint, s.conn.GetState())
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
package slashingprotection
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/prysmaticlabs/prysm/testing/assert"
|
||||
"github.com/prysmaticlabs/prysm/testing/require"
|
||||
"google.golang.org/grpc/metadata"
|
||||
)
|
||||
|
||||
func TestGrpcHeaders(t *testing.T) {
|
||||
s := &Service{
|
||||
cfg: &Config{},
|
||||
ctx: context.Background(),
|
||||
grpcHeaders: []string{"first=value1", "second=value2"},
|
||||
}
|
||||
s.startSlasherClient()
|
||||
md, _ := metadata.FromOutgoingContext(s.ctx)
|
||||
require.Equal(t, 2, md.Len(), "MetadataV0 contains wrong number of values")
|
||||
assert.Equal(t, "value1", md.Get("first")[0])
|
||||
assert.Equal(t, "value2", md.Get("second")[0])
|
||||
}
|
||||
Reference in New Issue
Block a user