Blacklist Keys in Cluster PK Manager (#2536)

* initialize rpc client

* add struct

* gaz

* add keymap

* update proto and add rpc methods

* update proto

* add method

* make changes

* add routine

* gaz

* mockgen

* error fix

* prom metric

* Some improvements

* fixes

* fix and working cluster pk manager

* fix and working cluster pk manager

* fix and working cluster pk manager

* fix and working cluster pk manager

* regen mocks and pb.go

* k8s
This commit is contained in:
Nishant Das
2019-05-13 04:38:37 +08:00
committed by Preston Van Loon
parent 215e6fc494
commit eef35996de
14 changed files with 1015 additions and 384 deletions

View File

@@ -1,6 +1,7 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/prysmaticlabs/prysm/proto/beacon/rpc/v1 (interfaces: BeaconServiceServer,BeaconService_WaitForChainStartServer,BeaconService_LatestAttestationServer)
// Source: github.com/prysmaticlabs/prysm/proto/beacon/rpc/v1 (interfaces: BeaconServiceServer,BeaconService_LatestAttestationServer,BeaconService_WaitForChainStartServer)
// Package internal is a generated GoMock package.
package internal
import (
@@ -39,7 +40,6 @@ func (m *MockBeaconServiceServer) EXPECT() *MockBeaconServiceServerMockRecorder
// BlockTree mocks base method
func (m *MockBeaconServiceServer) BlockTree(arg0 context.Context, arg1 *types.Empty) (*v10.BlockTreeResponse, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "BlockTree", arg0, arg1)
ret0, _ := ret[0].(*v10.BlockTreeResponse)
ret1, _ := ret[1].(error)
@@ -48,13 +48,11 @@ func (m *MockBeaconServiceServer) BlockTree(arg0 context.Context, arg1 *types.Em
// BlockTree indicates an expected call of BlockTree
func (mr *MockBeaconServiceServerMockRecorder) BlockTree(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BlockTree", reflect.TypeOf((*MockBeaconServiceServer)(nil).BlockTree), arg0, arg1)
}
// CanonicalHead mocks base method
func (m *MockBeaconServiceServer) CanonicalHead(arg0 context.Context, arg1 *types.Empty) (*v1.BeaconBlock, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "CanonicalHead", arg0, arg1)
ret0, _ := ret[0].(*v1.BeaconBlock)
ret1, _ := ret[1].(error)
@@ -63,13 +61,11 @@ func (m *MockBeaconServiceServer) CanonicalHead(arg0 context.Context, arg1 *type
// CanonicalHead indicates an expected call of CanonicalHead
func (mr *MockBeaconServiceServerMockRecorder) CanonicalHead(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CanonicalHead", reflect.TypeOf((*MockBeaconServiceServer)(nil).CanonicalHead), arg0, arg1)
}
// Eth1Data mocks base method
func (m *MockBeaconServiceServer) Eth1Data(arg0 context.Context, arg1 *types.Empty) (*v10.Eth1DataResponse, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Eth1Data", arg0, arg1)
ret0, _ := ret[0].(*v10.Eth1DataResponse)
ret1, _ := ret[1].(error)
@@ -78,13 +74,11 @@ func (m *MockBeaconServiceServer) Eth1Data(arg0 context.Context, arg1 *types.Emp
// Eth1Data indicates an expected call of Eth1Data
func (mr *MockBeaconServiceServerMockRecorder) Eth1Data(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Eth1Data", reflect.TypeOf((*MockBeaconServiceServer)(nil).Eth1Data), arg0, arg1)
}
// ForkData mocks base method
func (m *MockBeaconServiceServer) ForkData(arg0 context.Context, arg1 *types.Empty) (*v1.Fork, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ForkData", arg0, arg1)
ret0, _ := ret[0].(*v1.Fork)
ret1, _ := ret[1].(error)
@@ -93,13 +87,11 @@ func (m *MockBeaconServiceServer) ForkData(arg0 context.Context, arg1 *types.Emp
// ForkData indicates an expected call of ForkData
func (mr *MockBeaconServiceServerMockRecorder) ForkData(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ForkData", reflect.TypeOf((*MockBeaconServiceServer)(nil).ForkData), arg0, arg1)
}
// LatestAttestation mocks base method
func (m *MockBeaconServiceServer) LatestAttestation(arg0 *types.Empty, arg1 v10.BeaconService_LatestAttestationServer) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "LatestAttestation", arg0, arg1)
ret0, _ := ret[0].(error)
return ret0
@@ -107,13 +99,11 @@ func (m *MockBeaconServiceServer) LatestAttestation(arg0 *types.Empty, arg1 v10.
// LatestAttestation indicates an expected call of LatestAttestation
func (mr *MockBeaconServiceServerMockRecorder) LatestAttestation(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LatestAttestation", reflect.TypeOf((*MockBeaconServiceServer)(nil).LatestAttestation), arg0, arg1)
}
// PendingDeposits mocks base method
func (m *MockBeaconServiceServer) PendingDeposits(arg0 context.Context, arg1 *types.Empty) (*v10.PendingDepositsResponse, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "PendingDeposits", arg0, arg1)
ret0, _ := ret[0].(*v10.PendingDepositsResponse)
ret1, _ := ret[1].(error)
@@ -122,13 +112,11 @@ func (m *MockBeaconServiceServer) PendingDeposits(arg0 context.Context, arg1 *ty
// PendingDeposits indicates an expected call of PendingDeposits
func (mr *MockBeaconServiceServerMockRecorder) PendingDeposits(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PendingDeposits", reflect.TypeOf((*MockBeaconServiceServer)(nil).PendingDeposits), arg0, arg1)
}
// WaitForChainStart mocks base method
func (m *MockBeaconServiceServer) WaitForChainStart(arg0 *types.Empty, arg1 v10.BeaconService_WaitForChainStartServer) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "WaitForChainStart", arg0, arg1)
ret0, _ := ret[0].(error)
return ret0
@@ -136,129 +124,9 @@ func (m *MockBeaconServiceServer) WaitForChainStart(arg0 *types.Empty, arg1 v10.
// WaitForChainStart indicates an expected call of WaitForChainStart
func (mr *MockBeaconServiceServerMockRecorder) WaitForChainStart(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitForChainStart", reflect.TypeOf((*MockBeaconServiceServer)(nil).WaitForChainStart), arg0, arg1)
}
// MockBeaconService_WaitForChainStartServer is a mock of BeaconService_WaitForChainStartServer interface
type MockBeaconService_WaitForChainStartServer struct {
ctrl *gomock.Controller
recorder *MockBeaconService_WaitForChainStartServerMockRecorder
}
// MockBeaconService_WaitForChainStartServerMockRecorder is the mock recorder for MockBeaconService_WaitForChainStartServer
type MockBeaconService_WaitForChainStartServerMockRecorder struct {
mock *MockBeaconService_WaitForChainStartServer
}
// NewMockBeaconService_WaitForChainStartServer creates a new mock instance
func NewMockBeaconService_WaitForChainStartServer(ctrl *gomock.Controller) *MockBeaconService_WaitForChainStartServer {
mock := &MockBeaconService_WaitForChainStartServer{ctrl: ctrl}
mock.recorder = &MockBeaconService_WaitForChainStartServerMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use
func (m *MockBeaconService_WaitForChainStartServer) EXPECT() *MockBeaconService_WaitForChainStartServerMockRecorder {
return m.recorder
}
// Context mocks base method
func (m *MockBeaconService_WaitForChainStartServer) Context() context.Context {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Context")
ret0, _ := ret[0].(context.Context)
return ret0
}
// Context indicates an expected call of Context
func (mr *MockBeaconService_WaitForChainStartServerMockRecorder) Context() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Context", reflect.TypeOf((*MockBeaconService_WaitForChainStartServer)(nil).Context))
}
// RecvMsg mocks base method
func (m *MockBeaconService_WaitForChainStartServer) RecvMsg(arg0 interface{}) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "RecvMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// RecvMsg indicates an expected call of RecvMsg
func (mr *MockBeaconService_WaitForChainStartServerMockRecorder) RecvMsg(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockBeaconService_WaitForChainStartServer)(nil).RecvMsg), arg0)
}
// Send mocks base method
func (m *MockBeaconService_WaitForChainStartServer) Send(arg0 *v10.ChainStartResponse) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Send", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// Send indicates an expected call of Send
func (mr *MockBeaconService_WaitForChainStartServerMockRecorder) Send(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Send", reflect.TypeOf((*MockBeaconService_WaitForChainStartServer)(nil).Send), arg0)
}
// SendHeader mocks base method
func (m *MockBeaconService_WaitForChainStartServer) SendHeader(arg0 metadata.MD) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SendHeader", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// SendHeader indicates an expected call of SendHeader
func (mr *MockBeaconService_WaitForChainStartServerMockRecorder) SendHeader(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendHeader", reflect.TypeOf((*MockBeaconService_WaitForChainStartServer)(nil).SendHeader), arg0)
}
// SendMsg mocks base method
func (m *MockBeaconService_WaitForChainStartServer) SendMsg(arg0 interface{}) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SendMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// SendMsg indicates an expected call of SendMsg
func (mr *MockBeaconService_WaitForChainStartServerMockRecorder) SendMsg(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockBeaconService_WaitForChainStartServer)(nil).SendMsg), arg0)
}
// SetHeader mocks base method
func (m *MockBeaconService_WaitForChainStartServer) SetHeader(arg0 metadata.MD) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SetHeader", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// SetHeader indicates an expected call of SetHeader
func (mr *MockBeaconService_WaitForChainStartServerMockRecorder) SetHeader(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetHeader", reflect.TypeOf((*MockBeaconService_WaitForChainStartServer)(nil).SetHeader), arg0)
}
// SetTrailer mocks base method
func (m *MockBeaconService_WaitForChainStartServer) SetTrailer(arg0 metadata.MD) {
m.ctrl.T.Helper()
m.ctrl.Call(m, "SetTrailer", arg0)
}
// SetTrailer indicates an expected call of SetTrailer
func (mr *MockBeaconService_WaitForChainStartServerMockRecorder) SetTrailer(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTrailer", reflect.TypeOf((*MockBeaconService_WaitForChainStartServer)(nil).SetTrailer), arg0)
}
// MockBeaconService_LatestAttestationServer is a mock of BeaconService_LatestAttestationServer interface
type MockBeaconService_LatestAttestationServer struct {
ctrl *gomock.Controller
@@ -284,7 +152,6 @@ func (m *MockBeaconService_LatestAttestationServer) EXPECT() *MockBeaconService_
// Context mocks base method
func (m *MockBeaconService_LatestAttestationServer) Context() context.Context {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Context")
ret0, _ := ret[0].(context.Context)
return ret0
@@ -292,13 +159,11 @@ func (m *MockBeaconService_LatestAttestationServer) Context() context.Context {
// Context indicates an expected call of Context
func (mr *MockBeaconService_LatestAttestationServerMockRecorder) Context() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Context", reflect.TypeOf((*MockBeaconService_LatestAttestationServer)(nil).Context))
}
// RecvMsg mocks base method
func (m *MockBeaconService_LatestAttestationServer) RecvMsg(arg0 interface{}) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "RecvMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
@@ -306,13 +171,11 @@ func (m *MockBeaconService_LatestAttestationServer) RecvMsg(arg0 interface{}) er
// RecvMsg indicates an expected call of RecvMsg
func (mr *MockBeaconService_LatestAttestationServerMockRecorder) RecvMsg(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockBeaconService_LatestAttestationServer)(nil).RecvMsg), arg0)
}
// Send mocks base method
func (m *MockBeaconService_LatestAttestationServer) Send(arg0 *v1.Attestation) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Send", arg0)
ret0, _ := ret[0].(error)
return ret0
@@ -320,13 +183,11 @@ func (m *MockBeaconService_LatestAttestationServer) Send(arg0 *v1.Attestation) e
// Send indicates an expected call of Send
func (mr *MockBeaconService_LatestAttestationServerMockRecorder) Send(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Send", reflect.TypeOf((*MockBeaconService_LatestAttestationServer)(nil).Send), arg0)
}
// SendHeader mocks base method
func (m *MockBeaconService_LatestAttestationServer) SendHeader(arg0 metadata.MD) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SendHeader", arg0)
ret0, _ := ret[0].(error)
return ret0
@@ -334,13 +195,11 @@ func (m *MockBeaconService_LatestAttestationServer) SendHeader(arg0 metadata.MD)
// SendHeader indicates an expected call of SendHeader
func (mr *MockBeaconService_LatestAttestationServerMockRecorder) SendHeader(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendHeader", reflect.TypeOf((*MockBeaconService_LatestAttestationServer)(nil).SendHeader), arg0)
}
// SendMsg mocks base method
func (m *MockBeaconService_LatestAttestationServer) SendMsg(arg0 interface{}) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SendMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
@@ -348,13 +207,11 @@ func (m *MockBeaconService_LatestAttestationServer) SendMsg(arg0 interface{}) er
// SendMsg indicates an expected call of SendMsg
func (mr *MockBeaconService_LatestAttestationServerMockRecorder) SendMsg(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockBeaconService_LatestAttestationServer)(nil).SendMsg), arg0)
}
// SetHeader mocks base method
func (m *MockBeaconService_LatestAttestationServer) SetHeader(arg0 metadata.MD) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SetHeader", arg0)
ret0, _ := ret[0].(error)
return ret0
@@ -362,18 +219,120 @@ func (m *MockBeaconService_LatestAttestationServer) SetHeader(arg0 metadata.MD)
// SetHeader indicates an expected call of SetHeader
func (mr *MockBeaconService_LatestAttestationServerMockRecorder) SetHeader(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetHeader", reflect.TypeOf((*MockBeaconService_LatestAttestationServer)(nil).SetHeader), arg0)
}
// SetTrailer mocks base method
func (m *MockBeaconService_LatestAttestationServer) SetTrailer(arg0 metadata.MD) {
m.ctrl.T.Helper()
m.ctrl.Call(m, "SetTrailer", arg0)
}
// SetTrailer indicates an expected call of SetTrailer
func (mr *MockBeaconService_LatestAttestationServerMockRecorder) SetTrailer(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTrailer", reflect.TypeOf((*MockBeaconService_LatestAttestationServer)(nil).SetTrailer), arg0)
}
// MockBeaconService_WaitForChainStartServer is a mock of BeaconService_WaitForChainStartServer interface
type MockBeaconService_WaitForChainStartServer struct {
ctrl *gomock.Controller
recorder *MockBeaconService_WaitForChainStartServerMockRecorder
}
// MockBeaconService_WaitForChainStartServerMockRecorder is the mock recorder for MockBeaconService_WaitForChainStartServer
type MockBeaconService_WaitForChainStartServerMockRecorder struct {
mock *MockBeaconService_WaitForChainStartServer
}
// NewMockBeaconService_WaitForChainStartServer creates a new mock instance
func NewMockBeaconService_WaitForChainStartServer(ctrl *gomock.Controller) *MockBeaconService_WaitForChainStartServer {
mock := &MockBeaconService_WaitForChainStartServer{ctrl: ctrl}
mock.recorder = &MockBeaconService_WaitForChainStartServerMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use
func (m *MockBeaconService_WaitForChainStartServer) EXPECT() *MockBeaconService_WaitForChainStartServerMockRecorder {
return m.recorder
}
// Context mocks base method
func (m *MockBeaconService_WaitForChainStartServer) Context() context.Context {
ret := m.ctrl.Call(m, "Context")
ret0, _ := ret[0].(context.Context)
return ret0
}
// Context indicates an expected call of Context
func (mr *MockBeaconService_WaitForChainStartServerMockRecorder) Context() *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Context", reflect.TypeOf((*MockBeaconService_WaitForChainStartServer)(nil).Context))
}
// RecvMsg mocks base method
func (m *MockBeaconService_WaitForChainStartServer) RecvMsg(arg0 interface{}) error {
ret := m.ctrl.Call(m, "RecvMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// RecvMsg indicates an expected call of RecvMsg
func (mr *MockBeaconService_WaitForChainStartServerMockRecorder) RecvMsg(arg0 interface{}) *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockBeaconService_WaitForChainStartServer)(nil).RecvMsg), arg0)
}
// Send mocks base method
func (m *MockBeaconService_WaitForChainStartServer) Send(arg0 *v10.ChainStartResponse) error {
ret := m.ctrl.Call(m, "Send", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// Send indicates an expected call of Send
func (mr *MockBeaconService_WaitForChainStartServerMockRecorder) Send(arg0 interface{}) *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Send", reflect.TypeOf((*MockBeaconService_WaitForChainStartServer)(nil).Send), arg0)
}
// SendHeader mocks base method
func (m *MockBeaconService_WaitForChainStartServer) SendHeader(arg0 metadata.MD) error {
ret := m.ctrl.Call(m, "SendHeader", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// SendHeader indicates an expected call of SendHeader
func (mr *MockBeaconService_WaitForChainStartServerMockRecorder) SendHeader(arg0 interface{}) *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendHeader", reflect.TypeOf((*MockBeaconService_WaitForChainStartServer)(nil).SendHeader), arg0)
}
// SendMsg mocks base method
func (m *MockBeaconService_WaitForChainStartServer) SendMsg(arg0 interface{}) error {
ret := m.ctrl.Call(m, "SendMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// SendMsg indicates an expected call of SendMsg
func (mr *MockBeaconService_WaitForChainStartServerMockRecorder) SendMsg(arg0 interface{}) *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockBeaconService_WaitForChainStartServer)(nil).SendMsg), arg0)
}
// SetHeader mocks base method
func (m *MockBeaconService_WaitForChainStartServer) SetHeader(arg0 metadata.MD) error {
ret := m.ctrl.Call(m, "SetHeader", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// SetHeader indicates an expected call of SetHeader
func (mr *MockBeaconService_WaitForChainStartServerMockRecorder) SetHeader(arg0 interface{}) *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetHeader", reflect.TypeOf((*MockBeaconService_WaitForChainStartServer)(nil).SetHeader), arg0)
}
// SetTrailer mocks base method
func (m *MockBeaconService_WaitForChainStartServer) SetTrailer(arg0 metadata.MD) {
m.ctrl.Call(m, "SetTrailer", arg0)
}
// SetTrailer indicates an expected call of SetTrailer
func (mr *MockBeaconService_WaitForChainStartServerMockRecorder) SetTrailer(arg0 interface{}) *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTrailer", reflect.TypeOf((*MockBeaconService_WaitForChainStartServer)(nil).SetTrailer), arg0)
}

