diff --git a/pkg/cannon/iterator/backfilling_checkpoint_iterator.go b/pkg/cannon/iterator/backfilling_checkpoint_iterator.go index 2dee7d2a..ed13c48b 100644 --- a/pkg/cannon/iterator/backfilling_checkpoint_iterator.go +++ b/pkg/cannon/iterator/backfilling_checkpoint_iterator.go @@ -133,7 +133,7 @@ func (c *BackfillingCheckpoint) Next(ctx context.Context) (rsp *BackFillingCheck "next_epoch": rsp.Next, "direction": rsp.Direction, "look_aheads": rsp.LookAheads, - }).Info("Returning next epoch") + }).Debug("Returning next epoch") span.SetAttributes(attribute.Int64("next_epoch", int64(rsp.Next))) span.SetAttributes(attribute.String("direction", string(rsp.Direction))) diff --git a/pkg/proto/xatu/coordinator.pb.go b/pkg/proto/xatu/coordinator.pb.go index 32e9eefd..1d65b083 100644 --- a/pkg/proto/xatu/coordinator.pb.go +++ b/pkg/proto/xatu/coordinator.pb.go @@ -841,7 +841,6 @@ type CannonLocationEthV2BeaconBlockVoluntaryExit struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Epoch uint64 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"` // Marked for deprecation BackfillingCheckpointMarker *BackfillingCheckpointMarker `protobuf:"bytes,2,opt,name=backfilling_checkpoint_marker,json=backfillingCheckpointMarker,proto3" json:"backfilling_checkpoint_marker,omitempty"` } @@ -877,13 +876,6 @@ func (*CannonLocationEthV2BeaconBlockVoluntaryExit) Descriptor() ([]byte, []int) return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{13} } -func (x *CannonLocationEthV2BeaconBlockVoluntaryExit) GetEpoch() uint64 { - if x != nil { - return x.Epoch - } - return 0 -} - func (x *CannonLocationEthV2BeaconBlockVoluntaryExit) GetBackfillingCheckpointMarker() *BackfillingCheckpointMarker { if x != nil { return x.BackfillingCheckpointMarker @@ -896,7 +888,6 @@ type CannonLocationEthV2BeaconBlockProposerSlashing struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Epoch uint64 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"` // Marked for deprecation BackfillingCheckpointMarker *BackfillingCheckpointMarker `protobuf:"bytes,2,opt,name=backfilling_checkpoint_marker,json=backfillingCheckpointMarker,proto3" json:"backfilling_checkpoint_marker,omitempty"` } @@ -932,13 +923,6 @@ func (*CannonLocationEthV2BeaconBlockProposerSlashing) Descriptor() ([]byte, []i return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{14} } -func (x *CannonLocationEthV2BeaconBlockProposerSlashing) GetEpoch() uint64 { - if x != nil { - return x.Epoch - } - return 0 -} - func (x *CannonLocationEthV2BeaconBlockProposerSlashing) GetBackfillingCheckpointMarker() *BackfillingCheckpointMarker { if x != nil { return x.BackfillingCheckpointMarker @@ -951,7 +935,6 @@ type CannonLocationEthV2BeaconBlockDeposit struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Epoch uint64 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"` // Marked for deprecation BackfillingCheckpointMarker *BackfillingCheckpointMarker `protobuf:"bytes,2,opt,name=backfilling_checkpoint_marker,json=backfillingCheckpointMarker,proto3" json:"backfilling_checkpoint_marker,omitempty"` } @@ -987,13 +970,6 @@ func (*CannonLocationEthV2BeaconBlockDeposit) Descriptor() ([]byte, []int) { return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{15} } -func (x *CannonLocationEthV2BeaconBlockDeposit) GetEpoch() uint64 { - if x != nil { - return x.Epoch - } - return 0 -} - func (x *CannonLocationEthV2BeaconBlockDeposit) GetBackfillingCheckpointMarker() *BackfillingCheckpointMarker { if x != nil { return x.BackfillingCheckpointMarker @@ -1006,7 +982,6 @@ type CannonLocationEthV2BeaconBlockAttesterSlashing struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Epoch uint64 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"` // Marked for deprecation BackfillingCheckpointMarker *BackfillingCheckpointMarker `protobuf:"bytes,2,opt,name=backfilling_checkpoint_marker,json=backfillingCheckpointMarker,proto3" json:"backfilling_checkpoint_marker,omitempty"` } @@ -1042,13 +1017,6 @@ func (*CannonLocationEthV2BeaconBlockAttesterSlashing) Descriptor() ([]byte, []i return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{16} } -func (x *CannonLocationEthV2BeaconBlockAttesterSlashing) GetEpoch() uint64 { - if x != nil { - return x.Epoch - } - return 0 -} - func (x *CannonLocationEthV2BeaconBlockAttesterSlashing) GetBackfillingCheckpointMarker() *BackfillingCheckpointMarker { if x != nil { return x.BackfillingCheckpointMarker @@ -1061,7 +1029,6 @@ type CannonLocationEthV2BeaconBlockBlsToExecutionChange struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Epoch uint64 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"` // Marked for deprecation BackfillingCheckpointMarker *BackfillingCheckpointMarker `protobuf:"bytes,2,opt,name=backfilling_checkpoint_marker,json=backfillingCheckpointMarker,proto3" json:"backfilling_checkpoint_marker,omitempty"` } @@ -1097,13 +1064,6 @@ func (*CannonLocationEthV2BeaconBlockBlsToExecutionChange) Descriptor() ([]byte, return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{17} } -func (x *CannonLocationEthV2BeaconBlockBlsToExecutionChange) GetEpoch() uint64 { - if x != nil { - return x.Epoch - } - return 0 -} - func (x *CannonLocationEthV2BeaconBlockBlsToExecutionChange) GetBackfillingCheckpointMarker() *BackfillingCheckpointMarker { if x != nil { return x.BackfillingCheckpointMarker @@ -1116,7 +1076,6 @@ type CannonLocationEthV2BeaconBlockExecutionTransaction struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Epoch uint64 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"` // Marked for deprecation BackfillingCheckpointMarker *BackfillingCheckpointMarker `protobuf:"bytes,2,opt,name=backfilling_checkpoint_marker,json=backfillingCheckpointMarker,proto3" json:"backfilling_checkpoint_marker,omitempty"` } @@ -1152,13 +1111,6 @@ func (*CannonLocationEthV2BeaconBlockExecutionTransaction) Descriptor() ([]byte, return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{18} } -func (x *CannonLocationEthV2BeaconBlockExecutionTransaction) GetEpoch() uint64 { - if x != nil { - return x.Epoch - } - return 0 -} - func (x *CannonLocationEthV2BeaconBlockExecutionTransaction) GetBackfillingCheckpointMarker() *BackfillingCheckpointMarker { if x != nil { return x.BackfillingCheckpointMarker @@ -1171,7 +1123,6 @@ type CannonLocationEthV2BeaconBlockWithdrawal struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Epoch uint64 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"` // Marked for deprecation BackfillingCheckpointMarker *BackfillingCheckpointMarker `protobuf:"bytes,2,opt,name=backfilling_checkpoint_marker,json=backfillingCheckpointMarker,proto3" json:"backfilling_checkpoint_marker,omitempty"` } @@ -1207,13 +1158,6 @@ func (*CannonLocationEthV2BeaconBlockWithdrawal) Descriptor() ([]byte, []int) { return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{19} } -func (x *CannonLocationEthV2BeaconBlockWithdrawal) GetEpoch() uint64 { - if x != nil { - return x.Epoch - } - return 0 -} - func (x *CannonLocationEthV2BeaconBlockWithdrawal) GetBackfillingCheckpointMarker() *BackfillingCheckpointMarker { if x != nil { return x.BackfillingCheckpointMarker @@ -1226,7 +1170,6 @@ type CannonLocationEthV2BeaconBlock struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Epoch uint64 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"` // Marked for deprecation BackfillingCheckpointMarker *BackfillingCheckpointMarker `protobuf:"bytes,2,opt,name=backfilling_checkpoint_marker,json=backfillingCheckpointMarker,proto3" json:"backfilling_checkpoint_marker,omitempty"` } @@ -1262,13 +1205,6 @@ func (*CannonLocationEthV2BeaconBlock) Descriptor() ([]byte, []int) { return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{20} } -func (x *CannonLocationEthV2BeaconBlock) GetEpoch() uint64 { - if x != nil { - return x.Epoch - } - return 0 -} - func (x *CannonLocationEthV2BeaconBlock) GetBackfillingCheckpointMarker() *BackfillingCheckpointMarker { if x != nil { return x.BackfillingCheckpointMarker @@ -1336,7 +1272,6 @@ type CannonLocationEthV1BeaconBlobSidecar struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Epoch uint64 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"` // Marked for deprecation BackfillingCheckpointMarker *BackfillingCheckpointMarker `protobuf:"bytes,2,opt,name=backfilling_checkpoint_marker,json=backfillingCheckpointMarker,proto3" json:"backfilling_checkpoint_marker,omitempty"` } @@ -1372,13 +1307,6 @@ func (*CannonLocationEthV1BeaconBlobSidecar) Descriptor() ([]byte, []int) { return file_pkg_proto_xatu_coordinator_proto_rawDescGZIP(), []int{22} } -func (x *CannonLocationEthV1BeaconBlobSidecar) GetEpoch() uint64 { - if x != nil { - return x.Epoch - } - return 0 -} - func (x *CannonLocationEthV1BeaconBlobSidecar) GetBackfillingCheckpointMarker() *BackfillingCheckpointMarker { if x != nil { return x.BackfillingCheckpointMarker @@ -2183,111 +2111,102 @@ var file_pkg_proto_xatu_coordinator_proto_rawDesc = []byte{ 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x22, 0xaa, + 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x22, 0x9a, 0x01, 0x0a, 0x2b, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x65, 0x0a, 0x1d, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1b, - 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x22, 0xad, 0x01, 0x0a, 0x2e, + 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x12, 0x65, + 0x0a, 0x1d, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, + 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x72, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x9d, 0x01, 0x0a, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x12, 0x65, 0x0a, 0x1d, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1b, - 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x22, 0xa4, 0x01, 0x0a, 0x25, + 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x65, + 0x0a, 0x1d, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, + 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, + 0x61, 0x72, 0x6b, 0x65, 0x72, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x94, 0x01, 0x0a, 0x25, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x65, 0x0a, 0x1d, 0x62, - 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, - 0x65, 0x72, 0x22, 0xad, 0x01, 0x0a, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x65, 0x0a, 0x1d, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, + 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x4a, 0x04, 0x08, 0x01, + 0x10, 0x02, 0x22, 0x9d, 0x01, 0x0a, 0x2e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x61, - 0x73, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x65, 0x0a, 0x1d, 0x62, - 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, - 0x65, 0x72, 0x22, 0xb1, 0x01, 0x0a, 0x32, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, + 0x73, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x65, 0x0a, 0x1d, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, + 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x4a, 0x04, 0x08, 0x01, + 0x10, 0x02, 0x22, 0xa1, 0x01, 0x0a, 0x32, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x6c, 0x73, 0x54, 0x6f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, - 0x65, 0x0a, 0x1d, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x61, - 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x22, 0xb1, 0x01, 0x0a, 0x32, 0x43, 0x61, 0x6e, 0x6e, 0x6f, + 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x65, 0x0a, 0x1d, 0x62, 0x61, 0x63, + 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, + 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, + 0x6b, 0x65, 0x72, 0x52, 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, + 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0xa1, 0x01, 0x0a, 0x32, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, - 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x12, 0x65, 0x0a, 0x1d, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6d, 0x61, - 0x72, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1b, 0x62, - 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x22, 0xa7, 0x01, 0x0a, 0x28, 0x43, - 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, - 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x65, 0x0a, + 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x65, 0x0a, 0x1d, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, - 0x72, 0x6b, 0x65, 0x72, 0x22, 0x9d, 0x01, 0x0a, 0x1e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, + 0x72, 0x6b, 0x65, 0x72, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x97, 0x01, 0x0a, 0x28, 0x43, + 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, + 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x57, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x12, 0x65, 0x0a, 0x1d, 0x62, 0x61, 0x63, 0x6b, 0x66, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x72, 0x52, 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x4a, 0x04, + 0x08, 0x01, 0x10, 0x02, 0x22, 0x8d, 0x01, 0x0a, 0x1e, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x32, 0x42, 0x65, 0x61, 0x63, - 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x65, 0x0a, - 0x1d, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, 0x6b, - 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, - 0x72, 0x6b, 0x65, 0x72, 0x22, 0x69, 0x0a, 0x2b, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x65, 0x0a, 0x1d, 0x62, 0x61, 0x63, 0x6b, 0x66, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x72, 0x52, 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x4a, 0x04, + 0x08, 0x01, 0x10, 0x02, 0x22, 0x69, 0x0a, 0x2b, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x45, 0x6e, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x22, - 0xa3, 0x01, 0x0a, 0x24, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x93, 0x01, 0x0a, 0x24, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, - 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x65, - 0x0a, 0x1d, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, - 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, - 0x61, 0x72, 0x6b, 0x65, 0x72, 0x22, 0x8e, 0x01, 0x0a, 0x25, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, + 0x62, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, 0x65, 0x0a, 0x1d, 0x62, 0x61, 0x63, 0x6b, + 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x72, 0x52, 0x1b, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x4a, + 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x8e, 0x01, 0x0a, 0x25, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x74, 0x68, 0x56, 0x31, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x44, 0x75, 0x74, 0x79, 0x12, 0x65, 0x0a, 0x1d, 0x62, 0x61, 0x63, 0x6b, 0x66, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, diff --git a/pkg/proto/xatu/coordinator.proto b/pkg/proto/xatu/coordinator.proto index 257c7e7f..4e8e630a 100644 --- a/pkg/proto/xatu/coordinator.proto +++ b/pkg/proto/xatu/coordinator.proto @@ -109,42 +109,42 @@ message BackfillingCheckpointMarker { } message CannonLocationEthV2BeaconBlockVoluntaryExit { - uint64 epoch = 1; // Marked for deprecation + reserved 1; BackfillingCheckpointMarker backfilling_checkpoint_marker = 2; } message CannonLocationEthV2BeaconBlockProposerSlashing{ - uint64 epoch = 1; // Marked for deprecation + reserved 1; BackfillingCheckpointMarker backfilling_checkpoint_marker = 2; } message CannonLocationEthV2BeaconBlockDeposit { - uint64 epoch = 1; // Marked for deprecation + reserved 1; BackfillingCheckpointMarker backfilling_checkpoint_marker = 2; } message CannonLocationEthV2BeaconBlockAttesterSlashing { - uint64 epoch = 1; // Marked for deprecation + reserved 1; BackfillingCheckpointMarker backfilling_checkpoint_marker = 2; } message CannonLocationEthV2BeaconBlockBlsToExecutionChange { - uint64 epoch = 1; // Marked for deprecation + reserved 1; BackfillingCheckpointMarker backfilling_checkpoint_marker = 2; } message CannonLocationEthV2BeaconBlockExecutionTransaction { - uint64 epoch = 1; // Marked for deprecation + reserved 1; BackfillingCheckpointMarker backfilling_checkpoint_marker = 2; } message CannonLocationEthV2BeaconBlockWithdrawal { - uint64 epoch = 1; // Marked for deprecation + reserved 1; BackfillingCheckpointMarker backfilling_checkpoint_marker = 2; } message CannonLocationEthV2BeaconBlock { - uint64 epoch = 1; // Marked for deprecation + reserved 1; BackfillingCheckpointMarker backfilling_checkpoint_marker = 2; } @@ -154,7 +154,7 @@ message CannonLocationBlockprintBlockClassification { } message CannonLocationEthV1BeaconBlobSidecar { - uint64 epoch = 1; // Marked for deprecation + reserved 1; BackfillingCheckpointMarker backfilling_checkpoint_marker = 2; } diff --git a/pkg/server/persistence/cannon/location.go b/pkg/server/persistence/cannon/location.go index e710a86c..c55439b4 100644 --- a/pkg/server/persistence/cannon/location.go +++ b/pkg/server/persistence/cannon/location.go @@ -1,6 +1,7 @@ package cannon import ( + "errors" "fmt" "time" @@ -23,6 +24,11 @@ type Location struct { Value string `json:"value" db:"value"` } +var ( + ErrFailedToMarshal = errors.New("failed to marshal location") + ErrFailedToUnmarshal = errors.New("failed to unmarshal location") +) + // MarshalValueFromProto marshals a proto message into the Value field. func (l *Location) Marshal(msg *xatu.CannonLocation) error { l.NetworkID = msg.NetworkId @@ -35,7 +41,7 @@ func (l *Location) Marshal(msg *xatu.CannonLocation) error { b, err := protojson.Marshal(data) if err != nil { - return err + return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) } l.Value = string(b) @@ -46,7 +52,7 @@ func (l *Location) Marshal(msg *xatu.CannonLocation) error { b, err := protojson.Marshal(data) if err != nil { - return err + return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) } l.Value = string(b) @@ -57,7 +63,7 @@ func (l *Location) Marshal(msg *xatu.CannonLocation) error { b, err := protojson.Marshal(data) if err != nil { - return err + return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) } l.Value = string(b) @@ -68,7 +74,7 @@ func (l *Location) Marshal(msg *xatu.CannonLocation) error { b, err := protojson.Marshal(data) if err != nil { - return err + return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) } l.Value = string(b) @@ -80,7 +86,7 @@ func (l *Location) Marshal(msg *xatu.CannonLocation) error { b, err := protojson.Marshal(data) if err != nil { - return err + return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) } l.Value = string(b) @@ -92,7 +98,7 @@ func (l *Location) Marshal(msg *xatu.CannonLocation) error { b, err := protojson.Marshal(data) if err != nil { - return err + return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) } l.Value = string(b) @@ -103,7 +109,7 @@ func (l *Location) Marshal(msg *xatu.CannonLocation) error { b, err := protojson.Marshal(data) if err != nil { - return err + return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) } l.Value = string(b) @@ -115,7 +121,7 @@ func (l *Location) Marshal(msg *xatu.CannonLocation) error { b, err := protojson.Marshal(data) if err != nil { - return err + return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) } l.Value = string(b) @@ -127,7 +133,7 @@ func (l *Location) Marshal(msg *xatu.CannonLocation) error { b, err := protojson.Marshal(data) if err != nil { - return err + return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) } l.Value = string(b) @@ -139,7 +145,7 @@ func (l *Location) Marshal(msg *xatu.CannonLocation) error { b, err := protojson.Marshal(data) if err != nil { - return err + return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) } l.Value = string(b) @@ -150,7 +156,7 @@ func (l *Location) Marshal(msg *xatu.CannonLocation) error { b, err := protojson.Marshal(data) if err != nil { - return err + return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) } l.Value = string(b) @@ -161,7 +167,7 @@ func (l *Location) Marshal(msg *xatu.CannonLocation) error { b, err := protojson.Marshal(data) if err != nil { - return err + return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) } l.Value = string(b) @@ -172,7 +178,7 @@ func (l *Location) Marshal(msg *xatu.CannonLocation) error { b, err := protojson.Marshal(data) if err != nil { - return err + return fmt.Errorf("%w: %s", ErrFailedToMarshal, err) } l.Value = string(b) @@ -196,7 +202,7 @@ func (l *Location) Unmarshal() (*xatu.CannonLocation, error) { err := protojson.Unmarshal([]byte(l.Value), data) if err != nil { - return nil, err + return nil, fmt.Errorf("%w: %s", ErrFailedToUnmarshal, err) } msg.Data = &xatu.CannonLocation_EthV2BeaconBlockVoluntaryExit{ @@ -209,7 +215,7 @@ func (l *Location) Unmarshal() (*xatu.CannonLocation, error) { err := protojson.Unmarshal([]byte(l.Value), data) if err != nil { - return nil, err + return nil, fmt.Errorf("%w: %s", ErrFailedToUnmarshal, err) } msg.Data = &xatu.CannonLocation_EthV2BeaconBlockProposerSlashing{ @@ -222,7 +228,7 @@ func (l *Location) Unmarshal() (*xatu.CannonLocation, error) { err := protojson.Unmarshal([]byte(l.Value), data) if err != nil { - return nil, err + return nil, fmt.Errorf("%w: %s", ErrFailedToUnmarshal, err) } msg.Data = &xatu.CannonLocation_EthV2BeaconBlockDeposit{ @@ -235,7 +241,7 @@ func (l *Location) Unmarshal() (*xatu.CannonLocation, error) { err := protojson.Unmarshal([]byte(l.Value), data) if err != nil { - return nil, err + return nil, fmt.Errorf("%w: %s", ErrFailedToUnmarshal, err) } msg.Data = &xatu.CannonLocation_EthV2BeaconBlockAttesterSlashing{ @@ -249,7 +255,7 @@ func (l *Location) Unmarshal() (*xatu.CannonLocation, error) { err := protojson.Unmarshal([]byte(l.Value), data) if err != nil { - return nil, err + return nil, fmt.Errorf("%w: %s", ErrFailedToUnmarshal, err) } msg.Data = &xatu.CannonLocation_EthV2BeaconBlockExecutionTransaction{ @@ -263,7 +269,7 @@ func (l *Location) Unmarshal() (*xatu.CannonLocation, error) { err := protojson.Unmarshal([]byte(l.Value), data) if err != nil { - return nil, err + return nil, fmt.Errorf("%w: %s", ErrFailedToUnmarshal, err) } msg.Data = &xatu.CannonLocation_EthV2BeaconBlockBlsToExecutionChange{ @@ -277,7 +283,7 @@ func (l *Location) Unmarshal() (*xatu.CannonLocation, error) { err := protojson.Unmarshal([]byte(l.Value), data) if err != nil { - return nil, err + return nil, fmt.Errorf("%w: %s", ErrFailedToUnmarshal, err) } msg.Data = &xatu.CannonLocation_EthV2BeaconBlockWithdrawal{ @@ -290,7 +296,7 @@ func (l *Location) Unmarshal() (*xatu.CannonLocation, error) { err := protojson.Unmarshal([]byte(l.Value), data) if err != nil { - return nil, err + return nil, fmt.Errorf("%w: %s", ErrFailedToUnmarshal, err) } msg.Data = &xatu.CannonLocation_EthV2BeaconBlock{ @@ -303,7 +309,7 @@ func (l *Location) Unmarshal() (*xatu.CannonLocation, error) { err := protojson.Unmarshal([]byte(l.Value), data) if err != nil { - return nil, err + return nil, fmt.Errorf("%w: %s", ErrFailedToUnmarshal, err) } msg.Data = &xatu.CannonLocation_BlockprintBlockClassification{ @@ -316,7 +322,7 @@ func (l *Location) Unmarshal() (*xatu.CannonLocation, error) { err := protojson.Unmarshal([]byte(l.Value), data) if err != nil { - return nil, err + return nil, fmt.Errorf("%w: %s", ErrFailedToUnmarshal, err) } msg.Data = &xatu.CannonLocation_EthV1BeaconBlobSidecar{ @@ -329,7 +335,7 @@ func (l *Location) Unmarshal() (*xatu.CannonLocation, error) { err := protojson.Unmarshal([]byte(l.Value), data) if err != nil { - return nil, err + return nil, fmt.Errorf("%w: %s", ErrFailedToUnmarshal, err) } msg.Data = &xatu.CannonLocation_EthV1BeaconProposerDuty{ @@ -342,7 +348,7 @@ func (l *Location) Unmarshal() (*xatu.CannonLocation, error) { err := protojson.Unmarshal([]byte(l.Value), data) if err != nil { - return nil, err + return nil, fmt.Errorf("%w: %s", ErrFailedToUnmarshal, err) } msg.Data = &xatu.CannonLocation_EthV2BeaconBlockElaboratedAttestation{ @@ -355,7 +361,7 @@ func (l *Location) Unmarshal() (*xatu.CannonLocation, error) { err := protojson.Unmarshal([]byte(l.Value), data) if err != nil { - return nil, err + return nil, fmt.Errorf("%w: %s", ErrFailedToUnmarshal, err) } msg.Data = &xatu.CannonLocation_EthV1BeaconValidators{ diff --git a/pkg/server/persistence/cannon_location.go b/pkg/server/persistence/cannon_location.go index 306f4137..c12296ee 100644 --- a/pkg/server/persistence/cannon_location.go +++ b/pkg/server/persistence/cannon_location.go @@ -5,6 +5,8 @@ import ( "errors" "time" + perrors "github.com/pkg/errors" + "github.com/ethpandaops/xatu/pkg/server/persistence/cannon" "github.com/huandu/go-sqlbuilder" ) @@ -41,7 +43,7 @@ func (c *Client) GetCannonLocationByID(ctx context.Context, id int64) (*cannon.L rows, err := c.db.QueryContext(ctx, sql, args...) if err != nil { - return nil, err + return nil, perrors.Wrap(err, "db query failed") } defer rows.Close() @@ -53,7 +55,7 @@ func (c *Client) GetCannonLocationByID(ctx context.Context, id int64) (*cannon.L err = rows.Scan(cannonLocationStruct.Addr(&location)...) if err != nil { - return nil, err + return nil, perrors.Wrap(err, "db scan failed") } locations = append(locations, &location) @@ -76,7 +78,7 @@ func (c *Client) GetCannonLocationByNetworkIDAndType(ctx context.Context, networ rows, err := c.db.QueryContext(ctx, sql, args...) if err != nil { - return nil, err + return nil, perrors.Wrap(err, "db query failed") } defer rows.Close() @@ -88,7 +90,7 @@ func (c *Client) GetCannonLocationByNetworkIDAndType(ctx context.Context, networ err = rows.Scan(cannonLocationStruct.Addr(&location)...) if err != nil { - return nil, err + return nil, perrors.Wrap(err, "db scan failed") } locations = append(locations, &location) diff --git a/pkg/server/service/coordinator/client.go b/pkg/server/service/coordinator/client.go index f03cc94a..c5f118a6 100644 --- a/pkg/server/service/coordinator/client.go +++ b/pkg/server/service/coordinator/client.go @@ -9,6 +9,8 @@ import ( "strings" "time" + perrors "github.com/pkg/errors" + "github.com/ethpandaops/xatu/pkg/proto/xatu" "github.com/ethpandaops/xatu/pkg/server/geoip" "github.com/ethpandaops/xatu/pkg/server/persistence" @@ -68,7 +70,7 @@ func (c *Client) Start(ctx context.Context, grpcServer *grpc.Server) error { xatu.RegisterCoordinatorServer(grpcServer, c) if err := c.nodeRecord.Start(ctx); err != nil { - return status.Error(codes.Internal, err.Error()) + return status.Error(codes.Internal, perrors.Wrap(err, "failed to start node record processor").Error()) } return nil @@ -93,7 +95,7 @@ func (c *Client) CreateNodeRecords(ctx context.Context, req *xatu.CreateNodeReco pRecord, err := node.Parse(record) if err != nil { - return nil, status.Error(codes.InvalidArgument, err.Error()) + return nil, status.Error(codes.InvalidArgument, perrors.Wrap(err, "failed to parse node record").Error()) } if c.geoipProvider != nil { @@ -142,7 +144,7 @@ func (c *Client) ListStalledExecutionNodeRecords(ctx context.Context, req *xatu. nodeRecords, err := c.persistence.CheckoutStalledExecutionNodeRecords(ctx, pageSize) if err != nil { - return nil, status.Error(codes.Internal, err.Error()) + return nil, status.Error(codes.Internal, perrors.Wrap(err, "failed to get stalled execution node records from db").Error()) } response := &xatu.ListStalledExecutionNodeRecordsResponse{ @@ -194,7 +196,7 @@ func (c *Client) CreateExecutionNodeRecordStatus(ctx context.Context, req *xatu. err := c.persistence.InsertNodeRecordExecution(ctx, &st) if err != nil { - return nil, status.Error(codes.Internal, err.Error()) + return nil, status.Error(codes.Internal, perrors.Wrap(err, "failed to insert node record execution").Error()) } result = "success" @@ -207,7 +209,7 @@ func (c *Client) CreateExecutionNodeRecordStatus(ctx context.Context, req *xatu. err = c.persistence.UpdateNodeRecord(ctx, nodeRecord) if err != nil { - return nil, status.Error(codes.Internal, err.Error()) + return nil, status.Error(codes.Internal, perrors.Wrap(err, "failed to update node record").Error()) } return &xatu.CreateExecutionNodeRecordStatusResponse{}, nil @@ -254,7 +256,7 @@ func (c *Client) CoordinateExecutionNodeRecords(ctx context.Context, req *xatu.C if limit > 0 { newNodeRecords, err := c.persistence.ListAvailableExecutionNodeRecords(ctx, req.ClientId, ignoredNodeRecords, req.NetworkIds, req.ForkIdHashes, req.Capabilities, int(limit)) if err != nil { - return nil, status.Error(codes.Internal, err.Error()) + return nil, status.Error(codes.Internal, perrors.Wrap(err, "failed to get available execution node records from db").Error()) } for _, record := range newNodeRecords { @@ -273,7 +275,7 @@ func (c *Client) CoordinateExecutionNodeRecords(ctx context.Context, req *xatu.C if len(activities) != 0 { err := c.persistence.UpsertNodeRecordActivities(ctx, activities) if err != nil { - return nil, status.Error(codes.Internal, err.Error()) + return nil, status.Error(codes.Internal, perrors.Wrap(err, "failed to upsert node record activities to db").Error()) } } @@ -286,7 +288,7 @@ func (c *Client) CoordinateExecutionNodeRecords(ctx context.Context, req *xatu.C func (c *Client) GetDiscoveryNodeRecord(ctx context.Context, req *xatu.GetDiscoveryNodeRecordRequest) (*xatu.GetDiscoveryNodeRecordResponse, error) { records, err := c.persistence.ListNodeRecordExecutions(ctx, req.NetworkIds, req.ForkIdHashes, 100) if err != nil { - return nil, status.Error(codes.Internal, err.Error()) + return nil, status.Error(codes.Internal, perrors.Wrap(err, "failed to get discovery node records from db").Error()) } if len(records) == 0 { @@ -304,7 +306,7 @@ func (c *Client) GetDiscoveryNodeRecord(ctx context.Context, req *xatu.GetDiscov func (c *Client) GetCannonLocation(ctx context.Context, req *xatu.GetCannonLocationRequest) (*xatu.GetCannonLocationResponse, error) { location, err := c.persistence.GetCannonLocationByNetworkIDAndType(ctx, req.NetworkId, req.Type.Enum().String()) if err != nil && err != persistence.ErrCannonLocationNotFound { - return nil, status.Error(codes.Internal, err.Error()) + return nil, status.Error(codes.Internal, perrors.Wrap(err, "failed to get cannon location from db").Error()) } rsp := &xatu.GetCannonLocationResponse{} @@ -315,7 +317,7 @@ func (c *Client) GetCannonLocation(ctx context.Context, req *xatu.GetCannonLocat protoLoc, err := location.Unmarshal() if err != nil { - return nil, status.Error(codes.Internal, err.Error()) + return nil, status.Error(codes.Internal, perrors.Wrap(err, "failed to unmarshal cannon location").Error()) } return &xatu.GetCannonLocationResponse{ @@ -328,12 +330,12 @@ func (c *Client) UpsertCannonLocation(ctx context.Context, req *xatu.UpsertCanno err := newLocation.Marshal(req.Location) if err != nil { - return nil, status.Error(codes.InvalidArgument, err.Error()) + return nil, status.Error(codes.InvalidArgument, perrors.Wrap(err, "failed to marshal cannon location").Error()) } err = c.persistence.UpsertCannonLocation(ctx, newLocation) if err != nil { - return nil, status.Error(codes.Internal, err.Error()) + return nil, status.Error(codes.Internal, perrors.Wrap(err, "failed to upsert cannon location to db").Error()) } return &xatu.UpsertCannonLocationResponse{}, nil