From 6f7c3248b5da0643b09d97a6db3adbb8a3ce97bf Mon Sep 17 00:00:00 2001 From: Andrew Davis <1709934+Savid@users.noreply.github.com> Date: Fri, 19 Jul 2024 13:07:25 +1000 Subject: [PATCH] feat: update voluntary exit wallclocks --- .../vector-kafka-clickhouse.yaml | 18 + ...4_events_voluntary_exit_wallclock.down.sql | 108 ++++++ ...044_events_voluntary_exit_wallclock.up.sql | 124 +++++++ .../blockprint/block_classification.pb.go | 4 +- pkg/proto/eth/v1/attestation.pb.go | 4 +- pkg/proto/eth/v1/beacon_block.pb.go | 4 +- pkg/proto/eth/v1/blob.pb.go | 4 +- pkg/proto/eth/v1/checkpoint.pb.go | 4 +- pkg/proto/eth/v1/committee.pb.go | 4 +- pkg/proto/eth/v1/duties.pb.go | 4 +- pkg/proto/eth/v1/events.pb.go | 4 +- pkg/proto/eth/v1/execution_engine.pb.go | 4 +- pkg/proto/eth/v1/fork_choice.pb.go | 4 +- pkg/proto/eth/v1/sync_committee.pb.go | 4 +- pkg/proto/eth/v1/validator.pb.go | 4 +- pkg/proto/eth/v2/beacon_block.pb.go | 4 +- pkg/proto/eth/v2/events.pb.go | 4 +- pkg/proto/eth/v2/withdrawals.pb.go | 4 +- pkg/proto/libp2p/eth.pb.go | 4 +- pkg/proto/libp2p/gossipsub/eth.pb.go | 4 +- pkg/proto/libp2p/peer.pb.go | 4 +- pkg/proto/libp2p/trace.pb.go | 4 +- pkg/proto/xatu/coordinator.pb.go | 4 +- pkg/proto/xatu/coordinator_grpc.pb.go | 2 +- pkg/proto/xatu/event_ingester.pb.go | 331 ++++++++++-------- pkg/proto/xatu/event_ingester.proto | 6 + pkg/proto/xatu/event_ingester_grpc.pb.go | 2 +- .../beacon/eth/v1/events_voluntary_exit.go | 16 +- 28 files changed, 492 insertions(+), 195 deletions(-) create mode 100644 deploy/migrations/clickhouse/044_events_voluntary_exit_wallclock.down.sql create mode 100644 deploy/migrations/clickhouse/044_events_voluntary_exit_wallclock.up.sql diff --git a/deploy/local/docker-compose/vector-kafka-clickhouse.yaml b/deploy/local/docker-compose/vector-kafka-clickhouse.yaml index 773057a6..25d758f9 100644 --- a/deploy/local/docker-compose/vector-kafka-clickhouse.yaml +++ b/deploy/local/docker-compose/vector-kafka-clickhouse.yaml @@ -709,6 +709,24 @@ transforms: .error_description = "failed to parse epoch start date time" log(., level: "error", rate_limit_secs: 60) } + .wallclock_slot = .meta.client.additional_data.wallclock_slot.number + wallclock_slot_start_date_time, err = parse_timestamp(.meta.client.additional_data.wallclock_slot.start_date_time, format: "%+"); + if err == null { + .wallclock_slot_start_date_time = to_unix_timestamp(wallclock_slot_start_date_time) + } else { + .error = err + .error_description = "failed to parse wallclock slot start date time" + log(., level: "error", rate_limit_secs: 60) + } + .wallclock_epoch = .meta.client.additional_data.epoch.number + wallclock_epoch_start_date_time, err = parse_timestamp(.meta.client.additional_data.wallclock_epoch.start_date_time, format: "%+"); + if err == null { + .wallclock_epoch_start_date_time = to_unix_timestamp(wallclock_epoch_start_date_time) + } else { + .error = err + .error_description = "failed to parse wallclock epoch start date time" + log(., level: "error", rate_limit_secs: 60) + } .validator_index = .data.message.validator_index .signature = .data.signature .updated_date_time = to_unix_timestamp(now()) diff --git a/deploy/migrations/clickhouse/044_events_voluntary_exit_wallclock.down.sql b/deploy/migrations/clickhouse/044_events_voluntary_exit_wallclock.down.sql new file mode 100644 index 00000000..16cf0238 --- /dev/null +++ b/deploy/migrations/clickhouse/044_events_voluntary_exit_wallclock.down.sql @@ -0,0 +1,108 @@ +CREATE TABLE tmp.beacon_api_eth_v1_events_voluntary_exit_local ON CLUSTER '{cluster}' ( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `event_date_time` DateTime64(3) COMMENT 'When the sentry received the event from a beacon node', + `epoch` UInt32 COMMENT 'The epoch number in the beacon API event stream payload', + `epoch_start_date_time` DateTime COMMENT 'The wall clock time when the epoch started', + `validator_index` UInt32 COMMENT 'The index of the validator making the voluntary exit', + `signature` String COMMENT 'The signature of the voluntary exit in the beacon API event stream payload', + `meta_client_name` LowCardinality(String) COMMENT 'Name of the client that generated the event', + `meta_client_id` String COMMENT 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', + `meta_client_version` LowCardinality(String) COMMENT 'Version of the client that generated the event', + `meta_client_implementation` LowCardinality(String) COMMENT 'Implementation of the client that generated the event', + `meta_client_os` LowCardinality(String) COMMENT 'Operating system of the client that generated the event', + `meta_client_ip` Nullable(IPv6) COMMENT 'IP address of the client that generated the event', + `meta_client_geo_city` LowCardinality(String) COMMENT 'City of the client that generated the event', + `meta_client_geo_country` LowCardinality(String) COMMENT 'Country of the client that generated the event', + `meta_client_geo_country_code` LowCardinality(String) COMMENT 'Country code of the client that generated the event', + `meta_client_geo_continent_code` LowCardinality(String) COMMENT 'Continent code of the client that generated the event', + `meta_client_geo_longitude` Nullable(Float64) COMMENT 'Longitude of the client that generated the event', + `meta_client_geo_latitude` Nullable(Float64) COMMENT 'Latitude of the client that generated the event', + `meta_client_geo_autonomous_system_number` Nullable(UInt32) COMMENT 'Autonomous system number of the client that generated the event', + `meta_client_geo_autonomous_system_organization` Nullable(String) COMMENT 'Autonomous system organization of the client that generated the event', + `meta_network_id` Int32 COMMENT 'Ethereum network ID', + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name', + `meta_consensus_version` LowCardinality(String) COMMENT 'Ethereum consensus client version that generated the event', + `meta_consensus_version_major` LowCardinality(String) COMMENT 'Ethereum consensus client major version that generated the event', + `meta_consensus_version_minor` LowCardinality(String) COMMENT 'Ethereum consensus client minor version that generated the event', + `meta_consensus_version_patch` LowCardinality(String) COMMENT 'Ethereum consensus client patch version that generated the event', + `meta_consensus_implementation` LowCardinality(String) COMMENT 'Ethereum consensus client implementation that generated the event', + `meta_labels` Map(String, String) COMMENT 'Labels associated with the event' +) ENGINE = ReplicatedReplacingMergeTree( + '/clickhouse/{installation}/{cluster}/default/tables/{table}/{shard}', + '{replica}', + updated_date_time +) PARTITION BY toStartOfMonth(epoch_start_date_time) +ORDER BY + ( + epoch_start_date_time, + meta_network_name, + meta_client_name, + validator_index + ) COMMENT 'Contains beacon API eventstream "voluntary exit" data from each sentry client attached to a beacon node.'; + +CREATE TABLE tmp.beacon_api_eth_v1_events_voluntary_exit ON CLUSTER '{cluster}' AS tmp.beacon_api_eth_v1_events_voluntary_exit_local ENGINE = Distributed( + '{cluster}', + tmp, + beacon_api_eth_v1_events_voluntary_exit_local, + cityHash64( + epoch_start_date_time, + meta_network_name, + meta_client_name, + validator_index + ) +); + +INSERT INTO + tmp.beacon_api_eth_v1_events_voluntary_exit +SELECT + NOW(), + event_date_time, + epoch, + epoch_start_date_time, + validator_index, + signature, + meta_client_name, + meta_client_id, + meta_client_version, + meta_client_implementation, + meta_client_os, + meta_client_ip, + meta_client_geo_city, + meta_client_geo_country, + meta_client_geo_country_code, + meta_client_geo_continent_code, + meta_client_geo_longitude, + meta_client_geo_latitude, + meta_client_geo_autonomous_system_number, + meta_client_geo_autonomous_system_organization, + meta_network_id, + meta_network_name, + meta_consensus_version, + meta_consensus_version_major, + meta_consensus_version_minor, + meta_consensus_version_patch, + meta_consensus_implementation, + meta_labels +FROM + default.beacon_api_eth_v1_events_voluntary_exit_local; + +DROP TABLE IF EXISTS default.beacon_api_eth_v1_events_voluntary_exit ON CLUSTER '{cluster}' SYNC; + +EXCHANGE TABLES default.beacon_api_eth_v1_events_voluntary_exit_local +AND tmp.beacon_api_eth_v1_events_voluntary_exit_local ON CLUSTER '{cluster}'; + +CREATE TABLE default.beacon_api_eth_v1_events_voluntary_exit ON CLUSTER '{cluster}' AS default.beacon_api_eth_v1_events_voluntary_exit_local ENGINE = Distributed( + '{cluster}', + default, + beacon_api_eth_v1_events_voluntary_exit_local, + cityHash64( + epoch_start_date_time, + meta_network_name, + meta_client_name, + validator_index + ) +); + +DROP TABLE IF EXISTS tmp.beacon_api_eth_v1_events_voluntary_exit ON CLUSTER '{cluster}' SYNC; + +DROP TABLE IF EXISTS tmp.beacon_api_eth_v1_events_voluntary_exit_local ON CLUSTER '{cluster}' SYNC; diff --git a/deploy/migrations/clickhouse/044_events_voluntary_exit_wallclock.up.sql b/deploy/migrations/clickhouse/044_events_voluntary_exit_wallclock.up.sql new file mode 100644 index 00000000..061127cf --- /dev/null +++ b/deploy/migrations/clickhouse/044_events_voluntary_exit_wallclock.up.sql @@ -0,0 +1,124 @@ +CREATE TABLE tmp.beacon_api_eth_v1_events_voluntary_exit_local ON CLUSTER '{cluster}' ( + `updated_date_time` DateTime COMMENT 'Timestamp when the record was last updated' CODEC(DoubleDelta, ZSTD(1)), + `event_date_time` DateTime64(3) COMMENT 'When the sentry received the event from a beacon node', + `epoch` UInt32 COMMENT 'The epoch number in the beacon API event stream payload', + `epoch_start_date_time` DateTime COMMENT 'The wall clock time when the epoch started', + `wallclock_slot` UInt32 COMMENT 'Slot number of the wall clock when the event was received' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_slot_start_date_time` DateTime COMMENT 'Start date and time of the wall clock slot when the event was received' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_epoch` UInt32 COMMENT 'Epoch number of the wall clock when the event was received' CODEC(DoubleDelta, ZSTD(1)), + `wallclock_epoch_start_date_time` DateTime COMMENT 'Start date and time of the wall clock epoch when the event was received' CODEC(DoubleDelta, ZSTD(1)), + `validator_index` UInt32 COMMENT 'The index of the validator making the voluntary exit', + `signature` String COMMENT 'The signature of the voluntary exit in the beacon API event stream payload', + `meta_client_name` LowCardinality(String) COMMENT 'Name of the client that generated the event', + `meta_client_id` String COMMENT 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', + `meta_client_version` LowCardinality(String) COMMENT 'Version of the client that generated the event', + `meta_client_implementation` LowCardinality(String) COMMENT 'Implementation of the client that generated the event', + `meta_client_os` LowCardinality(String) COMMENT 'Operating system of the client that generated the event', + `meta_client_ip` Nullable(IPv6) COMMENT 'IP address of the client that generated the event', + `meta_client_geo_city` LowCardinality(String) COMMENT 'City of the client that generated the event', + `meta_client_geo_country` LowCardinality(String) COMMENT 'Country of the client that generated the event', + `meta_client_geo_country_code` LowCardinality(String) COMMENT 'Country code of the client that generated the event', + `meta_client_geo_continent_code` LowCardinality(String) COMMENT 'Continent code of the client that generated the event', + `meta_client_geo_longitude` Nullable(Float64) COMMENT 'Longitude of the client that generated the event', + `meta_client_geo_latitude` Nullable(Float64) COMMENT 'Latitude of the client that generated the event', + `meta_client_geo_autonomous_system_number` Nullable(UInt32) COMMENT 'Autonomous system number of the client that generated the event', + `meta_client_geo_autonomous_system_organization` Nullable(String) COMMENT 'Autonomous system organization of the client that generated the event', + `meta_network_id` Int32 COMMENT 'Ethereum network ID', + `meta_network_name` LowCardinality(String) COMMENT 'Ethereum network name', + `meta_consensus_version` LowCardinality(String) COMMENT 'Ethereum consensus client version that generated the event', + `meta_consensus_version_major` LowCardinality(String) COMMENT 'Ethereum consensus client major version that generated the event', + `meta_consensus_version_minor` LowCardinality(String) COMMENT 'Ethereum consensus client minor version that generated the event', + `meta_consensus_version_patch` LowCardinality(String) COMMENT 'Ethereum consensus client patch version that generated the event', + `meta_consensus_implementation` LowCardinality(String) COMMENT 'Ethereum consensus client implementation that generated the event', + `meta_labels` Map(String, String) COMMENT 'Labels associated with the event' +) ENGINE = ReplicatedReplacingMergeTree( + '/clickhouse/{installation}/{cluster}/tmp/tables/{table}/{shard}', + '{replica}', + updated_date_time +) PARTITION BY toStartOfMonth(wallclock_epoch_start_date_time) +ORDER BY + ( + wallclock_epoch_start_date_time, + meta_network_name, + meta_client_name, + validator_index + ) COMMENT 'Contains beacon API eventstream "voluntary exit" data from each sentry client attached to a beacon node.'; + +CREATE TABLE tmp.beacon_api_eth_v1_events_voluntary_exit ON CLUSTER '{cluster}' AS tmp.beacon_api_eth_v1_events_voluntary_exit_local ENGINE = Distributed( + '{cluster}', + tmp, + beacon_api_eth_v1_events_voluntary_exit_local, + cityHash64( + wallclock_epoch_start_date_time, + meta_network_name, + meta_client_name, + validator_index + ) +); + +INSERT INTO + tmp.beacon_api_eth_v1_events_voluntary_exit +WITH + (CASE + WHEN meta_network_name = 'mainnet' THEN 1606824023 + WHEN meta_network_name = 'sepolia' THEN 1655733600 + WHEN meta_network_name = 'holesky' THEN 1695902400 + WHEN meta_network_name = 'dencun-msf-1' THEN 1708607100 + ELSE 0 + END) AS genesis_time +SELECT + NOW(), + event_date_time, + epoch, + toDateTime(genesis_time + (epoch * 12 * 32)) AS epoch_start_date_time, + floor((toUnixTimestamp(event_date_time) - genesis_time) / 12) AS wallclock_slot, + toDateTime(genesis_time + (floor((toUnixTimestamp(event_date_time) - genesis_time) / 12) * 12)) AS wallclock_slot_start_date_time, + floor((toUnixTimestamp(event_date_time) - genesis_time) / 12 / 32) AS wallclock_epoch, + toDateTime(genesis_time + (floor((toUnixTimestamp(event_date_time) - genesis_time) / 12 / 32) * 12 * 32)) AS wallclock_epoch_start_date_time, + validator_index, + signature, + meta_client_name, + meta_client_id, + meta_client_version, + meta_client_implementation, + meta_client_os, + meta_client_ip, + meta_client_geo_city, + meta_client_geo_country, + meta_client_geo_country_code, + meta_client_geo_continent_code, + meta_client_geo_longitude, + meta_client_geo_latitude, + meta_client_geo_autonomous_system_number, + meta_client_geo_autonomous_system_organization, + meta_network_id, + meta_network_name, + meta_consensus_version, + meta_consensus_version_major, + meta_consensus_version_minor, + meta_consensus_version_patch, + meta_consensus_implementation, + meta_labels +FROM + default.beacon_api_eth_v1_events_voluntary_exit_local; + +DROP TABLE IF EXISTS default.beacon_api_eth_v1_events_voluntary_exit ON CLUSTER '{cluster}' SYNC; + +EXCHANGE TABLES default.beacon_api_eth_v1_events_voluntary_exit_local +AND tmp.beacon_api_eth_v1_events_voluntary_exit_local ON CLUSTER '{cluster}'; + +CREATE TABLE default.beacon_api_eth_v1_events_voluntary_exit ON CLUSTER '{cluster}' AS default.beacon_api_eth_v1_events_voluntary_exit_local ENGINE = Distributed( + '{cluster}', + default, + beacon_api_eth_v1_events_voluntary_exit_local, + cityHash64( + wallclock_epoch_start_date_time, + meta_network_name, + meta_client_name, + validator_index + ) +); + +DROP TABLE IF EXISTS tmp.beacon_api_eth_v1_events_voluntary_exit ON CLUSTER '{cluster}' SYNC; + +DROP TABLE IF EXISTS tmp.beacon_api_eth_v1_events_voluntary_exit_local ON CLUSTER '{cluster}' SYNC; diff --git a/pkg/proto/blockprint/block_classification.pb.go b/pkg/proto/blockprint/block_classification.pb.go index 7dacf5a3..e6de5455 100644 --- a/pkg/proto/blockprint/block_classification.pb.go +++ b/pkg/proto/blockprint/block_classification.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/blockprint/block_classification.proto package blockprint diff --git a/pkg/proto/eth/v1/attestation.pb.go b/pkg/proto/eth/v1/attestation.pb.go index e88179b6..5d28c993 100644 --- a/pkg/proto/eth/v1/attestation.pb.go +++ b/pkg/proto/eth/v1/attestation.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/eth/v1/attestation.proto // Note: largely inspired by diff --git a/pkg/proto/eth/v1/beacon_block.pb.go b/pkg/proto/eth/v1/beacon_block.pb.go index 6bd7c4cc..65050a6a 100644 --- a/pkg/proto/eth/v1/beacon_block.pb.go +++ b/pkg/proto/eth/v1/beacon_block.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/eth/v1/beacon_block.proto // Note: largely inspired by diff --git a/pkg/proto/eth/v1/blob.pb.go b/pkg/proto/eth/v1/blob.pb.go index 4eacdc89..33246172 100644 --- a/pkg/proto/eth/v1/blob.pb.go +++ b/pkg/proto/eth/v1/blob.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/eth/v1/blob.proto package v1 diff --git a/pkg/proto/eth/v1/checkpoint.pb.go b/pkg/proto/eth/v1/checkpoint.pb.go index 8eb4e410..cd0d0b5e 100644 --- a/pkg/proto/eth/v1/checkpoint.pb.go +++ b/pkg/proto/eth/v1/checkpoint.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/eth/v1/checkpoint.proto // Note: largely inspired by diff --git a/pkg/proto/eth/v1/committee.pb.go b/pkg/proto/eth/v1/committee.pb.go index 8108585b..0ff5f97a 100644 --- a/pkg/proto/eth/v1/committee.pb.go +++ b/pkg/proto/eth/v1/committee.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/eth/v1/committee.proto // Note: largely inspired by https://github.com/prysmaticlabs/prysm/tree/develop/proto/eth/v1 diff --git a/pkg/proto/eth/v1/duties.pb.go b/pkg/proto/eth/v1/duties.pb.go index 31987514..25577fb9 100644 --- a/pkg/proto/eth/v1/duties.pb.go +++ b/pkg/proto/eth/v1/duties.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/eth/v1/duties.proto package v1 diff --git a/pkg/proto/eth/v1/events.pb.go b/pkg/proto/eth/v1/events.pb.go index 45e146e5..d08782da 100644 --- a/pkg/proto/eth/v1/events.pb.go +++ b/pkg/proto/eth/v1/events.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/eth/v1/events.proto // Note: largely inspired by diff --git a/pkg/proto/eth/v1/execution_engine.pb.go b/pkg/proto/eth/v1/execution_engine.pb.go index b0ec27c7..bb67ccec 100644 --- a/pkg/proto/eth/v1/execution_engine.pb.go +++ b/pkg/proto/eth/v1/execution_engine.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/eth/v1/execution_engine.proto // Note: largely inspired by diff --git a/pkg/proto/eth/v1/fork_choice.pb.go b/pkg/proto/eth/v1/fork_choice.pb.go index 73108ac4..4255ab44 100644 --- a/pkg/proto/eth/v1/fork_choice.pb.go +++ b/pkg/proto/eth/v1/fork_choice.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/eth/v1/fork_choice.proto // Note: largely inspired by diff --git a/pkg/proto/eth/v1/sync_committee.pb.go b/pkg/proto/eth/v1/sync_committee.pb.go index 43123452..fa21d0b0 100644 --- a/pkg/proto/eth/v1/sync_committee.pb.go +++ b/pkg/proto/eth/v1/sync_committee.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/eth/v1/sync_committee.proto // Note: largely inspired by diff --git a/pkg/proto/eth/v1/validator.pb.go b/pkg/proto/eth/v1/validator.pb.go index dd1ff97f..d3835c71 100644 --- a/pkg/proto/eth/v1/validator.pb.go +++ b/pkg/proto/eth/v1/validator.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/eth/v1/validator.proto package v1 diff --git a/pkg/proto/eth/v2/beacon_block.pb.go b/pkg/proto/eth/v2/beacon_block.pb.go index 70987c38..4e0ff87f 100644 --- a/pkg/proto/eth/v2/beacon_block.pb.go +++ b/pkg/proto/eth/v2/beacon_block.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/eth/v2/beacon_block.proto // Note: largely inspired by diff --git a/pkg/proto/eth/v2/events.pb.go b/pkg/proto/eth/v2/events.pb.go index 709a88d1..199688ea 100644 --- a/pkg/proto/eth/v2/events.pb.go +++ b/pkg/proto/eth/v2/events.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/eth/v2/events.proto package v2 diff --git a/pkg/proto/eth/v2/withdrawals.pb.go b/pkg/proto/eth/v2/withdrawals.pb.go index c934b761..e9e275f6 100644 --- a/pkg/proto/eth/v2/withdrawals.pb.go +++ b/pkg/proto/eth/v2/withdrawals.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/eth/v2/withdrawals.proto // Note: largely inspired by diff --git a/pkg/proto/libp2p/eth.pb.go b/pkg/proto/libp2p/eth.pb.go index 80d817c0..d3a9e2b8 100644 --- a/pkg/proto/libp2p/eth.pb.go +++ b/pkg/proto/libp2p/eth.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/libp2p/eth.proto package libp2p diff --git a/pkg/proto/libp2p/gossipsub/eth.pb.go b/pkg/proto/libp2p/gossipsub/eth.pb.go index 4ebdbede..00da66ae 100644 --- a/pkg/proto/libp2p/gossipsub/eth.pb.go +++ b/pkg/proto/libp2p/gossipsub/eth.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/libp2p/gossipsub/eth.proto package gossipsub diff --git a/pkg/proto/libp2p/peer.pb.go b/pkg/proto/libp2p/peer.pb.go index 5770fb45..d7b6d2ab 100644 --- a/pkg/proto/libp2p/peer.pb.go +++ b/pkg/proto/libp2p/peer.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/libp2p/peer.proto package libp2p diff --git a/pkg/proto/libp2p/trace.pb.go b/pkg/proto/libp2p/trace.pb.go index 0063ba32..85937f3e 100644 --- a/pkg/proto/libp2p/trace.pb.go +++ b/pkg/proto/libp2p/trace.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/libp2p/trace.proto package libp2p diff --git a/pkg/proto/xatu/coordinator.pb.go b/pkg/proto/xatu/coordinator.pb.go index 1d65b083..7613ec87 100644 --- a/pkg/proto/xatu/coordinator.pb.go +++ b/pkg/proto/xatu/coordinator.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/xatu/coordinator.proto package xatu diff --git a/pkg/proto/xatu/coordinator_grpc.pb.go b/pkg/proto/xatu/coordinator_grpc.pb.go index 2bfbdc1d..13b819c2 100644 --- a/pkg/proto/xatu/coordinator_grpc.pb.go +++ b/pkg/proto/xatu/coordinator_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v4.24.2 +// - protoc v5.27.2 // source: pkg/proto/xatu/coordinator.proto package xatu diff --git a/pkg/proto/xatu/event_ingester.pb.go b/pkg/proto/xatu/event_ingester.pb.go index bdfa78d4..07ff6229 100644 --- a/pkg/proto/xatu/event_ingester.pb.go +++ b/pkg/proto/xatu/event_ingester.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.24.2 +// protoc-gen-go v1.32.0 +// protoc v5.27.2 // source: pkg/proto/xatu/event_ingester.proto package xatu @@ -3768,6 +3768,10 @@ type ClientMeta_AdditionalEthV1EventsVoluntaryExitV2Data struct { // Epoch contains the epoch information for the voluntary exit. Epoch *EpochV2 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"` + // WallclockEpoch contains the epoch information for the voluntary exit in the wall clock time. + WallclockEpoch *EpochV2 `protobuf:"bytes,2,opt,name=wallclock_epoch,proto3" json:"wallclock_epoch,omitempty"` + // WallclockSlot contains the slot information for the voluntary exit in the wall clock time. + WallclockSlot *SlotV2 `protobuf:"bytes,3,opt,name=wallclock_slot,proto3" json:"wallclock_slot,omitempty"` } func (x *ClientMeta_AdditionalEthV1EventsVoluntaryExitV2Data) Reset() { @@ -3809,6 +3813,20 @@ func (x *ClientMeta_AdditionalEthV1EventsVoluntaryExitV2Data) GetEpoch() *EpochV return nil } +func (x *ClientMeta_AdditionalEthV1EventsVoluntaryExitV2Data) GetWallclockEpoch() *EpochV2 { + if x != nil { + return x.WallclockEpoch + } + return nil +} + +func (x *ClientMeta_AdditionalEthV1EventsVoluntaryExitV2Data) GetWallclockSlot() *SlotV2 { + if x != nil { + return x.WallclockSlot + } + return nil +} + type ClientMeta_AdditionalEthV1EventsFinalizedCheckpointData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -7957,7 +7975,7 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x74, 0x22, - 0xff, 0x9b, 0x01, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, + 0xef, 0x9c, 0x01, 0x0a, 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, @@ -8537,12 +8555,19 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, - 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x4f, 0x0a, 0x28, 0x41, - 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, 0x69, - 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, - 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0x51, 0x0a, 0x2c, + 0x70, 0x6f, 0x63, 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x1a, 0xbe, 0x01, 0x0a, 0x28, + 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6e, 0x74, 0x61, 0x72, 0x79, 0x45, 0x78, + 0x69, 0x74, 0x56, 0x32, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, + 0x70, 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x37, 0x0a, + 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x56, 0x32, 0x52, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x34, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x53, 0x6c, 0x6f, 0x74, 0x56, 0x32, 0x52, 0x0e, 0x77, 0x61, + 0x6c, 0x6c, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x1a, 0x51, 0x0a, 0x2c, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x45, 0x74, 0x68, 0x56, 0x31, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x05, @@ -10106,149 +10131,151 @@ var file_pkg_proto_xatu_event_ingester_proto_depIdxs = []int32{ 9, // 160: xatu.ClientMeta.AdditionalEthV1EventsBlockV2Data.propagation:type_name -> xatu.PropagationV2 3, // 161: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitData.epoch:type_name -> xatu.Epoch 4, // 162: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.epoch:type_name -> xatu.EpochV2 - 3, // 163: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData.epoch:type_name -> xatu.Epoch - 4, // 164: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointV2Data.epoch:type_name -> xatu.EpochV2 - 3, // 165: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.epoch:type_name -> xatu.Epoch - 5, // 166: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.slot:type_name -> xatu.Slot - 8, // 167: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.propagation:type_name -> xatu.Propagation - 4, // 168: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.epoch:type_name -> xatu.EpochV2 - 6, // 169: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.slot:type_name -> xatu.SlotV2 - 9, // 170: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.propagation:type_name -> xatu.PropagationV2 - 3, // 171: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.epoch:type_name -> xatu.Epoch - 5, // 172: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.slot:type_name -> xatu.Slot - 8, // 173: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.propagation:type_name -> xatu.Propagation - 4, // 174: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.epoch:type_name -> xatu.EpochV2 - 6, // 175: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.slot:type_name -> xatu.SlotV2 - 9, // 176: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.propagation:type_name -> xatu.PropagationV2 - 39, // 177: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData - 40, // 178: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofV2Data.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data - 3, // 179: xatu.ClientMeta.ForkChoiceSnapshot.request_epoch:type_name -> xatu.Epoch - 5, // 180: xatu.ClientMeta.ForkChoiceSnapshot.request_slot:type_name -> xatu.Slot - 94, // 181: xatu.ClientMeta.ForkChoiceSnapshot.timestamp:type_name -> google.protobuf.Timestamp - 4, // 182: xatu.ClientMeta.ForkChoiceSnapshotV2.request_epoch:type_name -> xatu.EpochV2 - 6, // 183: xatu.ClientMeta.ForkChoiceSnapshotV2.request_slot:type_name -> xatu.SlotV2 - 95, // 184: xatu.ClientMeta.ForkChoiceSnapshotV2.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value - 95, // 185: xatu.ClientMeta.ForkChoiceSnapshotV2.request_duration_ms:type_name -> google.protobuf.UInt64Value - 94, // 186: xatu.ClientMeta.ForkChoiceSnapshotV2.timestamp:type_name -> google.protobuf.Timestamp - 43, // 187: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 44, // 188: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceV2Data.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 - 43, // 189: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 43, // 190: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshot - 44, // 191: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 - 44, // 192: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 - 4, // 193: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.epoch:type_name -> xatu.EpochV2 - 6, // 194: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.slot:type_name -> xatu.SlotV2 - 95, // 195: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.nonce:type_name -> google.protobuf.UInt64Value - 95, // 196: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.gas:type_name -> google.protobuf.UInt64Value - 140, // 197: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.type:type_name -> google.protobuf.UInt32Value - 95, // 198: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.blob_gas:type_name -> google.protobuf.UInt64Value - 3, // 199: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.epoch:type_name -> xatu.Epoch - 5, // 200: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.slot:type_name -> xatu.Slot - 4, // 201: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.epoch:type_name -> xatu.EpochV2 - 6, // 202: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.slot:type_name -> xatu.SlotV2 - 95, // 203: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_count:type_name -> google.protobuf.UInt64Value - 95, // 204: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes:type_name -> google.protobuf.UInt64Value - 95, // 205: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 95, // 206: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes:type_name -> google.protobuf.UInt64Value - 95, // 207: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes_compressed:type_name -> google.protobuf.UInt64Value - 15, // 208: xatu.ClientMeta.AdditionalEthV2BeaconBlockAttesterSlashingData.block:type_name -> xatu.BlockIdentifier - 15, // 209: xatu.ClientMeta.AdditionalEthV2BeaconBlockProposerSlashingData.block:type_name -> xatu.BlockIdentifier - 15, // 210: xatu.ClientMeta.AdditionalEthV2BeaconBlockVoluntaryExitData.block:type_name -> xatu.BlockIdentifier - 15, // 211: xatu.ClientMeta.AdditionalEthV2BeaconBlockDepositData.block:type_name -> xatu.BlockIdentifier - 15, // 212: xatu.ClientMeta.AdditionalEthV2BeaconBlockBLSToExecutionChangeData.block:type_name -> xatu.BlockIdentifier - 15, // 213: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.block:type_name -> xatu.BlockIdentifier - 95, // 214: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.position_in_block:type_name -> google.protobuf.UInt64Value - 15, // 215: xatu.ClientMeta.AdditionalEthV2BeaconBlockWithdrawalData.block:type_name -> xatu.BlockIdentifier - 4, // 216: xatu.ClientMeta.AdditionalBlockprintBlockClassificationData.epoch:type_name -> xatu.EpochV2 - 6, // 217: xatu.ClientMeta.AdditionalBlockprintBlockClassificationData.slot:type_name -> xatu.SlotV2 - 95, // 218: xatu.ClientMeta.AttestationDataSnapshot.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value - 95, // 219: xatu.ClientMeta.AttestationDataSnapshot.request_duration_ms:type_name -> google.protobuf.UInt64Value - 94, // 220: xatu.ClientMeta.AttestationDataSnapshot.timestamp:type_name -> google.protobuf.Timestamp - 24, // 221: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 26, // 222: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 4, // 223: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.epoch:type_name -> xatu.EpochV2 - 6, // 224: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.slot:type_name -> xatu.SlotV2 - 62, // 225: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.Snapshot:type_name -> xatu.ClientMeta.AttestationDataSnapshot - 4, // 226: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 6, // 227: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.slot:type_name -> xatu.SlotV2 - 9, // 228: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.propagation:type_name -> xatu.PropagationV2 - 4, // 229: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 6, // 230: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.slot:type_name -> xatu.SlotV2 - 95, // 231: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_size:type_name -> google.protobuf.UInt64Value - 95, // 232: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_empty_size:type_name -> google.protobuf.UInt64Value - 24, // 233: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 26, // 234: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 6, // 235: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.slot:type_name -> xatu.SlotV2 - 4, // 236: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.epoch:type_name -> xatu.EpochV2 - 9, // 237: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.propagation:type_name -> xatu.PropagationV2 - 11, // 238: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 - 141, // 239: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.libp2p.Peer - 140, // 240: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.subnet:type_name -> google.protobuf.UInt32Value - 142, // 241: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.validated:type_name -> google.protobuf.BoolValue - 4, // 242: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.epoch:type_name -> xatu.EpochV2 - 6, // 243: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.slot:type_name -> xatu.SlotV2 - 15, // 244: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.block:type_name -> xatu.BlockIdentifier - 95, // 245: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.position_in_block:type_name -> google.protobuf.UInt64Value - 4, // 246: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.epoch:type_name -> xatu.EpochV2 - 6, // 247: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.slot:type_name -> xatu.SlotV2 - 24, // 248: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data - 26, // 249: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data - 143, // 250: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 143, // 251: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 143, // 252: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 143, // 253: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 143, // 254: xatu.ClientMeta.AdditionalLibP2PTraceJoinData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 143, // 255: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 143, // 256: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 143, // 257: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 143, // 258: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 4, // 259: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.epoch:type_name -> xatu.EpochV2 - 6, // 260: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.slot:type_name -> xatu.SlotV2 - 4, // 261: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_epoch:type_name -> xatu.EpochV2 - 6, // 262: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_slot:type_name -> xatu.SlotV2 - 9, // 263: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.propagation:type_name -> xatu.PropagationV2 - 143, // 264: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 144, // 265: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.topic:type_name -> google.protobuf.StringValue - 140, // 266: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_size:type_name -> google.protobuf.UInt32Value - 144, // 267: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_id:type_name -> google.protobuf.StringValue - 4, // 268: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData.epoch:type_name -> xatu.EpochV2 - 4, // 269: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData.epoch:type_name -> xatu.EpochV2 - 79, // 270: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.source:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData - 80, // 271: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.target:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData - 6, // 272: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.slot:type_name -> xatu.SlotV2 - 4, // 273: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.epoch:type_name -> xatu.EpochV2 - 9, // 274: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.propagation:type_name -> xatu.PropagationV2 - 11, // 275: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 - 4, // 276: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_epoch:type_name -> xatu.EpochV2 - 6, // 277: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_slot:type_name -> xatu.SlotV2 - 143, // 278: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 144, // 279: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.topic:type_name -> google.protobuf.StringValue - 140, // 280: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_size:type_name -> google.protobuf.UInt32Value - 144, // 281: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_id:type_name -> google.protobuf.StringValue - 4, // 282: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.epoch:type_name -> xatu.EpochV2 - 6, // 283: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.slot:type_name -> xatu.SlotV2 - 4, // 284: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 - 6, // 285: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_slot:type_name -> xatu.SlotV2 - 9, // 286: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.propagation:type_name -> xatu.PropagationV2 - 143, // 287: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata - 144, // 288: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.topic:type_name -> google.protobuf.StringValue - 140, // 289: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_size:type_name -> google.protobuf.UInt32Value - 144, // 290: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_id:type_name -> google.protobuf.StringValue - 4, // 291: xatu.ClientMeta.AdditionalEthV1ValidatorsData.epoch:type_name -> xatu.EpochV2 - 7, // 292: xatu.ClientMeta.Ethereum.Execution.fork_id:type_name -> xatu.ForkID - 94, // 293: xatu.ServerMeta.Event.received_date_time:type_name -> google.protobuf.Timestamp - 88, // 294: xatu.ServerMeta.Client.geo:type_name -> xatu.ServerMeta.Geo - 88, // 295: xatu.ServerMeta.Peer.geo:type_name -> xatu.ServerMeta.Geo - 90, // 296: xatu.ServerMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.ServerMeta.Peer - 90, // 297: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData.peer:type_name -> xatu.ServerMeta.Peer - 90, // 298: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData.peer:type_name -> xatu.ServerMeta.Peer - 1, // 299: xatu.EventIngester.CreateEvents:input_type -> xatu.CreateEventsRequest - 2, // 300: xatu.EventIngester.CreateEvents:output_type -> xatu.CreateEventsResponse - 300, // [300:301] is the sub-list for method output_type - 299, // [299:300] is the sub-list for method input_type - 299, // [299:299] is the sub-list for extension type_name - 299, // [299:299] is the sub-list for extension extendee - 0, // [0:299] is the sub-list for field type_name + 4, // 163: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_epoch:type_name -> xatu.EpochV2 + 6, // 164: xatu.ClientMeta.AdditionalEthV1EventsVoluntaryExitV2Data.wallclock_slot:type_name -> xatu.SlotV2 + 3, // 165: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointData.epoch:type_name -> xatu.Epoch + 4, // 166: xatu.ClientMeta.AdditionalEthV1EventsFinalizedCheckpointV2Data.epoch:type_name -> xatu.EpochV2 + 3, // 167: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.epoch:type_name -> xatu.Epoch + 5, // 168: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.slot:type_name -> xatu.Slot + 8, // 169: xatu.ClientMeta.AdditionalEthV1EventsChainReorgData.propagation:type_name -> xatu.Propagation + 4, // 170: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.epoch:type_name -> xatu.EpochV2 + 6, // 171: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.slot:type_name -> xatu.SlotV2 + 9, // 172: xatu.ClientMeta.AdditionalEthV1EventsChainReorgV2Data.propagation:type_name -> xatu.PropagationV2 + 3, // 173: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.epoch:type_name -> xatu.Epoch + 5, // 174: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.slot:type_name -> xatu.Slot + 8, // 175: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData.propagation:type_name -> xatu.Propagation + 4, // 176: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.epoch:type_name -> xatu.EpochV2 + 6, // 177: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.slot:type_name -> xatu.SlotV2 + 9, // 178: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data.propagation:type_name -> xatu.PropagationV2 + 39, // 179: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofData.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionData + 40, // 180: xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofV2Data.contribution:type_name -> xatu.ClientMeta.AdditionalEthV1EventsContributionAndProofContributionV2Data + 3, // 181: xatu.ClientMeta.ForkChoiceSnapshot.request_epoch:type_name -> xatu.Epoch + 5, // 182: xatu.ClientMeta.ForkChoiceSnapshot.request_slot:type_name -> xatu.Slot + 94, // 183: xatu.ClientMeta.ForkChoiceSnapshot.timestamp:type_name -> google.protobuf.Timestamp + 4, // 184: xatu.ClientMeta.ForkChoiceSnapshotV2.request_epoch:type_name -> xatu.EpochV2 + 6, // 185: xatu.ClientMeta.ForkChoiceSnapshotV2.request_slot:type_name -> xatu.SlotV2 + 95, // 186: xatu.ClientMeta.ForkChoiceSnapshotV2.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value + 95, // 187: xatu.ClientMeta.ForkChoiceSnapshotV2.request_duration_ms:type_name -> google.protobuf.UInt64Value + 94, // 188: xatu.ClientMeta.ForkChoiceSnapshotV2.timestamp:type_name -> google.protobuf.Timestamp + 43, // 189: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceData.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 44, // 190: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceV2Data.Snapshot:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 + 43, // 191: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 43, // 192: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgData.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshot + 44, // 193: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.before:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 + 44, // 194: xatu.ClientMeta.AdditionalEthV1DebugForkChoiceReOrgV2Data.after:type_name -> xatu.ClientMeta.ForkChoiceSnapshotV2 + 4, // 195: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.epoch:type_name -> xatu.EpochV2 + 6, // 196: xatu.ClientMeta.AdditionalEthV1BeaconCommitteeData.slot:type_name -> xatu.SlotV2 + 95, // 197: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.nonce:type_name -> google.protobuf.UInt64Value + 95, // 198: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.gas:type_name -> google.protobuf.UInt64Value + 140, // 199: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.type:type_name -> google.protobuf.UInt32Value + 95, // 200: xatu.ClientMeta.AdditionalMempoolTransactionV2Data.blob_gas:type_name -> google.protobuf.UInt64Value + 3, // 201: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.epoch:type_name -> xatu.Epoch + 5, // 202: xatu.ClientMeta.AdditionalEthV2BeaconBlockData.slot:type_name -> xatu.Slot + 4, // 203: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.epoch:type_name -> xatu.EpochV2 + 6, // 204: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.slot:type_name -> xatu.SlotV2 + 95, // 205: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_count:type_name -> google.protobuf.UInt64Value + 95, // 206: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes:type_name -> google.protobuf.UInt64Value + 95, // 207: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.transactions_total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 95, // 208: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes:type_name -> google.protobuf.UInt64Value + 95, // 209: xatu.ClientMeta.AdditionalEthV2BeaconBlockV2Data.total_bytes_compressed:type_name -> google.protobuf.UInt64Value + 15, // 210: xatu.ClientMeta.AdditionalEthV2BeaconBlockAttesterSlashingData.block:type_name -> xatu.BlockIdentifier + 15, // 211: xatu.ClientMeta.AdditionalEthV2BeaconBlockProposerSlashingData.block:type_name -> xatu.BlockIdentifier + 15, // 212: xatu.ClientMeta.AdditionalEthV2BeaconBlockVoluntaryExitData.block:type_name -> xatu.BlockIdentifier + 15, // 213: xatu.ClientMeta.AdditionalEthV2BeaconBlockDepositData.block:type_name -> xatu.BlockIdentifier + 15, // 214: xatu.ClientMeta.AdditionalEthV2BeaconBlockBLSToExecutionChangeData.block:type_name -> xatu.BlockIdentifier + 15, // 215: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.block:type_name -> xatu.BlockIdentifier + 95, // 216: xatu.ClientMeta.AdditionalEthV2BeaconBlockExecutionTransactionData.position_in_block:type_name -> google.protobuf.UInt64Value + 15, // 217: xatu.ClientMeta.AdditionalEthV2BeaconBlockWithdrawalData.block:type_name -> xatu.BlockIdentifier + 4, // 218: xatu.ClientMeta.AdditionalBlockprintBlockClassificationData.epoch:type_name -> xatu.EpochV2 + 6, // 219: xatu.ClientMeta.AdditionalBlockprintBlockClassificationData.slot:type_name -> xatu.SlotV2 + 95, // 220: xatu.ClientMeta.AttestationDataSnapshot.requested_at_slot_start_diff_ms:type_name -> google.protobuf.UInt64Value + 95, // 221: xatu.ClientMeta.AttestationDataSnapshot.request_duration_ms:type_name -> google.protobuf.UInt64Value + 94, // 222: xatu.ClientMeta.AttestationDataSnapshot.timestamp:type_name -> google.protobuf.Timestamp + 24, // 223: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 26, // 224: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 4, // 225: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.epoch:type_name -> xatu.EpochV2 + 6, // 226: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.slot:type_name -> xatu.SlotV2 + 62, // 227: xatu.ClientMeta.AdditionalEthV1ValidatorAttestationDataData.Snapshot:type_name -> xatu.ClientMeta.AttestationDataSnapshot + 4, // 228: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 6, // 229: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.slot:type_name -> xatu.SlotV2 + 9, // 230: xatu.ClientMeta.AdditionalEthV1EventsBlobSidecarData.propagation:type_name -> xatu.PropagationV2 + 4, // 231: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 6, // 232: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.slot:type_name -> xatu.SlotV2 + 95, // 233: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_size:type_name -> google.protobuf.UInt64Value + 95, // 234: xatu.ClientMeta.AdditionalEthV1BeaconBlobSidecarData.data_empty_size:type_name -> google.protobuf.UInt64Value + 24, // 235: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 26, // 236: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 6, // 237: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.slot:type_name -> xatu.SlotV2 + 4, // 238: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.epoch:type_name -> xatu.EpochV2 + 9, // 239: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.propagation:type_name -> xatu.PropagationV2 + 11, // 240: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 + 141, // 241: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.libp2p.Peer + 140, // 242: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.subnet:type_name -> google.protobuf.UInt32Value + 142, // 243: xatu.ClientMeta.AdditionalBeaconP2PAttestationData.validated:type_name -> google.protobuf.BoolValue + 4, // 244: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.epoch:type_name -> xatu.EpochV2 + 6, // 245: xatu.ClientMeta.AdditionalEthV1ProposerDutyData.slot:type_name -> xatu.SlotV2 + 15, // 246: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.block:type_name -> xatu.BlockIdentifier + 95, // 247: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.position_in_block:type_name -> google.protobuf.UInt64Value + 4, // 248: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.epoch:type_name -> xatu.EpochV2 + 6, // 249: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.slot:type_name -> xatu.SlotV2 + 24, // 250: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.source:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationSourceV2Data + 26, // 251: xatu.ClientMeta.AdditionalEthV2BeaconBlockElaboratedAttestationData.target:type_name -> xatu.ClientMeta.AdditionalEthV1AttestationTargetV2Data + 143, // 252: xatu.ClientMeta.AdditionalLibP2PTraceAddPeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 143, // 253: xatu.ClientMeta.AdditionalLibP2PTraceRemovePeerData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 143, // 254: xatu.ClientMeta.AdditionalLibP2PTraceRecvRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 143, // 255: xatu.ClientMeta.AdditionalLibP2PTraceSendRPCData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 143, // 256: xatu.ClientMeta.AdditionalLibP2PTraceJoinData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 143, // 257: xatu.ClientMeta.AdditionalLibP2PTraceConnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 143, // 258: xatu.ClientMeta.AdditionalLibP2PTraceDisconnectedData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 143, // 259: xatu.ClientMeta.AdditionalLibP2PTraceHandleMetadataData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 143, // 260: xatu.ClientMeta.AdditionalLibP2PTraceHandleStatusData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 4, // 261: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.epoch:type_name -> xatu.EpochV2 + 6, // 262: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.slot:type_name -> xatu.SlotV2 + 4, // 263: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_epoch:type_name -> xatu.EpochV2 + 6, // 264: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.wallclock_slot:type_name -> xatu.SlotV2 + 9, // 265: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.propagation:type_name -> xatu.PropagationV2 + 143, // 266: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 144, // 267: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.topic:type_name -> google.protobuf.StringValue + 140, // 268: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_size:type_name -> google.protobuf.UInt32Value + 144, // 269: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconBlockData.message_id:type_name -> google.protobuf.StringValue + 4, // 270: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData.epoch:type_name -> xatu.EpochV2 + 4, // 271: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData.epoch:type_name -> xatu.EpochV2 + 79, // 272: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.source:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationSourceData + 80, // 273: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.target:type_name -> xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationTargetData + 6, // 274: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.slot:type_name -> xatu.SlotV2 + 4, // 275: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.epoch:type_name -> xatu.EpochV2 + 9, // 276: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.propagation:type_name -> xatu.PropagationV2 + 11, // 277: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.attesting_validator:type_name -> xatu.AttestingValidatorV2 + 4, // 278: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_epoch:type_name -> xatu.EpochV2 + 6, // 279: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.wallclock_slot:type_name -> xatu.SlotV2 + 143, // 280: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 144, // 281: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.topic:type_name -> google.protobuf.StringValue + 140, // 282: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_size:type_name -> google.protobuf.UInt32Value + 144, // 283: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBeaconAttestationData.message_id:type_name -> google.protobuf.StringValue + 4, // 284: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.epoch:type_name -> xatu.EpochV2 + 6, // 285: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.slot:type_name -> xatu.SlotV2 + 4, // 286: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_epoch:type_name -> xatu.EpochV2 + 6, // 287: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.wallclock_slot:type_name -> xatu.SlotV2 + 9, // 288: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.propagation:type_name -> xatu.PropagationV2 + 143, // 289: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.metadata:type_name -> xatu.libp2p.TraceEventMetadata + 144, // 290: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.topic:type_name -> google.protobuf.StringValue + 140, // 291: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_size:type_name -> google.protobuf.UInt32Value + 144, // 292: xatu.ClientMeta.AdditionalLibP2PTraceGossipSubBlobSidecarData.message_id:type_name -> google.protobuf.StringValue + 4, // 293: xatu.ClientMeta.AdditionalEthV1ValidatorsData.epoch:type_name -> xatu.EpochV2 + 7, // 294: xatu.ClientMeta.Ethereum.Execution.fork_id:type_name -> xatu.ForkID + 94, // 295: xatu.ServerMeta.Event.received_date_time:type_name -> google.protobuf.Timestamp + 88, // 296: xatu.ServerMeta.Client.geo:type_name -> xatu.ServerMeta.Geo + 88, // 297: xatu.ServerMeta.Peer.geo:type_name -> xatu.ServerMeta.Geo + 90, // 298: xatu.ServerMeta.AdditionalBeaconP2PAttestationData.peer:type_name -> xatu.ServerMeta.Peer + 90, // 299: xatu.ServerMeta.AdditionalLibp2PTraceConnectedData.peer:type_name -> xatu.ServerMeta.Peer + 90, // 300: xatu.ServerMeta.AdditionalLibp2PTraceDisconnectedData.peer:type_name -> xatu.ServerMeta.Peer + 1, // 301: xatu.EventIngester.CreateEvents:input_type -> xatu.CreateEventsRequest + 2, // 302: xatu.EventIngester.CreateEvents:output_type -> xatu.CreateEventsResponse + 302, // [302:303] is the sub-list for method output_type + 301, // [301:302] is the sub-list for method input_type + 301, // [301:301] is the sub-list for extension type_name + 301, // [301:301] is the sub-list for extension extendee + 0, // [0:301] is the sub-list for field type_name } func init() { file_pkg_proto_xatu_event_ingester_proto_init() } diff --git a/pkg/proto/xatu/event_ingester.proto b/pkg/proto/xatu/event_ingester.proto index 65d64f4f..ed5d5623 100644 --- a/pkg/proto/xatu/event_ingester.proto +++ b/pkg/proto/xatu/event_ingester.proto @@ -294,6 +294,12 @@ message ClientMeta { message AdditionalEthV1EventsVoluntaryExitV2Data { // Epoch contains the epoch information for the voluntary exit. EpochV2 epoch = 1; + + // WallclockEpoch contains the epoch information for the voluntary exit in the wall clock time. + EpochV2 wallclock_epoch = 2 [ json_name = "wallclock_epoch" ]; + + // WallclockSlot contains the slot information for the voluntary exit in the wall clock time. + SlotV2 wallclock_slot = 3 [ json_name = "wallclock_slot" ]; } message AdditionalEthV1EventsFinalizedCheckpointData { diff --git a/pkg/proto/xatu/event_ingester_grpc.pb.go b/pkg/proto/xatu/event_ingester_grpc.pb.go index 5b52401f..d6fc7fd4 100644 --- a/pkg/proto/xatu/event_ingester_grpc.pb.go +++ b/pkg/proto/xatu/event_ingester_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v4.24.2 +// - protoc v5.27.2 // source: pkg/proto/xatu/event_ingester.proto package xatu diff --git a/pkg/sentry/event/beacon/eth/v1/events_voluntary_exit.go b/pkg/sentry/event/beacon/eth/v1/events_voluntary_exit.go index 4b282042..ac8ac278 100644 --- a/pkg/sentry/event/beacon/eth/v1/events_voluntary_exit.go +++ b/pkg/sentry/event/beacon/eth/v1/events_voluntary_exit.go @@ -101,7 +101,6 @@ func (e *EventsVoluntaryExit) ShouldIgnore(ctx context.Context) (bool, error) { func (e *EventsVoluntaryExit) getAdditionalData(_ context.Context) (*xatu.ClientMeta_AdditionalEthV1EventsVoluntaryExitV2Data, error) { extra := &xatu.ClientMeta_AdditionalEthV1EventsVoluntaryExitV2Data{} - epoch := e.beacon.Metadata().Wallclock().Epochs().FromNumber(uint64(e.event.Message.Epoch)) extra.Epoch = &xatu.EpochV2{ @@ -109,5 +108,20 @@ func (e *EventsVoluntaryExit) getAdditionalData(_ context.Context) (*xatu.Client StartDateTime: timestamppb.New(epoch.TimeWindow().Start()), } + wallclockSlot, wallclockEpoch, err := e.beacon.Metadata().Wallclock().Now() + if err != nil { + return nil, fmt.Errorf("failed to get wallclock time: %w", err) + } + + extra.WallclockSlot = &xatu.SlotV2{ + Number: &wrapperspb.UInt64Value{Value: wallclockSlot.Number()}, + StartDateTime: timestamppb.New(wallclockSlot.TimeWindow().Start()), + } + + extra.WallclockEpoch = &xatu.EpochV2{ + Number: &wrapperspb.UInt64Value{Value: wallclockEpoch.Number()}, + StartDateTime: timestamppb.New(wallclockEpoch.TimeWindow().Start()), + } + return extra, nil }