View File

@@ -38,7 +38,6 @@ func (m *MockValidatorServiceServer) EXPECT() *MockValidatorServiceServerMockRec
// CommitteeAssignment mocks base method
func (m *MockValidatorServiceServer) CommitteeAssignment(arg0 context.Context, arg1 *v1.CommitteeAssignmentsRequest) (*v1.CommitteeAssignmentResponse, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "CommitteeAssignment", arg0, arg1)
ret0, _ := ret[0].(*v1.CommitteeAssignmentResponse)
ret1, _ := ret[1].(error)
@@ -47,13 +46,24 @@ func (m *MockValidatorServiceServer) CommitteeAssignment(arg0 context.Context, a
// CommitteeAssignment indicates an expected call of CommitteeAssignment
func (mr *MockValidatorServiceServerMockRecorder) CommitteeAssignment(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CommitteeAssignment", reflect.TypeOf((*MockValidatorServiceServer)(nil).CommitteeAssignment), arg0, arg1)
}
// ExitedValidators mocks base method
func (m *MockValidatorServiceServer) ExitedValidators(arg0 context.Context, arg1 *v1.ExitedValidatorsRequest) (*v1.ExitedValidatorsResponse, error) {
ret := m.ctrl.Call(m, "ExitedValidators", arg0, arg1)
ret0, _ := ret[0].(*v1.ExitedValidatorsResponse)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// ExitedValidators indicates an expected call of ExitedValidators
func (mr *MockValidatorServiceServerMockRecorder) ExitedValidators(arg0, arg1 interface{}) *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExitedValidators", reflect.TypeOf((*MockValidatorServiceServer)(nil).ExitedValidators), arg0, arg1)
}
// ValidatorIndex mocks base method
func (m *MockValidatorServiceServer) ValidatorIndex(arg0 context.Context, arg1 *v1.ValidatorIndexRequest) (*v1.ValidatorIndexResponse, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ValidatorIndex", arg0, arg1)
ret0, _ := ret[0].(*v1.ValidatorIndexResponse)
ret1, _ := ret[1].(error)
@@ -62,13 +72,11 @@ func (m *MockValidatorServiceServer) ValidatorIndex(arg0 context.Context, arg1 *
// ValidatorIndex indicates an expected call of ValidatorIndex
func (mr *MockValidatorServiceServerMockRecorder) ValidatorIndex(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidatorIndex", reflect.TypeOf((*MockValidatorServiceServer)(nil).ValidatorIndex), arg0, arg1)
}
// ValidatorPerformance mocks base method
func (m *MockValidatorServiceServer) ValidatorPerformance(arg0 context.Context, arg1 *v1.ValidatorPerformanceRequest) (*v1.ValidatorPerformanceResponse, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ValidatorPerformance", arg0, arg1)
ret0, _ := ret[0].(*v1.ValidatorPerformanceResponse)
ret1, _ := ret[1].(error)
@@ -77,13 +85,11 @@ func (m *MockValidatorServiceServer) ValidatorPerformance(arg0 context.Context,
// ValidatorPerformance indicates an expected call of ValidatorPerformance
func (mr *MockValidatorServiceServerMockRecorder) ValidatorPerformance(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidatorPerformance", reflect.TypeOf((*MockValidatorServiceServer)(nil).ValidatorPerformance), arg0, arg1)
}
// ValidatorStatus mocks base method
func (m *MockValidatorServiceServer) ValidatorStatus(arg0 context.Context, arg1 *v1.ValidatorIndexRequest) (*v1.ValidatorStatusResponse, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ValidatorStatus", arg0, arg1)
ret0, _ := ret[0].(*v1.ValidatorStatusResponse)
ret1, _ := ret[1].(error)
@@ -92,13 +98,11 @@ func (m *MockValidatorServiceServer) ValidatorStatus(arg0 context.Context, arg1
// ValidatorStatus indicates an expected call of ValidatorStatus
func (mr *MockValidatorServiceServerMockRecorder) ValidatorStatus(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidatorStatus", reflect.TypeOf((*MockValidatorServiceServer)(nil).ValidatorStatus), arg0, arg1)
}
// WaitForActivation mocks base method
func (m *MockValidatorServiceServer) WaitForActivation(arg0 *v1.ValidatorActivationRequest, arg1 v1.ValidatorService_WaitForActivationServer) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "WaitForActivation", arg0, arg1)
ret0, _ := ret[0].(error)
return ret0
@@ -106,7 +110,6 @@ func (m *MockValidatorServiceServer) WaitForActivation(arg0 *v1.ValidatorActivat
// WaitForActivation indicates an expected call of WaitForActivation
func (mr *MockValidatorServiceServerMockRecorder) WaitForActivation(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitForActivation", reflect.TypeOf((*MockValidatorServiceServer)(nil).WaitForActivation), arg0, arg1)
}
@@ -135,7 +138,6 @@ func (m *MockValidatorService_WaitForActivationServer) EXPECT() *MockValidatorSe
// Context mocks base method
func (m *MockValidatorService_WaitForActivationServer) Context() context.Context {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Context")
ret0, _ := ret[0].(context.Context)
return ret0
@@ -143,13 +145,11 @@ func (m *MockValidatorService_WaitForActivationServer) Context() context.Context
// Context indicates an expected call of Context
func (mr *MockValidatorService_WaitForActivationServerMockRecorder) Context() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Context", reflect.TypeOf((*MockValidatorService_WaitForActivationServer)(nil).Context))
}
// RecvMsg mocks base method
func (m *MockValidatorService_WaitForActivationServer) RecvMsg(arg0 interface{}) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "RecvMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
@@ -157,13 +157,11 @@ func (m *MockValidatorService_WaitForActivationServer) RecvMsg(arg0 interface{})
// RecvMsg indicates an expected call of RecvMsg
func (mr *MockValidatorService_WaitForActivationServerMockRecorder) RecvMsg(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockValidatorService_WaitForActivationServer)(nil).RecvMsg), arg0)
}
// Send mocks base method
func (m *MockValidatorService_WaitForActivationServer) Send(arg0 *v1.ValidatorActivationResponse) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Send", arg0)
ret0, _ := ret[0].(error)
return ret0
@@ -171,13 +169,11 @@ func (m *MockValidatorService_WaitForActivationServer) Send(arg0 *v1.ValidatorAc
// Send indicates an expected call of Send
func (mr *MockValidatorService_WaitForActivationServerMockRecorder) Send(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Send", reflect.TypeOf((*MockValidatorService_WaitForActivationServer)(nil).Send), arg0)
}
// SendHeader mocks base method
func (m *MockValidatorService_WaitForActivationServer) SendHeader(arg0 metadata.MD) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SendHeader", arg0)
ret0, _ := ret[0].(error)
return ret0
@@ -185,13 +181,11 @@ func (m *MockValidatorService_WaitForActivationServer) SendHeader(arg0 metadata.
// SendHeader indicates an expected call of SendHeader
func (mr *MockValidatorService_WaitForActivationServerMockRecorder) SendHeader(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendHeader", reflect.TypeOf((*MockValidatorService_WaitForActivationServer)(nil).SendHeader), arg0)
}
// SendMsg mocks base method
func (m *MockValidatorService_WaitForActivationServer) SendMsg(arg0 interface{}) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SendMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
@@ -199,13 +193,11 @@ func (m *MockValidatorService_WaitForActivationServer) SendMsg(arg0 interface{})
// SendMsg indicates an expected call of SendMsg
func (mr *MockValidatorService_WaitForActivationServerMockRecorder) SendMsg(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockValidatorService_WaitForActivationServer)(nil).SendMsg), arg0)
}
// SetHeader mocks base method
func (m *MockValidatorService_WaitForActivationServer) SetHeader(arg0 metadata.MD) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SetHeader", arg0)
ret0, _ := ret[0].(error)
return ret0
@@ -213,18 +205,15 @@ func (m *MockValidatorService_WaitForActivationServer) SetHeader(arg0 metadata.M
// SetHeader indicates an expected call of SetHeader
func (mr *MockValidatorService_WaitForActivationServerMockRecorder) SetHeader(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetHeader", reflect.TypeOf((*MockValidatorService_WaitForActivationServer)(nil).SetHeader), arg0)
}
// SetTrailer mocks base method
func (m *MockValidatorService_WaitForActivationServer) SetTrailer(arg0 metadata.MD) {
m.ctrl.T.Helper()
m.ctrl.Call(m, "SetTrailer", arg0)
}
// SetTrailer indicates an expected call of SetTrailer
func (mr *MockValidatorService_WaitForActivationServerMockRecorder) SetTrailer(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTrailer", reflect.TypeOf((*MockValidatorService_WaitForActivationServer)(nil).SetTrailer), arg0)
}

View File

@@ -260,6 +260,9 @@ func (vs *ValidatorServer) MultipleValidatorStatus(
return false, nil, ctx.Err()
}
status := vs.validatorStatus(ctx, key, chainStarted, chainStartKeys, validatorIndexMap, beaconState)
if status == nil {
continue
}
resp := &pb.ValidatorActivationResponse_Status{
Status: status,
PublicKey: key,
@@ -273,6 +276,34 @@ func (vs *ValidatorServer) MultipleValidatorStatus(
return activeValidatorExists, statusResponses, nil
}
// ExitedValidators queries validator statuses for a give list of validators
// and returns a filtered list of validator keys that are exited.
func (vs *ValidatorServer) ExitedValidators(
ctx context.Context,
req *pb.ExitedValidatorsRequest) (*pb.ExitedValidatorsResponse, error) {
_, statuses, err := vs.MultipleValidatorStatus(ctx, req.PublicKeys)
if err != nil {
return nil, err
}
exitedKeys := make([][]byte, 0)
for _, status := range statuses {
s := status.Status.Status
if s == pb.ValidatorStatus_EXITED ||
s == pb.ValidatorStatus_EXITED_SLASHED ||
s == pb.ValidatorStatus_INITIATED_EXIT {
exitedKeys = append(exitedKeys, status.PublicKey)
}
}
resp := &pb.ExitedValidatorsResponse{
PublicKeys: exitedKeys,
}
return resp, nil
}
func (vs *ValidatorServer) validatorStatus(
ctx context.Context, pubKey []byte, chainStarted bool,
chainStartKeys map[[96]byte]bool, idxMap map[[32]byte]int,

View File

@@ -61,6 +61,7 @@ spec:
- --deposit-amount=3200000000000000000
- --db-path=/data
- --verbose
- --beaconRPC=beacon-chain.beacon-chain.svc.cluster.local:4000
ports:
- containerPort: 8000
name: grpc-service

View File

@@ -379,6 +379,100 @@ func (m *ValidatorActivationResponse_Status) GetStatus() *ValidatorStatusRespons
return nil
}
type ExitedValidatorsRequest struct {
PublicKeys [][]byte `protobuf:"bytes,1,rep,name=public_keys,json=publicKeys,proto3" json:"public_keys,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ExitedValidatorsRequest) Reset() { *m = ExitedValidatorsRequest{} }
func (m *ExitedValidatorsRequest) String() string { return proto.CompactTextString(m) }
func (*ExitedValidatorsRequest) ProtoMessage() {}
func (*ExitedValidatorsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{4}
}
func (m *ExitedValidatorsRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *ExitedValidatorsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_ExitedValidatorsRequest.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalTo(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *ExitedValidatorsRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_ExitedValidatorsRequest.Merge(m, src)
}
func (m *ExitedValidatorsRequest) XXX_Size() int {
return m.Size()
}
func (m *ExitedValidatorsRequest) XXX_DiscardUnknown() {
xxx_messageInfo_ExitedValidatorsRequest.DiscardUnknown(m)
}
var xxx_messageInfo_ExitedValidatorsRequest proto.InternalMessageInfo
func (m *ExitedValidatorsRequest) GetPublicKeys() [][]byte {
if m != nil {
return m.PublicKeys
}
return nil
}
type ExitedValidatorsResponse struct {
PublicKeys [][]byte `protobuf:"bytes,1,rep,name=public_keys,json=publicKeys,proto3" json:"public_keys,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ExitedValidatorsResponse) Reset() { *m = ExitedValidatorsResponse{} }
func (m *ExitedValidatorsResponse) String() string { return proto.CompactTextString(m) }
func (*ExitedValidatorsResponse) ProtoMessage() {}
func (*ExitedValidatorsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{5}
}
func (m *ExitedValidatorsResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *ExitedValidatorsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_ExitedValidatorsResponse.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalTo(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *ExitedValidatorsResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_ExitedValidatorsResponse.Merge(m, src)
}
func (m *ExitedValidatorsResponse) XXX_Size() int {
return m.Size()
}
func (m *ExitedValidatorsResponse) XXX_DiscardUnknown() {
xxx_messageInfo_ExitedValidatorsResponse.DiscardUnknown(m)
}
var xxx_messageInfo_ExitedValidatorsResponse proto.InternalMessageInfo
func (m *ExitedValidatorsResponse) GetPublicKeys() [][]byte {
if m != nil {
return m.PublicKeys
}
return nil
}
type AttestationDataRequest struct {
Shard uint64 `protobuf:"varint,1,opt,name=shard,proto3" json:"shard,omitempty"`
Slot uint64 `protobuf:"varint,2,opt,name=slot,proto3" json:"slot,omitempty"`
@@ -391,7 +485,7 @@ func (m *AttestationDataRequest) Reset() { *m = AttestationDataRequest{}
func (m *AttestationDataRequest) String() string { return proto.CompactTextString(m) }
func (*AttestationDataRequest) ProtoMessage() {}
func (*AttestationDataRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{4}
return fileDescriptor_9eb4e94b85965285, []int{6}
}
func (m *AttestationDataRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -450,7 +544,7 @@ func (m *AttestationDataResponse) Reset() { *m = AttestationDataResponse
func (m *AttestationDataResponse) String() string { return proto.CompactTextString(m) }
func (*AttestationDataResponse) ProtoMessage() {}
func (*AttestationDataResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{5}
return fileDescriptor_9eb4e94b85965285, []int{7}
}
func (m *AttestationDataResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -533,7 +627,7 @@ func (m *PendingAttestationsRequest) Reset() { *m = PendingAttestationsR
func (m *PendingAttestationsRequest) String() string { return proto.CompactTextString(m) }
func (*PendingAttestationsRequest) ProtoMessage() {}
func (*PendingAttestationsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{6}
return fileDescriptor_9eb4e94b85965285, []int{8}
}
func (m *PendingAttestationsRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -587,7 +681,7 @@ func (m *PendingAttestationsResponse) Reset() { *m = PendingAttestations
func (m *PendingAttestationsResponse) String() string { return proto.CompactTextString(m) }
func (*PendingAttestationsResponse) ProtoMessage() {}
func (*PendingAttestationsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{7}
return fileDescriptor_9eb4e94b85965285, []int{9}
}
func (m *PendingAttestationsResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -635,7 +729,7 @@ func (m *ChainStartResponse) Reset() { *m = ChainStartResponse{} }
func (m *ChainStartResponse) String() string { return proto.CompactTextString(m) }
func (*ChainStartResponse) ProtoMessage() {}
func (*ChainStartResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{8}
return fileDescriptor_9eb4e94b85965285, []int{10}
}
func (m *ChainStartResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -694,7 +788,7 @@ func (m *ProposeRequest) Reset() { *m = ProposeRequest{} }
func (m *ProposeRequest) String() string { return proto.CompactTextString(m) }
func (*ProposeRequest) ProtoMessage() {}
func (*ProposeRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{9}
return fileDescriptor_9eb4e94b85965285, []int{11}
}
func (m *ProposeRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -776,7 +870,7 @@ func (m *ProposeResponse) Reset() { *m = ProposeResponse{} }
func (m *ProposeResponse) String() string { return proto.CompactTextString(m) }
func (*ProposeResponse) ProtoMessage() {}
func (*ProposeResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{10}
return fileDescriptor_9eb4e94b85965285, []int{12}
}
func (m *ProposeResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -823,7 +917,7 @@ func (m *ProposerIndexRequest) Reset() { *m = ProposerIndexRequest{} }
func (m *ProposerIndexRequest) String() string { return proto.CompactTextString(m) }
func (*ProposerIndexRequest) ProtoMessage() {}
func (*ProposerIndexRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{11}
return fileDescriptor_9eb4e94b85965285, []int{13}
}
func (m *ProposerIndexRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -870,7 +964,7 @@ func (m *ProposerIndexResponse) Reset() { *m = ProposerIndexResponse{} }
func (m *ProposerIndexResponse) String() string { return proto.CompactTextString(m) }
func (*ProposerIndexResponse) ProtoMessage() {}
func (*ProposerIndexResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{12}
return fileDescriptor_9eb4e94b85965285, []int{14}
}
func (m *ProposerIndexResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -917,7 +1011,7 @@ func (m *StateRootResponse) Reset() { *m = StateRootResponse{} }
func (m *StateRootResponse) String() string { return proto.CompactTextString(m) }
func (*StateRootResponse) ProtoMessage() {}
func (*StateRootResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{13}
return fileDescriptor_9eb4e94b85965285, []int{15}
}
func (m *StateRootResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -964,7 +1058,7 @@ func (m *AttestResponse) Reset() { *m = AttestResponse{} }
func (m *AttestResponse) String() string { return proto.CompactTextString(m) }
func (*AttestResponse) ProtoMessage() {}
func (*AttestResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{14}
return fileDescriptor_9eb4e94b85965285, []int{16}
}
func (m *AttestResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1011,7 +1105,7 @@ func (m *ValidatorIndexRequest) Reset() { *m = ValidatorIndexRequest{} }
func (m *ValidatorIndexRequest) String() string { return proto.CompactTextString(m) }
func (*ValidatorIndexRequest) ProtoMessage() {}
func (*ValidatorIndexRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{15}
return fileDescriptor_9eb4e94b85965285, []int{17}
}
func (m *ValidatorIndexRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1058,7 +1152,7 @@ func (m *ValidatorIndexResponse) Reset() { *m = ValidatorIndexResponse{}
func (m *ValidatorIndexResponse) String() string { return proto.CompactTextString(m) }
func (*ValidatorIndexResponse) ProtoMessage() {}
func (*ValidatorIndexResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{16}
return fileDescriptor_9eb4e94b85965285, []int{18}
}
func (m *ValidatorIndexResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1106,7 +1200,7 @@ func (m *CommitteeAssignmentsRequest) Reset() { *m = CommitteeAssignment
func (m *CommitteeAssignmentsRequest) String() string { return proto.CompactTextString(m) }
func (*CommitteeAssignmentsRequest) ProtoMessage() {}
func (*CommitteeAssignmentsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{17}
return fileDescriptor_9eb4e94b85965285, []int{19}
}
func (m *CommitteeAssignmentsRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1160,7 +1254,7 @@ func (m *PendingDepositsResponse) Reset() { *m = PendingDepositsResponse
func (m *PendingDepositsResponse) String() string { return proto.CompactTextString(m) }
func (*PendingDepositsResponse) ProtoMessage() {}
func (*PendingDepositsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{18}
return fileDescriptor_9eb4e94b85965285, []int{20}
}
func (m *PendingDepositsResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1207,7 +1301,7 @@ func (m *CommitteeAssignmentResponse) Reset() { *m = CommitteeAssignment
func (m *CommitteeAssignmentResponse) String() string { return proto.CompactTextString(m) }
func (*CommitteeAssignmentResponse) ProtoMessage() {}
func (*CommitteeAssignmentResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{19}
return fileDescriptor_9eb4e94b85965285, []int{21}
}
func (m *CommitteeAssignmentResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1263,7 +1357,7 @@ func (m *CommitteeAssignmentResponse_CommitteeAssignment) String() string {
}
func (*CommitteeAssignmentResponse_CommitteeAssignment) ProtoMessage() {}
func (*CommitteeAssignmentResponse_CommitteeAssignment) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{19, 0}
return fileDescriptor_9eb4e94b85965285, []int{21, 0}
}
func (m *CommitteeAssignmentResponse_CommitteeAssignment) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1349,7 +1443,7 @@ func (m *ValidatorStatusResponse) Reset() { *m = ValidatorStatusResponse
func (m *ValidatorStatusResponse) String() string { return proto.CompactTextString(m) }
func (*ValidatorStatusResponse) ProtoMessage() {}
func (*ValidatorStatusResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{20}
return fileDescriptor_9eb4e94b85965285, []int{22}
}
func (m *ValidatorStatusResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1424,7 +1518,7 @@ func (m *Eth1DataResponse) Reset() { *m = Eth1DataResponse{} }
func (m *Eth1DataResponse) String() string { return proto.CompactTextString(m) }
func (*Eth1DataResponse) ProtoMessage() {}
func (*Eth1DataResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{21}
return fileDescriptor_9eb4e94b85965285, []int{23}
}
func (m *Eth1DataResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1471,7 +1565,7 @@ func (m *BlockTreeResponse) Reset() { *m = BlockTreeResponse{} }
func (m *BlockTreeResponse) String() string { return proto.CompactTextString(m) }
func (*BlockTreeResponse) ProtoMessage() {}
func (*BlockTreeResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{22}
return fileDescriptor_9eb4e94b85965285, []int{24}
}
func (m *BlockTreeResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1520,7 +1614,7 @@ func (m *BlockTreeResponse_TreeNode) Reset() { *m = BlockTreeResponse_Tr
func (m *BlockTreeResponse_TreeNode) String() string { return proto.CompactTextString(m) }
func (*BlockTreeResponse_TreeNode) ProtoMessage() {}
func (*BlockTreeResponse_TreeNode) Descriptor() ([]byte, []int) {
return fileDescriptor_9eb4e94b85965285, []int{22, 0}
return fileDescriptor_9eb4e94b85965285, []int{24, 0}
}
func (m *BlockTreeResponse_TreeNode) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -1578,6 +1672,8 @@ func init() {
proto.RegisterType((*ValidatorActivationRequest)(nil), "ethereum.beacon.rpc.v1.ValidatorActivationRequest")
proto.RegisterType((*ValidatorActivationResponse)(nil), "ethereum.beacon.rpc.v1.ValidatorActivationResponse")
proto.RegisterType((*ValidatorActivationResponse_Status)(nil), "ethereum.beacon.rpc.v1.ValidatorActivationResponse.Status")
proto.RegisterType((*ExitedValidatorsRequest)(nil), "ethereum.beacon.rpc.v1.ExitedValidatorsRequest")
proto.RegisterType((*ExitedValidatorsResponse)(nil), "ethereum.beacon.rpc.v1.ExitedValidatorsResponse")
proto.RegisterType((*AttestationDataRequest)(nil), "ethereum.beacon.rpc.v1.AttestationDataRequest")
proto.RegisterType((*AttestationDataResponse)(nil), "ethereum.beacon.rpc.v1.AttestationDataResponse")
proto.RegisterType((*PendingAttestationsRequest)(nil), "ethereum.beacon.rpc.v1.PendingAttestationsRequest")
@@ -1604,123 +1700,125 @@ func init() {
func init() { proto.RegisterFile("proto/beacon/rpc/v1/services.proto", fileDescriptor_9eb4e94b85965285) }
var fileDescriptor_9eb4e94b85965285 = []byte{
// 1844 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x49, 0x6f, 0x1b, 0xc9,
0x15, 0x9e, 0xa6, 0x28, 0x0d, 0xf5, 0x48, 0x89, 0xad, 0xd2, 0xc6, 0xa1, 0xbc, 0x68, 0x7a, 0x80,
0x58, 0x36, 0x62, 0xca, 0x6e, 0x0f, 0x3c, 0x8b, 0x61, 0x4c, 0x48, 0x89, 0xb6, 0x99, 0x11, 0x68,
0xb9, 0xc9, 0xb1, 0x93, 0x20, 0x40, 0xa3, 0x48, 0x96, 0xa8, 0x8e, 0xc8, 0xae, 0x76, 0x57, 0x51,
0x18, 0xe5, 0x30, 0x41, 0x8e, 0x41, 0xfe, 0x43, 0xf2, 0x33, 0x72, 0xce, 0x6d, 0x8e, 0xb9, 0xe5,
0x16, 0x04, 0x46, 0x90, 0xfc, 0x88, 0x5c, 0x82, 0x5a, 0xba, 0xd9, 0x5c, 0x5a, 0x4b, 0x6e, 0xec,
0xb7, 0x55, 0xbd, 0xef, 0xad, 0x45, 0xb0, 0x82, 0x90, 0x72, 0xba, 0xdf, 0x21, 0xb8, 0x4b, 0xfd,
0xfd, 0x30, 0xe8, 0xee, 0x9f, 0x3f, 0xde, 0x67, 0x24, 0x3c, 0xf7, 0xba, 0x84, 0x55, 0x24, 0x13,
0x6d, 0x11, 0x7e, 0x4a, 0x42, 0x32, 0x1a, 0x56, 0x94, 0x58, 0x25, 0x0c, 0xba, 0x95, 0xf3, 0xc7,
0xe5, 0x9d, 0x3e, 0xa5, 0xfd, 0x01, 0xd9, 0x97, 0x52, 0x9d, 0xd1, 0xc9, 0x3e, 0x19, 0x06, 0xfc,
0x42, 0x29, 0x95, 0xef, 0x4e, 0x33, 0xb9, 0x37, 0x24, 0x8c, 0xe3, 0x61, 0x10, 0x09, 0x4c, 0x9c,
0x1c, 0xd8, 0x81, 0x38, 0x99, 0x5f, 0x04, 0xd1, 0xb1, 0xd6, 0x31, 0xec, 0xbc, 0xc5, 0x03, 0xaf,
0x87, 0x39, 0x0d, 0x8f, 0x49, 0x78, 0x42, 0xc3, 0x21, 0xf6, 0xbb, 0xc4, 0x21, 0xef, 0x47, 0x84,
0x71, 0x84, 0x20, 0xcb, 0x06, 0x94, 0x97, 0x8c, 0x5d, 0x63, 0x2f, 0xeb, 0xc8, 0xdf, 0xe8, 0x36,
0x40, 0x30, 0xea, 0x0c, 0xbc, 0xae, 0x7b, 0x46, 0x2e, 0x4a, 0x99, 0x5d, 0x63, 0xaf, 0xe0, 0x2c,
0x2b, 0xca, 0xb7, 0xe4, 0xc2, 0xfa, 0x97, 0x01, 0xb7, 0xe6, 0x9b, 0x64, 0x01, 0xf5, 0x19, 0x41,
0x25, 0xf8, 0xb8, 0x83, 0x07, 0x82, 0xa4, 0xcd, 0x46, 0x9f, 0xe8, 0x3e, 0x98, 0x9c, 0x72, 0x3c,
0x70, 0xcf, 0x23, 0x7d, 0x26, 0xed, 0x67, 0x9d, 0xa2, 0xa4, 0xc7, 0x66, 0x19, 0x7a, 0x0a, 0xdb,
0x4a, 0x14, 0x77, 0xb9, 0x77, 0x4e, 0x92, 0x1a, 0x0b, 0x52, 0x63, 0x53, 0xb2, 0xab, 0x92, 0x9b,
0xd0, 0x7b, 0x09, 0xbb, 0xf8, 0x9c, 0x84, 0xb8, 0x4f, 0x66, 0x34, 0xdd, 0xe8, 0x56, 0xd9, 0x5d,
0x63, 0x2f, 0xe3, 0xdc, 0xd6, 0x72, 0x53, 0x26, 0x6a, 0x4a, 0xc8, 0x7a, 0x0e, 0xe5, 0x98, 0x26,
0x45, 0x30, 0xf7, 0xa8, 0x1f, 0xe1, 0x76, 0x17, 0xf2, 0x63, 0x8c, 0x58, 0xc9, 0xd8, 0x5d, 0xd8,
0x2b, 0x38, 0x10, 0x83, 0xc4, 0xac, 0x3f, 0x67, 0x12, 0xc0, 0x27, 0xf5, 0x35, 0x48, 0x4f, 0x61,
0x13, 0x2b, 0x2a, 0xe9, 0xb9, 0x33, 0xa6, 0x6a, 0x99, 0x92, 0xe1, 0xac, 0xc7, 0x02, 0xc7, 0xb1,
0x5d, 0xf4, 0x16, 0x72, 0x8c, 0x63, 0x3e, 0x62, 0x44, 0x40, 0xb7, 0xb0, 0x97, 0xb7, 0xbf, 0xae,
0xcc, 0xcf, 0xac, 0xca, 0x25, 0xc7, 0x57, 0x5a, 0xd2, 0x86, 0x13, 0xdb, 0x2a, 0x07, 0xb0, 0xa4,
0x68, 0x53, 0xe1, 0x37, 0xa6, 0xc2, 0x8f, 0x5e, 0xc2, 0x92, 0x52, 0x92, 0x91, 0xcb, 0xdb, 0xfb,
0x57, 0x1e, 0xaf, 0xcf, 0xd2, 0x47, 0x3b, 0x5a, 0xdd, 0xaa, 0xc1, 0x56, 0x95, 0x73, 0x91, 0xcd,
0xe2, 0x66, 0x87, 0x98, 0xe3, 0x08, 0xdc, 0x0d, 0x58, 0x64, 0xa7, 0x38, 0xec, 0xe9, 0xf4, 0x51,
0x1f, 0x71, 0xaa, 0x66, 0xc6, 0xa9, 0x6a, 0x7d, 0xc8, 0xc0, 0xf6, 0x8c, 0x11, 0x8d, 0xf0, 0x17,
0x50, 0x52, 0x17, 0x72, 0x3b, 0x03, 0xda, 0x3d, 0x73, 0x43, 0x4a, 0xb9, 0x7b, 0x8a, 0xd9, 0xe9,
0x13, 0x5b, 0x7b, 0xb5, 0xa9, 0xf8, 0x35, 0xc1, 0x76, 0x28, 0xe5, 0xaf, 0x24, 0x13, 0x3d, 0x83,
0x32, 0x09, 0x68, 0xf7, 0xd4, 0xed, 0xd0, 0x91, 0xdf, 0xc3, 0xe1, 0xc5, 0x84, 0xaa, 0xaa, 0x87,
0x6d, 0x29, 0x51, 0xd3, 0x02, 0x09, 0xe5, 0x7b, 0x50, 0xfc, 0xcd, 0x88, 0x71, 0xef, 0xc4, 0x23,
0x3d, 0x57, 0x0a, 0xe9, 0x7c, 0x5d, 0x8d, 0xc9, 0x75, 0x41, 0x45, 0xcf, 0x61, 0x67, 0x2c, 0x38,
0x7b, 0xc3, 0xac, 0x3c, 0xa6, 0x14, 0x8b, 0x4c, 0x5f, 0xf2, 0x08, 0xcc, 0x01, 0x16, 0x8e, 0xbb,
0xdd, 0x90, 0x32, 0x36, 0xf0, 0xfc, 0xb3, 0xd2, 0xa2, 0x0c, 0xc8, 0xa7, 0x33, 0x01, 0x09, 0xec,
0x40, 0x04, 0xe4, 0x20, 0x12, 0x74, 0x8a, 0x4a, 0x35, 0x26, 0xa0, 0x1d, 0x58, 0x3e, 0x25, 0xb8,
0xe7, 0x4a, 0x80, 0x97, 0xe4, 0x7d, 0x73, 0x82, 0xd0, 0x12, 0x20, 0xff, 0xc1, 0x80, 0xf2, 0x31,
0xf1, 0x7b, 0x9e, 0xdf, 0x4f, 0x60, 0xcd, 0xa2, 0x68, 0x3d, 0x83, 0xf2, 0x89, 0x37, 0xe0, 0x24,
0x74, 0x43, 0x82, 0x7b, 0x17, 0xee, 0x09, 0x0d, 0x5d, 0xcf, 0xef, 0x0e, 0x46, 0xcc, 0xa3, 0xbe,
0x44, 0x3a, 0xe7, 0x6c, 0x2b, 0x09, 0x47, 0x08, 0xbc, 0xa0, 0x61, 0x23, 0x62, 0xa3, 0x0a, 0xac,
0x07, 0x21, 0x0d, 0x28, 0xc3, 0x03, 0x0d, 0x42, 0x22, 0xc6, 0x6b, 0x11, 0x4b, 0x3a, 0x2f, 0xef,
0x32, 0x82, 0x9d, 0xb9, 0x57, 0xd1, 0x31, 0x7f, 0x0b, 0x1b, 0x81, 0x62, 0xbb, 0x38, 0xc1, 0x97,
0x45, 0x95, 0xb7, 0x3f, 0x4b, 0x43, 0x26, 0x61, 0xcb, 0x59, 0x0f, 0x66, 0xed, 0x5b, 0x6f, 0x00,
0x1d, 0x9c, 0x62, 0xcf, 0x6f, 0x71, 0x1c, 0xf2, 0x64, 0xa3, 0x63, 0x82, 0x40, 0x7a, 0xda, 0xcd,
0xe8, 0x13, 0x7d, 0x0a, 0x85, 0x3e, 0xf1, 0x09, 0xf3, 0x98, 0x2b, 0x3a, 0xb6, 0xf6, 0x27, 0xaf,
0x69, 0x6d, 0x6f, 0x48, 0xac, 0x3f, 0x65, 0x60, 0xf5, 0x58, 0xfa, 0x47, 0x92, 0x4d, 0x05, 0x87,
0xc4, 0x57, 0x49, 0xa0, 0x93, 0x14, 0x14, 0x49, 0x84, 0x5d, 0x08, 0x08, 0x78, 0x5c, 0x7f, 0x34,
0xec, 0x90, 0x50, 0x5b, 0x05, 0x41, 0x6a, 0x4a, 0x0a, 0xfa, 0x0c, 0x56, 0x42, 0xec, 0xf7, 0x30,
0x75, 0x43, 0x72, 0x4e, 0xf0, 0x40, 0xe6, 0x5e, 0xc1, 0x29, 0x28, 0xa2, 0x23, 0x69, 0x68, 0x1f,
0xd6, 0x13, 0xe0, 0xb8, 0x1d, 0x8f, 0x0f, 0x31, 0x3b, 0xd3, 0x19, 0x87, 0x12, 0xac, 0x9a, 0xe2,
0xa0, 0xaf, 0xe1, 0x93, 0xa4, 0x02, 0xee, 0xf7, 0x43, 0xd2, 0xc7, 0x9c, 0xb8, 0xcc, 0xeb, 0x97,
0x16, 0x77, 0x17, 0xf6, 0xb2, 0xce, 0x76, 0x42, 0xa0, 0x1a, 0xf1, 0x5b, 0x5e, 0x1f, 0x7d, 0x09,
0xcb, 0xf1, 0xcc, 0x92, 0x99, 0x95, 0xb7, 0xcb, 0x15, 0x35, 0xd5, 0x2a, 0xd1, 0x54, 0xab, 0xb4,
0x23, 0x09, 0x67, 0x2c, 0x6c, 0x3d, 0x87, 0x62, 0x8c, 0x8f, 0x06, 0xfc, 0x01, 0xac, 0xa5, 0xd5,
0x72, 0xb1, 0x33, 0x59, 0x20, 0xd6, 0x17, 0xb0, 0xa1, 0xd5, 0xc3, 0x86, 0xdf, 0x23, 0xdf, 0x27,
0x40, 0x4e, 0x62, 0x68, 0x4c, 0x63, 0x68, 0x3d, 0x84, 0xcd, 0x29, 0x45, 0x7d, 0xfa, 0x06, 0x2c,
0x7a, 0x82, 0x10, 0xb5, 0x25, 0xf9, 0x61, 0xd9, 0xb0, 0x26, 0x1a, 0x1c, 0x11, 0x47, 0xc7, 0xa2,
0xb7, 0x01, 0x04, 0x18, 0x44, 0x5e, 0x34, 0xea, 0xa1, 0x2c, 0x12, 0xb3, 0x9e, 0xc1, 0xaa, 0x4a,
0xaf, 0x58, 0xe1, 0x3e, 0x98, 0x49, 0x88, 0x13, 0xf1, 0x2f, 0x26, 0xe8, 0xc2, 0x35, 0xeb, 0x29,
0x6c, 0xc6, 0xad, 0x75, 0xc2, 0xb3, 0xcb, 0x1b, 0xb7, 0x55, 0x81, 0xad, 0x69, 0xbd, 0x4b, 0x1d,
0x73, 0x61, 0xe7, 0x80, 0x0e, 0x87, 0x1e, 0xe7, 0x84, 0x54, 0x19, 0xf3, 0xfa, 0xfe, 0x90, 0xf8,
0x9c, 0x25, 0x70, 0x54, 0x5d, 0x52, 0xe6, 0x7c, 0x84, 0xa3, 0x24, 0xc9, 0x2a, 0x99, 0x1e, 0x91,
0x99, 0x99, 0x11, 0x49, 0x60, 0x5b, 0xd7, 0xf2, 0x21, 0x09, 0x28, 0xf3, 0xf8, 0xb8, 0x8e, 0x7f,
0x0e, 0x66, 0x54, 0xc7, 0x3d, 0xcd, 0xd3, 0x35, 0x7c, 0x37, 0xad, 0x86, 0xb5, 0x0d, 0xa7, 0x18,
0x4c, 0xda, 0xb4, 0xfe, 0x93, 0x99, 0xeb, 0x48, 0x7c, 0x56, 0x1f, 0x00, 0xc7, 0x54, 0x7d, 0xca,
0xcb, 0xb4, 0xa1, 0x76, 0x89, 0xa1, 0xb9, 0xbc, 0x84, 0xe9, 0xf2, 0x3f, 0x0c, 0x58, 0x9f, 0x23,
0x83, 0x6e, 0xc1, 0x72, 0x37, 0x22, 0xcb, 0xf3, 0xb3, 0xce, 0x98, 0x30, 0x1e, 0x86, 0x99, 0x79,
0xc3, 0x70, 0x21, 0xb1, 0xb7, 0xdd, 0x85, 0xbc, 0xc7, 0xdc, 0x40, 0xe7, 0xae, 0xac, 0xe7, 0x9c,
0x03, 0x1e, 0x8b, 0xb2, 0x79, 0x2a, 0x41, 0x16, 0xa7, 0x27, 0xfb, 0x37, 0xf1, 0x64, 0x17, 0x75,
0xba, 0x6a, 0xdf, 0xbb, 0xee, 0x64, 0x8f, 0x26, 0xfa, 0x5f, 0x32, 0xb0, 0x9d, 0x32, 0xf5, 0x13,
0xc6, 0x8d, 0xff, 0xcb, 0x38, 0xfa, 0x0a, 0x3e, 0x21, 0xfc, 0xf4, 0x71, 0x94, 0x0f, 0x7a, 0x5a,
0x4c, 0x74, 0x42, 0xb1, 0x62, 0x3f, 0xd6, 0x71, 0x97, 0x23, 0x43, 0x77, 0xc5, 0xcf, 0x61, 0x2b,
0xd2, 0x8a, 0x07, 0x93, 0x9b, 0x80, 0x6f, 0x43, 0x73, 0xe3, 0xb1, 0x24, 0x46, 0x8d, 0x2c, 0xc9,
0x78, 0x71, 0xd2, 0xa3, 0x3c, 0xab, 0x96, 0xd5, 0x31, 0x5d, 0xcd, 0xf2, 0x6f, 0xe0, 0x96, 0x34,
0x20, 0x04, 0x3d, 0xdf, 0x4d, 0xa8, 0xbd, 0x1f, 0x91, 0x11, 0x91, 0x50, 0x67, 0x9d, 0x4f, 0x22,
0x99, 0x86, 0x3f, 0xde, 0xc8, 0xde, 0x08, 0x01, 0xeb, 0x0d, 0x98, 0x75, 0x71, 0xf7, 0xe4, 0xfe,
0xf2, 0x1c, 0x96, 0x95, 0xc3, 0x98, 0x63, 0x09, 0x5a, 0xde, 0xde, 0x4d, 0x4b, 0xfe, 0x58, 0x39,
0x47, 0xf4, 0x2f, 0xeb, 0xef, 0x06, 0xac, 0x49, 0x10, 0xda, 0x21, 0x19, 0x77, 0xd0, 0x17, 0x90,
0xe5, 0xa1, 0x4e, 0xb3, 0xbc, 0x6d, 0xa7, 0x05, 0x61, 0x46, 0xb1, 0x22, 0x3e, 0x9a, 0xb4, 0x47,
0x1c, 0xa9, 0x5f, 0xfe, 0x2d, 0xe4, 0x22, 0x0a, 0xfa, 0x0a, 0x16, 0x65, 0x30, 0xf4, 0x25, 0x53,
0xa7, 0x6c, 0x2d, 0xb1, 0x6d, 0x29, 0x0d, 0x91, 0x91, 0xe3, 0x86, 0x1e, 0x3d, 0x35, 0xe2, 0x4e,
0x2e, 0x72, 0xff, 0x9c, 0x72, 0x12, 0xad, 0xfc, 0xea, 0xe3, 0xc1, 0x97, 0xb0, 0x12, 0x27, 0x89,
0x43, 0x07, 0x04, 0xe5, 0xe1, 0xe3, 0xef, 0x9a, 0xdf, 0x36, 0x5f, 0xbf, 0x6b, 0x9a, 0x1f, 0xa1,
0x02, 0xe4, 0xaa, 0xed, 0x76, 0xbd, 0xd5, 0xae, 0x3b, 0xa6, 0x21, 0xbe, 0x8e, 0x9d, 0xd7, 0xc7,
0xaf, 0x5b, 0x75, 0xc7, 0xcc, 0x3c, 0xf8, 0xa3, 0x01, 0xc5, 0xa9, 0xfc, 0x42, 0x08, 0x56, 0xb5,
0xb2, 0xdb, 0x6a, 0x57, 0xdb, 0xdf, 0xb5, 0xcc, 0x8f, 0x04, 0xed, 0xb8, 0xde, 0x3c, 0x6c, 0x34,
0x5f, 0xba, 0xd5, 0x83, 0x76, 0xe3, 0x6d, 0xdd, 0x34, 0x10, 0xc0, 0x92, 0xfe, 0x9d, 0x11, 0xfc,
0x46, 0xb3, 0xd1, 0x6e, 0x54, 0xdb, 0xf5, 0x43, 0xb7, 0xfe, 0x8b, 0x46, 0xdb, 0x5c, 0x40, 0x26,
0x14, 0xde, 0x35, 0xda, 0xaf, 0x0e, 0x9d, 0xea, 0xbb, 0x6a, 0xed, 0xa8, 0x6e, 0x66, 0x85, 0x86,
0xe0, 0xd5, 0x0f, 0xcd, 0x45, 0xa1, 0xa1, 0x7e, 0xbb, 0xad, 0xa3, 0x6a, 0xeb, 0x55, 0xfd, 0xd0,
0x5c, 0xb2, 0x7f, 0xcc, 0xc2, 0x8a, 0xc2, 0xa4, 0xa5, 0x9e, 0x8a, 0xe8, 0x97, 0xb0, 0xf6, 0x0e,
0x7b, 0xfc, 0x05, 0x0d, 0xc7, 0xdb, 0x06, 0xda, 0x9a, 0x19, 0x97, 0x75, 0xf1, 0x42, 0x2c, 0x3f,
0x48, 0xed, 0x51, 0x33, 0x9b, 0xca, 0x23, 0x03, 0x1d, 0xc1, 0xca, 0x01, 0xf6, 0xa9, 0xef, 0x75,
0xf1, 0xe0, 0x15, 0xc1, 0xbd, 0x54, 0xb3, 0xd7, 0x09, 0x1f, 0x72, 0x60, 0xed, 0x48, 0xae, 0x90,
0x89, 0x2d, 0xe9, 0xe6, 0x16, 0x13, 0xca, 0x8f, 0x0c, 0xf4, 0x2b, 0x28, 0x4e, 0x8d, 0x83, 0x54,
0x8b, 0xa9, 0x6f, 0x8e, 0xb4, 0x79, 0x72, 0x04, 0xb9, 0xa8, 0x44, 0x52, 0x8d, 0xee, 0xa5, 0x19,
0x9d, 0xa9, 0xcc, 0x9f, 0x41, 0xee, 0x05, 0x0d, 0xcf, 0x2e, 0xb5, 0x76, 0x2b, 0xcd, 0x69, 0xa1,
0x89, 0x9a, 0xb0, 0x1c, 0x97, 0x58, 0xaa, 0x89, 0xfb, 0xd7, 0xae, 0x4e, 0xfb, 0xdf, 0x06, 0x14,
0x15, 0x9a, 0x24, 0x1c, 0x27, 0x13, 0x28, 0x92, 0x0c, 0xf7, 0x75, 0x82, 0x50, 0xfe, 0x49, 0xda,
0x89, 0x53, 0xdb, 0xca, 0xf7, 0xb0, 0x39, 0xf5, 0xea, 0xaa, 0x72, 0xd9, 0x33, 0x2b, 0x97, 0x1b,
0x98, 0x7e, 0xe9, 0xa5, 0x07, 0x32, 0xe5, 0x51, 0x67, 0xff, 0x75, 0x21, 0xde, 0x0a, 0x63, 0x47,
0x07, 0xb0, 0x32, 0xb1, 0xb0, 0xa1, 0x9f, 0xa6, 0xa6, 0xc7, 0x9c, 0x85, 0xb0, 0xfc, 0xf0, 0x9a,
0xd2, 0xda, 0xf7, 0x1f, 0x60, 0x7d, 0xce, 0x0b, 0x04, 0xd9, 0x57, 0xa4, 0xe4, 0x9c, 0x97, 0x53,
0xf9, 0xc9, 0x8d, 0x74, 0xf4, 0xf9, 0xbf, 0x86, 0x82, 0xbe, 0x98, 0x2a, 0xc5, 0xeb, 0xd4, 0x6b,
0xf9, 0xde, 0x15, 0x3e, 0xc6, 0xd6, 0x3b, 0x60, 0x1e, 0xd0, 0x61, 0x30, 0xe2, 0x24, 0x5e, 0x6a,
0xaf, 0x77, 0x42, 0x6a, 0xb2, 0xce, 0x2c, 0xc7, 0xf6, 0x7f, 0xb3, 0x60, 0x8e, 0xbb, 0xb0, 0x0e,
0xe2, 0x0f, 0x71, 0xeb, 0x1b, 0xcf, 0xc6, 0x74, 0x50, 0xd3, 0xff, 0x99, 0x49, 0x07, 0xf5, 0x92,
0xbf, 0x43, 0x1e, 0x19, 0x88, 0xc2, 0xea, 0xe4, 0x76, 0x8c, 0x1e, 0x5e, 0x69, 0x68, 0x22, 0x8d,
0x2a, 0xd7, 0x15, 0xd7, 0x48, 0xff, 0x6e, 0xfe, 0x32, 0xf8, 0xe4, 0x06, 0x9b, 0xe7, 0xd5, 0x89,
0x74, 0xd9, 0xde, 0xfb, 0x7e, 0x76, 0x16, 0xde, 0xd0, 0xe5, 0x9b, 0xfe, 0xf5, 0x83, 0x7e, 0x6f,
0xc0, 0xc6, 0xbc, 0xbf, 0x0e, 0xd1, 0xd5, 0x41, 0x9b, 0xfd, 0xef, 0xb2, 0xfc, 0xf9, 0xcd, 0x94,
0xd4, 0x1d, 0x6a, 0x85, 0x1f, 0x3f, 0xdc, 0x31, 0xfe, 0xf6, 0xe1, 0x8e, 0xf1, 0xcf, 0x0f, 0x77,
0x8c, 0xce, 0x92, 0xec, 0xb9, 0x4f, 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0x06, 0x6c, 0x38, 0xd3,
0xc2, 0x15, 0x00, 0x00,
// 1884 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0xcd, 0x6f, 0xdb, 0xc8,
0x15, 0x5f, 0xca, 0xb2, 0x57, 0x7e, 0x92, 0x2d, 0x7a, 0xfc, 0xa5, 0xc8, 0xf9, 0xf0, 0x72, 0x81,
0xc6, 0x09, 0x1a, 0x39, 0x61, 0x16, 0xd9, 0xdd, 0x04, 0xc1, 0x56, 0xb2, 0x95, 0x44, 0x5d, 0x43,
0x71, 0x28, 0x6d, 0xd2, 0x16, 0x05, 0x88, 0x91, 0x34, 0x96, 0x59, 0x4b, 0x1c, 0x86, 0x1c, 0x19,
0x71, 0x0f, 0x5b, 0xf4, 0x58, 0xf4, 0x7f, 0x68, 0xff, 0x8c, 0x9e, 0x7b, 0xcb, 0xb1, 0xb7, 0xde,
0x8a, 0x22, 0x28, 0xda, 0x7b, 0xff, 0x82, 0x62, 0x3e, 0x48, 0x51, 0x94, 0x68, 0xcb, 0xbd, 0x91,
0xef, 0x73, 0xe6, 0xf7, 0xde, 0x9b, 0xf7, 0x66, 0xc0, 0xf0, 0x7c, 0xca, 0xe8, 0x7e, 0x87, 0xe0,
0x2e, 0x75, 0xf7, 0x7d, 0xaf, 0xbb, 0x7f, 0xfe, 0x68, 0x3f, 0x20, 0xfe, 0xb9, 0xd3, 0x25, 0x41,
0x45, 0x30, 0xd1, 0x16, 0x61, 0xa7, 0xc4, 0x27, 0xa3, 0x61, 0x45, 0x8a, 0x55, 0x7c, 0xaf, 0x5b,
0x39, 0x7f, 0x54, 0xde, 0xe9, 0x53, 0xda, 0x1f, 0x90, 0x7d, 0x21, 0xd5, 0x19, 0x9d, 0xec, 0x93,
0xa1, 0xc7, 0x2e, 0xa4, 0x52, 0xf9, 0x4e, 0x92, 0xc9, 0x9c, 0x21, 0x09, 0x18, 0x1e, 0x7a, 0xa1,
0xc0, 0x84, 0x67, 0xcf, 0xf4, 0xb8, 0x67, 0x76, 0xe1, 0x85, 0x6e, 0x8d, 0x63, 0xd8, 0x79, 0x8b,
0x07, 0x4e, 0x0f, 0x33, 0xea, 0x1f, 0x13, 0xff, 0x84, 0xfa, 0x43, 0xec, 0x76, 0x89, 0x45, 0xde,
0x8f, 0x48, 0xc0, 0x10, 0x82, 0x6c, 0x30, 0xa0, 0xac, 0xa4, 0xed, 0x6a, 0x7b, 0x59, 0x4b, 0x7c,
0xa3, 0x5b, 0x00, 0xde, 0xa8, 0x33, 0x70, 0xba, 0xf6, 0x19, 0xb9, 0x28, 0x65, 0x76, 0xb5, 0xbd,
0x82, 0xb5, 0x2c, 0x29, 0xdf, 0x93, 0x0b, 0xe3, 0x5f, 0x1a, 0xdc, 0x9c, 0x6d, 0x32, 0xf0, 0xa8,
0x1b, 0x10, 0x54, 0x82, 0xcf, 0x3b, 0x78, 0xc0, 0x49, 0xca, 0x6c, 0xf8, 0x8b, 0xee, 0x81, 0xce,
0x28, 0xc3, 0x03, 0xfb, 0x3c, 0xd4, 0x0f, 0x84, 0xfd, 0xac, 0x55, 0x14, 0xf4, 0xc8, 0x6c, 0x80,
0x9e, 0xc0, 0xb6, 0x14, 0xc5, 0x5d, 0xe6, 0x9c, 0x93, 0xb8, 0xc6, 0x82, 0xd0, 0xd8, 0x14, 0xec,
0xaa, 0xe0, 0xc6, 0xf4, 0x5e, 0xc2, 0x2e, 0x3e, 0x27, 0x3e, 0xee, 0x93, 0x29, 0x4d, 0x3b, 0x5c,
0x55, 0x76, 0x57, 0xdb, 0xcb, 0x58, 0xb7, 0x94, 0x5c, 0xc2, 0x44, 0x4d, 0x0a, 0x19, 0xcf, 0xa1,
0x1c, 0xd1, 0x84, 0x08, 0x66, 0x0e, 0x75, 0x43, 0xdc, 0xee, 0x40, 0x7e, 0x8c, 0x51, 0x50, 0xd2,
0x76, 0x17, 0xf6, 0x0a, 0x16, 0x44, 0x20, 0x05, 0xc6, 0x9f, 0x33, 0x31, 0xe0, 0xe3, 0xfa, 0x0a,
0xa4, 0x27, 0xb0, 0x89, 0x25, 0x95, 0xf4, 0xec, 0x29, 0x53, 0xb5, 0x4c, 0x49, 0xb3, 0xd6, 0x23,
0x81, 0xe3, 0xc8, 0x2e, 0x7a, 0x0b, 0xb9, 0x80, 0x61, 0x36, 0x0a, 0x08, 0x87, 0x6e, 0x61, 0x2f,
0x6f, 0x3e, 0xad, 0xcc, 0xce, 0xac, 0xca, 0x25, 0xee, 0x2b, 0x2d, 0x61, 0xc3, 0x8a, 0x6c, 0x95,
0x3d, 0x58, 0x92, 0xb4, 0x44, 0xf8, 0xb5, 0x44, 0xf8, 0xd1, 0x4b, 0x58, 0x92, 0x4a, 0x22, 0x72,
0x79, 0x73, 0xff, 0x4a, 0xf7, 0xca, 0x97, 0x72, 0x6d, 0x29, 0x75, 0xe3, 0x29, 0x6c, 0xd7, 0x3f,
0x38, 0x8c, 0xf4, 0xc6, 0xd1, 0x9b, 0x1b, 0xdd, 0x67, 0x50, 0x9a, 0xd6, 0x55, 0xc8, 0x5e, 0xa9,
0x5c, 0x83, 0xad, 0x2a, 0x63, 0xbc, 0x8c, 0x38, 0x24, 0x87, 0x98, 0xe1, 0xd0, 0xef, 0x06, 0x2c,
0x06, 0xa7, 0xd8, 0xef, 0xa9, 0xbc, 0x95, 0x3f, 0x51, 0x8d, 0x64, 0xc6, 0x35, 0x62, 0x7c, 0xca,
0xc0, 0xf6, 0x94, 0x11, 0xb5, 0x80, 0xaf, 0xa1, 0x24, 0x91, 0xb0, 0x3b, 0x03, 0xda, 0x3d, 0xb3,
0x7d, 0x4a, 0x99, 0x7d, 0x8a, 0x83, 0xd3, 0xc7, 0xa6, 0x82, 0x73, 0x53, 0xf2, 0x6b, 0x9c, 0x6d,
0x51, 0xca, 0x5e, 0x09, 0x26, 0x7a, 0x06, 0x65, 0xe2, 0xd1, 0xee, 0xa9, 0xdd, 0xa1, 0x23, 0xb7,
0x87, 0xfd, 0x8b, 0x09, 0x55, 0x59, 0x88, 0xdb, 0x42, 0xa2, 0xa6, 0x04, 0x62, 0xca, 0x77, 0xa1,
0xf8, 0x9b, 0x51, 0xc0, 0x9c, 0x13, 0x87, 0xf4, 0x6c, 0x21, 0xa4, 0x0a, 0x65, 0x35, 0x22, 0xd7,
0x39, 0x15, 0x3d, 0x87, 0x9d, 0xb1, 0xe0, 0xf4, 0x0a, 0xb3, 0xc2, 0x4d, 0x29, 0x12, 0x49, 0x2e,
0xf2, 0x08, 0xf4, 0x01, 0xe6, 0x1b, 0xb7, 0xbb, 0x3e, 0x0d, 0x82, 0x81, 0xe3, 0x9e, 0x95, 0x16,
0x45, 0x26, 0x7c, 0x31, 0x95, 0x09, 0x9e, 0xe9, 0xf1, 0x4c, 0x38, 0x08, 0x05, 0xad, 0xa2, 0x54,
0x8d, 0x08, 0x68, 0x07, 0x96, 0x4f, 0x09, 0xee, 0xd9, 0x02, 0xe0, 0x25, 0xb1, 0xde, 0x1c, 0x27,
0xb4, 0x38, 0xc8, 0x7f, 0xd0, 0xa0, 0x7c, 0x4c, 0xdc, 0x9e, 0xe3, 0xf6, 0x63, 0x58, 0x47, 0x59,
0xf2, 0x0c, 0xca, 0x27, 0xce, 0x80, 0x11, 0xdf, 0xf6, 0x09, 0xee, 0x5d, 0xd8, 0x27, 0xd4, 0xb7,
0x1d, 0xb7, 0x3b, 0x18, 0x05, 0x0e, 0x75, 0x05, 0xd2, 0x39, 0x6b, 0x5b, 0x4a, 0x58, 0x5c, 0xe0,
0x05, 0xf5, 0x1b, 0x21, 0x1b, 0x55, 0x60, 0xdd, 0xf3, 0xa9, 0x47, 0x03, 0x3c, 0x50, 0x20, 0xc4,
0x62, 0xbc, 0x16, 0xb2, 0xc4, 0xe6, 0xc5, 0x5a, 0x46, 0xb0, 0x33, 0x73, 0x29, 0x2a, 0xe6, 0x6f,
0x61, 0xc3, 0x93, 0x6c, 0x1b, 0xc7, 0xf8, 0x22, 0xfb, 0xf2, 0xe6, 0x97, 0x69, 0xc8, 0xc4, 0x6c,
0x59, 0xeb, 0xde, 0xb4, 0x7d, 0xe3, 0x0d, 0xa0, 0x83, 0x53, 0xec, 0xb8, 0x2d, 0x86, 0x7d, 0x16,
0x3f, 0x61, 0x03, 0x4e, 0x20, 0x3d, 0xb5, 0xcd, 0xf0, 0x17, 0x7d, 0x01, 0x85, 0x3e, 0x71, 0x49,
0xe0, 0x04, 0x36, 0x6f, 0x15, 0x6a, 0x3f, 0x79, 0x45, 0x6b, 0x3b, 0x43, 0x62, 0xfc, 0x29, 0x03,
0xab, 0xc7, 0x62, 0x7f, 0x24, 0x5e, 0x6f, 0xd8, 0x27, 0xae, 0x4c, 0x02, 0x95, 0xa4, 0x20, 0x49,
0x3c, 0xec, 0x5c, 0x80, 0xc3, 0x63, 0xbb, 0xa3, 0x61, 0x87, 0xf8, 0xca, 0x2a, 0x70, 0x52, 0x53,
0x50, 0xd0, 0x97, 0xb0, 0xe2, 0x63, 0xb7, 0x87, 0xa9, 0xed, 0x93, 0x73, 0x82, 0x07, 0x22, 0xf7,
0x0a, 0x56, 0x41, 0x12, 0x2d, 0x41, 0x43, 0xfb, 0xb0, 0x1e, 0x03, 0xc7, 0xee, 0x38, 0x6c, 0x88,
0x83, 0x33, 0x95, 0x71, 0x28, 0xc6, 0xaa, 0x49, 0x0e, 0x7a, 0x0a, 0x37, 0xe2, 0x0a, 0xb8, 0xdf,
0xf7, 0x49, 0x1f, 0x33, 0x62, 0x07, 0x4e, 0xbf, 0xb4, 0xb8, 0xbb, 0xb0, 0x97, 0xb5, 0xb6, 0x63,
0x02, 0xd5, 0x90, 0xdf, 0x72, 0xfa, 0xe8, 0x1b, 0x58, 0x8e, 0x9a, 0xa5, 0xc8, 0xac, 0xbc, 0x59,
0xae, 0xc8, 0x76, 0x5a, 0x09, 0xdb, 0x69, 0xa5, 0x1d, 0x4a, 0x58, 0x63, 0x61, 0xe3, 0x39, 0x14,
0x23, 0x7c, 0x14, 0xe0, 0xf7, 0x61, 0x2d, 0xad, 0x96, 0x8b, 0x9d, 0xc9, 0x02, 0x31, 0xbe, 0x86,
0x0d, 0xa5, 0xee, 0x37, 0xdc, 0x1e, 0xf9, 0x10, 0x03, 0x39, 0x8e, 0xa1, 0x96, 0xc4, 0xd0, 0x78,
0x00, 0x9b, 0x09, 0x45, 0xe5, 0x7d, 0x03, 0x16, 0x1d, 0x4e, 0x08, 0x8f, 0x25, 0xf1, 0x63, 0x98,
0xb0, 0xc6, 0x4f, 0x56, 0xc2, 0x5d, 0x47, 0xa2, 0xb7, 0x00, 0x38, 0x18, 0x44, 0x2c, 0x34, 0x3c,
0xbc, 0x83, 0x50, 0xcc, 0x78, 0x06, 0xab, 0x32, 0xbd, 0x22, 0x85, 0x7b, 0xa0, 0xc7, 0x21, 0x8e,
0xc5, 0xbf, 0x18, 0xa3, 0xf3, 0xad, 0x19, 0x4f, 0x60, 0x33, 0x3a, 0x6e, 0x27, 0x76, 0x76, 0x79,
0xc7, 0x30, 0x2a, 0xb0, 0x95, 0xd4, 0xbb, 0x74, 0x63, 0x36, 0xec, 0x1c, 0xd0, 0xe1, 0xd0, 0x61,
0x8c, 0x90, 0x6a, 0x10, 0x38, 0x7d, 0x77, 0x48, 0x5c, 0x16, 0x6f, 0x0e, 0xf2, 0x94, 0x14, 0x39,
0x1f, 0xe2, 0x28, 0x48, 0xa2, 0x4a, 0x92, 0x0d, 0x20, 0x33, 0xd5, 0x00, 0x08, 0x6c, 0xab, 0x5a,
0x3e, 0x24, 0x1e, 0x0d, 0x1c, 0x36, 0xae, 0xe3, 0x9f, 0x83, 0x1e, 0xd6, 0x71, 0x4f, 0xf1, 0x54,
0x0d, 0xdf, 0x49, 0xab, 0x61, 0x65, 0xc3, 0x2a, 0x7a, 0x93, 0x36, 0x8d, 0xff, 0x64, 0x66, 0x6e,
0x24, 0xf2, 0xd5, 0x07, 0xc0, 0x11, 0x55, 0x79, 0x79, 0x99, 0xd6, 0x4d, 0x2f, 0x31, 0x34, 0x93,
0x17, 0x33, 0x5d, 0xfe, 0x87, 0x06, 0xeb, 0x33, 0x64, 0xd0, 0x4d, 0x58, 0xee, 0x86, 0x64, 0xe1,
0x3f, 0x6b, 0x8d, 0x09, 0xe3, 0x66, 0x98, 0x99, 0xd5, 0x0c, 0x17, 0x62, 0x03, 0xe3, 0x1d, 0xc8,
0x3b, 0x81, 0xed, 0xa9, 0xdc, 0x15, 0xf5, 0x9c, 0xb3, 0xc0, 0x09, 0xc2, 0x6c, 0x4e, 0x24, 0xc8,
0x62, 0x72, 0xa4, 0xf8, 0x2e, 0x1a, 0x29, 0x78, 0x9d, 0xae, 0x9a, 0x77, 0xe7, 0x1d, 0x29, 0xc2,
0x51, 0xe2, 0x2f, 0x19, 0xd8, 0x4e, 0x19, 0x37, 0x62, 0xc6, 0xb5, 0xff, 0xcb, 0x38, 0xfa, 0x16,
0x6e, 0x10, 0x76, 0xfa, 0x28, 0xcc, 0x07, 0xd5, 0x2d, 0x26, 0x4e, 0x42, 0x3e, 0xdb, 0x3f, 0x52,
0x71, 0x17, 0x2d, 0x43, 0x9d, 0x8a, 0x5f, 0xc1, 0x56, 0xa8, 0x15, 0x35, 0x26, 0x3b, 0x06, 0xdf,
0x86, 0xe2, 0x46, 0x6d, 0x89, 0xb7, 0x1a, 0x51, 0x92, 0xd1, 0xc4, 0xa6, 0x5a, 0x79, 0x56, 0x4e,
0xc9, 0x63, 0xba, 0xec, 0xe5, 0xdf, 0xc1, 0x4d, 0x61, 0x80, 0x0b, 0x3a, 0xae, 0x1d, 0x53, 0x7b,
0x3f, 0x22, 0x23, 0x22, 0xa0, 0xce, 0x5a, 0x37, 0x42, 0x99, 0x86, 0x3b, 0x1e, 0x05, 0xdf, 0x70,
0x01, 0xe3, 0x0d, 0xe8, 0x75, 0xbe, 0xf6, 0xf8, 0xfc, 0xf2, 0x1c, 0x96, 0xe5, 0x86, 0x31, 0xc3,
0x02, 0xb4, 0xbc, 0xb9, 0x9b, 0x96, 0xfc, 0x91, 0x72, 0x8e, 0xa8, 0x2f, 0xe3, 0xef, 0x1a, 0xac,
0x09, 0x10, 0xda, 0x3e, 0x19, 0x9f, 0xa0, 0x2f, 0x20, 0xcb, 0x7c, 0x95, 0x66, 0x79, 0xd3, 0x4c,
0x0b, 0xc2, 0x94, 0x62, 0x85, 0xff, 0x34, 0x69, 0x8f, 0x58, 0x42, 0xbf, 0xfc, 0x5b, 0xc8, 0x85,
0x14, 0xf4, 0x2d, 0x2c, 0x8a, 0x60, 0xa8, 0x45, 0xa6, 0x76, 0xd9, 0x5a, 0x6c, 0xda, 0x92, 0x1a,
0x3c, 0x23, 0xc7, 0x07, 0x7a, 0x78, 0xc7, 0x89, 0x4e, 0x72, 0x9e, 0xfb, 0xe7, 0x94, 0x91, 0xf0,
0xae, 0x21, 0x7f, 0xee, 0x7f, 0x03, 0x2b, 0x51, 0x92, 0x58, 0x74, 0x40, 0x50, 0x1e, 0x3e, 0xff,
0xa1, 0xf9, 0x7d, 0xf3, 0xf5, 0xbb, 0xa6, 0xfe, 0x19, 0x2a, 0x40, 0xae, 0xda, 0x6e, 0xd7, 0x5b,
0xed, 0xba, 0xa5, 0x6b, 0xfc, 0xef, 0xd8, 0x7a, 0x7d, 0xfc, 0xba, 0x55, 0xb7, 0xf4, 0xcc, 0xfd,
0x3f, 0x6a, 0x50, 0x4c, 0xe4, 0x17, 0x42, 0xb0, 0xaa, 0x94, 0xed, 0x56, 0xbb, 0xda, 0xfe, 0xa1,
0xa5, 0x7f, 0xc6, 0x69, 0xc7, 0xf5, 0xe6, 0x61, 0xa3, 0xf9, 0xd2, 0xae, 0x1e, 0xb4, 0x1b, 0x6f,
0xeb, 0xba, 0x86, 0x00, 0x96, 0xd4, 0x77, 0x86, 0xf3, 0x1b, 0xcd, 0x46, 0xbb, 0x51, 0x6d, 0xd7,
0x0f, 0xed, 0xfa, 0x2f, 0x1a, 0x6d, 0x7d, 0x01, 0xe9, 0x50, 0x78, 0xd7, 0x68, 0xbf, 0x3a, 0xb4,
0xaa, 0xef, 0xaa, 0xb5, 0xa3, 0xba, 0x9e, 0xe5, 0x1a, 0x9c, 0x57, 0x3f, 0xd4, 0x17, 0xb9, 0x86,
0xfc, 0xb6, 0x5b, 0x47, 0xd5, 0xd6, 0xab, 0xfa, 0xa1, 0xbe, 0x64, 0x7e, 0xcc, 0xc2, 0x8a, 0xc4,
0xa4, 0x25, 0xef, 0xa8, 0xe8, 0x97, 0xb0, 0xf6, 0x0e, 0x3b, 0xec, 0x05, 0xf5, 0xc7, 0xd3, 0x06,
0xda, 0x9a, 0x6a, 0x97, 0x75, 0x7e, 0x35, 0x2d, 0xdf, 0x4f, 0x3d, 0xa3, 0xa6, 0x26, 0x95, 0x87,
0x1a, 0x3a, 0x82, 0x95, 0x03, 0xec, 0x52, 0xd7, 0xe9, 0xe2, 0xc1, 0x2b, 0x82, 0x7b, 0xa9, 0x66,
0xe7, 0x09, 0x1f, 0xb2, 0x60, 0xed, 0x48, 0x8c, 0x90, 0xb1, 0x29, 0xe9, 0xfa, 0x16, 0x63, 0xca,
0x0f, 0x35, 0xf4, 0x2b, 0x28, 0x26, 0xda, 0x41, 0xaa, 0xc5, 0xd4, 0xcb, 0x4e, 0x5a, 0x3f, 0x39,
0x82, 0x5c, 0x58, 0x22, 0xa9, 0x46, 0xf7, 0xd2, 0x8c, 0x4e, 0x55, 0xe6, 0xcf, 0x20, 0xf7, 0x82,
0xfa, 0x67, 0x97, 0x5a, 0xbb, 0x99, 0xb6, 0x69, 0xae, 0x89, 0x9a, 0xb0, 0x1c, 0x95, 0x58, 0xaa,
0x89, 0x7b, 0x73, 0x57, 0xa7, 0xf9, 0x6f, 0x0d, 0x8a, 0x12, 0x4d, 0xe2, 0x8f, 0x93, 0x09, 0x24,
0x49, 0x84, 0x7b, 0x9e, 0x20, 0x94, 0x7f, 0x92, 0xe6, 0x31, 0x31, 0xad, 0x7c, 0x80, 0xcd, 0xc4,
0xad, 0xab, 0xca, 0xc4, 0x99, 0x59, 0xb9, 0xdc, 0x40, 0xf2, 0xa6, 0x97, 0x1e, 0xc8, 0x94, 0x4b,
0x9d, 0xf9, 0xd7, 0x85, 0x68, 0x2a, 0x8c, 0x36, 0x3a, 0x80, 0x95, 0x89, 0x81, 0x0d, 0xfd, 0x34,
0x35, 0x3d, 0x66, 0x0c, 0x84, 0xe5, 0x07, 0x73, 0x4a, 0xab, 0xbd, 0xff, 0x08, 0xeb, 0x33, 0x6e,
0x20, 0xc8, 0xbc, 0x22, 0x25, 0x67, 0xdc, 0x9c, 0xca, 0x8f, 0xaf, 0xa5, 0xa3, 0xfc, 0xff, 0x1a,
0x0a, 0x6a, 0x61, 0xb2, 0x14, 0xe7, 0xa9, 0xd7, 0xf2, 0xdd, 0x2b, 0xf6, 0x18, 0x59, 0xef, 0x80,
0x7e, 0x40, 0x87, 0xde, 0x88, 0x91, 0x68, 0xa8, 0x9d, 0xcf, 0x43, 0x6a, 0xb2, 0x4e, 0x0d, 0xc7,
0xe6, 0x7f, 0x17, 0x41, 0x1f, 0x9f, 0xc2, 0x2a, 0x88, 0x3f, 0x46, 0x47, 0xdf, 0xb8, 0x37, 0xa6,
0x83, 0x9a, 0xfe, 0x24, 0x94, 0x0e, 0xea, 0x25, 0xef, 0x30, 0x0f, 0x35, 0x44, 0x61, 0x75, 0x72,
0x3a, 0x46, 0x0f, 0xae, 0x34, 0x34, 0x91, 0x46, 0x95, 0x79, 0xc5, 0x15, 0xd2, 0xbf, 0x9b, 0x3d,
0x0c, 0x3e, 0xbe, 0xc6, 0xe4, 0x79, 0x75, 0x22, 0x5d, 0x36, 0xf7, 0xbe, 0x9f, 0xee, 0x85, 0xd7,
0xdc, 0xf2, 0x75, 0xdf, 0x9c, 0xd0, 0xef, 0x35, 0xd8, 0x98, 0xf5, 0x66, 0x89, 0xae, 0x0e, 0xda,
0xf4, 0xa3, 0x69, 0xf9, 0xab, 0xeb, 0x29, 0xa9, 0x35, 0x8c, 0x40, 0x4f, 0xbe, 0x59, 0xa1, 0xd4,
0x8d, 0xa4, 0xbc, 0x8c, 0x95, 0x1f, 0xce, 0xaf, 0x20, 0xdd, 0xd6, 0x0a, 0x1f, 0x3f, 0xdd, 0xd6,
0xfe, 0xf6, 0xe9, 0xb6, 0xf6, 0xcf, 0x4f, 0xb7, 0xb5, 0xce, 0x92, 0x38, 0xea, 0x1f, 0xff, 0x2f,
0x00, 0x00, 0xff, 0xff, 0x04, 0x5a, 0x90, 0xed, 0xb2, 0x16, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -2317,6 +2415,7 @@ type ValidatorServiceClient interface {
CommitteeAssignment(ctx context.Context, in *CommitteeAssignmentsRequest, opts ...grpc.CallOption) (*CommitteeAssignmentResponse, error)
ValidatorStatus(ctx context.Context, in *ValidatorIndexRequest, opts ...grpc.CallOption) (*ValidatorStatusResponse, error)
ValidatorPerformance(ctx context.Context, in *ValidatorPerformanceRequest, opts ...grpc.CallOption) (*ValidatorPerformanceResponse, error)
ExitedValidators(ctx context.Context, in *ExitedValidatorsRequest, opts ...grpc.CallOption) (*ExitedValidatorsResponse, error)
}
type validatorServiceClient struct {
@@ -2395,6 +2494,15 @@ func (c *validatorServiceClient) ValidatorPerformance(ctx context.Context, in *V
return out, nil
}
func (c *validatorServiceClient) ExitedValidators(ctx context.Context, in *ExitedValidatorsRequest, opts ...grpc.CallOption) (*ExitedValidatorsResponse, error) {
out := new(ExitedValidatorsResponse)
err := c.cc.Invoke(ctx, "/ethereum.beacon.rpc.v1.ValidatorService/ExitedValidators", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// ValidatorServiceServer is the server API for ValidatorService service.
type ValidatorServiceServer interface {
WaitForActivation(*ValidatorActivationRequest, ValidatorService_WaitForActivationServer) error
@@ -2402,6 +2510,7 @@ type ValidatorServiceServer interface {
CommitteeAssignment(context.Context, *CommitteeAssignmentsRequest) (*CommitteeAssignmentResponse, error)
ValidatorStatus(context.Context, *ValidatorIndexRequest) (*ValidatorStatusResponse, error)
ValidatorPerformance(context.Context, *ValidatorPerformanceRequest) (*ValidatorPerformanceResponse, error)
ExitedValidators(context.Context, *ExitedValidatorsRequest) (*ExitedValidatorsResponse, error)
}
func RegisterValidatorServiceServer(s *grpc.Server, srv ValidatorServiceServer) {
@@ -2501,6 +2610,24 @@ func _ValidatorService_ValidatorPerformance_Handler(srv interface{}, ctx context
return interceptor(ctx, in, info, handler)
}
func _ValidatorService_ExitedValidators_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ExitedValidatorsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ValidatorServiceServer).ExitedValidators(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ethereum.beacon.rpc.v1.ValidatorService/ExitedValidators",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ValidatorServiceServer).ExitedValidators(ctx, req.(*ExitedValidatorsRequest))
}
return interceptor(ctx, in, info, handler)
}
var _ValidatorService_serviceDesc = grpc.ServiceDesc{
ServiceName: "ethereum.beacon.rpc.v1.ValidatorService",
HandlerType: (*ValidatorServiceServer)(nil),
@@ -2521,6 +2648,10 @@ var _ValidatorService_serviceDesc = grpc.ServiceDesc{
MethodName: "ValidatorPerformance",
Handler: _ValidatorService_ValidatorPerformance_Handler,
},
{
MethodName: "ExitedValidators",
Handler: _ValidatorService_ExitedValidators_Handler,
},
},
Streams: []grpc.StreamDesc{
{
@@ -2713,6 +2844,64 @@ func (m *ValidatorActivationResponse_Status) MarshalTo(dAtA []byte) (int, error)
return i, nil
}
func (m *ExitedValidatorsRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *ExitedValidatorsRequest) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if len(m.PublicKeys) > 0 {
for _, b := range m.PublicKeys {
dAtA[i] = 0xa
i++
i = encodeVarintServices(dAtA, i, uint64(len(b)))
i += copy(dAtA[i:], b)
}
}
if m.XXX_unrecognized != nil {
i += copy(dAtA[i:], m.XXX_unrecognized)
}
return i, nil
}
func (m *ExitedValidatorsResponse) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *ExitedValidatorsResponse) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if len(m.PublicKeys) > 0 {
for _, b := range m.PublicKeys {
dAtA[i] = 0xa
i++
i = encodeVarintServices(dAtA, i, uint64(len(b)))
i += copy(dAtA[i:], b)
}
}
if m.XXX_unrecognized != nil {
i += copy(dAtA[i:], m.XXX_unrecognized)
}
return i, nil
}
func (m *AttestationDataRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
@@ -3600,6 +3789,42 @@ func (m *ValidatorActivationResponse_Status) Size() (n int) {
return n
}
func (m *ExitedValidatorsRequest) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if len(m.PublicKeys) > 0 {
for _, b := range m.PublicKeys {
l = len(b)
n += 1 + l + sovServices(uint64(l))
}
}
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
func (m *ExitedValidatorsResponse) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if len(m.PublicKeys) > 0 {
for _, b := range m.PublicKeys {
l = len(b)
n += 1 + l + sovServices(uint64(l))
}
}
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
func (m *AttestationDataRequest) Size() (n int) {
if m == nil {
return 0
@@ -4601,6 +4826,178 @@ func (m *ValidatorActivationResponse_Status) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *ExitedValidatorsRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowServices
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: ExitedValidatorsRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: ExitedValidatorsRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field PublicKeys", wireType)
}
var byteLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowServices
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if byteLen < 0 {
return ErrInvalidLengthServices
}
postIndex := iNdEx + byteLen
if postIndex < 0 {
return ErrInvalidLengthServices
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.PublicKeys = append(m.PublicKeys, make([]byte, postIndex-iNdEx))
copy(m.PublicKeys[len(m.PublicKeys)-1], dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipServices(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthServices
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthServices
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *ExitedValidatorsResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowServices
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: ExitedValidatorsResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: ExitedValidatorsResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field PublicKeys", wireType)
}
var byteLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowServices
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
byteLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if byteLen < 0 {
return ErrInvalidLengthServices
}
postIndex := iNdEx + byteLen
if postIndex < 0 {
return ErrInvalidLengthServices
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.PublicKeys = append(m.PublicKeys, make([]byte, postIndex-iNdEx))
copy(m.PublicKeys[len(m.PublicKeys)-1], dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipServices(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthServices
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthServices
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *AttestationDataRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0

View File

@@ -36,6 +36,7 @@ service ValidatorService {
rpc CommitteeAssignment(CommitteeAssignmentsRequest) returns (CommitteeAssignmentResponse);
rpc ValidatorStatus(ValidatorIndexRequest) returns (ValidatorStatusResponse);
rpc ValidatorPerformance(ValidatorPerformanceRequest) returns (ValidatorPerformanceResponse);
rpc ExitedValidators(ExitedValidatorsRequest) returns (ExitedValidatorsResponse);
}
message ValidatorPerformanceRequest {
@@ -64,6 +65,14 @@ message ValidatorActivationResponse {
repeated Status statuses = 2;
}
message ExitedValidatorsRequest {
repeated bytes public_keys = 1;
}
message ExitedValidatorsResponse {
repeated bytes public_keys = 1;
}
message AttestationDataRequest {
uint64 shard = 1;
uint64 slot = 2;

View File

@@ -7,6 +7,7 @@ go_library(
srcs = [
"allocations.go",
"db.go",
"keyChecker.go",
"logger.go",
"main.go",
"server.go",
@@ -16,8 +17,10 @@ go_library(
visibility = ["//visibility:private"],
deps = [
"//contracts/deposit-contract:go_default_library",
"//proto/beacon/rpc/v1:go_default_library",
"//proto/cluster:go_default_library",
"//shared/bls:go_default_library",
"//shared/bytesutil:go_default_library",
"//shared/keystore:go_default_library",
"//shared/prometheus:go_default_library",
"//shared/ssz:go_default_library",
@@ -35,6 +38,7 @@ go_library(
"@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
"@io_k8s_client_go//kubernetes:go_default_library",
"@io_k8s_client_go//rest:go_default_library",
"@io_opencensus_go//plugin/ocgrpc:go_default_library",
"@org_golang_google_grpc//:go_default_library",
],
)
@@ -57,27 +61,36 @@ go_image(
srcs = [
"allocations.go",
"db.go",
"keyChecker.go",
"logger.go",
"main.go",
"server.go",
"watchtower.go",
],
goarch = "amd64",
goos = "linux",
importpath = "github.com/prysmaticlabs/prysm/tools/cluster-pk-manager/server",
pure = "off", # depends on cgo for go-ethereum crypto
race = "off",
static = "off",
tags = ["manual"],
visibility = ["//visibility:private"],
deps = [
"//contracts/deposit-contract:go_default_library",
"//proto/beacon/rpc/v1:go_default_library",
"//proto/cluster:go_default_library",
"//shared/bls:go_default_library",
"//shared/bytesutil:go_default_library",
"//shared/keystore:go_default_library",
"//shared/prometheus:go_default_library",
"//shared/ssz:go_default_library",
"@com_github_boltdb_bolt//:go_default_library",
"@com_github_ethereum_go_ethereum//accounts/abi/bind:go_default_library",
"@com_github_ethereum_go_ethereum//common:go_default_library",
"@com_github_gogo_protobuf//proto:go_default_library",
"@com_github_ethereum_go_ethereum//crypto:go_default_library",
"@com_github_ethereum_go_ethereum//ethclient:go_default_library",
"@com_github_ethereum_go_ethereum//rpc:go_default_library",
"@com_github_gogo_protobuf//proto:go_default_library",
"@com_github_prometheus_client_golang//prometheus:go_default_library",
"@com_github_prometheus_client_golang//prometheus/promauto:go_default_library",
"@com_github_sirupsen_logrus//:go_default_library",
@@ -85,14 +98,9 @@ go_image(
"@io_k8s_apimachinery//pkg/apis/meta/v1:go_default_library",
"@io_k8s_client_go//kubernetes:go_default_library",
"@io_k8s_client_go//rest:go_default_library",
"@io_opencensus_go//plugin/ocgrpc:go_default_library",
"@org_golang_google_grpc//:go_default_library",
],
pure = "off", # depends on cgo for go-ethereum crypto
static = "off",
tags = ["manual"],
goarch = "amd64",
goos = "linux",
race = "off",
)
container_push(

View File

@@ -3,6 +3,7 @@ package main
import (
"bytes"
"context"
"errors"
"path"
"time"
@@ -12,11 +13,12 @@ import (
"github.com/prometheus/client_golang/prometheus/promauto"
pb "github.com/prysmaticlabs/prysm/proto/cluster"
"github.com/prysmaticlabs/prysm/shared/bls"
"github.com/prysmaticlabs/prysm/shared/bytesutil"
"github.com/prysmaticlabs/prysm/shared/keystore"
)
var (
allocatedPkCount = promauto.NewCounter(prometheus.CounterOpts{
allocatedPkCount = promauto.NewGauge(prometheus.GaugeOpts{
Name: "allocated_pk_count",
Help: "The number of allocated private keys",
})
@@ -24,15 +26,26 @@ var (
Name: "assigned_pk_count",
Help: "The number of private keys currently assigned to alive pods",
})
blacklistedPKCount = promauto.NewGauge(prometheus.GaugeOpts{
Name: "blacklisted_pk_count",
Help: "The number of private keys which have been removed that are of exited validators",
})
)
var (
dbFileName = "pk.db"
assignedPkBucket = []byte("assigned_pks")
unassignedPkBucket = []byte("unassigned_pks")
deletedKeysBucket = []byte("deleted_pks")
dummyVal = []byte{1}
)
type keyMap struct {
podName string
privateKey []byte
index int
}
type db struct {
db *bolt.DB
}
@@ -46,7 +59,7 @@ func newDB(dbPath string) *db {
// Initialize buckets
if err := boltdb.Update(func(tx *bolt.Tx) error {
for _, bkt := range [][]byte{assignedPkBucket, unassignedPkBucket} {
for _, bkt := range [][]byte{assignedPkBucket, unassignedPkBucket, deletedKeysBucket} {
if _, err := tx.CreateBucketIfNotExists(bkt); err != nil {
return err
}
@@ -56,7 +69,11 @@ func newDB(dbPath string) *db {
panic(err)
}
// Populate metrics on start.
if err := boltdb.View(func(tx *bolt.Tx) error {
// Populate blacklisted key count.
blacklistedPKCount.Set(float64(tx.Bucket(deletedKeysBucket).Stats().KeyN))
keys := 0
// Iterate over all of the pod assigned keys (one to many).
@@ -226,3 +243,77 @@ func (d *db) Allocations() (map[string][][]byte, error) {
return m, nil
}
func (d *db) KeyMap() ([][]byte, map[[48]byte]keyMap, error) {
m := make(map[[48]byte]keyMap)
pubkeys := make([][]byte, 0)
if err := d.db.View(func(tx *bolt.Tx) error {
return tx.Bucket(assignedPkBucket).ForEach(func(k, v []byte) error {
pks := &pb.PrivateKeys{}
if err := proto.Unmarshal(v, pks); err != nil {
return err
}
for i, pk := range pks.PrivateKeys {
seckey, err := bls.SecretKeyFromBytes(pk)
if err != nil {
return err
}
keytoSet := bytesutil.ToBytes48(seckey.PublicKey().Marshal())
m[keytoSet] = keyMap{
podName: string(k),
privateKey: pk,
index: i,
}
pubkeys = append(pubkeys, seckey.PublicKey().Marshal())
}
return nil
})
}); err != nil {
// do something
return nil, nil, err
}
return pubkeys, m, nil
}
// RemovePKFromPod and throw it away.
func (d *db) RemovePKFromPod(podName string, key []byte) error {
return d.db.Update(func(tx *bolt.Tx) error {
data := tx.Bucket(assignedPkBucket).Get([]byte(podName))
if data == nil {
log.WithField("podName", podName).Warn("Nil private key returned from db")
return nil
}
pks := &pb.PrivateKeys{}
if err := proto.Unmarshal(data, pks); err != nil {
return err
}
found := false
for i, k := range pks.PrivateKeys {
if bytes.Equal(k, key) {
found = true
pks.PrivateKeys = append(pks.PrivateKeys[:i], pks.PrivateKeys[i+1:]...)
break
}
}
if !found {
return errors.New("private key not assigned to pod")
}
marshaled, err := proto.Marshal(pks)
if err != nil {
return err
}
blacklistedPKCount.Inc()
allocatedPkCount.Dec()
assignedPkCount.Dec()
nowBytes, err := time.Now().MarshalBinary()
if err != nil {
return err
}
if err := tx.Bucket(deletedKeysBucket).Put(key, nowBytes); err != nil {
return err
}
return tx.Bucket(assignedPkBucket).Put([]byte(podName), marshaled)
})
}

View File

@@ -0,0 +1,78 @@
package main
import (
"context"
"fmt"
"time"
pbBeacon "github.com/prysmaticlabs/prysm/proto/beacon/rpc/v1"
"github.com/prysmaticlabs/prysm/shared/bytesutil"
"go.opencensus.io/plugin/ocgrpc"
"google.golang.org/grpc"
)
var keyInterval = 3 * time.Minute
type keyChecker struct {
db *db
client pbBeacon.ValidatorServiceClient
}
func newkeyChecker(db *db, beaconRPCAddr string) *keyChecker {
// connect to the beacon node
dialOpt := grpc.WithInsecure()
conn, err := grpc.DialContext(context.Background(), beaconRPCAddr, dialOpt, grpc.WithStatsHandler(&ocgrpc.ClientHandler{}))
if err != nil {
log.Errorf("Could not dial endpoint: %s, %v", beaconRPCAddr, err)
}
valClient := pbBeacon.NewValidatorServiceClient(conn)
return &keyChecker{
db: db,
client: valClient,
}
}
func (k *keyChecker) checkKeys() error {
pubkeys, keyMap, err := k.db.KeyMap()
if err != nil {
return err
}
log.Debug("Requesting EXITED keys")
req := &pbBeacon.ExitedValidatorsRequest{
PublicKeys: pubkeys,
}
ctx, cancel := context.WithTimeout(context.Background(), keyInterval)
defer cancel()
resp, err := k.client.ExitedValidators(ctx, req)
if err != nil {
return err
}
log.WithField(
"resp_keys", len(resp.PublicKeys),
).WithField(
"req_keys", len(req.PublicKeys),
).Debug("Received EXITED key list")
for _, key := range resp.PublicKeys {
log.WithField("key", fmt.Sprintf("%#x", key)).Debug("Removing EXITED key")
kMap := keyMap[bytesutil.ToBytes48(key)]
if err := k.db.RemovePKFromPod(kMap.podName, kMap.privateKey); err != nil {
return err
}
}
return nil
}
func (k *keyChecker) run() {
for {
if err := k.checkKeys(); err != nil {
log.WithError(err).Error("Failed to check keys")
}
time.Sleep(keyInterval)
}
}

View File

@@ -16,6 +16,7 @@ var (
metricsPort = flag.Int("metrics-port", 9090, "The port to serve /metrics")
privateKey = flag.String("private-key", "", "The private key of funder")
rpcPath = flag.String("rpc", "https://goerli.prylabs.net", "RPC address of a running ETH1 node")
beaconRPCPath = flag.String("beaconRPC", "localhost:4000", "RPC address of Beacon Node")
depositContractAddr = flag.String("deposit-contract", "", "Address of the deposit contract")
depositAmount = flag.Int64("deposit-amount", 0, "The amount of wei to deposit into the contract")
dbPath = flag.String("db-path", "", "The file path for database storage")
@@ -36,6 +37,9 @@ func main() {
go wt.WatchPods()
}
kc := newkeyChecker(db, *beaconRPCPath)
go kc.run()
s := grpc.NewServer()
pb.RegisterPrivateKeyServiceServer(s, srv)

View File

@@ -39,7 +39,6 @@ func (m *MockAttesterServiceClient) EXPECT() *MockAttesterServiceClientMockRecor
// AttestHead mocks base method
func (m *MockAttesterServiceClient) AttestHead(arg0 context.Context, arg1 *v1.Attestation, arg2 ...grpc.CallOption) (*v10.AttestResponse, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -52,14 +51,12 @@ func (m *MockAttesterServiceClient) AttestHead(arg0 context.Context, arg1 *v1.At
// AttestHead indicates an expected call of AttestHead
func (mr *MockAttesterServiceClientMockRecorder) AttestHead(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AttestHead", reflect.TypeOf((*MockAttesterServiceClient)(nil).AttestHead), varargs...)
}
// AttestationDataAtSlot mocks base method
func (m *MockAttesterServiceClient) AttestationDataAtSlot(arg0 context.Context, arg1 *v10.AttestationDataRequest, arg2 ...grpc.CallOption) (*v10.AttestationDataResponse, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -72,7 +69,6 @@ func (m *MockAttesterServiceClient) AttestationDataAtSlot(arg0 context.Context,
// AttestationDataAtSlot indicates an expected call of AttestationDataAtSlot
func (mr *MockAttesterServiceClientMockRecorder) AttestationDataAtSlot(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AttestationDataAtSlot", reflect.TypeOf((*MockAttesterServiceClient)(nil).AttestationDataAtSlot), varargs...)
}

View File

@@ -1,6 +1,7 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/prysmaticlabs/prysm/proto/beacon/rpc/v1 (interfaces: BeaconServiceClient,BeaconService_WaitForChainStartClient)
// Source: github.com/prysmaticlabs/prysm/proto/beacon/rpc/v1 (interfaces: BeaconServiceClient,BeaconService_LatestAttestationClient,BeaconService_WaitForChainStartClient)
// Package internal is a generated GoMock package.
package internal
import (
@@ -40,7 +41,6 @@ func (m *MockBeaconServiceClient) EXPECT() *MockBeaconServiceClientMockRecorder
// BlockTree mocks base method
func (m *MockBeaconServiceClient) BlockTree(arg0 context.Context, arg1 *types.Empty, arg2 ...grpc.CallOption) (*v10.BlockTreeResponse, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -53,14 +53,12 @@ func (m *MockBeaconServiceClient) BlockTree(arg0 context.Context, arg1 *types.Em
// BlockTree indicates an expected call of BlockTree
func (mr *MockBeaconServiceClientMockRecorder) BlockTree(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "BlockTree", reflect.TypeOf((*MockBeaconServiceClient)(nil).BlockTree), varargs...)
}
// CanonicalHead mocks base method
func (m *MockBeaconServiceClient) CanonicalHead(arg0 context.Context, arg1 *types.Empty, arg2 ...grpc.CallOption) (*v1.BeaconBlock, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -73,14 +71,12 @@ func (m *MockBeaconServiceClient) CanonicalHead(arg0 context.Context, arg1 *type
// CanonicalHead indicates an expected call of CanonicalHead
func (mr *MockBeaconServiceClientMockRecorder) CanonicalHead(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CanonicalHead", reflect.TypeOf((*MockBeaconServiceClient)(nil).CanonicalHead), varargs...)
}
// Eth1Data mocks base method
func (m *MockBeaconServiceClient) Eth1Data(arg0 context.Context, arg1 *types.Empty, arg2 ...grpc.CallOption) (*v10.Eth1DataResponse, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -93,14 +89,12 @@ func (m *MockBeaconServiceClient) Eth1Data(arg0 context.Context, arg1 *types.Emp
// Eth1Data indicates an expected call of Eth1Data
func (mr *MockBeaconServiceClientMockRecorder) Eth1Data(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Eth1Data", reflect.TypeOf((*MockBeaconServiceClient)(nil).Eth1Data), varargs...)
}
// ForkData mocks base method
func (m *MockBeaconServiceClient) ForkData(arg0 context.Context, arg1 *types.Empty, arg2 ...grpc.CallOption) (*v1.Fork, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -113,14 +107,12 @@ func (m *MockBeaconServiceClient) ForkData(arg0 context.Context, arg1 *types.Emp
// ForkData indicates an expected call of ForkData
func (mr *MockBeaconServiceClientMockRecorder) ForkData(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ForkData", reflect.TypeOf((*MockBeaconServiceClient)(nil).ForkData), varargs...)
}
// LatestAttestation mocks base method
func (m *MockBeaconServiceClient) LatestAttestation(arg0 context.Context, arg1 *types.Empty, arg2 ...grpc.CallOption) (v10.BeaconService_LatestAttestationClient, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -133,14 +125,12 @@ func (m *MockBeaconServiceClient) LatestAttestation(arg0 context.Context, arg1 *
// LatestAttestation indicates an expected call of LatestAttestation
func (mr *MockBeaconServiceClientMockRecorder) LatestAttestation(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LatestAttestation", reflect.TypeOf((*MockBeaconServiceClient)(nil).LatestAttestation), varargs...)
}
// PendingDeposits mocks base method
func (m *MockBeaconServiceClient) PendingDeposits(arg0 context.Context, arg1 *types.Empty, arg2 ...grpc.CallOption) (*v10.PendingDepositsResponse, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -153,14 +143,12 @@ func (m *MockBeaconServiceClient) PendingDeposits(arg0 context.Context, arg1 *ty
// PendingDeposits indicates an expected call of PendingDeposits
func (mr *MockBeaconServiceClientMockRecorder) PendingDeposits(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PendingDeposits", reflect.TypeOf((*MockBeaconServiceClient)(nil).PendingDeposits), varargs...)
}
// WaitForChainStart mocks base method
func (m *MockBeaconServiceClient) WaitForChainStart(arg0 context.Context, arg1 *types.Empty, arg2 ...grpc.CallOption) (v10.BeaconService_WaitForChainStartClient, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -173,11 +161,119 @@ func (m *MockBeaconServiceClient) WaitForChainStart(arg0 context.Context, arg1 *
// WaitForChainStart indicates an expected call of WaitForChainStart
func (mr *MockBeaconServiceClientMockRecorder) WaitForChainStart(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitForChainStart", reflect.TypeOf((*MockBeaconServiceClient)(nil).WaitForChainStart), varargs...)
}
// MockBeaconService_LatestAttestationClient is a mock of BeaconService_LatestAttestationClient interface
type MockBeaconService_LatestAttestationClient struct {
ctrl *gomock.Controller
recorder *MockBeaconService_LatestAttestationClientMockRecorder
}
// MockBeaconService_LatestAttestationClientMockRecorder is the mock recorder for MockBeaconService_LatestAttestationClient
type MockBeaconService_LatestAttestationClientMockRecorder struct {
mock *MockBeaconService_LatestAttestationClient
}
// NewMockBeaconService_LatestAttestationClient creates a new mock instance
func NewMockBeaconService_LatestAttestationClient(ctrl *gomock.Controller) *MockBeaconService_LatestAttestationClient {
mock := &MockBeaconService_LatestAttestationClient{ctrl: ctrl}
mock.recorder = &MockBeaconService_LatestAttestationClientMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use
func (m *MockBeaconService_LatestAttestationClient) EXPECT() *MockBeaconService_LatestAttestationClientMockRecorder {
return m.recorder
}
// CloseSend mocks base method
func (m *MockBeaconService_LatestAttestationClient) CloseSend() error {
ret := m.ctrl.Call(m, "CloseSend")
ret0, _ := ret[0].(error)
return ret0
}
// CloseSend indicates an expected call of CloseSend
func (mr *MockBeaconService_LatestAttestationClientMockRecorder) CloseSend() *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CloseSend", reflect.TypeOf((*MockBeaconService_LatestAttestationClient)(nil).CloseSend))
}
// Context mocks base method
func (m *MockBeaconService_LatestAttestationClient) Context() context.Context {
ret := m.ctrl.Call(m, "Context")
ret0, _ := ret[0].(context.Context)
return ret0
}
// Context indicates an expected call of Context
func (mr *MockBeaconService_LatestAttestationClientMockRecorder) Context() *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Context", reflect.TypeOf((*MockBeaconService_LatestAttestationClient)(nil).Context))
}
// Header mocks base method
func (m *MockBeaconService_LatestAttestationClient) Header() (metadata.MD, error) {
ret := m.ctrl.Call(m, "Header")
ret0, _ := ret[0].(metadata.MD)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// Header indicates an expected call of Header
func (mr *MockBeaconService_LatestAttestationClientMockRecorder) Header() *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Header", reflect.TypeOf((*MockBeaconService_LatestAttestationClient)(nil).Header))
}
// Recv mocks base method
func (m *MockBeaconService_LatestAttestationClient) Recv() (*v1.Attestation, error) {
ret := m.ctrl.Call(m, "Recv")
ret0, _ := ret[0].(*v1.Attestation)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// Recv indicates an expected call of Recv
func (mr *MockBeaconService_LatestAttestationClientMockRecorder) Recv() *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Recv", reflect.TypeOf((*MockBeaconService_LatestAttestationClient)(nil).Recv))
}
// RecvMsg mocks base method
func (m *MockBeaconService_LatestAttestationClient) RecvMsg(arg0 interface{}) error {
ret := m.ctrl.Call(m, "RecvMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// RecvMsg indicates an expected call of RecvMsg
func (mr *MockBeaconService_LatestAttestationClientMockRecorder) RecvMsg(arg0 interface{}) *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockBeaconService_LatestAttestationClient)(nil).RecvMsg), arg0)
}
// SendMsg mocks base method
func (m *MockBeaconService_LatestAttestationClient) SendMsg(arg0 interface{}) error {
ret := m.ctrl.Call(m, "SendMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// SendMsg indicates an expected call of SendMsg
func (mr *MockBeaconService_LatestAttestationClientMockRecorder) SendMsg(arg0 interface{}) *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockBeaconService_LatestAttestationClient)(nil).SendMsg), arg0)
}
// Trailer mocks base method
func (m *MockBeaconService_LatestAttestationClient) Trailer() metadata.MD {
ret := m.ctrl.Call(m, "Trailer")
ret0, _ := ret[0].(metadata.MD)
return ret0
}
// Trailer indicates an expected call of Trailer
func (mr *MockBeaconService_LatestAttestationClientMockRecorder) Trailer() *gomock.Call {
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Trailer", reflect.TypeOf((*MockBeaconService_LatestAttestationClient)(nil).Trailer))
}
// MockBeaconService_WaitForChainStartClient is a mock of BeaconService_WaitForChainStartClient interface
type MockBeaconService_WaitForChainStartClient struct {
ctrl *gomock.Controller
@@ -203,7 +299,6 @@ func (m *MockBeaconService_WaitForChainStartClient) EXPECT() *MockBeaconService_
// CloseSend mocks base method
func (m *MockBeaconService_WaitForChainStartClient) CloseSend() error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "CloseSend")
ret0, _ := ret[0].(error)
return ret0
@@ -211,13 +306,11 @@ func (m *MockBeaconService_WaitForChainStartClient) CloseSend() error {
// CloseSend indicates an expected call of CloseSend
func (mr *MockBeaconService_WaitForChainStartClientMockRecorder) CloseSend() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CloseSend", reflect.TypeOf((*MockBeaconService_WaitForChainStartClient)(nil).CloseSend))
}
// Context mocks base method
func (m *MockBeaconService_WaitForChainStartClient) Context() context.Context {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Context")
ret0, _ := ret[0].(context.Context)
return ret0
@@ -225,13 +318,11 @@ func (m *MockBeaconService_WaitForChainStartClient) Context() context.Context {
// Context indicates an expected call of Context
func (mr *MockBeaconService_WaitForChainStartClientMockRecorder) Context() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Context", reflect.TypeOf((*MockBeaconService_WaitForChainStartClient)(nil).Context))
}
// Header mocks base method
func (m *MockBeaconService_WaitForChainStartClient) Header() (metadata.MD, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Header")
ret0, _ := ret[0].(metadata.MD)
ret1, _ := ret[1].(error)
@@ -240,13 +331,11 @@ func (m *MockBeaconService_WaitForChainStartClient) Header() (metadata.MD, error
// Header indicates an expected call of Header
func (mr *MockBeaconService_WaitForChainStartClientMockRecorder) Header() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Header", reflect.TypeOf((*MockBeaconService_WaitForChainStartClient)(nil).Header))
}
// Recv mocks base method
func (m *MockBeaconService_WaitForChainStartClient) Recv() (*v10.ChainStartResponse, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Recv")
ret0, _ := ret[0].(*v10.ChainStartResponse)
ret1, _ := ret[1].(error)
@@ -255,13 +344,11 @@ func (m *MockBeaconService_WaitForChainStartClient) Recv() (*v10.ChainStartRespo
// Recv indicates an expected call of Recv
func (mr *MockBeaconService_WaitForChainStartClientMockRecorder) Recv() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Recv", reflect.TypeOf((*MockBeaconService_WaitForChainStartClient)(nil).Recv))
}
// RecvMsg mocks base method
func (m *MockBeaconService_WaitForChainStartClient) RecvMsg(arg0 interface{}) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "RecvMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
@@ -269,13 +356,11 @@ func (m *MockBeaconService_WaitForChainStartClient) RecvMsg(arg0 interface{}) er
// RecvMsg indicates an expected call of RecvMsg
func (mr *MockBeaconService_WaitForChainStartClientMockRecorder) RecvMsg(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockBeaconService_WaitForChainStartClient)(nil).RecvMsg), arg0)
}
// SendMsg mocks base method
func (m *MockBeaconService_WaitForChainStartClient) SendMsg(arg0 interface{}) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SendMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
@@ -283,13 +368,11 @@ func (m *MockBeaconService_WaitForChainStartClient) SendMsg(arg0 interface{}) er
// SendMsg indicates an expected call of SendMsg
func (mr *MockBeaconService_WaitForChainStartClientMockRecorder) SendMsg(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockBeaconService_WaitForChainStartClient)(nil).SendMsg), arg0)
}
// Trailer mocks base method
func (m *MockBeaconService_WaitForChainStartClient) Trailer() metadata.MD {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Trailer")
ret0, _ := ret[0].(metadata.MD)
return ret0
@@ -297,6 +380,5 @@ func (m *MockBeaconService_WaitForChainStartClient) Trailer() metadata.MD {
// Trailer indicates an expected call of Trailer
func (mr *MockBeaconService_WaitForChainStartClientMockRecorder) Trailer() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Trailer", reflect.TypeOf((*MockBeaconService_WaitForChainStartClient)(nil).Trailer))
}

View File

@@ -39,7 +39,6 @@ func (m *MockProposerServiceClient) EXPECT() *MockProposerServiceClientMockRecor
// ComputeStateRoot mocks base method
func (m *MockProposerServiceClient) ComputeStateRoot(arg0 context.Context, arg1 *v1.BeaconBlock, arg2 ...grpc.CallOption) (*v10.StateRootResponse, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -52,14 +51,12 @@ func (m *MockProposerServiceClient) ComputeStateRoot(arg0 context.Context, arg1
// ComputeStateRoot indicates an expected call of ComputeStateRoot
func (mr *MockProposerServiceClientMockRecorder) ComputeStateRoot(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ComputeStateRoot", reflect.TypeOf((*MockProposerServiceClient)(nil).ComputeStateRoot), varargs...)
}
// PendingAttestations mocks base method
func (m *MockProposerServiceClient) PendingAttestations(arg0 context.Context, arg1 *v10.PendingAttestationsRequest, arg2 ...grpc.CallOption) (*v10.PendingAttestationsResponse, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -72,14 +69,12 @@ func (m *MockProposerServiceClient) PendingAttestations(arg0 context.Context, ar
// PendingAttestations indicates an expected call of PendingAttestations
func (mr *MockProposerServiceClientMockRecorder) PendingAttestations(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PendingAttestations", reflect.TypeOf((*MockProposerServiceClient)(nil).PendingAttestations), varargs...)
}
// ProposeBlock mocks base method
func (m *MockProposerServiceClient) ProposeBlock(arg0 context.Context, arg1 *v1.BeaconBlock, arg2 ...grpc.CallOption) (*v10.ProposeResponse, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -92,14 +87,12 @@ func (m *MockProposerServiceClient) ProposeBlock(arg0 context.Context, arg1 *v1.
// ProposeBlock indicates an expected call of ProposeBlock
func (mr *MockProposerServiceClientMockRecorder) ProposeBlock(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ProposeBlock", reflect.TypeOf((*MockProposerServiceClient)(nil).ProposeBlock), varargs...)
}
// ProposerIndex mocks base method
func (m *MockProposerServiceClient) ProposerIndex(arg0 context.Context, arg1 *v10.ProposerIndexRequest, arg2 ...grpc.CallOption) (*v10.ProposerIndexResponse, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -112,7 +105,6 @@ func (m *MockProposerServiceClient) ProposerIndex(arg0 context.Context, arg1 *v1
// ProposerIndex indicates an expected call of ProposerIndex
func (mr *MockProposerServiceClientMockRecorder) ProposerIndex(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ProposerIndex", reflect.TypeOf((*MockProposerServiceClient)(nil).ProposerIndex), varargs...)
}

View File

@@ -39,7 +39,6 @@ func (m *MockValidatorServiceClient) EXPECT() *MockValidatorServiceClientMockRec
// CommitteeAssignment mocks base method
func (m *MockValidatorServiceClient) CommitteeAssignment(arg0 context.Context, arg1 *v1.CommitteeAssignmentsRequest, arg2 ...grpc.CallOption) (*v1.CommitteeAssignmentResponse, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -52,14 +51,30 @@ func (m *MockValidatorServiceClient) CommitteeAssignment(arg0 context.Context, a
// CommitteeAssignment indicates an expected call of CommitteeAssignment
func (mr *MockValidatorServiceClientMockRecorder) CommitteeAssignment(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CommitteeAssignment", reflect.TypeOf((*MockValidatorServiceClient)(nil).CommitteeAssignment), varargs...)
}
// ExitedValidators mocks base method
func (m *MockValidatorServiceClient) ExitedValidators(arg0 context.Context, arg1 *v1.ExitedValidatorsRequest, arg2 ...grpc.CallOption) (*v1.ExitedValidatorsResponse, error) {
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
}
ret := m.ctrl.Call(m, "ExitedValidators", varargs...)
ret0, _ := ret[0].(*v1.ExitedValidatorsResponse)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// ExitedValidators indicates an expected call of ExitedValidators
func (mr *MockValidatorServiceClientMockRecorder) ExitedValidators(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExitedValidators", reflect.TypeOf((*MockValidatorServiceClient)(nil).ExitedValidators), varargs...)
}
// ValidatorIndex mocks base method
func (m *MockValidatorServiceClient) ValidatorIndex(arg0 context.Context, arg1 *v1.ValidatorIndexRequest, arg2 ...grpc.CallOption) (*v1.ValidatorIndexResponse, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -72,14 +87,12 @@ func (m *MockValidatorServiceClient) ValidatorIndex(arg0 context.Context, arg1 *
// ValidatorIndex indicates an expected call of ValidatorIndex
func (mr *MockValidatorServiceClientMockRecorder) ValidatorIndex(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidatorIndex", reflect.TypeOf((*MockValidatorServiceClient)(nil).ValidatorIndex), varargs...)
}
// ValidatorPerformance mocks base method
func (m *MockValidatorServiceClient) ValidatorPerformance(arg0 context.Context, arg1 *v1.ValidatorPerformanceRequest, arg2 ...grpc.CallOption) (*v1.ValidatorPerformanceResponse, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -92,14 +105,12 @@ func (m *MockValidatorServiceClient) ValidatorPerformance(arg0 context.Context,
// ValidatorPerformance indicates an expected call of ValidatorPerformance
func (mr *MockValidatorServiceClientMockRecorder) ValidatorPerformance(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidatorPerformance", reflect.TypeOf((*MockValidatorServiceClient)(nil).ValidatorPerformance), varargs...)
}
// ValidatorStatus mocks base method
func (m *MockValidatorServiceClient) ValidatorStatus(arg0 context.Context, arg1 *v1.ValidatorIndexRequest, arg2 ...grpc.CallOption) (*v1.ValidatorStatusResponse, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -112,14 +123,12 @@ func (m *MockValidatorServiceClient) ValidatorStatus(arg0 context.Context, arg1
// ValidatorStatus indicates an expected call of ValidatorStatus
func (mr *MockValidatorServiceClientMockRecorder) ValidatorStatus(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidatorStatus", reflect.TypeOf((*MockValidatorServiceClient)(nil).ValidatorStatus), varargs...)
}
// WaitForActivation mocks base method
func (m *MockValidatorServiceClient) WaitForActivation(arg0 context.Context, arg1 *v1.ValidatorActivationRequest, arg2 ...grpc.CallOption) (v1.ValidatorService_WaitForActivationClient, error) {
m.ctrl.T.Helper()
varargs := []interface{}{arg0, arg1}
for _, a := range arg2 {
varargs = append(varargs, a)
@@ -132,7 +141,6 @@ func (m *MockValidatorServiceClient) WaitForActivation(arg0 context.Context, arg
// WaitForActivation indicates an expected call of WaitForActivation
func (mr *MockValidatorServiceClientMockRecorder) WaitForActivation(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WaitForActivation", reflect.TypeOf((*MockValidatorServiceClient)(nil).WaitForActivation), varargs...)
}
@@ -162,7 +170,6 @@ func (m *MockValidatorService_WaitForActivationClient) EXPECT() *MockValidatorSe
// CloseSend mocks base method
func (m *MockValidatorService_WaitForActivationClient) CloseSend() error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "CloseSend")
ret0, _ := ret[0].(error)
return ret0
@@ -170,13 +177,11 @@ func (m *MockValidatorService_WaitForActivationClient) CloseSend() error {
// CloseSend indicates an expected call of CloseSend
func (mr *MockValidatorService_WaitForActivationClientMockRecorder) CloseSend() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CloseSend", reflect.TypeOf((*MockValidatorService_WaitForActivationClient)(nil).CloseSend))
}
// Context mocks base method
func (m *MockValidatorService_WaitForActivationClient) Context() context.Context {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Context")
ret0, _ := ret[0].(context.Context)
return ret0
@@ -184,13 +189,11 @@ func (m *MockValidatorService_WaitForActivationClient) Context() context.Context
// Context indicates an expected call of Context
func (mr *MockValidatorService_WaitForActivationClientMockRecorder) Context() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Context", reflect.TypeOf((*MockValidatorService_WaitForActivationClient)(nil).Context))
}
// Header mocks base method
func (m *MockValidatorService_WaitForActivationClient) Header() (metadata.MD, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Header")
ret0, _ := ret[0].(metadata.MD)
ret1, _ := ret[1].(error)
@@ -199,13 +202,11 @@ func (m *MockValidatorService_WaitForActivationClient) Header() (metadata.MD, er
// Header indicates an expected call of Header
func (mr *MockValidatorService_WaitForActivationClientMockRecorder) Header() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Header", reflect.TypeOf((*MockValidatorService_WaitForActivationClient)(nil).Header))
}
// Recv mocks base method
func (m *MockValidatorService_WaitForActivationClient) Recv() (*v1.ValidatorActivationResponse, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Recv")
ret0, _ := ret[0].(*v1.ValidatorActivationResponse)
ret1, _ := ret[1].(error)
@@ -214,13 +215,11 @@ func (m *MockValidatorService_WaitForActivationClient) Recv() (*v1.ValidatorActi
// Recv indicates an expected call of Recv
func (mr *MockValidatorService_WaitForActivationClientMockRecorder) Recv() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Recv", reflect.TypeOf((*MockValidatorService_WaitForActivationClient)(nil).Recv))
}
// RecvMsg mocks base method
func (m *MockValidatorService_WaitForActivationClient) RecvMsg(arg0 interface{}) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "RecvMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
@@ -228,13 +227,11 @@ func (m *MockValidatorService_WaitForActivationClient) RecvMsg(arg0 interface{})
// RecvMsg indicates an expected call of RecvMsg
func (mr *MockValidatorService_WaitForActivationClientMockRecorder) RecvMsg(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockValidatorService_WaitForActivationClient)(nil).RecvMsg), arg0)
}
// SendMsg mocks base method
func (m *MockValidatorService_WaitForActivationClient) SendMsg(arg0 interface{}) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SendMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
@@ -242,13 +239,11 @@ func (m *MockValidatorService_WaitForActivationClient) SendMsg(arg0 interface{})
// SendMsg indicates an expected call of SendMsg
func (mr *MockValidatorService_WaitForActivationClientMockRecorder) SendMsg(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockValidatorService_WaitForActivationClient)(nil).SendMsg), arg0)
}
// Trailer mocks base method
func (m *MockValidatorService_WaitForActivationClient) Trailer() metadata.MD {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Trailer")
ret0, _ := ret[0].(metadata.MD)
return ret0
@@ -256,6 +251,5 @@ func (m *MockValidatorService_WaitForActivationClient) Trailer() metadata.MD {
// Trailer indicates an expected call of Trailer
func (mr *MockValidatorService_WaitForActivationClientMockRecorder) Trailer() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Trailer", reflect.TypeOf((*MockValidatorService_WaitForActivationClient)(nil).Trailer))
}