From b3d771ea120c579bc73900cf60bf7234e5362ade Mon Sep 17 00:00:00 2001 From: pcw109550 Date: Mon, 15 May 2023 14:27:48 +0900 Subject: [PATCH 1/4] Add method for addPeer RPC --- direct/eth_backend_client.go | 4 ++++ direct/sentry_client.go | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/direct/eth_backend_client.go b/direct/eth_backend_client.go index 977b1b17e..6405b009d 100644 --- a/direct/eth_backend_client.go +++ b/direct/eth_backend_client.go @@ -231,6 +231,10 @@ func (s *EthBackendClientDirect) Peers(ctx context.Context, in *emptypb.Empty, o return s.server.Peers(ctx, in) } +func (s *EthBackendClientDirect) AddPeer(ctx context.Context, in *remote.AddPeerRequest, opts ...grpc.CallOption) (*remote.AddPeerReply, error) { + return s.server.AddPeer(ctx, in) +} + func (s *EthBackendClientDirect) PendingBlock(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*remote.PendingBlockReply, error) { return s.server.PendingBlock(ctx, in) } diff --git a/direct/sentry_client.go b/direct/sentry_client.go index 5b06195c7..cf01003e7 100644 --- a/direct/sentry_client.go +++ b/direct/sentry_client.go @@ -320,6 +320,10 @@ func (c *SentryClientDirect) PeerEvents(ctx context.Context, in *sentry.PeerEven return &SentryPeersStreamC{ch: ch, ctx: ctx}, nil } +func (c *SentryClientDirect) AddPeer(ctx context.Context, in *sentry.AddPeerRequest, opts ...grpc.CallOption) (*sentry.AddPeerReply, error) { + return c.server.AddPeer(ctx, in) +} + type peersReply struct { r *sentry.PeerEvent err error From 28b9823a20c442f28b0c9c104e2e7d61adf2de45 Mon Sep 17 00:00:00 2001 From: pcw109550 Date: Mon, 15 May 2023 14:28:18 +0900 Subject: [PATCH 2/4] Update erigon-interfaces version --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 505626e3f..f6bd86a53 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module github.com/ledgerwatch/erigon-lib go 1.19 -replace github.com/ledgerwatch/interfaces v0.0.0-20230412092010-e1c4a1a4279e => github.com/testinprod-io/erigon-interfaces v0.0.0-20230510035441-34721174363e +replace github.com/ledgerwatch/interfaces v0.0.0-20230412092010-e1c4a1a4279e => github.com/testinprod-io/erigon-interfaces v0.0.0-20230515050805-8ded43c581a4 //for local dev: //replace github.com/ledgerwatch/interfaces v0.0.0-20230412092010-e1c4a1a4279e => ../erigon-interfaces diff --git a/go.sum b/go.sum index 3d13d3b84..eddea9f79 100644 --- a/go.sum +++ b/go.sum @@ -372,8 +372,8 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/testinprod-io/erigon-interfaces v0.0.0-20230510035441-34721174363e h1:g21YwDs32vw8PR/h/BJxU6ogmGSQOwAg4hJV1J7G8O0= -github.com/testinprod-io/erigon-interfaces v0.0.0-20230510035441-34721174363e/go.mod h1:ugQv1QllJzBny3cKZKxUrSnykkjkBgm27eQM6dnGAcc= +github.com/testinprod-io/erigon-interfaces v0.0.0-20230515050805-8ded43c581a4 h1:kjsZb8DszhJ1XNhwROSwJCDOEwd0ZlkgRG5Z9rBW8GQ= +github.com/testinprod-io/erigon-interfaces v0.0.0-20230515050805-8ded43c581a4/go.mod h1:ugQv1QllJzBny3cKZKxUrSnykkjkBgm27eQM6dnGAcc= github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= From 22f1acf7ed87b8d3dd53dbf196a1457312340cfd Mon Sep 17 00:00:00 2001 From: pcw109550 Date: Mon, 15 May 2023 14:28:31 +0900 Subject: [PATCH 3/4] Run make --- gointerfaces/remote/ethbackend.pb.go | 571 ++++++++++------- gointerfaces/remote/ethbackend_grpc.pb.go | 37 ++ gointerfaces/sentry/mocks.go | 114 ++++ gointerfaces/sentry/sentry.pb.go | 734 +++++++++++++--------- gointerfaces/sentry/sentry_grpc.pb.go | 37 ++ 5 files changed, 971 insertions(+), 522 deletions(-) diff --git a/gointerfaces/remote/ethbackend.pb.go b/gointerfaces/remote/ethbackend.pb.go index aa4647319..2b28d8da3 100644 --- a/gointerfaces/remote/ethbackend.pb.go +++ b/gointerfaces/remote/ethbackend.pb.go @@ -1580,6 +1580,53 @@ func (x *NodesInfoRequest) GetLimit() uint32 { return 0 } +type AddPeerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` +} + +func (x *AddPeerRequest) Reset() { + *x = AddPeerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddPeerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddPeerRequest) ProtoMessage() {} + +func (x *AddPeerRequest) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddPeerRequest.ProtoReflect.Descriptor instead. +func (*AddPeerRequest) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{27} +} + +func (x *AddPeerRequest) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + type NodesInfoReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1591,7 +1638,7 @@ type NodesInfoReply struct { func (x *NodesInfoReply) Reset() { *x = NodesInfoReply{} if protoimpl.UnsafeEnabled { - mi := &file_remote_ethbackend_proto_msgTypes[27] + mi := &file_remote_ethbackend_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1604,7 +1651,7 @@ func (x *NodesInfoReply) String() string { func (*NodesInfoReply) ProtoMessage() {} func (x *NodesInfoReply) ProtoReflect() protoreflect.Message { - mi := &file_remote_ethbackend_proto_msgTypes[27] + mi := &file_remote_ethbackend_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1617,7 +1664,7 @@ func (x *NodesInfoReply) ProtoReflect() protoreflect.Message { // Deprecated: Use NodesInfoReply.ProtoReflect.Descriptor instead. func (*NodesInfoReply) Descriptor() ([]byte, []int) { - return file_remote_ethbackend_proto_rawDescGZIP(), []int{27} + return file_remote_ethbackend_proto_rawDescGZIP(), []int{28} } func (x *NodesInfoReply) GetNodesInfo() []*types.NodeInfoReply { @@ -1638,7 +1685,7 @@ type PeersReply struct { func (x *PeersReply) Reset() { *x = PeersReply{} if protoimpl.UnsafeEnabled { - mi := &file_remote_ethbackend_proto_msgTypes[28] + mi := &file_remote_ethbackend_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1651,7 +1698,7 @@ func (x *PeersReply) String() string { func (*PeersReply) ProtoMessage() {} func (x *PeersReply) ProtoReflect() protoreflect.Message { - mi := &file_remote_ethbackend_proto_msgTypes[28] + mi := &file_remote_ethbackend_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1664,7 +1711,7 @@ func (x *PeersReply) ProtoReflect() protoreflect.Message { // Deprecated: Use PeersReply.ProtoReflect.Descriptor instead. func (*PeersReply) Descriptor() ([]byte, []int) { - return file_remote_ethbackend_proto_rawDescGZIP(), []int{28} + return file_remote_ethbackend_proto_rawDescGZIP(), []int{29} } func (x *PeersReply) GetPeers() []*types.PeerInfo { @@ -1674,6 +1721,53 @@ func (x *PeersReply) GetPeers() []*types.PeerInfo { return nil } +type AddPeerReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` +} + +func (x *AddPeerReply) Reset() { + *x = AddPeerReply{} + if protoimpl.UnsafeEnabled { + mi := &file_remote_ethbackend_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddPeerReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddPeerReply) ProtoMessage() {} + +func (x *AddPeerReply) ProtoReflect() protoreflect.Message { + mi := &file_remote_ethbackend_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddPeerReply.ProtoReflect.Descriptor instead. +func (*AddPeerReply) Descriptor() ([]byte, []int) { + return file_remote_ethbackend_proto_rawDescGZIP(), []int{30} +} + +func (x *AddPeerReply) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + type PendingBlockReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1685,7 +1779,7 @@ type PendingBlockReply struct { func (x *PendingBlockReply) Reset() { *x = PendingBlockReply{} if protoimpl.UnsafeEnabled { - mi := &file_remote_ethbackend_proto_msgTypes[29] + mi := &file_remote_ethbackend_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1698,7 +1792,7 @@ func (x *PendingBlockReply) String() string { func (*PendingBlockReply) ProtoMessage() {} func (x *PendingBlockReply) ProtoReflect() protoreflect.Message { - mi := &file_remote_ethbackend_proto_msgTypes[29] + mi := &file_remote_ethbackend_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1711,7 +1805,7 @@ func (x *PendingBlockReply) ProtoReflect() protoreflect.Message { // Deprecated: Use PendingBlockReply.ProtoReflect.Descriptor instead. func (*PendingBlockReply) Descriptor() ([]byte, []int) { - return file_remote_ethbackend_proto_rawDescGZIP(), []int{29} + return file_remote_ethbackend_proto_rawDescGZIP(), []int{31} } func (x *PendingBlockReply) GetBlockRlp() []byte { @@ -1732,7 +1826,7 @@ type EngineGetPayloadBodiesByHashV1Request struct { func (x *EngineGetPayloadBodiesByHashV1Request) Reset() { *x = EngineGetPayloadBodiesByHashV1Request{} if protoimpl.UnsafeEnabled { - mi := &file_remote_ethbackend_proto_msgTypes[30] + mi := &file_remote_ethbackend_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1745,7 +1839,7 @@ func (x *EngineGetPayloadBodiesByHashV1Request) String() string { func (*EngineGetPayloadBodiesByHashV1Request) ProtoMessage() {} func (x *EngineGetPayloadBodiesByHashV1Request) ProtoReflect() protoreflect.Message { - mi := &file_remote_ethbackend_proto_msgTypes[30] + mi := &file_remote_ethbackend_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1758,7 +1852,7 @@ func (x *EngineGetPayloadBodiesByHashV1Request) ProtoReflect() protoreflect.Mess // Deprecated: Use EngineGetPayloadBodiesByHashV1Request.ProtoReflect.Descriptor instead. func (*EngineGetPayloadBodiesByHashV1Request) Descriptor() ([]byte, []int) { - return file_remote_ethbackend_proto_rawDescGZIP(), []int{30} + return file_remote_ethbackend_proto_rawDescGZIP(), []int{32} } func (x *EngineGetPayloadBodiesByHashV1Request) GetHashes() []*types.H256 { @@ -1780,7 +1874,7 @@ type EngineGetPayloadBodiesByRangeV1Request struct { func (x *EngineGetPayloadBodiesByRangeV1Request) Reset() { *x = EngineGetPayloadBodiesByRangeV1Request{} if protoimpl.UnsafeEnabled { - mi := &file_remote_ethbackend_proto_msgTypes[31] + mi := &file_remote_ethbackend_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1793,7 +1887,7 @@ func (x *EngineGetPayloadBodiesByRangeV1Request) String() string { func (*EngineGetPayloadBodiesByRangeV1Request) ProtoMessage() {} func (x *EngineGetPayloadBodiesByRangeV1Request) ProtoReflect() protoreflect.Message { - mi := &file_remote_ethbackend_proto_msgTypes[31] + mi := &file_remote_ethbackend_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1806,7 +1900,7 @@ func (x *EngineGetPayloadBodiesByRangeV1Request) ProtoReflect() protoreflect.Mes // Deprecated: Use EngineGetPayloadBodiesByRangeV1Request.ProtoReflect.Descriptor instead. func (*EngineGetPayloadBodiesByRangeV1Request) Descriptor() ([]byte, []int) { - return file_remote_ethbackend_proto_rawDescGZIP(), []int{31} + return file_remote_ethbackend_proto_rawDescGZIP(), []int{33} } func (x *EngineGetPayloadBodiesByRangeV1Request) GetStart() uint64 { @@ -1834,7 +1928,7 @@ type EngineGetPayloadBodiesV1Response struct { func (x *EngineGetPayloadBodiesV1Response) Reset() { *x = EngineGetPayloadBodiesV1Response{} if protoimpl.UnsafeEnabled { - mi := &file_remote_ethbackend_proto_msgTypes[32] + mi := &file_remote_ethbackend_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1847,7 +1941,7 @@ func (x *EngineGetPayloadBodiesV1Response) String() string { func (*EngineGetPayloadBodiesV1Response) ProtoMessage() {} func (x *EngineGetPayloadBodiesV1Response) ProtoReflect() protoreflect.Message { - mi := &file_remote_ethbackend_proto_msgTypes[32] + mi := &file_remote_ethbackend_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1860,7 +1954,7 @@ func (x *EngineGetPayloadBodiesV1Response) ProtoReflect() protoreflect.Message { // Deprecated: Use EngineGetPayloadBodiesV1Response.ProtoReflect.Descriptor instead. func (*EngineGetPayloadBodiesV1Response) Descriptor() ([]byte, []int) { - return file_remote_ethbackend_proto_rawDescGZIP(), []int{32} + return file_remote_ethbackend_proto_rawDescGZIP(), []int{34} } func (x *EngineGetPayloadBodiesV1Response) GetBodies() []*types.ExecutionPayloadBodyV1 { @@ -2043,137 +2137,146 @@ var file_remote_ethbackend_proto_rawDesc = []byte{ 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x28, 0x0a, 0x10, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x45, 0x0a, 0x0e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x33, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, - 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x33, 0x0a, - 0x0a, 0x50, 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x70, - 0x65, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x70, 0x65, 0x65, - 0x72, 0x73, 0x22, 0x30, 0x0a, 0x11, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x72, 0x6c, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x52, 0x6c, 0x70, 0x22, 0x4c, 0x0a, 0x25, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, - 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, - 0x48, 0x61, 0x73, 0x68, 0x56, 0x31, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, - 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x06, 0x68, 0x61, 0x73, 0x68, - 0x65, 0x73, 0x22, 0x54, 0x0a, 0x26, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, - 0x6e, 0x67, 0x65, 0x56, 0x31, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x59, 0x0a, 0x20, 0x45, 0x6e, 0x67, 0x69, - 0x6e, 0x65, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x64, 0x69, - 0x65, 0x73, 0x56, 0x31, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x06, - 0x62, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x56, 0x31, 0x52, 0x06, 0x62, 0x6f, 0x64, - 0x69, 0x65, 0x73, 0x2a, 0x4a, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x0a, 0x0a, 0x06, - 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x45, 0x4e, 0x44, - 0x49, 0x4e, 0x47, 0x5f, 0x4c, 0x4f, 0x47, 0x53, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x45, - 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x10, 0x0a, - 0x0c, 0x4e, 0x45, 0x57, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x03, 0x2a, - 0x59, 0x0a, 0x0c, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x09, 0x0a, 0x05, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, - 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x59, 0x4e, 0x43, 0x49, - 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x45, 0x44, - 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x42, 0x4c, - 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x04, 0x32, 0xb8, 0x0b, 0x0a, 0x0a, 0x45, - 0x54, 0x48, 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x12, 0x3d, 0x0a, 0x09, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x62, 0x61, 0x73, 0x65, 0x12, 0x18, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x62, - 0x61, 0x73, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x40, 0x0a, 0x0a, 0x4e, 0x65, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, - 0x4e, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x17, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x46, 0x0a, 0x0c, 0x4e, 0x65, - 0x74, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x2e, 0x4e, 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x12, 0x48, 0x0a, 0x10, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4e, 0x65, 0x77, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x45, - 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, - 0x1b, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x6a, 0x0a, 0x17, - 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x26, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x27, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x46, - 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x10, 0x45, 0x6e, 0x67, 0x69, - 0x6e, 0x65, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1f, 0x2e, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x79, 0x0a, 0x1e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x56, - 0x31, 0x12, 0x2d, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, - 0x65, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x64, 0x69, 0x65, - 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x56, 0x31, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x28, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x22, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x45, 0x0a, 0x0e, 0x4e, 0x6f, + 0x64, 0x65, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x33, 0x0a, 0x0a, + 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0x33, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, + 0x25, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x28, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, + 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x22, 0x30, 0x0a, 0x11, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, + 0x6c, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, + 0x6c, 0x70, 0x22, 0x4c, 0x0a, 0x25, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x48, 0x61, + 0x73, 0x68, 0x56, 0x31, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x06, 0x68, + 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x06, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, + 0x22, 0x54, 0x0a, 0x26, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x56, 0x31, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x59, 0x0a, 0x20, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, - 0x56, 0x31, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x1f, 0x45, 0x6e, - 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, - 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x31, 0x12, 0x2e, 0x2e, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x56, 0x31, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x56, 0x31, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x16, 0x45, 0x6e, 0x67, 0x69, 0x6e, - 0x65, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, - 0x31, 0x12, 0x23, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, - 0x65, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, - 0x6c, 0x6f, 0x62, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x31, 0x12, 0x36, 0x0a, 0x07, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, - 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x70, 0x6c, 0x79, 0x12, 0x4f, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x49, 0x0a, 0x0d, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x12, 0x3f, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x18, 0x2e, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x30, - 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4c, 0x6f, - 0x67, 0x73, 0x12, 0x19, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4c, 0x6f, 0x67, 0x73, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x28, 0x01, 0x30, 0x01, 0x12, 0x31, 0x0a, - 0x05, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x14, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x12, 0x3d, 0x0a, 0x09, 0x54, 0x78, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x12, 0x18, 0x2e, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x78, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x2e, 0x54, 0x78, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, - 0x3c, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x2e, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4e, - 0x6f, 0x64, 0x65, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x33, 0x0a, - 0x05, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, - 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x12, 0x41, 0x0a, 0x0c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x11, 0x5a, 0x0f, 0x2e, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x3b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x56, 0x31, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x62, 0x6f, + 0x64, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x56, 0x31, 0x52, 0x06, 0x62, 0x6f, 0x64, 0x69, 0x65, + 0x73, 0x2a, 0x4a, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x45, + 0x41, 0x44, 0x45, 0x52, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, + 0x47, 0x5f, 0x4c, 0x4f, 0x47, 0x53, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x45, 0x4e, 0x44, + 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4e, + 0x45, 0x57, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x10, 0x03, 0x2a, 0x59, 0x0a, + 0x0c, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x09, 0x0a, + 0x05, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, + 0x4c, 0x49, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x59, 0x4e, 0x43, 0x49, 0x4e, 0x47, + 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x45, 0x44, 0x10, 0x03, + 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x42, 0x4c, 0x4f, 0x43, + 0x4b, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x10, 0x04, 0x32, 0xf1, 0x0b, 0x0a, 0x0a, 0x45, 0x54, 0x48, + 0x42, 0x41, 0x43, 0x4b, 0x45, 0x4e, 0x44, 0x12, 0x3d, 0x0a, 0x09, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x62, 0x61, 0x73, 0x65, 0x12, 0x18, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x62, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x62, 0x61, 0x73, + 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x40, 0x0a, 0x0a, 0x4e, 0x65, 0x74, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4e, 0x65, + 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x17, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x46, 0x0a, 0x0c, 0x4e, 0x65, 0x74, 0x50, + 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4e, + 0x65, 0x74, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x48, 0x0a, 0x10, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4e, 0x65, 0x77, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x17, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x1b, 0x2e, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x6a, 0x0a, 0x17, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x26, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x46, 0x6f, 0x72, 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x46, 0x6f, 0x72, + 0x6b, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x10, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, + 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1f, 0x2e, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, + 0x1e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x48, 0x61, 0x73, 0x68, 0x56, 0x31, 0x12, + 0x2d, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, + 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, + 0x79, 0x48, 0x61, 0x73, 0x68, 0x56, 0x31, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, + 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, + 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x56, 0x31, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x1f, 0x45, 0x6e, 0x67, 0x69, + 0x6e, 0x65, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x64, 0x69, + 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x31, 0x12, 0x2e, 0x2e, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x42, 0x79, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x56, 0x31, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, 0x65, 0x74, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x6f, 0x64, 0x69, 0x65, 0x73, 0x56, 0x31, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x16, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, + 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x31, 0x12, + 0x23, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x47, + 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, + 0x62, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x31, 0x12, 0x36, 0x0a, 0x07, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x13, 0x2e, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x12, 0x4f, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x12, 0x49, 0x0a, 0x0d, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x3f, + 0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x18, 0x2e, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x30, 0x01, 0x12, + 0x4a, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4c, 0x6f, 0x67, 0x73, + 0x12, 0x19, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4c, 0x6f, 0x67, 0x73, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x4c, 0x6f, + 0x67, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x28, 0x01, 0x30, 0x01, 0x12, 0x31, 0x0a, 0x05, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x14, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x3d, + 0x0a, 0x09, 0x54, 0x78, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x12, 0x18, 0x2e, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, 0x78, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x54, + 0x78, 0x6e, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x3c, 0x0a, + 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x2e, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4e, 0x6f, 0x64, + 0x65, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x50, + 0x65, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x37, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x41, 0x64, 0x64, + 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x41, 0x0a, 0x0c, 0x50, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x19, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x50, 0x65, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x11, 0x5a, 0x0f, + 0x2e, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x3b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2189,7 +2292,7 @@ func file_remote_ethbackend_proto_rawDescGZIP() []byte { } var file_remote_ethbackend_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_remote_ethbackend_proto_msgTypes = make([]protoimpl.MessageInfo, 33) +var file_remote_ethbackend_proto_msgTypes = make([]protoimpl.MessageInfo, 35) var file_remote_ethbackend_proto_goTypes = []interface{}{ (Event)(0), // 0: remote.Event (EngineStatus)(0), // 1: remote.EngineStatus @@ -2220,62 +2323,64 @@ var file_remote_ethbackend_proto_goTypes = []interface{}{ (*TxnLookupRequest)(nil), // 26: remote.TxnLookupRequest (*TxnLookupReply)(nil), // 27: remote.TxnLookupReply (*NodesInfoRequest)(nil), // 28: remote.NodesInfoRequest - (*NodesInfoReply)(nil), // 29: remote.NodesInfoReply - (*PeersReply)(nil), // 30: remote.PeersReply - (*PendingBlockReply)(nil), // 31: remote.PendingBlockReply - (*EngineGetPayloadBodiesByHashV1Request)(nil), // 32: remote.EngineGetPayloadBodiesByHashV1Request - (*EngineGetPayloadBodiesByRangeV1Request)(nil), // 33: remote.EngineGetPayloadBodiesByRangeV1Request - (*EngineGetPayloadBodiesV1Response)(nil), // 34: remote.EngineGetPayloadBodiesV1Response - (*types.H160)(nil), // 35: types.H160 - (*types.H256)(nil), // 36: types.H256 - (*types.Withdrawal)(nil), // 37: types.Withdrawal - (*types.ExecutionPayload)(nil), // 38: types.ExecutionPayload - (*types.NodeInfoReply)(nil), // 39: types.NodeInfoReply - (*types.PeerInfo)(nil), // 40: types.PeerInfo - (*types.ExecutionPayloadBodyV1)(nil), // 41: types.ExecutionPayloadBodyV1 - (*emptypb.Empty)(nil), // 42: google.protobuf.Empty - (*types.BlobsBundleV1)(nil), // 43: types.BlobsBundleV1 - (*types.VersionReply)(nil), // 44: types.VersionReply + (*AddPeerRequest)(nil), // 29: remote.AddPeerRequest + (*NodesInfoReply)(nil), // 30: remote.NodesInfoReply + (*PeersReply)(nil), // 31: remote.PeersReply + (*AddPeerReply)(nil), // 32: remote.AddPeerReply + (*PendingBlockReply)(nil), // 33: remote.PendingBlockReply + (*EngineGetPayloadBodiesByHashV1Request)(nil), // 34: remote.EngineGetPayloadBodiesByHashV1Request + (*EngineGetPayloadBodiesByRangeV1Request)(nil), // 35: remote.EngineGetPayloadBodiesByRangeV1Request + (*EngineGetPayloadBodiesV1Response)(nil), // 36: remote.EngineGetPayloadBodiesV1Response + (*types.H160)(nil), // 37: types.H160 + (*types.H256)(nil), // 38: types.H256 + (*types.Withdrawal)(nil), // 39: types.Withdrawal + (*types.ExecutionPayload)(nil), // 40: types.ExecutionPayload + (*types.NodeInfoReply)(nil), // 41: types.NodeInfoReply + (*types.PeerInfo)(nil), // 42: types.PeerInfo + (*types.ExecutionPayloadBodyV1)(nil), // 43: types.ExecutionPayloadBodyV1 + (*emptypb.Empty)(nil), // 44: google.protobuf.Empty + (*types.BlobsBundleV1)(nil), // 45: types.BlobsBundleV1 + (*types.VersionReply)(nil), // 46: types.VersionReply } var file_remote_ethbackend_proto_depIdxs = []int32{ - 35, // 0: remote.EtherbaseReply.address:type_name -> types.H160 + 37, // 0: remote.EtherbaseReply.address:type_name -> types.H160 1, // 1: remote.EnginePayloadStatus.status:type_name -> remote.EngineStatus - 36, // 2: remote.EnginePayloadStatus.latest_valid_hash:type_name -> types.H256 - 36, // 3: remote.EnginePayloadAttributes.prev_randao:type_name -> types.H256 - 35, // 4: remote.EnginePayloadAttributes.suggested_fee_recipient:type_name -> types.H160 - 37, // 5: remote.EnginePayloadAttributes.withdrawals:type_name -> types.Withdrawal - 36, // 6: remote.EngineForkChoiceState.head_block_hash:type_name -> types.H256 - 36, // 7: remote.EngineForkChoiceState.safe_block_hash:type_name -> types.H256 - 36, // 8: remote.EngineForkChoiceState.finalized_block_hash:type_name -> types.H256 + 38, // 2: remote.EnginePayloadStatus.latest_valid_hash:type_name -> types.H256 + 38, // 3: remote.EnginePayloadAttributes.prev_randao:type_name -> types.H256 + 37, // 4: remote.EnginePayloadAttributes.suggested_fee_recipient:type_name -> types.H160 + 39, // 5: remote.EnginePayloadAttributes.withdrawals:type_name -> types.Withdrawal + 38, // 6: remote.EngineForkChoiceState.head_block_hash:type_name -> types.H256 + 38, // 7: remote.EngineForkChoiceState.safe_block_hash:type_name -> types.H256 + 38, // 8: remote.EngineForkChoiceState.finalized_block_hash:type_name -> types.H256 12, // 9: remote.EngineForkChoiceUpdatedRequest.forkchoice_state:type_name -> remote.EngineForkChoiceState 11, // 10: remote.EngineForkChoiceUpdatedRequest.payload_attributes:type_name -> remote.EnginePayloadAttributes 10, // 11: remote.EngineForkChoiceUpdatedResponse.payload_status:type_name -> remote.EnginePayloadStatus - 38, // 12: remote.EngineGetPayloadResponse.execution_payload:type_name -> types.ExecutionPayload - 36, // 13: remote.EngineGetPayloadResponse.block_value:type_name -> types.H256 + 40, // 12: remote.EngineGetPayloadResponse.execution_payload:type_name -> types.ExecutionPayload + 38, // 13: remote.EngineGetPayloadResponse.block_value:type_name -> types.H256 0, // 14: remote.SubscribeRequest.type:type_name -> remote.Event 0, // 15: remote.SubscribeReply.type:type_name -> remote.Event - 35, // 16: remote.LogsFilterRequest.addresses:type_name -> types.H160 - 36, // 17: remote.LogsFilterRequest.topics:type_name -> types.H256 - 35, // 18: remote.SubscribeLogsReply.address:type_name -> types.H160 - 36, // 19: remote.SubscribeLogsReply.block_hash:type_name -> types.H256 - 36, // 20: remote.SubscribeLogsReply.topics:type_name -> types.H256 - 36, // 21: remote.SubscribeLogsReply.transaction_hash:type_name -> types.H256 - 36, // 22: remote.BlockRequest.block_hash:type_name -> types.H256 - 36, // 23: remote.TxnLookupRequest.txn_hash:type_name -> types.H256 - 39, // 24: remote.NodesInfoReply.nodes_info:type_name -> types.NodeInfoReply - 40, // 25: remote.PeersReply.peers:type_name -> types.PeerInfo - 36, // 26: remote.EngineGetPayloadBodiesByHashV1Request.hashes:type_name -> types.H256 - 41, // 27: remote.EngineGetPayloadBodiesV1Response.bodies:type_name -> types.ExecutionPayloadBodyV1 + 37, // 16: remote.LogsFilterRequest.addresses:type_name -> types.H160 + 38, // 17: remote.LogsFilterRequest.topics:type_name -> types.H256 + 37, // 18: remote.SubscribeLogsReply.address:type_name -> types.H160 + 38, // 19: remote.SubscribeLogsReply.block_hash:type_name -> types.H256 + 38, // 20: remote.SubscribeLogsReply.topics:type_name -> types.H256 + 38, // 21: remote.SubscribeLogsReply.transaction_hash:type_name -> types.H256 + 38, // 22: remote.BlockRequest.block_hash:type_name -> types.H256 + 38, // 23: remote.TxnLookupRequest.txn_hash:type_name -> types.H256 + 41, // 24: remote.NodesInfoReply.nodes_info:type_name -> types.NodeInfoReply + 42, // 25: remote.PeersReply.peers:type_name -> types.PeerInfo + 38, // 26: remote.EngineGetPayloadBodiesByHashV1Request.hashes:type_name -> types.H256 + 43, // 27: remote.EngineGetPayloadBodiesV1Response.bodies:type_name -> types.ExecutionPayloadBodyV1 2, // 28: remote.ETHBACKEND.Etherbase:input_type -> remote.EtherbaseRequest 4, // 29: remote.ETHBACKEND.NetVersion:input_type -> remote.NetVersionRequest 6, // 30: remote.ETHBACKEND.NetPeerCount:input_type -> remote.NetPeerCountRequest - 38, // 31: remote.ETHBACKEND.EngineNewPayload:input_type -> types.ExecutionPayload + 40, // 31: remote.ETHBACKEND.EngineNewPayload:input_type -> types.ExecutionPayload 13, // 32: remote.ETHBACKEND.EngineForkChoiceUpdated:input_type -> remote.EngineForkChoiceUpdatedRequest 8, // 33: remote.ETHBACKEND.EngineGetPayload:input_type -> remote.EngineGetPayloadRequest - 32, // 34: remote.ETHBACKEND.EngineGetPayloadBodiesByHashV1:input_type -> remote.EngineGetPayloadBodiesByHashV1Request - 33, // 35: remote.ETHBACKEND.EngineGetPayloadBodiesByRangeV1:input_type -> remote.EngineGetPayloadBodiesByRangeV1Request + 34, // 34: remote.ETHBACKEND.EngineGetPayloadBodiesByHashV1:input_type -> remote.EngineGetPayloadBodiesByHashV1Request + 35, // 35: remote.ETHBACKEND.EngineGetPayloadBodiesByRangeV1:input_type -> remote.EngineGetPayloadBodiesByRangeV1Request 9, // 36: remote.ETHBACKEND.EngineGetBlobsBundleV1:input_type -> remote.EngineGetBlobsBundleRequest - 42, // 37: remote.ETHBACKEND.Version:input_type -> google.protobuf.Empty + 44, // 37: remote.ETHBACKEND.Version:input_type -> google.protobuf.Empty 16, // 38: remote.ETHBACKEND.ProtocolVersion:input_type -> remote.ProtocolVersionRequest 18, // 39: remote.ETHBACKEND.ClientVersion:input_type -> remote.ClientVersionRequest 20, // 40: remote.ETHBACKEND.Subscribe:input_type -> remote.SubscribeRequest @@ -2283,29 +2388,31 @@ var file_remote_ethbackend_proto_depIdxs = []int32{ 24, // 42: remote.ETHBACKEND.Block:input_type -> remote.BlockRequest 26, // 43: remote.ETHBACKEND.TxnLookup:input_type -> remote.TxnLookupRequest 28, // 44: remote.ETHBACKEND.NodeInfo:input_type -> remote.NodesInfoRequest - 42, // 45: remote.ETHBACKEND.Peers:input_type -> google.protobuf.Empty - 42, // 46: remote.ETHBACKEND.PendingBlock:input_type -> google.protobuf.Empty - 3, // 47: remote.ETHBACKEND.Etherbase:output_type -> remote.EtherbaseReply - 5, // 48: remote.ETHBACKEND.NetVersion:output_type -> remote.NetVersionReply - 7, // 49: remote.ETHBACKEND.NetPeerCount:output_type -> remote.NetPeerCountReply - 10, // 50: remote.ETHBACKEND.EngineNewPayload:output_type -> remote.EnginePayloadStatus - 14, // 51: remote.ETHBACKEND.EngineForkChoiceUpdated:output_type -> remote.EngineForkChoiceUpdatedResponse - 15, // 52: remote.ETHBACKEND.EngineGetPayload:output_type -> remote.EngineGetPayloadResponse - 34, // 53: remote.ETHBACKEND.EngineGetPayloadBodiesByHashV1:output_type -> remote.EngineGetPayloadBodiesV1Response - 34, // 54: remote.ETHBACKEND.EngineGetPayloadBodiesByRangeV1:output_type -> remote.EngineGetPayloadBodiesV1Response - 43, // 55: remote.ETHBACKEND.EngineGetBlobsBundleV1:output_type -> types.BlobsBundleV1 - 44, // 56: remote.ETHBACKEND.Version:output_type -> types.VersionReply - 17, // 57: remote.ETHBACKEND.ProtocolVersion:output_type -> remote.ProtocolVersionReply - 19, // 58: remote.ETHBACKEND.ClientVersion:output_type -> remote.ClientVersionReply - 21, // 59: remote.ETHBACKEND.Subscribe:output_type -> remote.SubscribeReply - 23, // 60: remote.ETHBACKEND.SubscribeLogs:output_type -> remote.SubscribeLogsReply - 25, // 61: remote.ETHBACKEND.Block:output_type -> remote.BlockReply - 27, // 62: remote.ETHBACKEND.TxnLookup:output_type -> remote.TxnLookupReply - 29, // 63: remote.ETHBACKEND.NodeInfo:output_type -> remote.NodesInfoReply - 30, // 64: remote.ETHBACKEND.Peers:output_type -> remote.PeersReply - 31, // 65: remote.ETHBACKEND.PendingBlock:output_type -> remote.PendingBlockReply - 47, // [47:66] is the sub-list for method output_type - 28, // [28:47] is the sub-list for method input_type + 44, // 45: remote.ETHBACKEND.Peers:input_type -> google.protobuf.Empty + 29, // 46: remote.ETHBACKEND.AddPeer:input_type -> remote.AddPeerRequest + 44, // 47: remote.ETHBACKEND.PendingBlock:input_type -> google.protobuf.Empty + 3, // 48: remote.ETHBACKEND.Etherbase:output_type -> remote.EtherbaseReply + 5, // 49: remote.ETHBACKEND.NetVersion:output_type -> remote.NetVersionReply + 7, // 50: remote.ETHBACKEND.NetPeerCount:output_type -> remote.NetPeerCountReply + 10, // 51: remote.ETHBACKEND.EngineNewPayload:output_type -> remote.EnginePayloadStatus + 14, // 52: remote.ETHBACKEND.EngineForkChoiceUpdated:output_type -> remote.EngineForkChoiceUpdatedResponse + 15, // 53: remote.ETHBACKEND.EngineGetPayload:output_type -> remote.EngineGetPayloadResponse + 36, // 54: remote.ETHBACKEND.EngineGetPayloadBodiesByHashV1:output_type -> remote.EngineGetPayloadBodiesV1Response + 36, // 55: remote.ETHBACKEND.EngineGetPayloadBodiesByRangeV1:output_type -> remote.EngineGetPayloadBodiesV1Response + 45, // 56: remote.ETHBACKEND.EngineGetBlobsBundleV1:output_type -> types.BlobsBundleV1 + 46, // 57: remote.ETHBACKEND.Version:output_type -> types.VersionReply + 17, // 58: remote.ETHBACKEND.ProtocolVersion:output_type -> remote.ProtocolVersionReply + 19, // 59: remote.ETHBACKEND.ClientVersion:output_type -> remote.ClientVersionReply + 21, // 60: remote.ETHBACKEND.Subscribe:output_type -> remote.SubscribeReply + 23, // 61: remote.ETHBACKEND.SubscribeLogs:output_type -> remote.SubscribeLogsReply + 25, // 62: remote.ETHBACKEND.Block:output_type -> remote.BlockReply + 27, // 63: remote.ETHBACKEND.TxnLookup:output_type -> remote.TxnLookupReply + 30, // 64: remote.ETHBACKEND.NodeInfo:output_type -> remote.NodesInfoReply + 31, // 65: remote.ETHBACKEND.Peers:output_type -> remote.PeersReply + 32, // 66: remote.ETHBACKEND.AddPeer:output_type -> remote.AddPeerReply + 33, // 67: remote.ETHBACKEND.PendingBlock:output_type -> remote.PendingBlockReply + 48, // [48:68] is the sub-list for method output_type + 28, // [28:48] is the sub-list for method input_type 28, // [28:28] is the sub-list for extension type_name 28, // [28:28] is the sub-list for extension extendee 0, // [0:28] is the sub-list for field type_name @@ -2642,7 +2749,7 @@ func file_remote_ethbackend_proto_init() { } } file_remote_ethbackend_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NodesInfoReply); i { + switch v := v.(*AddPeerRequest); i { case 0: return &v.state case 1: @@ -2654,7 +2761,7 @@ func file_remote_ethbackend_proto_init() { } } file_remote_ethbackend_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PeersReply); i { + switch v := v.(*NodesInfoReply); i { case 0: return &v.state case 1: @@ -2666,7 +2773,7 @@ func file_remote_ethbackend_proto_init() { } } file_remote_ethbackend_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PendingBlockReply); i { + switch v := v.(*PeersReply); i { case 0: return &v.state case 1: @@ -2678,7 +2785,7 @@ func file_remote_ethbackend_proto_init() { } } file_remote_ethbackend_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EngineGetPayloadBodiesByHashV1Request); i { + switch v := v.(*AddPeerReply); i { case 0: return &v.state case 1: @@ -2690,7 +2797,7 @@ func file_remote_ethbackend_proto_init() { } } file_remote_ethbackend_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EngineGetPayloadBodiesByRangeV1Request); i { + switch v := v.(*PendingBlockReply); i { case 0: return &v.state case 1: @@ -2702,6 +2809,30 @@ func file_remote_ethbackend_proto_init() { } } file_remote_ethbackend_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EngineGetPayloadBodiesByHashV1Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EngineGetPayloadBodiesByRangeV1Request); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_remote_ethbackend_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EngineGetPayloadBodiesV1Response); i { case 0: return &v.state @@ -2721,7 +2852,7 @@ func file_remote_ethbackend_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_remote_ethbackend_proto_rawDesc, NumEnums: 2, - NumMessages: 33, + NumMessages: 35, NumExtensions: 0, NumServices: 1, }, diff --git a/gointerfaces/remote/ethbackend_grpc.pb.go b/gointerfaces/remote/ethbackend_grpc.pb.go index ea364e79f..72b797eb6 100644 --- a/gointerfaces/remote/ethbackend_grpc.pb.go +++ b/gointerfaces/remote/ethbackend_grpc.pb.go @@ -39,6 +39,7 @@ const ( ETHBACKEND_TxnLookup_FullMethodName = "/remote.ETHBACKEND/TxnLookup" ETHBACKEND_NodeInfo_FullMethodName = "/remote.ETHBACKEND/NodeInfo" ETHBACKEND_Peers_FullMethodName = "/remote.ETHBACKEND/Peers" + ETHBACKEND_AddPeer_FullMethodName = "/remote.ETHBACKEND/AddPeer" ETHBACKEND_PendingBlock_FullMethodName = "/remote.ETHBACKEND/PendingBlock" ) @@ -79,6 +80,7 @@ type ETHBACKENDClient interface { NodeInfo(ctx context.Context, in *NodesInfoRequest, opts ...grpc.CallOption) (*NodesInfoReply, error) // Peers collects and returns peers information from all running sentry instances. Peers(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*PeersReply, error) + AddPeer(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*AddPeerReply, error) PendingBlock(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*PendingBlockReply, error) } @@ -297,6 +299,15 @@ func (c *eTHBACKENDClient) Peers(ctx context.Context, in *emptypb.Empty, opts .. return out, nil } +func (c *eTHBACKENDClient) AddPeer(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*AddPeerReply, error) { + out := new(AddPeerReply) + err := c.cc.Invoke(ctx, ETHBACKEND_AddPeer_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *eTHBACKENDClient) PendingBlock(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*PendingBlockReply, error) { out := new(PendingBlockReply) err := c.cc.Invoke(ctx, ETHBACKEND_PendingBlock_FullMethodName, in, out, opts...) @@ -343,6 +354,7 @@ type ETHBACKENDServer interface { NodeInfo(context.Context, *NodesInfoRequest) (*NodesInfoReply, error) // Peers collects and returns peers information from all running sentry instances. Peers(context.Context, *emptypb.Empty) (*PeersReply, error) + AddPeer(context.Context, *AddPeerRequest) (*AddPeerReply, error) PendingBlock(context.Context, *emptypb.Empty) (*PendingBlockReply, error) mustEmbedUnimplementedETHBACKENDServer() } @@ -405,6 +417,9 @@ func (UnimplementedETHBACKENDServer) NodeInfo(context.Context, *NodesInfoRequest func (UnimplementedETHBACKENDServer) Peers(context.Context, *emptypb.Empty) (*PeersReply, error) { return nil, status.Errorf(codes.Unimplemented, "method Peers not implemented") } +func (UnimplementedETHBACKENDServer) AddPeer(context.Context, *AddPeerRequest) (*AddPeerReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddPeer not implemented") +} func (UnimplementedETHBACKENDServer) PendingBlock(context.Context, *emptypb.Empty) (*PendingBlockReply, error) { return nil, status.Errorf(codes.Unimplemented, "method PendingBlock not implemented") } @@ -756,6 +771,24 @@ func _ETHBACKEND_Peers_Handler(srv interface{}, ctx context.Context, dec func(in return interceptor(ctx, in, info, handler) } +func _ETHBACKEND_AddPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddPeerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ETHBACKENDServer).AddPeer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ETHBACKEND_AddPeer_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ETHBACKENDServer).AddPeer(ctx, req.(*AddPeerRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _ETHBACKEND_PendingBlock_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(emptypb.Empty) if err := dec(in); err != nil { @@ -845,6 +878,10 @@ var ETHBACKEND_ServiceDesc = grpc.ServiceDesc{ MethodName: "Peers", Handler: _ETHBACKEND_Peers_Handler, }, + { + MethodName: "AddPeer", + Handler: _ETHBACKEND_AddPeer_Handler, + }, { MethodName: "PendingBlock", Handler: _ETHBACKEND_PendingBlock_Handler, diff --git a/gointerfaces/sentry/mocks.go b/gointerfaces/sentry/mocks.go index edfea4526..37a446b44 100644 --- a/gointerfaces/sentry/mocks.go +++ b/gointerfaces/sentry/mocks.go @@ -21,6 +21,9 @@ var _ SentryServer = &SentryServerMock{} // // // make and configure a mocked SentryServer // mockedSentryServer := &SentryServerMock{ +// AddPeerFunc: func(contextMoqParam context.Context, addPeerRequest *AddPeerRequest) (*AddPeerReply, error) { +// panic("mock out the AddPeer method") +// }, // HandShakeFunc: func(contextMoqParam context.Context, empty *emptypb.Empty) (*HandShakeReply, error) { // panic("mock out the HandShake method") // }, @@ -73,6 +76,9 @@ var _ SentryServer = &SentryServerMock{} // // } type SentryServerMock struct { + // AddPeerFunc mocks the AddPeer method. + AddPeerFunc func(contextMoqParam context.Context, addPeerRequest *AddPeerRequest) (*AddPeerReply, error) + // HandShakeFunc mocks the HandShake method. HandShakeFunc func(contextMoqParam context.Context, empty *emptypb.Empty) (*HandShakeReply, error) @@ -120,6 +126,13 @@ type SentryServerMock struct { // calls tracks calls to the methods. calls struct { + // AddPeer holds details about calls to the AddPeer method. + AddPeer []struct { + // ContextMoqParam is the contextMoqParam argument value. + ContextMoqParam context.Context + // AddPeerRequest is the addPeerRequest argument value. + AddPeerRequest *AddPeerRequest + } // HandShake holds details about calls to the HandShake method. HandShake []struct { // ContextMoqParam is the contextMoqParam argument value. @@ -222,6 +235,7 @@ type SentryServerMock struct { mustEmbedUnimplementedSentryServer []struct { } } + lockAddPeer sync.RWMutex lockHandShake sync.RWMutex lockMessages sync.RWMutex lockNodeInfo sync.RWMutex @@ -239,6 +253,46 @@ type SentryServerMock struct { lockmustEmbedUnimplementedSentryServer sync.RWMutex } +// AddPeer calls AddPeerFunc. +func (mock *SentryServerMock) AddPeer(contextMoqParam context.Context, addPeerRequest *AddPeerRequest) (*AddPeerReply, error) { + callInfo := struct { + ContextMoqParam context.Context + AddPeerRequest *AddPeerRequest + }{ + ContextMoqParam: contextMoqParam, + AddPeerRequest: addPeerRequest, + } + mock.lockAddPeer.Lock() + mock.calls.AddPeer = append(mock.calls.AddPeer, callInfo) + mock.lockAddPeer.Unlock() + if mock.AddPeerFunc == nil { + var ( + addPeerReplyOut *AddPeerReply + errOut error + ) + return addPeerReplyOut, errOut + } + return mock.AddPeerFunc(contextMoqParam, addPeerRequest) +} + +// AddPeerCalls gets all the calls that were made to AddPeer. +// Check the length with: +// +// len(mockedSentryServer.AddPeerCalls()) +func (mock *SentryServerMock) AddPeerCalls() []struct { + ContextMoqParam context.Context + AddPeerRequest *AddPeerRequest +} { + var calls []struct { + ContextMoqParam context.Context + AddPeerRequest *AddPeerRequest + } + mock.lockAddPeer.RLock() + calls = mock.calls.AddPeer + mock.lockAddPeer.RUnlock() + return calls +} + // HandShake calls HandShakeFunc. func (mock *SentryServerMock) HandShake(contextMoqParam context.Context, empty *emptypb.Empty) (*HandShakeReply, error) { callInfo := struct { @@ -834,6 +888,9 @@ var _ SentryClient = &SentryClientMock{} // // // make and configure a mocked SentryClient // mockedSentryClient := &SentryClientMock{ +// AddPeerFunc: func(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*AddPeerReply, error) { +// panic("mock out the AddPeer method") +// }, // HandShakeFunc: func(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*HandShakeReply, error) { // panic("mock out the HandShake method") // }, @@ -883,6 +940,9 @@ var _ SentryClient = &SentryClientMock{} // // } type SentryClientMock struct { + // AddPeerFunc mocks the AddPeer method. + AddPeerFunc func(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*AddPeerReply, error) + // HandShakeFunc mocks the HandShake method. HandShakeFunc func(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*HandShakeReply, error) @@ -927,6 +987,15 @@ type SentryClientMock struct { // calls tracks calls to the methods. calls struct { + // AddPeer holds details about calls to the AddPeer method. + AddPeer []struct { + // Ctx is the ctx argument value. + Ctx context.Context + // In is the in argument value. + In *AddPeerRequest + // Opts is the opts argument value. + Opts []grpc.CallOption + } // HandShake holds details about calls to the HandShake method. HandShake []struct { // Ctx is the ctx argument value. @@ -1054,6 +1123,7 @@ type SentryClientMock struct { Opts []grpc.CallOption } } + lockAddPeer sync.RWMutex lockHandShake sync.RWMutex lockMessages sync.RWMutex lockNodeInfo sync.RWMutex @@ -1070,6 +1140,50 @@ type SentryClientMock struct { lockSetStatus sync.RWMutex } +// AddPeer calls AddPeerFunc. +func (mock *SentryClientMock) AddPeer(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*AddPeerReply, error) { + callInfo := struct { + Ctx context.Context + In *AddPeerRequest + Opts []grpc.CallOption + }{ + Ctx: ctx, + In: in, + Opts: opts, + } + mock.lockAddPeer.Lock() + mock.calls.AddPeer = append(mock.calls.AddPeer, callInfo) + mock.lockAddPeer.Unlock() + if mock.AddPeerFunc == nil { + var ( + addPeerReplyOut *AddPeerReply + errOut error + ) + return addPeerReplyOut, errOut + } + return mock.AddPeerFunc(ctx, in, opts...) +} + +// AddPeerCalls gets all the calls that were made to AddPeer. +// Check the length with: +// +// len(mockedSentryClient.AddPeerCalls()) +func (mock *SentryClientMock) AddPeerCalls() []struct { + Ctx context.Context + In *AddPeerRequest + Opts []grpc.CallOption +} { + var calls []struct { + Ctx context.Context + In *AddPeerRequest + Opts []grpc.CallOption + } + mock.lockAddPeer.RLock() + calls = mock.calls.AddPeer + mock.lockAddPeer.RUnlock() + return calls +} + // HandShake calls HandShakeFunc. func (mock *SentryClientMock) HandShake(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*HandShakeReply, error) { callInfo := struct { diff --git a/gointerfaces/sentry/sentry.pb.go b/gointerfaces/sentry/sentry.pb.go index 7986d1187..c46a259c1 100644 --- a/gointerfaces/sentry/sentry.pb.go +++ b/gointerfaces/sentry/sentry.pb.go @@ -301,7 +301,7 @@ func (x PeerEvent_PeerEventId) Number() protoreflect.EnumNumber { // Deprecated: Use PeerEvent_PeerEventId.Descriptor instead. func (PeerEvent_PeerEventId) EnumDescriptor() ([]byte, []int) { - return file_p2psentry_sentry_proto_rawDescGZIP(), []int{20, 0} + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{21, 0} } type OutboundMessageData struct { @@ -689,6 +689,53 @@ func (x *PeerMinBlockRequest) GetMinBlock() uint64 { return 0 } +type AddPeerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` +} + +func (x *AddPeerRequest) Reset() { + *x = AddPeerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddPeerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddPeerRequest) ProtoMessage() {} + +func (x *AddPeerRequest) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddPeerRequest.ProtoReflect.Descriptor instead. +func (*AddPeerRequest) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{7} +} + +func (x *AddPeerRequest) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + type InboundMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -702,7 +749,7 @@ type InboundMessage struct { func (x *InboundMessage) Reset() { *x = InboundMessage{} if protoimpl.UnsafeEnabled { - mi := &file_p2psentry_sentry_proto_msgTypes[7] + mi := &file_p2psentry_sentry_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -715,7 +762,7 @@ func (x *InboundMessage) String() string { func (*InboundMessage) ProtoMessage() {} func (x *InboundMessage) ProtoReflect() protoreflect.Message { - mi := &file_p2psentry_sentry_proto_msgTypes[7] + mi := &file_p2psentry_sentry_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -728,7 +775,7 @@ func (x *InboundMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use InboundMessage.ProtoReflect.Descriptor instead. func (*InboundMessage) Descriptor() ([]byte, []int) { - return file_p2psentry_sentry_proto_rawDescGZIP(), []int{7} + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{8} } func (x *InboundMessage) GetId() MessageId { @@ -765,7 +812,7 @@ type Forks struct { func (x *Forks) Reset() { *x = Forks{} if protoimpl.UnsafeEnabled { - mi := &file_p2psentry_sentry_proto_msgTypes[8] + mi := &file_p2psentry_sentry_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -778,7 +825,7 @@ func (x *Forks) String() string { func (*Forks) ProtoMessage() {} func (x *Forks) ProtoReflect() protoreflect.Message { - mi := &file_p2psentry_sentry_proto_msgTypes[8] + mi := &file_p2psentry_sentry_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -791,7 +838,7 @@ func (x *Forks) ProtoReflect() protoreflect.Message { // Deprecated: Use Forks.ProtoReflect.Descriptor instead. func (*Forks) Descriptor() ([]byte, []int) { - return file_p2psentry_sentry_proto_rawDescGZIP(), []int{8} + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{9} } func (x *Forks) GetGenesis() *types.H256 { @@ -831,7 +878,7 @@ type StatusData struct { func (x *StatusData) Reset() { *x = StatusData{} if protoimpl.UnsafeEnabled { - mi := &file_p2psentry_sentry_proto_msgTypes[9] + mi := &file_p2psentry_sentry_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -844,7 +891,7 @@ func (x *StatusData) String() string { func (*StatusData) ProtoMessage() {} func (x *StatusData) ProtoReflect() protoreflect.Message { - mi := &file_p2psentry_sentry_proto_msgTypes[9] + mi := &file_p2psentry_sentry_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -857,7 +904,7 @@ func (x *StatusData) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusData.ProtoReflect.Descriptor instead. func (*StatusData) Descriptor() ([]byte, []int) { - return file_p2psentry_sentry_proto_rawDescGZIP(), []int{9} + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{10} } func (x *StatusData) GetNetworkId() uint64 { @@ -911,7 +958,7 @@ type SetStatusReply struct { func (x *SetStatusReply) Reset() { *x = SetStatusReply{} if protoimpl.UnsafeEnabled { - mi := &file_p2psentry_sentry_proto_msgTypes[10] + mi := &file_p2psentry_sentry_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -924,7 +971,7 @@ func (x *SetStatusReply) String() string { func (*SetStatusReply) ProtoMessage() {} func (x *SetStatusReply) ProtoReflect() protoreflect.Message { - mi := &file_p2psentry_sentry_proto_msgTypes[10] + mi := &file_p2psentry_sentry_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -937,7 +984,7 @@ func (x *SetStatusReply) ProtoReflect() protoreflect.Message { // Deprecated: Use SetStatusReply.ProtoReflect.Descriptor instead. func (*SetStatusReply) Descriptor() ([]byte, []int) { - return file_p2psentry_sentry_proto_rawDescGZIP(), []int{10} + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{11} } type HandShakeReply struct { @@ -951,7 +998,7 @@ type HandShakeReply struct { func (x *HandShakeReply) Reset() { *x = HandShakeReply{} if protoimpl.UnsafeEnabled { - mi := &file_p2psentry_sentry_proto_msgTypes[11] + mi := &file_p2psentry_sentry_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -964,7 +1011,7 @@ func (x *HandShakeReply) String() string { func (*HandShakeReply) ProtoMessage() {} func (x *HandShakeReply) ProtoReflect() protoreflect.Message { - mi := &file_p2psentry_sentry_proto_msgTypes[11] + mi := &file_p2psentry_sentry_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -977,7 +1024,7 @@ func (x *HandShakeReply) ProtoReflect() protoreflect.Message { // Deprecated: Use HandShakeReply.ProtoReflect.Descriptor instead. func (*HandShakeReply) Descriptor() ([]byte, []int) { - return file_p2psentry_sentry_proto_rawDescGZIP(), []int{11} + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{12} } func (x *HandShakeReply) GetProtocol() Protocol { @@ -998,7 +1045,7 @@ type MessagesRequest struct { func (x *MessagesRequest) Reset() { *x = MessagesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_p2psentry_sentry_proto_msgTypes[12] + mi := &file_p2psentry_sentry_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1011,7 +1058,7 @@ func (x *MessagesRequest) String() string { func (*MessagesRequest) ProtoMessage() {} func (x *MessagesRequest) ProtoReflect() protoreflect.Message { - mi := &file_p2psentry_sentry_proto_msgTypes[12] + mi := &file_p2psentry_sentry_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1024,7 +1071,7 @@ func (x *MessagesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use MessagesRequest.ProtoReflect.Descriptor instead. func (*MessagesRequest) Descriptor() ([]byte, []int) { - return file_p2psentry_sentry_proto_rawDescGZIP(), []int{12} + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{13} } func (x *MessagesRequest) GetIds() []MessageId { @@ -1045,7 +1092,7 @@ type PeersReply struct { func (x *PeersReply) Reset() { *x = PeersReply{} if protoimpl.UnsafeEnabled { - mi := &file_p2psentry_sentry_proto_msgTypes[13] + mi := &file_p2psentry_sentry_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1058,7 +1105,7 @@ func (x *PeersReply) String() string { func (*PeersReply) ProtoMessage() {} func (x *PeersReply) ProtoReflect() protoreflect.Message { - mi := &file_p2psentry_sentry_proto_msgTypes[13] + mi := &file_p2psentry_sentry_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1071,7 +1118,7 @@ func (x *PeersReply) ProtoReflect() protoreflect.Message { // Deprecated: Use PeersReply.ProtoReflect.Descriptor instead. func (*PeersReply) Descriptor() ([]byte, []int) { - return file_p2psentry_sentry_proto_rawDescGZIP(), []int{13} + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{14} } func (x *PeersReply) GetPeers() []*types.PeerInfo { @@ -1090,7 +1137,7 @@ type PeerCountRequest struct { func (x *PeerCountRequest) Reset() { *x = PeerCountRequest{} if protoimpl.UnsafeEnabled { - mi := &file_p2psentry_sentry_proto_msgTypes[14] + mi := &file_p2psentry_sentry_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1103,7 +1150,7 @@ func (x *PeerCountRequest) String() string { func (*PeerCountRequest) ProtoMessage() {} func (x *PeerCountRequest) ProtoReflect() protoreflect.Message { - mi := &file_p2psentry_sentry_proto_msgTypes[14] + mi := &file_p2psentry_sentry_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1116,7 +1163,7 @@ func (x *PeerCountRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PeerCountRequest.ProtoReflect.Descriptor instead. func (*PeerCountRequest) Descriptor() ([]byte, []int) { - return file_p2psentry_sentry_proto_rawDescGZIP(), []int{14} + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{15} } type PeerCountPerProtocol struct { @@ -1131,7 +1178,7 @@ type PeerCountPerProtocol struct { func (x *PeerCountPerProtocol) Reset() { *x = PeerCountPerProtocol{} if protoimpl.UnsafeEnabled { - mi := &file_p2psentry_sentry_proto_msgTypes[15] + mi := &file_p2psentry_sentry_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1144,7 +1191,7 @@ func (x *PeerCountPerProtocol) String() string { func (*PeerCountPerProtocol) ProtoMessage() {} func (x *PeerCountPerProtocol) ProtoReflect() protoreflect.Message { - mi := &file_p2psentry_sentry_proto_msgTypes[15] + mi := &file_p2psentry_sentry_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1157,7 +1204,7 @@ func (x *PeerCountPerProtocol) ProtoReflect() protoreflect.Message { // Deprecated: Use PeerCountPerProtocol.ProtoReflect.Descriptor instead. func (*PeerCountPerProtocol) Descriptor() ([]byte, []int) { - return file_p2psentry_sentry_proto_rawDescGZIP(), []int{15} + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{16} } func (x *PeerCountPerProtocol) GetProtocol() Protocol { @@ -1186,7 +1233,7 @@ type PeerCountReply struct { func (x *PeerCountReply) Reset() { *x = PeerCountReply{} if protoimpl.UnsafeEnabled { - mi := &file_p2psentry_sentry_proto_msgTypes[16] + mi := &file_p2psentry_sentry_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1199,7 +1246,7 @@ func (x *PeerCountReply) String() string { func (*PeerCountReply) ProtoMessage() {} func (x *PeerCountReply) ProtoReflect() protoreflect.Message { - mi := &file_p2psentry_sentry_proto_msgTypes[16] + mi := &file_p2psentry_sentry_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1212,7 +1259,7 @@ func (x *PeerCountReply) ProtoReflect() protoreflect.Message { // Deprecated: Use PeerCountReply.ProtoReflect.Descriptor instead. func (*PeerCountReply) Descriptor() ([]byte, []int) { - return file_p2psentry_sentry_proto_rawDescGZIP(), []int{16} + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{17} } func (x *PeerCountReply) GetCount() uint64 { @@ -1240,7 +1287,7 @@ type PeerByIdRequest struct { func (x *PeerByIdRequest) Reset() { *x = PeerByIdRequest{} if protoimpl.UnsafeEnabled { - mi := &file_p2psentry_sentry_proto_msgTypes[17] + mi := &file_p2psentry_sentry_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1253,7 +1300,7 @@ func (x *PeerByIdRequest) String() string { func (*PeerByIdRequest) ProtoMessage() {} func (x *PeerByIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_p2psentry_sentry_proto_msgTypes[17] + mi := &file_p2psentry_sentry_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1266,7 +1313,7 @@ func (x *PeerByIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PeerByIdRequest.ProtoReflect.Descriptor instead. func (*PeerByIdRequest) Descriptor() ([]byte, []int) { - return file_p2psentry_sentry_proto_rawDescGZIP(), []int{17} + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{18} } func (x *PeerByIdRequest) GetPeerId() *types.H512 { @@ -1287,7 +1334,7 @@ type PeerByIdReply struct { func (x *PeerByIdReply) Reset() { *x = PeerByIdReply{} if protoimpl.UnsafeEnabled { - mi := &file_p2psentry_sentry_proto_msgTypes[18] + mi := &file_p2psentry_sentry_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1300,7 +1347,7 @@ func (x *PeerByIdReply) String() string { func (*PeerByIdReply) ProtoMessage() {} func (x *PeerByIdReply) ProtoReflect() protoreflect.Message { - mi := &file_p2psentry_sentry_proto_msgTypes[18] + mi := &file_p2psentry_sentry_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1313,7 +1360,7 @@ func (x *PeerByIdReply) ProtoReflect() protoreflect.Message { // Deprecated: Use PeerByIdReply.ProtoReflect.Descriptor instead. func (*PeerByIdReply) Descriptor() ([]byte, []int) { - return file_p2psentry_sentry_proto_rawDescGZIP(), []int{18} + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{19} } func (x *PeerByIdReply) GetPeer() *types.PeerInfo { @@ -1332,7 +1379,7 @@ type PeerEventsRequest struct { func (x *PeerEventsRequest) Reset() { *x = PeerEventsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_p2psentry_sentry_proto_msgTypes[19] + mi := &file_p2psentry_sentry_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1345,7 +1392,7 @@ func (x *PeerEventsRequest) String() string { func (*PeerEventsRequest) ProtoMessage() {} func (x *PeerEventsRequest) ProtoReflect() protoreflect.Message { - mi := &file_p2psentry_sentry_proto_msgTypes[19] + mi := &file_p2psentry_sentry_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1358,7 +1405,7 @@ func (x *PeerEventsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PeerEventsRequest.ProtoReflect.Descriptor instead. func (*PeerEventsRequest) Descriptor() ([]byte, []int) { - return file_p2psentry_sentry_proto_rawDescGZIP(), []int{19} + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{20} } type PeerEvent struct { @@ -1373,7 +1420,7 @@ type PeerEvent struct { func (x *PeerEvent) Reset() { *x = PeerEvent{} if protoimpl.UnsafeEnabled { - mi := &file_p2psentry_sentry_proto_msgTypes[20] + mi := &file_p2psentry_sentry_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1386,7 +1433,7 @@ func (x *PeerEvent) String() string { func (*PeerEvent) ProtoMessage() {} func (x *PeerEvent) ProtoReflect() protoreflect.Message { - mi := &file_p2psentry_sentry_proto_msgTypes[20] + mi := &file_p2psentry_sentry_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1399,7 +1446,7 @@ func (x *PeerEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use PeerEvent.ProtoReflect.Descriptor instead. func (*PeerEvent) Descriptor() ([]byte, []int) { - return file_p2psentry_sentry_proto_rawDescGZIP(), []int{20} + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{21} } func (x *PeerEvent) GetPeerId() *types.H512 { @@ -1416,6 +1463,53 @@ func (x *PeerEvent) GetEventId() PeerEvent_PeerEventId { return PeerEvent_Connect } +type AddPeerReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` +} + +func (x *AddPeerReply) Reset() { + *x = AddPeerReply{} + if protoimpl.UnsafeEnabled { + mi := &file_p2psentry_sentry_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddPeerReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddPeerReply) ProtoMessage() {} + +func (x *AddPeerReply) ProtoReflect() protoreflect.Message { + mi := &file_p2psentry_sentry_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddPeerReply.ProtoReflect.Descriptor instead. +func (*AddPeerReply) Descriptor() ([]byte, []int) { + return file_p2psentry_sentry_proto_rawDescGZIP(), []int{22} +} + +func (x *AddPeerReply) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + var File_p2psentry_sentry_proto protoreflect.FileDescriptor var file_p2psentry_sentry_proto_rawDesc = []byte{ @@ -1467,196 +1561,204 @@ var file_p2psentry_sentry_proto_rawDesc = []byte{ 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x35, 0x31, 0x32, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x22, 0x6d, 0x0a, 0x0e, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x11, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x07, 0x70, - 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, + 0x63, 0x6b, 0x22, 0x22, 0x0a, 0x0e, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x6d, 0x0a, 0x0e, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x24, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x35, 0x31, 0x32, 0x52, 0x06, 0x70, + 0x65, 0x65, 0x72, 0x49, 0x64, 0x22, 0x70, 0x0a, 0x05, 0x46, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x25, + 0x0a, 0x07, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x07, 0x67, 0x65, + 0x6e, 0x65, 0x73, 0x69, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, + 0x66, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0b, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x46, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x66, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6b, 0x73, 0x22, 0x89, 0x02, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, + 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x0f, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x28, 0x0a, + 0x09, 0x62, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x08, 0x62, + 0x65, 0x73, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2a, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6b, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x2e, 0x46, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x08, 0x66, 0x6f, 0x72, 0x6b, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6d, + 0x61, 0x78, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x24, 0x0a, + 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, + 0x69, 0x6d, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x3e, 0x0a, 0x0e, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x61, + 0x6b, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x36, 0x0a, 0x0f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x33, 0x0a, + 0x0a, 0x50, 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x70, + 0x65, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x70, 0x65, 0x65, + 0x72, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5a, 0x0a, 0x14, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x2c, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x10, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0x74, 0x0a, 0x0e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x13, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, + 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x50, 0x65, 0x72, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x37, 0x0a, 0x0f, 0x50, 0x65, 0x65, 0x72, + 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x07, 0x70, + 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x35, 0x31, 0x32, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, - 0x64, 0x22, 0x70, 0x0a, 0x05, 0x46, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x25, 0x0a, 0x07, 0x67, 0x65, - 0x6e, 0x65, 0x73, 0x69, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x07, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, - 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x6b, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x46, - 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x6f, 0x72, - 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x6f, - 0x72, 0x6b, 0x73, 0x22, 0x89, 0x02, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, - 0x64, 0x12, 0x36, 0x0a, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x69, - 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x44, - 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x09, 0x62, 0x65, 0x73, - 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x32, 0x35, 0x36, 0x52, 0x08, 0x62, 0x65, 0x73, 0x74, 0x48, - 0x61, 0x73, 0x68, 0x12, 0x2a, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, - 0x46, 0x6f, 0x72, 0x6b, 0x73, 0x52, 0x08, 0x66, 0x6f, 0x72, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, - 0x10, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x22, 0x3e, 0x0a, 0x0e, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x12, 0x2c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x22, 0x36, 0x0a, 0x0f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0e, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x49, 0x64, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x33, 0x0a, 0x0a, 0x50, 0x65, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x25, 0x0a, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, - 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x70, 0x65, 0x65, 0x72, 0x73, 0x22, 0x12, - 0x0a, 0x10, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x5a, 0x0a, 0x14, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x50, - 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x2c, 0x0a, 0x08, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x73, - 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x08, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x74, - 0x0a, 0x0e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, - 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x52, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x50, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x37, 0x0a, 0x0f, 0x50, 0x65, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x2e, 0x48, 0x35, 0x31, 0x32, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x22, 0x42, 0x0a, - 0x0d, 0x50, 0x65, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x28, - 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, - 0x04, 0x70, 0x65, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x65, 0x65, - 0x72, 0x22, 0x13, 0x0a, 0x11, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x48, 0x35, - 0x31, 0x32, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x08, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x73, - 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, - 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x52, 0x07, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, 0x00, - 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, 0x01, - 0x2a, 0x80, 0x06, 0x0a, 0x09, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x0d, - 0x0a, 0x09, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x00, 0x12, 0x18, 0x0a, - 0x14, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, - 0x52, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x4c, 0x4f, 0x43, 0x4b, - 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x02, 0x12, 0x13, 0x0a, - 0x0f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x45, 0x53, 0x5f, 0x36, 0x35, - 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, - 0x42, 0x4f, 0x44, 0x49, 0x45, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4f, 0x44, 0x49, 0x45, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x05, - 0x12, 0x14, 0x0a, 0x10, 0x47, 0x45, 0x54, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x41, 0x54, - 0x41, 0x5f, 0x36, 0x35, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x44, - 0x41, 0x54, 0x41, 0x5f, 0x36, 0x35, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x45, 0x54, 0x5f, - 0x52, 0x45, 0x43, 0x45, 0x49, 0x50, 0x54, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x08, 0x12, 0x0f, 0x0a, - 0x0b, 0x52, 0x45, 0x43, 0x45, 0x49, 0x50, 0x54, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x09, 0x12, 0x17, - 0x0a, 0x13, 0x4e, 0x45, 0x57, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x41, 0x53, 0x48, - 0x45, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x45, 0x57, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x36, 0x35, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x41, - 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x0c, 0x12, 0x24, - 0x0a, 0x20, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, - 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x45, 0x53, 0x5f, - 0x36, 0x35, 0x10, 0x0d, 0x12, 0x1e, 0x0a, 0x1a, 0x47, 0x45, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, - 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, - 0x36, 0x35, 0x10, 0x0e, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, 0x5f, 0x54, - 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x0f, - 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x11, 0x12, - 0x17, 0x0a, 0x13, 0x4e, 0x45, 0x57, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x41, 0x53, - 0x48, 0x45, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x12, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x45, 0x57, 0x5f, - 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x36, 0x36, 0x10, 0x13, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, - 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x14, 0x12, - 0x24, 0x0a, 0x20, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x52, - 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x45, 0x53, - 0x5f, 0x36, 0x36, 0x10, 0x15, 0x12, 0x18, 0x0a, 0x14, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x16, 0x12, - 0x17, 0x0a, 0x13, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4f, 0x44, - 0x49, 0x45, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x17, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x45, 0x54, 0x5f, - 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x36, 0x36, 0x10, 0x18, 0x12, 0x13, - 0x0a, 0x0f, 0x47, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x50, 0x54, 0x53, 0x5f, 0x36, - 0x36, 0x10, 0x19, 0x12, 0x1e, 0x0a, 0x1a, 0x47, 0x45, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x45, - 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x36, - 0x36, 0x10, 0x1a, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x45, 0x41, - 0x44, 0x45, 0x52, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x1b, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x5f, 0x42, 0x4f, 0x44, 0x49, 0x45, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x1c, 0x12, 0x10, - 0x0a, 0x0c, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x36, 0x36, 0x10, 0x1d, - 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x43, 0x45, 0x49, 0x50, 0x54, 0x53, 0x5f, 0x36, 0x36, 0x10, - 0x1e, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, - 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x1f, 0x12, 0x24, 0x0a, + 0x64, 0x22, 0x42, 0x0a, 0x0d, 0x50, 0x65, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x12, 0x28, 0x0a, 0x04, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x48, 0x00, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x70, 0x65, 0x65, 0x72, 0x22, 0x13, 0x0a, 0x11, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x97, 0x01, 0x0a, 0x09, 0x50, + 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x48, 0x35, 0x31, 0x32, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, + 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1d, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x52, + 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x10, 0x01, 0x22, 0x28, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2a, 0x80, + 0x06, 0x0a, 0x09, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x0d, 0x0a, 0x09, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x47, + 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x53, + 0x5f, 0x36, 0x35, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, + 0x45, 0x41, 0x44, 0x45, 0x52, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x42, + 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x45, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x03, + 0x12, 0x17, 0x0a, 0x13, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4f, + 0x44, 0x49, 0x45, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x4c, 0x4f, + 0x43, 0x4b, 0x5f, 0x42, 0x4f, 0x44, 0x49, 0x45, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x05, 0x12, 0x14, + 0x0a, 0x10, 0x47, 0x45, 0x54, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, + 0x36, 0x35, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x41, 0x54, + 0x41, 0x5f, 0x36, 0x35, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x47, 0x45, 0x54, 0x5f, 0x52, 0x45, + 0x43, 0x45, 0x49, 0x50, 0x54, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x52, + 0x45, 0x43, 0x45, 0x49, 0x50, 0x54, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, + 0x4e, 0x45, 0x57, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x45, 0x53, + 0x5f, 0x36, 0x35, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x45, 0x57, 0x5f, 0x42, 0x4c, 0x4f, + 0x43, 0x4b, 0x5f, 0x36, 0x35, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x41, 0x4e, 0x53, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x0c, 0x12, 0x24, 0x0a, 0x20, + 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, + 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x45, 0x53, 0x5f, 0x36, 0x35, + 0x10, 0x0d, 0x12, 0x1e, 0x0a, 0x1a, 0x47, 0x45, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, + 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x35, + 0x10, 0x0e, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, + 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x35, 0x10, 0x0f, 0x12, 0x0d, + 0x0a, 0x09, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x11, 0x12, 0x17, 0x0a, + 0x13, 0x4e, 0x45, 0x57, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x45, + 0x53, 0x5f, 0x36, 0x36, 0x10, 0x12, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x45, 0x57, 0x5f, 0x42, 0x4c, + 0x4f, 0x43, 0x4b, 0x5f, 0x36, 0x36, 0x10, 0x13, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x41, 0x4e, + 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x14, 0x12, 0x24, 0x0a, 0x20, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x45, 0x53, 0x5f, 0x36, - 0x38, 0x10, 0x20, 0x2a, 0x17, 0x0a, 0x0b, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x4b, 0x69, - 0x6e, 0x64, 0x12, 0x08, 0x0a, 0x04, 0x4b, 0x69, 0x63, 0x6b, 0x10, 0x00, 0x2a, 0x36, 0x0a, 0x08, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x54, 0x48, 0x36, - 0x35, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x54, 0x48, 0x36, 0x36, 0x10, 0x01, 0x12, 0x09, - 0x0a, 0x05, 0x45, 0x54, 0x48, 0x36, 0x37, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x54, 0x48, - 0x36, 0x38, 0x10, 0x03, 0x32, 0xa3, 0x07, 0x0a, 0x06, 0x53, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x37, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x2e, 0x73, - 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, - 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x43, 0x0a, 0x0c, 0x50, 0x65, 0x6e, 0x61, - 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, - 0x79, 0x2e, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, - 0x0c, 0x50, 0x65, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1b, 0x2e, - 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, - 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, - 0x50, 0x0a, 0x15, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, - 0x4d, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x24, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, - 0x79, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x4d, - 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, - 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, - 0x73, 0x12, 0x44, 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x42, 0x79, 0x49, 0x64, 0x12, 0x1e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, - 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, - 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x56, 0x0a, 0x18, 0x53, 0x65, 0x6e, 0x64, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x65, - 0x65, 0x72, 0x73, 0x12, 0x27, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x6e, - 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, - 0x50, 0x65, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, + 0x36, 0x10, 0x15, 0x12, 0x18, 0x0a, 0x14, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x16, 0x12, 0x17, 0x0a, + 0x13, 0x47, 0x45, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x42, 0x4f, 0x44, 0x49, 0x45, + 0x53, 0x5f, 0x36, 0x36, 0x10, 0x17, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x45, 0x54, 0x5f, 0x4e, 0x4f, + 0x44, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x36, 0x36, 0x10, 0x18, 0x12, 0x13, 0x0a, 0x0f, + 0x47, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x50, 0x54, 0x53, 0x5f, 0x36, 0x36, 0x10, + 0x19, 0x12, 0x1e, 0x0a, 0x1a, 0x47, 0x45, 0x54, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, 0x5f, + 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x36, 0x10, + 0x1a, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, + 0x52, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x1b, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x5f, 0x42, 0x4f, 0x44, 0x49, 0x45, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x1c, 0x12, 0x10, 0x0a, 0x0c, + 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x36, 0x36, 0x10, 0x1d, 0x12, 0x0f, + 0x0a, 0x0b, 0x52, 0x45, 0x43, 0x45, 0x49, 0x50, 0x54, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x1e, 0x12, + 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x36, 0x36, 0x10, 0x1f, 0x12, 0x24, 0x0a, 0x20, 0x4e, + 0x45, 0x57, 0x5f, 0x50, 0x4f, 0x4f, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x41, 0x53, 0x48, 0x45, 0x53, 0x5f, 0x36, 0x38, 0x10, + 0x20, 0x2a, 0x17, 0x0a, 0x0b, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x4b, 0x69, 0x6e, 0x64, + 0x12, 0x08, 0x0a, 0x04, 0x4b, 0x69, 0x63, 0x6b, 0x10, 0x00, 0x2a, 0x36, 0x0a, 0x08, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x54, 0x48, 0x36, 0x35, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x54, 0x48, 0x36, 0x36, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, + 0x45, 0x54, 0x48, 0x36, 0x37, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x54, 0x48, 0x36, 0x38, + 0x10, 0x03, 0x32, 0xdc, 0x07, 0x0a, 0x06, 0x53, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x37, 0x0a, + 0x09, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x2e, 0x73, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x16, + 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x43, 0x0a, 0x0c, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, + 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0c, 0x50, + 0x65, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1b, 0x2e, 0x73, 0x65, + 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x3b, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x48, + 0x61, 0x6e, 0x64, 0x53, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x50, 0x0a, + 0x15, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x4d, 0x69, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x24, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, + 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x4d, 0x69, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, - 0x42, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x41, 0x6c, 0x6c, 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x4f, 0x75, 0x74, - 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x50, 0x65, - 0x65, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x08, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, - 0x17, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, - 0x79, 0x2e, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x30, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x3d, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x3a, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x42, 0x79, - 0x49, 0x64, 0x12, 0x17, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, - 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x73, 0x65, - 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x12, 0x3c, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x12, 0x19, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, - 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, - 0x12, 0x38, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x11, 0x5a, 0x0f, 0x2e, 0x2f, - 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x3b, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x44, 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, + 0x49, 0x64, 0x12, 0x1e, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x6e, 0x64, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x6e, 0x74, + 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x56, 0x0a, 0x18, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x65, 0x65, 0x72, + 0x73, 0x12, 0x27, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x65, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x42, 0x0a, + 0x10, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x41, 0x6c, + 0x6c, 0x12, 0x1b, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x4f, 0x75, 0x74, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x11, + 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x65, 0x72, + 0x73, 0x12, 0x3d, 0x0a, 0x08, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x17, 0x2e, + 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, + 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x30, 0x01, + 0x12, 0x33, 0x0a, 0x05, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x12, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x3d, 0x0a, 0x09, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x18, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x73, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x12, 0x3a, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, + 0x12, 0x17, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x42, 0x79, + 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x73, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x12, 0x3c, 0x0a, 0x0a, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x19, + 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x73, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, 0x37, + 0x0a, 0x07, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x73, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x14, 0x2e, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x65, + 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x38, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x42, 0x11, 0x5a, 0x0f, 0x2e, 0x2f, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x3b, 0x73, 0x65, + 0x6e, 0x74, 0x72, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1672,7 +1774,7 @@ func file_p2psentry_sentry_proto_rawDescGZIP() []byte { } var file_p2psentry_sentry_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_p2psentry_sentry_proto_msgTypes = make([]protoimpl.MessageInfo, 21) +var file_p2psentry_sentry_proto_msgTypes = make([]protoimpl.MessageInfo, 23) var file_p2psentry_sentry_proto_goTypes = []interface{}{ (MessageId)(0), // 0: sentry.MessageId (PenaltyKind)(0), // 1: sentry.PenaltyKind @@ -1685,81 +1787,85 @@ var file_p2psentry_sentry_proto_goTypes = []interface{}{ (*SentPeers)(nil), // 8: sentry.SentPeers (*PenalizePeerRequest)(nil), // 9: sentry.PenalizePeerRequest (*PeerMinBlockRequest)(nil), // 10: sentry.PeerMinBlockRequest - (*InboundMessage)(nil), // 11: sentry.InboundMessage - (*Forks)(nil), // 12: sentry.Forks - (*StatusData)(nil), // 13: sentry.StatusData - (*SetStatusReply)(nil), // 14: sentry.SetStatusReply - (*HandShakeReply)(nil), // 15: sentry.HandShakeReply - (*MessagesRequest)(nil), // 16: sentry.MessagesRequest - (*PeersReply)(nil), // 17: sentry.PeersReply - (*PeerCountRequest)(nil), // 18: sentry.PeerCountRequest - (*PeerCountPerProtocol)(nil), // 19: sentry.PeerCountPerProtocol - (*PeerCountReply)(nil), // 20: sentry.PeerCountReply - (*PeerByIdRequest)(nil), // 21: sentry.PeerByIdRequest - (*PeerByIdReply)(nil), // 22: sentry.PeerByIdReply - (*PeerEventsRequest)(nil), // 23: sentry.PeerEventsRequest - (*PeerEvent)(nil), // 24: sentry.PeerEvent - (*types.H512)(nil), // 25: types.H512 - (*types.H256)(nil), // 26: types.H256 - (*types.PeerInfo)(nil), // 27: types.PeerInfo - (*emptypb.Empty)(nil), // 28: google.protobuf.Empty - (*types.NodeInfoReply)(nil), // 29: types.NodeInfoReply + (*AddPeerRequest)(nil), // 11: sentry.AddPeerRequest + (*InboundMessage)(nil), // 12: sentry.InboundMessage + (*Forks)(nil), // 13: sentry.Forks + (*StatusData)(nil), // 14: sentry.StatusData + (*SetStatusReply)(nil), // 15: sentry.SetStatusReply + (*HandShakeReply)(nil), // 16: sentry.HandShakeReply + (*MessagesRequest)(nil), // 17: sentry.MessagesRequest + (*PeersReply)(nil), // 18: sentry.PeersReply + (*PeerCountRequest)(nil), // 19: sentry.PeerCountRequest + (*PeerCountPerProtocol)(nil), // 20: sentry.PeerCountPerProtocol + (*PeerCountReply)(nil), // 21: sentry.PeerCountReply + (*PeerByIdRequest)(nil), // 22: sentry.PeerByIdRequest + (*PeerByIdReply)(nil), // 23: sentry.PeerByIdReply + (*PeerEventsRequest)(nil), // 24: sentry.PeerEventsRequest + (*PeerEvent)(nil), // 25: sentry.PeerEvent + (*AddPeerReply)(nil), // 26: sentry.AddPeerReply + (*types.H512)(nil), // 27: types.H512 + (*types.H256)(nil), // 28: types.H256 + (*types.PeerInfo)(nil), // 29: types.PeerInfo + (*emptypb.Empty)(nil), // 30: google.protobuf.Empty + (*types.NodeInfoReply)(nil), // 31: types.NodeInfoReply } var file_p2psentry_sentry_proto_depIdxs = []int32{ 0, // 0: sentry.OutboundMessageData.id:type_name -> sentry.MessageId 4, // 1: sentry.SendMessageByMinBlockRequest.data:type_name -> sentry.OutboundMessageData 4, // 2: sentry.SendMessageByIdRequest.data:type_name -> sentry.OutboundMessageData - 25, // 3: sentry.SendMessageByIdRequest.peer_id:type_name -> types.H512 + 27, // 3: sentry.SendMessageByIdRequest.peer_id:type_name -> types.H512 4, // 4: sentry.SendMessageToRandomPeersRequest.data:type_name -> sentry.OutboundMessageData - 25, // 5: sentry.SentPeers.peers:type_name -> types.H512 - 25, // 6: sentry.PenalizePeerRequest.peer_id:type_name -> types.H512 + 27, // 5: sentry.SentPeers.peers:type_name -> types.H512 + 27, // 6: sentry.PenalizePeerRequest.peer_id:type_name -> types.H512 1, // 7: sentry.PenalizePeerRequest.penalty:type_name -> sentry.PenaltyKind - 25, // 8: sentry.PeerMinBlockRequest.peer_id:type_name -> types.H512 + 27, // 8: sentry.PeerMinBlockRequest.peer_id:type_name -> types.H512 0, // 9: sentry.InboundMessage.id:type_name -> sentry.MessageId - 25, // 10: sentry.InboundMessage.peer_id:type_name -> types.H512 - 26, // 11: sentry.Forks.genesis:type_name -> types.H256 - 26, // 12: sentry.StatusData.total_difficulty:type_name -> types.H256 - 26, // 13: sentry.StatusData.best_hash:type_name -> types.H256 - 12, // 14: sentry.StatusData.fork_data:type_name -> sentry.Forks + 27, // 10: sentry.InboundMessage.peer_id:type_name -> types.H512 + 28, // 11: sentry.Forks.genesis:type_name -> types.H256 + 28, // 12: sentry.StatusData.total_difficulty:type_name -> types.H256 + 28, // 13: sentry.StatusData.best_hash:type_name -> types.H256 + 13, // 14: sentry.StatusData.fork_data:type_name -> sentry.Forks 2, // 15: sentry.HandShakeReply.protocol:type_name -> sentry.Protocol 0, // 16: sentry.MessagesRequest.ids:type_name -> sentry.MessageId - 27, // 17: sentry.PeersReply.peers:type_name -> types.PeerInfo + 29, // 17: sentry.PeersReply.peers:type_name -> types.PeerInfo 2, // 18: sentry.PeerCountPerProtocol.protocol:type_name -> sentry.Protocol - 19, // 19: sentry.PeerCountReply.counts_per_protocol:type_name -> sentry.PeerCountPerProtocol - 25, // 20: sentry.PeerByIdRequest.peer_id:type_name -> types.H512 - 27, // 21: sentry.PeerByIdReply.peer:type_name -> types.PeerInfo - 25, // 22: sentry.PeerEvent.peer_id:type_name -> types.H512 + 20, // 19: sentry.PeerCountReply.counts_per_protocol:type_name -> sentry.PeerCountPerProtocol + 27, // 20: sentry.PeerByIdRequest.peer_id:type_name -> types.H512 + 29, // 21: sentry.PeerByIdReply.peer:type_name -> types.PeerInfo + 27, // 22: sentry.PeerEvent.peer_id:type_name -> types.H512 3, // 23: sentry.PeerEvent.event_id:type_name -> sentry.PeerEvent.PeerEventId - 13, // 24: sentry.Sentry.SetStatus:input_type -> sentry.StatusData + 14, // 24: sentry.Sentry.SetStatus:input_type -> sentry.StatusData 9, // 25: sentry.Sentry.PenalizePeer:input_type -> sentry.PenalizePeerRequest 10, // 26: sentry.Sentry.PeerMinBlock:input_type -> sentry.PeerMinBlockRequest - 28, // 27: sentry.Sentry.HandShake:input_type -> google.protobuf.Empty + 30, // 27: sentry.Sentry.HandShake:input_type -> google.protobuf.Empty 5, // 28: sentry.Sentry.SendMessageByMinBlock:input_type -> sentry.SendMessageByMinBlockRequest 6, // 29: sentry.Sentry.SendMessageById:input_type -> sentry.SendMessageByIdRequest 7, // 30: sentry.Sentry.SendMessageToRandomPeers:input_type -> sentry.SendMessageToRandomPeersRequest 4, // 31: sentry.Sentry.SendMessageToAll:input_type -> sentry.OutboundMessageData - 16, // 32: sentry.Sentry.Messages:input_type -> sentry.MessagesRequest - 28, // 33: sentry.Sentry.Peers:input_type -> google.protobuf.Empty - 18, // 34: sentry.Sentry.PeerCount:input_type -> sentry.PeerCountRequest - 21, // 35: sentry.Sentry.PeerById:input_type -> sentry.PeerByIdRequest - 23, // 36: sentry.Sentry.PeerEvents:input_type -> sentry.PeerEventsRequest - 28, // 37: sentry.Sentry.NodeInfo:input_type -> google.protobuf.Empty - 14, // 38: sentry.Sentry.SetStatus:output_type -> sentry.SetStatusReply - 28, // 39: sentry.Sentry.PenalizePeer:output_type -> google.protobuf.Empty - 28, // 40: sentry.Sentry.PeerMinBlock:output_type -> google.protobuf.Empty - 15, // 41: sentry.Sentry.HandShake:output_type -> sentry.HandShakeReply - 8, // 42: sentry.Sentry.SendMessageByMinBlock:output_type -> sentry.SentPeers - 8, // 43: sentry.Sentry.SendMessageById:output_type -> sentry.SentPeers - 8, // 44: sentry.Sentry.SendMessageToRandomPeers:output_type -> sentry.SentPeers - 8, // 45: sentry.Sentry.SendMessageToAll:output_type -> sentry.SentPeers - 11, // 46: sentry.Sentry.Messages:output_type -> sentry.InboundMessage - 17, // 47: sentry.Sentry.Peers:output_type -> sentry.PeersReply - 20, // 48: sentry.Sentry.PeerCount:output_type -> sentry.PeerCountReply - 22, // 49: sentry.Sentry.PeerById:output_type -> sentry.PeerByIdReply - 24, // 50: sentry.Sentry.PeerEvents:output_type -> sentry.PeerEvent - 29, // 51: sentry.Sentry.NodeInfo:output_type -> types.NodeInfoReply - 38, // [38:52] is the sub-list for method output_type - 24, // [24:38] is the sub-list for method input_type + 17, // 32: sentry.Sentry.Messages:input_type -> sentry.MessagesRequest + 30, // 33: sentry.Sentry.Peers:input_type -> google.protobuf.Empty + 19, // 34: sentry.Sentry.PeerCount:input_type -> sentry.PeerCountRequest + 22, // 35: sentry.Sentry.PeerById:input_type -> sentry.PeerByIdRequest + 24, // 36: sentry.Sentry.PeerEvents:input_type -> sentry.PeerEventsRequest + 11, // 37: sentry.Sentry.AddPeer:input_type -> sentry.AddPeerRequest + 30, // 38: sentry.Sentry.NodeInfo:input_type -> google.protobuf.Empty + 15, // 39: sentry.Sentry.SetStatus:output_type -> sentry.SetStatusReply + 30, // 40: sentry.Sentry.PenalizePeer:output_type -> google.protobuf.Empty + 30, // 41: sentry.Sentry.PeerMinBlock:output_type -> google.protobuf.Empty + 16, // 42: sentry.Sentry.HandShake:output_type -> sentry.HandShakeReply + 8, // 43: sentry.Sentry.SendMessageByMinBlock:output_type -> sentry.SentPeers + 8, // 44: sentry.Sentry.SendMessageById:output_type -> sentry.SentPeers + 8, // 45: sentry.Sentry.SendMessageToRandomPeers:output_type -> sentry.SentPeers + 8, // 46: sentry.Sentry.SendMessageToAll:output_type -> sentry.SentPeers + 12, // 47: sentry.Sentry.Messages:output_type -> sentry.InboundMessage + 18, // 48: sentry.Sentry.Peers:output_type -> sentry.PeersReply + 21, // 49: sentry.Sentry.PeerCount:output_type -> sentry.PeerCountReply + 23, // 50: sentry.Sentry.PeerById:output_type -> sentry.PeerByIdReply + 25, // 51: sentry.Sentry.PeerEvents:output_type -> sentry.PeerEvent + 26, // 52: sentry.Sentry.AddPeer:output_type -> sentry.AddPeerReply + 31, // 53: sentry.Sentry.NodeInfo:output_type -> types.NodeInfoReply + 39, // [39:54] is the sub-list for method output_type + 24, // [24:39] is the sub-list for method input_type 24, // [24:24] is the sub-list for extension type_name 24, // [24:24] is the sub-list for extension extendee 0, // [0:24] is the sub-list for field type_name @@ -1856,7 +1962,7 @@ func file_p2psentry_sentry_proto_init() { } } file_p2psentry_sentry_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InboundMessage); i { + switch v := v.(*AddPeerRequest); i { case 0: return &v.state case 1: @@ -1868,7 +1974,7 @@ func file_p2psentry_sentry_proto_init() { } } file_p2psentry_sentry_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Forks); i { + switch v := v.(*InboundMessage); i { case 0: return &v.state case 1: @@ -1880,7 +1986,7 @@ func file_p2psentry_sentry_proto_init() { } } file_p2psentry_sentry_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusData); i { + switch v := v.(*Forks); i { case 0: return &v.state case 1: @@ -1892,7 +1998,7 @@ func file_p2psentry_sentry_proto_init() { } } file_p2psentry_sentry_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetStatusReply); i { + switch v := v.(*StatusData); i { case 0: return &v.state case 1: @@ -1904,7 +2010,7 @@ func file_p2psentry_sentry_proto_init() { } } file_p2psentry_sentry_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HandShakeReply); i { + switch v := v.(*SetStatusReply); i { case 0: return &v.state case 1: @@ -1916,7 +2022,7 @@ func file_p2psentry_sentry_proto_init() { } } file_p2psentry_sentry_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MessagesRequest); i { + switch v := v.(*HandShakeReply); i { case 0: return &v.state case 1: @@ -1928,7 +2034,7 @@ func file_p2psentry_sentry_proto_init() { } } file_p2psentry_sentry_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PeersReply); i { + switch v := v.(*MessagesRequest); i { case 0: return &v.state case 1: @@ -1940,7 +2046,7 @@ func file_p2psentry_sentry_proto_init() { } } file_p2psentry_sentry_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PeerCountRequest); i { + switch v := v.(*PeersReply); i { case 0: return &v.state case 1: @@ -1952,7 +2058,7 @@ func file_p2psentry_sentry_proto_init() { } } file_p2psentry_sentry_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PeerCountPerProtocol); i { + switch v := v.(*PeerCountRequest); i { case 0: return &v.state case 1: @@ -1964,7 +2070,7 @@ func file_p2psentry_sentry_proto_init() { } } file_p2psentry_sentry_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PeerCountReply); i { + switch v := v.(*PeerCountPerProtocol); i { case 0: return &v.state case 1: @@ -1976,7 +2082,7 @@ func file_p2psentry_sentry_proto_init() { } } file_p2psentry_sentry_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PeerByIdRequest); i { + switch v := v.(*PeerCountReply); i { case 0: return &v.state case 1: @@ -1988,7 +2094,7 @@ func file_p2psentry_sentry_proto_init() { } } file_p2psentry_sentry_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PeerByIdReply); i { + switch v := v.(*PeerByIdRequest); i { case 0: return &v.state case 1: @@ -2000,7 +2106,7 @@ func file_p2psentry_sentry_proto_init() { } } file_p2psentry_sentry_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PeerEventsRequest); i { + switch v := v.(*PeerByIdReply); i { case 0: return &v.state case 1: @@ -2012,6 +2118,18 @@ func file_p2psentry_sentry_proto_init() { } } file_p2psentry_sentry_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PeerEventsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p2psentry_sentry_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PeerEvent); i { case 0: return &v.state @@ -2023,15 +2141,27 @@ func file_p2psentry_sentry_proto_init() { return nil } } + file_p2psentry_sentry_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddPeerReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } - file_p2psentry_sentry_proto_msgTypes[18].OneofWrappers = []interface{}{} + file_p2psentry_sentry_proto_msgTypes[19].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_p2psentry_sentry_proto_rawDesc, NumEnums: 4, - NumMessages: 21, + NumMessages: 23, NumExtensions: 0, NumServices: 1, }, diff --git a/gointerfaces/sentry/sentry_grpc.pb.go b/gointerfaces/sentry/sentry_grpc.pb.go index b633d72ae..f3602c8fd 100644 --- a/gointerfaces/sentry/sentry_grpc.pb.go +++ b/gointerfaces/sentry/sentry_grpc.pb.go @@ -34,6 +34,7 @@ const ( Sentry_PeerCount_FullMethodName = "/sentry.Sentry/PeerCount" Sentry_PeerById_FullMethodName = "/sentry.Sentry/PeerById" Sentry_PeerEvents_FullMethodName = "/sentry.Sentry/PeerEvents" + Sentry_AddPeer_FullMethodName = "/sentry.Sentry/AddPeer" Sentry_NodeInfo_FullMethodName = "/sentry.Sentry/NodeInfo" ) @@ -61,6 +62,7 @@ type SentryClient interface { PeerById(ctx context.Context, in *PeerByIdRequest, opts ...grpc.CallOption) (*PeerByIdReply, error) // Subscribe to notifications about connected or lost peers. PeerEvents(ctx context.Context, in *PeerEventsRequest, opts ...grpc.CallOption) (Sentry_PeerEventsClient, error) + AddPeer(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*AddPeerReply, error) // NodeInfo returns a collection of metadata known about the host. NodeInfo(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.NodeInfoReply, error) } @@ -236,6 +238,15 @@ func (x *sentryPeerEventsClient) Recv() (*PeerEvent, error) { return m, nil } +func (c *sentryClient) AddPeer(ctx context.Context, in *AddPeerRequest, opts ...grpc.CallOption) (*AddPeerReply, error) { + out := new(AddPeerReply) + err := c.cc.Invoke(ctx, Sentry_AddPeer_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *sentryClient) NodeInfo(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*types.NodeInfoReply, error) { out := new(types.NodeInfoReply) err := c.cc.Invoke(ctx, Sentry_NodeInfo_FullMethodName, in, out, opts...) @@ -269,6 +280,7 @@ type SentryServer interface { PeerById(context.Context, *PeerByIdRequest) (*PeerByIdReply, error) // Subscribe to notifications about connected or lost peers. PeerEvents(*PeerEventsRequest, Sentry_PeerEventsServer) error + AddPeer(context.Context, *AddPeerRequest) (*AddPeerReply, error) // NodeInfo returns a collection of metadata known about the host. NodeInfo(context.Context, *emptypb.Empty) (*types.NodeInfoReply, error) mustEmbedUnimplementedSentryServer() @@ -317,6 +329,9 @@ func (UnimplementedSentryServer) PeerById(context.Context, *PeerByIdRequest) (*P func (UnimplementedSentryServer) PeerEvents(*PeerEventsRequest, Sentry_PeerEventsServer) error { return status.Errorf(codes.Unimplemented, "method PeerEvents not implemented") } +func (UnimplementedSentryServer) AddPeer(context.Context, *AddPeerRequest) (*AddPeerReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddPeer not implemented") +} func (UnimplementedSentryServer) NodeInfo(context.Context, *emptypb.Empty) (*types.NodeInfoReply, error) { return nil, status.Errorf(codes.Unimplemented, "method NodeInfo not implemented") } @@ -573,6 +588,24 @@ func (x *sentryPeerEventsServer) Send(m *PeerEvent) error { return x.ServerStream.SendMsg(m) } +func _Sentry_AddPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddPeerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SentryServer).AddPeer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Sentry_AddPeer_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SentryServer).AddPeer(ctx, req.(*AddPeerRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Sentry_NodeInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(emptypb.Empty) if err := dec(in); err != nil { @@ -642,6 +675,10 @@ var Sentry_ServiceDesc = grpc.ServiceDesc{ MethodName: "PeerById", Handler: _Sentry_PeerById_Handler, }, + { + MethodName: "AddPeer", + Handler: _Sentry_AddPeer_Handler, + }, { MethodName: "NodeInfo", Handler: _Sentry_NodeInfo_Handler, From 95a1798008c3b8cdab66b59a6627e13caed9eb2d Mon Sep 17 00:00:00 2001 From: pcw109550 Date: Fri, 16 Jun 2023 14:32:34 +0900 Subject: [PATCH 4/4] Update erigon-interfaces version --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index f6bd86a53..92e65153f 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module github.com/ledgerwatch/erigon-lib go 1.19 -replace github.com/ledgerwatch/interfaces v0.0.0-20230412092010-e1c4a1a4279e => github.com/testinprod-io/erigon-interfaces v0.0.0-20230515050805-8ded43c581a4 +replace github.com/ledgerwatch/interfaces v0.0.0-20230412092010-e1c4a1a4279e => github.com/testinprod-io/erigon-interfaces v0.0.0-20230616052951-9393a052ee58 //for local dev: //replace github.com/ledgerwatch/interfaces v0.0.0-20230412092010-e1c4a1a4279e => ../erigon-interfaces diff --git a/go.sum b/go.sum index eddea9f79..199921c63 100644 --- a/go.sum +++ b/go.sum @@ -372,8 +372,8 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/testinprod-io/erigon-interfaces v0.0.0-20230515050805-8ded43c581a4 h1:kjsZb8DszhJ1XNhwROSwJCDOEwd0ZlkgRG5Z9rBW8GQ= -github.com/testinprod-io/erigon-interfaces v0.0.0-20230515050805-8ded43c581a4/go.mod h1:ugQv1QllJzBny3cKZKxUrSnykkjkBgm27eQM6dnGAcc= +github.com/testinprod-io/erigon-interfaces v0.0.0-20230616052951-9393a052ee58 h1:q4amkPUn6yntm6mmP/9pLEnSGw8dSN8VxI9nt0zsCxE= +github.com/testinprod-io/erigon-interfaces v0.0.0-20230616052951-9393a052ee58/go.mod h1:ugQv1QllJzBny3cKZKxUrSnykkjkBgm27eQM6dnGAcc= github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE=