diff --git a/Dockerfile b/Dockerfile index 8074043f..69bb2c34 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ WORKDIR /src COPY go.sum go.mod ./ RUN go mod download COPY . . -RUN CGO_ENABLED=0 go build -o /bin/app . +RUN go build -o /bin/app . FROM ubuntu:latest RUN apt-get update && apt-get -y upgrade && apt-get install -y --no-install-recommends \ diff --git a/deploy/local/docker-compose/vector-kafka-clickhouse.yaml b/deploy/local/docker-compose/vector-kafka-clickhouse.yaml index 3783edc6..5528e956 100644 --- a/deploy/local/docker-compose/vector-kafka-clickhouse.yaml +++ b/deploy/local/docker-compose/vector-kafka-clickhouse.yaml @@ -1,7 +1,7 @@ api: enabled: true address: 0.0.0.0:8686 - playground: false + playground: true acknowledgements: enabled: true sources: @@ -109,6 +109,18 @@ sources: - "^beacon-api-eth-v1-proposer-.+" librdkafka_options: message.max.bytes: "10485760" # 10MB + libp2p_trace_kafka: + type: kafka + bootstrap_servers: "${KAFKA_BROKERS}" + group_id: xatu-vector-kafka-clickhouse-libp2p-trace + key_field: "event.id" + decoding: + codec: json + topics: + - "libp2p-trace-connected" + auto_offset_reset: earliest + librdkafka_options: + message.max.bytes: "10485760" # 10MB transforms: xatu_server_events_meta: type: remap @@ -122,6 +134,7 @@ transforms: - beacon_api_eth_v1_beacon_blob_sidecar_kafka - beacon_p2p_events_kafka - beacon_api_eth_v1_proposer_kafka + - libp2p_trace_kafka source: |- .meta_client_name = .meta.client.name .meta_client_id = .meta.client.id @@ -337,6 +350,24 @@ transforms: eth_v2_beacon_block: .event.name == "BEACON_API_ETH_V2_BEACON_BLOCK" mempool_transaction_v2: .event.name == "MEMPOOL_TRANSACTION_V2" mempool_transaction: .event.name == "MEMPOOL_TRANSACTION" + libp2p_trace_connected: .event.name == "LIBP2P_TRACE_CONNECTED" + # libp2p_trace_disconnected: .event.name == "LIBP2P_TRACE_DISCONNECTED" + # libp2p_trace_add_peer: .event.name == "LIBP2P_TRACE_ADD_PEER" + # libp2p_trace_remove_peer: .event.name == "LIBP2P_TRACE_REMOVE_PEER" + # libp2p_trace_publish_message: .event.name == "LIBP2P_TRACE_PUBLISH_MESSAGE" + # libp2p_trace_reject_message: .event.name == "LIBP2P_TRACE_REJECT_MESSAGE" + # libp2p_trace_duplicate_message: .event.name == "LIBP2P_TRACE_DUPLICATE_MESSAGE" + # libp2p_trace_deliver_message: .event.name == "LIBP2P_TRACE_DELIVER_MESSAGE" + # libp2p_trace_recv_rpc: .event.name == "LIBP2P_TRACE_RECV_RPC" + # libp2p_trace_send_rpc: .event.name == "LIBP2P_TRACE_SEND_RPC" + # libp2p_trace_drop_rpc: .event.name == "LIBP2P_TRACE_DROP_RPC" + # libp2p_trace_join: .event.name == "LIBP2P_TRACE_JOIN" + # libp2p_trace_leave: .event.name == "LIBP2P_TRACE_LEAVE" + # libp2p_trace_graft: .event.name == "LIBP2P_TRACE_GRAFT" + # libp2p_trace_prune: .event.name == "LIBP2P_TRACE_PRUNE" + # libp2p_trace_validate_message: .event.name == "LIBP2P_TRACE_VALIDATE_MESSAGE" + # libp2p_trace_throttle_peer: .event.name == "LIBP2P_TRACE_THROTTLE_PEER" + # libp2p_trace_undeliverable_message: .event.name == "LIBP2P_TRACE_UNDELIVERABLE_MESSAGE" xatu_server_events_router_matched: type: log_to_metric inputs: @@ -375,6 +406,24 @@ transforms: - xatu_server_events_router.eth_v2_beacon_block_v2 - xatu_server_events_router.mempool_transaction - xatu_server_events_router.mempool_transaction_v2 + - xatu_server_events_router.libp2p_trace_connected + # - xatu_server_events_router.libp2p_trace_disconnected + # - xatu_server_events_router.libp2p_trace_add_peer + # - xatu_server_events_router.libp2p_trace_remove_peer + # - xatu_server_events_router.libp2p_trace_publish_message + # - xatu_server_events_router.libp2p_trace_reject_message + # - xatu_server_events_router.libp2p_trace_duplicate_message + # - xatu_server_events_router.libp2p_trace_deliver_message + # - xatu_server_events_router.libp2p_trace_recv_rpc + # - xatu_server_events_router.libp2p_trace_send_rpc + # - xatu_server_events_router.libp2p_trace_drop_rpc + # - xatu_server_events_router.libp2p_trace_join + # - xatu_server_events_router.libp2p_trace_leave + # - xatu_server_events_router.libp2p_trace_graft + # - xatu_server_events_router.libp2p_trace_prune + # - xatu_server_events_router.libp2p_trace_validate_message + # - xatu_server_events_router.libp2p_trace_throttle_peer + # - xatu_server_events_router.libp2p_trace_undeliverable_message metrics: - type: counter field: event.name @@ -1732,7 +1781,77 @@ transforms: del(.event) del(.meta) del(.data) - + libp2p_trace_connected_formatted: + type: remap + inputs: + - xatu_server_events_router.libp2p_trace_connected + source: |- + event_date_time, err = parse_timestamp(.event.date_time, format: "%+"); + if err == null { + .event_date_time = to_unix_timestamp(event_date_time, unit: "milliseconds") + } else { + .error = err + .error_description = "failed to parse event date time" + } + session_start_date_time, err = parse_timestamp(.meta.client.additional_data.metadata.session_start_date_time, format: "%+"); + if err == null { + .session_start_date_time = to_unix_timestamp(session_start_date_time, unit: "seconds") + } else { + .error = err + .error_description = "failed to parse session start date time" + } + .remote_peer = .data.remote_peer + .remote_maddrs = .data.remote_maddrs + .agent_version = .data.agent_version + .direction = .data.direction + opened, err = parse_timestamp(.data.opened, format: "%+") + if err == null { + .opened = to_unix_timestamp(opened, unit: "milliseconds") + } else { + .error = err + .error_description = "failed to parse opened" + } + .transient = .data.transient + key, err = .event.date_time + .remote_peer + .meta.client.name + if err != null { + .error = err + .error_description = "failed to generate unique key" + } + .unique_key = seahash(key) + .updated_date_time = to_unix_timestamp(now()) + del(.event) + del(.meta) + del(.data) + # libp2p_trace_disconnected_formatted: + # type: remap + # inputs: + # - xatu_server_events_router.libp2p_trace_disconnected + # source: |- + # event_date_time, err = parse_timestamp(.event.date_time, format: "%+"); + # if err == null { + # .event_date_time = to_unix_timestamp(event_date_time, unit: "milliseconds") + # } else { + # .error = err + # .error_description = "failed to parse event date time" + # log(., level: "error", rate_limit_secs: 60) + # } + # .session_start_date_time = to_unix_timestamp(.meta.trace.session_start_date_time) + # .remote_peer = .data.remote_peer + # .remote_maddrs = .data.remote_maddrs + # .agent_version = .data.agent_version + # .direction = .data.direction + # .opened = to_unix_timestamp(.data.opened) + # .transient = .data.transient + # key, err = .event_date_time + .remote_peer + .meta.client.name + # if err != null { + # .error = err + # .error_description = "failed to generate unique key" + # } + # .unique_key = seahash(key) + # .updated_date_time = to_unix_timestamp(now()) + # del(.event) + # del(.meta) + # del(.data) sinks: metrics: type: prometheus_exporter @@ -2261,3 +2380,49 @@ sinks: healthcheck: enabled: true skip_unknown_fields: false + libp2p_trace_connected_console: + type: console + inputs: + - libp2p_trace_connected_formatted + encoding: + codec: json + libp2p_trace_connected_clickhouse: + type: clickhouse + inputs: + - libp2p_trace_connected_formatted + database: default + endpoint: "${CLICKHOUSE_ENDPOINT}" + table: libp2p_connected + auth: + strategy: basic + user: "${CLICKHOUSE_USER}" + password: "${CLICKHOUSE_PASSWORD}" + batch: + max_bytes: 52428800 + max_events: 200000 + timeout_secs: 1 + buffer: + max_events: 200000 + healthcheck: + enabled: true + skip_unknown_fields: false + # libp2p_trace_disconnected_clickhouse: + # type: clickhouse + # inputs: + # - libp2p_trace_disconnected + # database: default + # endpoint: "${CLICKHOUSE_ENDPOINT}" + # table: libp2p_disconnected + # auth: + # strategy: basic + # user: "${CLICKHOUSE_USER}" + # password: "${CLICKHOUSE_PASSWORD}" + # batch: + # max_bytes: 52428800 + # max_events: 200000 + # timeout_secs: 1 + # buffer: + # max_events: 200000 + # healthcheck: + # enabled: true + # skip_unknown_fields: false \ No newline at end of file diff --git a/deploy/migrations/clickhouse/031_libp2p_trace.down.sql b/deploy/migrations/clickhouse/031_libp2p_trace.down.sql index 97fc99b8..371126d6 100644 --- a/deploy/migrations/clickhouse/031_libp2p_trace.down.sql +++ b/deploy/migrations/clickhouse/031_libp2p_trace.down.sql @@ -7,6 +7,27 @@ DROP TABLE IF EXISTS default.libp2p_send_rpc_local; DROP TABLE IF EXISTS default.libp2p_drop_rpc; DROP TABLE IF EXISTS default.libp2p_drop_rpc_local; +DROP TABLE IF EXISTS default.libp2p_rpc_meta_message; +DROP TABLE IF EXISTS default.libp2p_rpc_meta_message_local; + +DROP TABLE IF EXISTS default.libp2p_rpc_meta_subscription; +DROP TABLE IF EXISTS default.libp2p_rpc_meta_subscription_local; + +DROP TABLE IF EXISTS default.libp2p_rpc_meta_control_ihave; +DROP TABLE IF EXISTS default.libp2p_rpc_meta_control_ihave_local; + +DROP TABLE IF EXISTS default.libp2p_rpc_meta_control_iwant; +DROP TABLE IF EXISTS default.libp2p_rpc_meta_control_iwant_local; + +DROP TABLE IF EXISTS default.libp2p_rpc_meta_control_graft; +DROP TABLE IF EXISTS default.libp2p_rpc_meta_control_graft_local; + +DROP TABLE IF EXISTS default.libp2p_rpc_meta_control_prune; +DROP TABLE IF EXISTS default.libp2p_rpc_meta_control_prune_local; + +DROP TABLE IF EXISTS default.libp2p_recv_rpc; +DROP TABLE IF EXISTS default.libp2p_recv_rpc_local; + DROP TABLE IF EXISTS default.libp2p_join; DROP TABLE IF EXISTS default.libp2p_join_local; @@ -51,3 +72,4 @@ DROP TABLE IF EXISTS default.libp2p_connected_local; DROP TABLE IF EXISTS default.libp2p_disconnected; DROP TABLE IF EXISTS default.libp2p_disconnected_local; + diff --git a/deploy/migrations/clickhouse/031_libp2p_trace.up.sql b/deploy/migrations/clickhouse/031_libp2p_trace.up.sql index b1e40b70..b67b50bb 100644 --- a/deploy/migrations/clickhouse/031_libp2p_trace.up.sql +++ b/deploy/migrations/clickhouse/031_libp2p_trace.up.sql @@ -1,284 +1,1255 @@ -- Creating local and distributed tables for libp2p_publish_message -CREATE TABLE default.libp2p_publish_message_local +CREATE TABLE libp2p_publish_message_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - message_id String CODEC(ZSTD(1)) COMMENT 'Identifier of the message', - topic String CODEC(ZSTD(1)) COMMENT 'Topic associated with the message', - peer_id String CODEC(ZSTD(1)) COMMENT 'Identifier of the peer' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + message_id String CODEC(ZSTD(1)), + topic String CODEC(ZSTD(1)), + peer_id String CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_publish_message AS default.libp2p_publish_message_local +ALTER TABLE libp2p_publish_message_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the messages published by the libp2p client', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN message_id 'Identifier of the message', +COMMENT COLUMN topic 'Topic associated with the message', +COMMENT COLUMN peer_id 'Identifier of the peer', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; + +CREATE TABLE libp2p_publish_message on cluster '{cluster}' AS libp2p_publish_message_local ENGINE = Distributed('{cluster}', default, libp2p_publish_message_local, rand()); -- Creating local and distributed tables for libp2p_reject_message -CREATE TABLE default.libp2p_reject_message_local +CREATE TABLE libp2p_reject_message_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - message_id String CODEC(ZSTD(1)) COMMENT 'Identifier of the message', - received_from String CODEC(ZSTD(1)) COMMENT 'Identifier of the sender', - reason String CODEC(ZSTD(1)) COMMENT 'Reason for message rejection', - topic String CODEC(ZSTD(1)) COMMENT 'Topic associated with the message', - peer_id String CODEC(ZSTD(1)) COMMENT 'Identifier of the peer' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + message_id String CODEC(ZSTD(1)), + reason String CODEC(ZSTD(1)), + topic String CODEC(ZSTD(1)), + peer_id String CODEC(ZSTD(1)), + seq_no String CODEC(ZSTD(1)), + message_size UInt32 CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_reject_message AS default.libp2p_reject_message_local +ALTER TABLE libp2p_reject_message_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the messages rejected by the libp2p client', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN message_id 'Identifier of the message', +COMMENT COLUMN reason 'Reason for message rejection', +COMMENT COLUMN topic 'Topic associated with the message', +COMMENT COLUMN peer_id 'Identifier of the peer', +COMMENT COLUMN seq_no 'Sequence number of the message', +COMMENT COLUMN message_size 'Size of the message in bytes', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; + +CREATE TABLE libp2p_reject_message on cluster '{cluster}' AS libp2p_reject_message_local ENGINE = Distributed('{cluster}', default, libp2p_reject_message_local, rand()); -- Creating local and distributed tables for libp2p_duplicate_message -CREATE TABLE default.libp2p_duplicate_message_local +CREATE TABLE libp2p_duplicate_message_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - message_id String CODEC(ZSTD(1)) COMMENT 'Identifier of the message', - received_from String CODEC(ZSTD(1)) COMMENT 'Identifier of the sender', - topic String CODEC(ZSTD(1)) COMMENT 'Topic associated with the message', - peer_id String CODEC(ZSTD(1)) COMMENT 'Identifier of the peer' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + message_id String CODEC(ZSTD(1)), + topic String CODEC(ZSTD(1)), + peer_id String CODEC(ZSTD(1)), + seq_no String CODEC(ZSTD(1)), + message_size UInt32 CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_duplicate_message AS default.libp2p_duplicate_message_local +ALTER TABLE libp2p_duplicate_message_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the duplicate messages sent by the peer.', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN message_id 'Identifier of the message', +COMMENT COLUMN topic 'Topic associated with the message', +COMMENT COLUMN peer_id 'Identifier of the peer', +COMMENT COLUMN seq_no 'Sequence number of the message', +COMMENT COLUMN message_size 'Size of the message in bytes', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; + +CREATE TABLE libp2p_duplicate_message on cluster '{cluster}' AS libp2p_duplicate_message_local ENGINE = Distributed('{cluster}', default, libp2p_duplicate_message_local, rand()); -- Creating local and distributed tables for libp2p_deliver_message -CREATE TABLE default.libp2p_deliver_message_local +CREATE TABLE libp2p_deliver_message_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - message_id String CODEC(ZSTD(1)) COMMENT 'Identifier of the message', - topic String CODEC(ZSTD(1)) COMMENT 'Topic associated with the message', - received_from String CODEC(ZSTD(1)) COMMENT 'Identifier of the sender', - peer_id String CODEC(ZSTD(1)) COMMENT 'Identifier of the peer' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + message_id String CODEC(ZSTD(1)), + topic String CODEC(ZSTD(1)), + peer_id String CODEC(ZSTD(1)), + seq_no String CODEC(ZSTD(1)), + message_size UInt32 CODEC(ZSTD(1)), + local Bool, + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_deliver_message AS default.libp2p_deliver_message_local +ALTER TABLE libp2p_deliver_message_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the messages delivered to the peer.', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN message_id 'Identifier of the message', +COMMENT COLUMN topic 'Topic associated with the message', +COMMENT COLUMN peer_id 'Identifier of the peer', +COMMENT COLUMN seq_no 'Sequence number of the message', +COMMENT COLUMN message_size 'Size of the message in bytes', +COMMENT COLUMN local 'Whether the message is local', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; + +CREATE TABLE libp2p_deliver_message on cluster '{cluster}' AS libp2p_deliver_message_local ENGINE = Distributed('{cluster}', default, libp2p_deliver_message_local, rand()); -- Creating local and distributed tables for libp2p_add_peer -CREATE TABLE default.libp2p_add_peer_local +CREATE TABLE libp2p_add_peer_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - peer_id String CODEC(ZSTD(1)) COMMENT 'Identifier of the peer', - proto String CODEC(ZSTD(1)) COMMENT 'Protocol used by the peer' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + peer_id String CODEC(ZSTD(1)), + protocol String CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_add_peer AS default.libp2p_add_peer_local +ALTER TABLE libp2p_add_peer_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the peers added to the libp2p client.', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN peer_id 'Identifier of the peer', +COMMENT COLUMN protocol 'Protocol used by the peer', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; + +CREATE TABLE libp2p_add_peer on cluster '{cluster}' AS libp2p_add_peer_local ENGINE = Distributed('{cluster}', default, libp2p_add_peer_local, rand()); -- Creating local and distributed tables for libp2p_remove_peer -CREATE TABLE default.libp2p_remove_peer_local +CREATE TABLE libp2p_remove_peer_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - peer_id String CODEC(ZSTD(1)) COMMENT 'Identifier of the peer' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + peer_id String CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_remove_peer AS default.libp2p_remove_peer_local +ALTER TABLE libp2p_remove_peer_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the peers removed from the libp2p client.', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN peer_id 'Identifier of the peer', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; + +CREATE TABLE libp2p_remove_peer on cluster '{cluster}' AS libp2p_remove_peer_local ENGINE = Distributed('{cluster}', default, libp2p_remove_peer_local, rand()); +-- Creating tables for RPC meta data with ReplicatedReplacingMergeTree and Distributed engines +CREATE TABLE libp2p_rpc_meta_message_local ON CLUSTER '{cluster}' +( + unique_key Int64, + message_index Int32 CODEC(DoubleDelta, ZSTD(1)), + rpc_meta_unique_key Int64, + message_id String CODEC(ZSTD(1)), + topic String CODEC(ZSTD(1)), + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + peer_id String CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) +) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', unique_key) +ORDER BY (event_date_time, message_index); + +ALTER TABLE libp2p_rpc_meta_message_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the RPC meta messages from the peer', +COMMENT COLUMN unique_key 'Unique identifier for each RPC message record', +COMMENT COLUMN message_index 'Position in the RPC meta message array', +COMMENT COLUMN rpc_meta_unique_key 'Unique key associated with the RPC metadata', +COMMENT COLUMN message_id 'Identifier of the message', +COMMENT COLUMN topic 'Topic associated with the message', +COMMENT COLUMN updated_date_time 'Timestamp when the RPC message record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the RPC event', +COMMENT COLUMN peer_id 'Identifier of the peer involved in the RPC', +COMMENT COLUMN meta_client_name 'Name of the client involved in the RPC', +COMMENT COLUMN meta_network_id 'Network ID associated with the RPC', +COMMENT COLUMN meta_network_name 'Network name associated with the RPC'; + +CREATE TABLE libp2p_rpc_meta_message AS libp2p_rpc_meta_message_local +ENGINE = Distributed('{cluster}', default, libp2p_rpc_meta_message_local, rand()); + +CREATE TABLE libp2p_rpc_meta_subscription_local ON CLUSTER '{cluster}' +( + unique_key Int64, + message_index Int32 CODEC(DoubleDelta, ZSTD(1)), + rpc_meta_unique_key Int64, + subscribe Bool, + topic_id String CODEC(ZSTD(1)), + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + peer_id String CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) +) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', unique_key) +ORDER BY (event_date_time, message_index); + +ALTER TABLE libp2p_rpc_meta_subscription_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the RPC subscriptions from the peer.', +COMMENT COLUMN unique_key 'Unique identifier for each RPC subscription record', +COMMENT COLUMN message_index 'Position in the RPC meta subscription array', +COMMENT COLUMN rpc_meta_unique_key 'Unique key associated with the RPC subscription metadata', +COMMENT COLUMN subscribe 'Boolean indicating if it is a subscription or unsubscription', +COMMENT COLUMN topic_id 'Topic ID associated with the subscription', +COMMENT COLUMN updated_date_time 'Timestamp when the RPC subscription record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the RPC subscription event', +COMMENT COLUMN peer_id 'Identifier of the peer involved in the subscription', +COMMENT COLUMN meta_client_name 'Name of the client involved in the subscription', +COMMENT COLUMN meta_network_id 'Network ID associated with the subscription', +COMMENT COLUMN meta_network_name 'Network name associated with the subscription'; + +CREATE TABLE libp2p_rpc_meta_subscription AS libp2p_rpc_meta_subscription_local +ENGINE = Distributed('{cluster}', default, libp2p_rpc_meta_subscription_local, rand()); + +CREATE TABLE libp2p_rpc_meta_control_ihave_local ON CLUSTER '{cluster}' +( + unique_key Int64, + rpc_meta_unique_key Int64, + message_index Int32 CODEC(DoubleDelta, ZSTD(1)), + topic_id String CODEC(ZSTD(1)), + message_id String CODEC(ZSTD(1)), + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + peer_id String CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) +) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', unique_key) +ORDER BY (event_date_time, message_index); + +ALTER TABLE libp2p_rpc_meta_control_ihave_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the "I have" control messages from the peer.', +COMMENT COLUMN unique_key 'Unique identifier for each "I have" control record', +COMMENT COLUMN message_index 'Position in the RPC meta control IHAVE array', +COMMENT COLUMN rpc_meta_unique_key 'Unique key associated with the "I have" control metadata', +COMMENT COLUMN topic_id 'Topic ID associated with the "I have" control', +COMMENT COLUMN message_id 'Identifier of the message associated with the "I have" control', +COMMENT COLUMN updated_date_time 'Timestamp when the "I have" control record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the "I have" control event', +COMMENT COLUMN peer_id 'Identifier of the peer involved in the "I have" control', +COMMENT COLUMN meta_client_name 'Name of the client involved in the "I have" control', +COMMENT COLUMN meta_network_id 'Network ID associated with the "I have" control', +COMMENT COLUMN meta_network_name 'Network name associated with the "I have" control'; + +CREATE TABLE libp2p_rpc_meta_control_ihave AS libp2p_rpc_meta_control_ihave_local +ENGINE = Distributed('{cluster}', default, libp2p_rpc_meta_control_ihave_local, rand()); + +CREATE TABLE libp2p_rpc_meta_control_iwant_local ON CLUSTER '{cluster}' +( + unique_key Int64, + message_index Int32 CODEC(DoubleDelta, ZSTD(1)), + rpc_meta_unique_key Int64, + message_id String CODEC(ZSTD(1)), + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + peer_id String CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) +) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', unique_key) +ORDER BY (event_date_time, message_index); + +ALTER TABLE libp2p_rpc_meta_control_iwant_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the "I want" control messages from the peer.', +COMMENT COLUMN unique_key 'Unique identifier for each "I want" control record', +COMMENT COLUMN message_index 'Position in the RPC meta control IWANT array', +COMMENT COLUMN rpc_meta_unique_key 'Unique key associated with the "I want" control metadata', +COMMENT COLUMN message_id 'Identifier of the message associated with the "I want" control', +COMMENT COLUMN updated_date_time 'Timestamp when the "I want" control record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the "I want" control event', +COMMENT COLUMN peer_id 'Identifier of the peer involved in the "I want" control', +COMMENT COLUMN meta_client_name 'Name of the client involved in the "I want" control', +COMMENT COLUMN meta_network_id 'Network ID associated with the "I want" control', +COMMENT COLUMN meta_network_name 'Network name associated with the "I want" control'; + +CREATE TABLE libp2p_rpc_meta_control_iwant AS libp2p_rpc_meta_control_iwant_local +ENGINE = Distributed('{cluster}', default, libp2p_rpc_meta_control_iwant_local, rand()); + +CREATE TABLE libp2p_rpc_meta_control_graft_local ON CLUSTER '{cluster}' +( + unique_key Int64, + message_index Int32 CODEC(DoubleDelta, ZSTD(1)), + rpc_meta_unique_key Int64, + topic_id String CODEC(ZSTD(1)), + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + peer_id String CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) +) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', unique_key) +ORDER BY (event_date_time, message_index); + +ALTER TABLE libp2p_rpc_meta_control_graft_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the "Graft" control messages from the peer.', +COMMENT COLUMN unique_key 'Unique identifier for each "Graft" control record', +COMMENT COLUMN message_index 'Position in the RPC meta control GRAFT array', +COMMENT COLUMN rpc_meta_unique_key 'Unique key associated with the "Graft" control metadata', +COMMENT COLUMN topic_id 'Topic ID associated with the "Graft" control', +COMMENT COLUMN updated_date_time 'Timestamp when the "Graft" control record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the "Graft" control event', +COMMENT COLUMN peer_id 'Identifier of the peer involved in the "Graft" control', +COMMENT COLUMN meta_client_name 'Name of the client involved in the "Graft" control', +COMMENT COLUMN meta_network_id 'Network ID associated with the "Graft" control', +COMMENT COLUMN meta_network_name 'Network name associated with the "Graft" control'; + +CREATE TABLE libp2p_rpc_meta_control_graft AS libp2p_rpc_meta_control_graft_local +ENGINE = Distributed('{cluster}', default, libp2p_rpc_meta_control_graft_local, rand()); + +CREATE TABLE libp2p_rpc_meta_control_prune_local ON CLUSTER '{cluster}' +( + unique_key Int64, + rpc_meta_unique_key Int64, + message_index Int32 CODEC(DoubleDelta, ZSTD(1)), + topic_id String CODEC(ZSTD(1)), + peer_id String CODEC(ZSTD(1)), + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + meta_client_name LowCardinality(String), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) +) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', unique_key) +ORDER BY (event_date_time, message_index); + +ALTER TABLE libp2p_rpc_meta_control_prune_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the "Prune" control messages from the peer.', +COMMENT COLUMN message_index 'Position in the RPC meta control PRUNE array', +COMMENT COLUMN unique_key 'Unique identifier for each "Prune" control record', +COMMENT COLUMN rpc_meta_unique_key 'Unique key associated with the "Prune" control metadata', +COMMENT COLUMN topic_id 'Topic ID associated with the "Prune" control', +COMMENT COLUMN peer_id 'Identifier of the peer involved in the "Prune" control', +COMMENT COLUMN updated_date_time 'Timestamp when the "Prune" control record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the "Prune" control event', +COMMENT COLUMN peer_id 'Identifier of the peer involved in the "Prune" control', +COMMENT COLUMN meta_client_name 'Name of the client involved in the "Prune" control', +COMMENT COLUMN meta_network_id 'Network ID associated with the "Prune" control', +COMMENT COLUMN meta_network_name 'Network name associated with the "Prune" control'; + +CREATE TABLE libp2p_rpc_meta_control_prune ON cluster '{cluster}' AS libp2p_rpc_meta_control_prune_local +ENGINE = Distributed('{cluster}', default, libp2p_rpc_meta_control_prune_local, rand()); + -- Creating local and distributed tables for libp2p_recv_rpc -CREATE TABLE default.libp2p_recv_rpc_local +CREATE TABLE libp2p_recv_rpc_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - received_from String CODEC(ZSTD(1)) COMMENT 'Identifier of the sender' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + received_from String CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_recv_rpc AS default.libp2p_recv_rpc_local +CREATE TABLE libp2p_recv_rpc on cluster '{cluster}' AS libp2p_recv_rpc_local ENGINE = Distributed('{cluster}', default, libp2p_recv_rpc_local, rand()); +ALTER TABLE libp2p_recv_rpc_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the RPC messages received by the peer.', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN received_from 'Identifier of the sender', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; + -- Creating local and distributed tables for libp2p_send_rpc -CREATE TABLE default.libp2p_send_rpc_local +CREATE TABLE libp2p_send_rpc_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - send_to String CODEC(ZSTD(1)) COMMENT 'Identifier of the receiver' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + send_to String CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_send_rpc AS default.libp2p_send_rpc_local +ALTER TABLE libp2p_send_rpc_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the RPC messages sent by the peer.', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN send_to 'Identifier of the receiver', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; +CREATE TABLE libp2p_send_rpc AS libp2p_send_rpc_local ENGINE = Distributed('{cluster}', default, libp2p_send_rpc_local, rand()); -- Creating local and distributed tables for libp2p_drop_rpc -CREATE TABLE default.libp2p_drop_rpc_local +CREATE TABLE libp2p_drop_rpc_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - send_to String CODEC(ZSTD(1)) COMMENT 'Identifier of the receiver' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + send_to String CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_drop_rpc AS default.libp2p_drop_rpc_local +ALTER TABLE libp2p_drop_rpc_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the RPC messages dropped by the peer.', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN send_to 'Identifier of the receiver', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; + +CREATE TABLE libp2p_drop_rpc AS libp2p_drop_rpc_local ENGINE = Distributed('{cluster}', default, libp2p_drop_rpc_local, rand()); -- Creating local and distributed tables for libp2p_join -CREATE TABLE default.libp2p_join_local +CREATE TABLE libp2p_join_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - topic String CODEC(ZSTD(1)) COMMENT 'Topic involved in the join event' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + topic String CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_join AS default.libp2p_join_local +ALTER TABLE libp2p_join_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the JOIN events from the libp2p client.', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN topic 'Topic involved in the join event', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; + +CREATE TABLE libp2p_join on cluster '{cluster}' AS libp2p_join_local ENGINE = Distributed('{cluster}', default, libp2p_join_local, rand()); -- Creating local and distributed tables for libp2p_leave -CREATE TABLE default.libp2p_leave_local +CREATE TABLE libp2p_leave_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - topic String CODEC(ZSTD(1)) COMMENT 'Topic involved in the leave event' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + topic String CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_leave AS default.libp2p_leave_local +ALTER TABLE libp2p_leave_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the LEAVE events from the libp2p client.', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN topic 'Topic involved in the leave event', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; + +CREATE TABLE libp2p_leave on cluster '{cluster}' AS libp2p_leave_local ENGINE = Distributed('{cluster}', default, libp2p_leave_local, rand()); -- Creating local and distributed tables for libp2p_graft -CREATE TABLE default.libp2p_graft_local +CREATE TABLE libp2p_graft_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - peer_id String CODEC(ZSTD(1)) COMMENT 'Identifier of the peer', - topic String CODEC(ZSTD(1)) COMMENT 'Topic involved in the graft event' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + peer_id String CODEC(ZSTD(1)), + topic String CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_graft AS default.libp2p_graft_local +ALTER TABLE libp2p_graft_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the GRAFT events from the libp2p client.', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN peer_id 'Identifier of the peer', +COMMENT COLUMN topic 'Topic involved in the graft event', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; + +CREATE TABLE libp2p_graft on cluster '{cluster}' AS libp2p_graft_local ENGINE = Distributed('{cluster}', default, libp2p_graft_local, rand()); -- Creating local and distributed tables for libp2p_prune -CREATE TABLE default.libp2p_prune_local +CREATE TABLE libp2p_prune_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - peer_id String CODEC(ZSTD(1)) COMMENT 'Identifier of the peer', - topic String CODEC(ZSTD(1)) COMMENT 'Topic involved in the prune event' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + peer_id String CODEC(ZSTD(1)), + topic String CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_prune AS default.libp2p_prune_local +ALTER TABLE libp2p_prune_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the PRUNE events from the libp2p client.', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN peer_id 'Identifier of the peer', +COMMENT COLUMN topic 'Topic involved in the prune event', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; + +CREATE TABLE libp2p_prune on cluster '{cluster}' AS libp2p_prune_local ENGINE = Distributed('{cluster}', default, libp2p_prune_local, rand()); -- Creating local and distributed tables for libp2p_validate_message -CREATE TABLE default.libp2p_validate_message_local +CREATE TABLE libp2p_validate_message_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - message_id String CODEC(ZSTD(1)) COMMENT 'ID of the message', - topic String CODEC(ZSTD(1)) COMMENT 'Topic involved in the validate message event', - peer_id String CODEC(ZSTD(1)) COMMENT 'Identifier of the peer', - local Bool COMMENT 'Whether the message was local' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + message_id String CODEC(ZSTD(1)), + topic String CODEC(ZSTD(1)), + peer_id String CODEC(ZSTD(1)), + local Bool, + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_validate_message AS default.libp2p_validate_message_local +ALTER TABLE libp2p_validate_message_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the VALIDATE MESSAGE events from the libp2p client.', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN message_id 'ID of the message', +COMMENT COLUMN topic 'Topic involved in the validate message event', +COMMENT COLUMN peer_id 'Identifier of the peer', +COMMENT COLUMN local 'Whether the message was local', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; + +CREATE TABLE libp2p_validate_message on cluster '{cluster}' AS libp2p_validate_message_local ENGINE = Distributed('{cluster}', default, libp2p_validate_message_local, rand()); -- Creating local and distributed tables for libp2p_throttle_peer -CREATE TABLE default.libp2p_throttle_peer_local +CREATE TABLE libp2p_throttle_peer_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - peer_id String CODEC(ZSTD(1)) COMMENT 'Identifier of the peer' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + peer_id String CODEC(ZSTD(1)), + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_throttle_peer AS default.libp2p_throttle_peer_local +ALTER TABLE libp2p_throttle_peer_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the THROTTLE PEER events from the libp2p client.', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN peer_id 'Identifier of the peer', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; + +CREATE TABLE libp2p_throttle_peer on cluster '{cluster}' AS libp2p_throttle_peer_local ENGINE = Distributed('{cluster}', default, libp2p_throttle_peer_local, rand()); -- Creating local and distributed tables for libp2p_undeliverable_message -CREATE TABLE default.libp2p_undeliverable_message_local +CREATE TABLE libp2p_undeliverable_message_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - message_id String CODEC(ZSTD(1)) COMMENT 'ID of the message', - topic String CODEC(ZSTD(1)) COMMENT 'Topic involved in the undeliverable message event', - peer_id String CODEC(ZSTD(1)) COMMENT 'Identifier of the peer', - local Bool COMMENT 'Whether the message was local' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + message_id String CODEC(ZSTD(1)), + topic String CODEC(ZSTD(1)), + peer_id String CODEC(ZSTD(1)), + local Bool, + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_undeliverable_message AS default.libp2p_undeliverable_message_local +ALTER TABLE libp2p_undeliverable_message_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the UNDELIVERABLE MESSAGE events from the libp2p client.', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN message_id 'ID of the message', +COMMENT COLUMN topic 'Topic involved in the undeliverable message event', +COMMENT COLUMN peer_id 'Identifier of the peer', +COMMENT COLUMN local 'Whether the message was local', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; + +CREATE TABLE libp2p_undeliverable_message on cluster '{cluster}' AS libp2p_undeliverable_message_local ENGINE = Distributed('{cluster}', default, libp2p_undeliverable_message_local, rand()); -- Creating local and distributed tables for libp2p_connected -CREATE TABLE default.libp2p_connected_local +CREATE TABLE libp2p_connected_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - remote_peer String CODEC(ZSTD(1)) COMMENT 'Remote peer identifier', - remote_maddrs String CODEC(ZSTD(1)) COMMENT 'Multiaddresses of the remote peer', - agent_version String CODEC(ZSTD(1)) COMMENT 'Agent version of the remote peer', - direction String CODEC(ZSTD(1)) COMMENT 'Connection direction', - opened DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the connection was opened', - transient Bool COMMENT 'Whether the connection is transient' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + remote_peer String CODEC(ZSTD(1)), + remote_maddrs String CODEC(ZSTD(1)), + agent_version String CODEC(ZSTD(1)), + direction String CODEC(ZSTD(1)), + opened DateTime CODEC(DoubleDelta, ZSTD(1)), + transient Bool, + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_connected AS default.libp2p_connected_local +ALTER TABLE libp2p_connected_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the CONNECTED events from the libp2p client.', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN remote_peer 'Remote peer identifier', +COMMENT COLUMN remote_maddrs 'Multiaddresses of the remote peer', +COMMENT COLUMN agent_version 'Agent version of the remote peer', +COMMENT COLUMN direction 'Connection direction', +COMMENT COLUMN opened 'Timestamp when the connection was opened', +COMMENT COLUMN transient 'Whether the connection is transient', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; +CREATE TABLE libp2p_connected on cluster '{cluster}' AS libp2p_connected_local ENGINE = Distributed('{cluster}', default, libp2p_connected_local, rand()); -- Creating local and distributed tables for libp2p_disconnected -CREATE TABLE default.libp2p_disconnected_local +CREATE TABLE libp2p_disconnected_local ON CLUSTER '{cluster}' ( - unique_key Int64 COMMENT 'Unique identifier for each record', - updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the record was last updated', - event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp of the event', - remote_peer String CODEC(ZSTD(1)) COMMENT 'Remote peer identifier', - remote_maddrs String CODEC(ZSTD(1)) COMMENT 'Multiaddresses of the remote peer', - agent_version String CODEC(ZSTD(1)) COMMENT 'Agent version of the remote peer', - direction String CODEC(ZSTD(1)) COMMENT 'Connection direction', - opened DateTime CODEC(DoubleDelta, ZSTD(1)) COMMENT 'Timestamp when the connection was opened', - transient Bool COMMENT 'Whether the connection is transient' + unique_key Int64, + updated_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + event_date_time DateTime64(3) CODEC(DoubleDelta, ZSTD(1)), + session_start_date_time DateTime CODEC(DoubleDelta, ZSTD(1)), + remote_peer String CODEC(ZSTD(1)), + remote_maddrs String CODEC(ZSTD(1)), + agent_version String CODEC(ZSTD(1)), + direction String CODEC(ZSTD(1)), + opened DateTime CODEC(DoubleDelta, ZSTD(1)), + transient Bool, + meta_client_name LowCardinality(String), + meta_client_id String CODEC(ZSTD(1)), + meta_client_version LowCardinality(String), + meta_client_implementation LowCardinality(String), + meta_client_os LowCardinality(String), + meta_client_ip Nullable(IPv6) CODEC(ZSTD(1)), + meta_client_geo_city LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_country_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_continent_code LowCardinality(String) CODEC(ZSTD(1)), + meta_client_geo_longitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_latitude Nullable(Float64) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_number Nullable(UInt32) CODEC(ZSTD(1)), + meta_client_geo_autonomous_system_organization Nullable(String) CODEC(ZSTD(1)), + meta_network_id Int32 CODEC(DoubleDelta, ZSTD(1)), + meta_network_name LowCardinality(String) ) Engine = ReplicatedReplacingMergeTree('/clickhouse/{installation}/{cluster}/tables/{shard}/{database}/{table}', '{replica}', updated_date_time) PARTITION BY toYYYYMM(event_date_time) ORDER BY (event_date_time, unique_key); -CREATE TABLE default.libp2p_disconnected AS default.libp2p_disconnected_local +ALTER TABLE libp2p_disconnected_local ON CLUSTER '{cluster}' +MODIFY COMMENT 'Contains the details of the DISCONNECTED events from the libp2p client.', +COMMENT COLUMN unique_key 'Unique identifier for each record', +COMMENT COLUMN updated_date_time 'Timestamp when the record was last updated', +COMMENT COLUMN event_date_time 'Timestamp of the event', +COMMENT COLUMN session_start_date_time 'Timestamp of the session start', +COMMENT COLUMN remote_peer 'Remote peer identifier', +COMMENT COLUMN remote_maddrs 'Multiaddresses of the remote peer', +COMMENT COLUMN agent_version 'Agent version of the remote peer', +COMMENT COLUMN direction 'Connection direction', +COMMENT COLUMN opened 'Timestamp when the connection was opened', +COMMENT COLUMN transient 'Whether the connection is transient', +COMMENT COLUMN meta_client_name 'Name of the client that generated the event', +COMMENT COLUMN meta_client_id 'Unique Session ID of the client that generated the event. This changes every time the client is restarted.', +COMMENT COLUMN meta_client_version 'Version of the client that generated the event', +COMMENT COLUMN meta_client_implementation 'Implementation of the client that generated the event', +COMMENT COLUMN meta_client_os 'Operating system of the client that generated the event', +COMMENT COLUMN meta_client_ip 'IP address of the client that generated the event', +COMMENT COLUMN meta_client_geo_city 'City of the client that generated the event', +COMMENT COLUMN meta_client_geo_country 'Country of the client that generated the event', +COMMENT COLUMN meta_client_geo_country_code 'Country code of the client that generated the event', +COMMENT COLUMN meta_client_geo_continent_code 'Continent code of the client that generated the event', +COMMENT COLUMN meta_client_geo_longitude 'Longitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_latitude 'Latitude of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_number 'Autonomous system number of the client that generated the event', +COMMENT COLUMN meta_client_geo_autonomous_system_organization 'Autonomous system organization of the client that generated the event', +COMMENT COLUMN meta_network_id 'Ethereum network ID', +COMMENT COLUMN meta_network_name 'Ethereum network name'; + +CREATE TABLE libp2p_disconnected on cluster '{cluster}' AS libp2p_disconnected_local ENGINE = Distributed('{cluster}', default, libp2p_disconnected_local, rand()); + + diff --git a/docker-compose.yml b/docker-compose.yml index a24403b9..f34cb0a5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -351,16 +351,19 @@ services: vector-kafka-clickhouse: profiles: - "" - image: timberio/vector:0.34.1-alpine + image: timberio/vector:0.37.1-alpine volumes: - ./deploy/local/docker-compose/vector-kafka-clickhouse.yaml:/etc/vector/vector.yaml networks: - xatu-net + ports: + - "8686:8686" environment: CLICKHOUSE_ENDPOINT: "clickhouse-01:8123" CLICKHOUSE_USER: default CLICKHOUSE_PASSWORD: "" KAFKA_BROKERS: "kafka:29092" + VECTOR_LOG: "debug" healthcheck: test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:8686/health"] interval: 30s diff --git a/go.mod b/go.mod index c272cd3f..170b0dbe 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module github.com/ethpandaops/xatu go 1.22.0 -replace github.com/probe-lab/hermes => ../hermes +replace github.com/probe-lab/hermes => github.com/ethpandaops/hermes v0.0.0-20240411071540-e67fb0f894e0 require ( github.com/IBM/sarama v1.43.0 @@ -12,7 +12,6 @@ require ( github.com/cenkalti/backoff/v4 v4.2.1 github.com/chuckpreslar/emission v0.0.0-20170206194824-a7ddd980baf9 github.com/creasty/defaults v1.7.0 - github.com/dennis-tra/go-kinesis v0.0.0-20240326083914-7acf5f8dc24e github.com/ethereum/go-ethereum v1.13.14 github.com/ethpandaops/beacon v0.35.0 github.com/ethpandaops/ethcore v0.0.0-20240306031202-16f9e1926c0c @@ -27,10 +26,12 @@ require ( github.com/lib/pq v1.10.9 github.com/libp2p/go-libp2p v0.33.1 github.com/mitchellh/hashstructure/v2 v2.0.2 + github.com/multiformats/go-multiaddr v0.12.2 github.com/oschwald/maxminddb-golang v1.12.0 github.com/pkg/errors v0.9.1 github.com/probe-lab/hermes v0.0.0-20240327153144-a2528356b4f7 github.com/prometheus/client_golang v1.19.0 + github.com/prysmaticlabs/prysm/v5 v5.0.2 github.com/r3labs/sse/v2 v2.10.0 github.com/redis/go-redis/v9 v9.5.1 github.com/sirupsen/logrus v1.9.3 @@ -83,6 +84,7 @@ require ( github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect github.com/deckarep/golang-set/v2 v2.5.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect + github.com/dennis-tra/go-kinesis v0.0.0-20240326083914-7acf5f8dc24e // indirect github.com/dgraph-io/ristretto v0.0.4-0.20210318174700-74754f61e018 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/docker/go-units v0.5.0 // indirect @@ -176,7 +178,6 @@ require ( github.com/mr-tron/base58 v1.2.0 // indirect github.com/multiformats/go-base32 v0.1.0 // indirect github.com/multiformats/go-base36 v0.2.0 // indirect - github.com/multiformats/go-multiaddr v0.12.2 // indirect github.com/multiformats/go-multiaddr-dns v0.3.1 // indirect github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect github.com/multiformats/go-multibase v0.2.0 // indirect @@ -198,7 +199,6 @@ require ( github.com/prysmaticlabs/go-bitfield v0.0.0-20210809151128-385d8c5e3fb7 // indirect github.com/prysmaticlabs/gohashtree v0.0.4-beta // indirect github.com/prysmaticlabs/prombbolt v0.0.0-20210126082820-9b7adba6db7c // indirect - github.com/prysmaticlabs/prysm/v5 v5.0.2 // indirect github.com/quic-go/qpack v0.4.0 // indirect github.com/quic-go/quic-go v0.42.0 // indirect github.com/quic-go/webtransport-go v0.6.0 // indirect diff --git a/go.sum b/go.sum index f95d0478..12661eb2 100644 --- a/go.sum +++ b/go.sum @@ -266,6 +266,8 @@ github.com/ethpandaops/ethcore v0.0.0-20240306031202-16f9e1926c0c h1:B/Auy5g6Nv4 github.com/ethpandaops/ethcore v0.0.0-20240306031202-16f9e1926c0c/go.mod h1:ZvKqL6CKxiraefdXPHeJurV2pDD/f2HF2uklDVdrry8= github.com/ethpandaops/ethwallclock v0.3.0 h1:xF5fwtBf+bHFHZKBnwiPFEuelW3sMM7SD3ZNFq1lJY4= github.com/ethpandaops/ethwallclock v0.3.0/go.mod h1:y0Cu+mhGLlem19vnAV2x0hpFS5KZ7oOi2SWYayv9l24= +github.com/ethpandaops/hermes v0.0.0-20240411071540-e67fb0f894e0 h1:TMfE4CcqZwDUfQdmFKRrPgyOiPt8zTTT+env8SBY+RI= +github.com/ethpandaops/hermes v0.0.0-20240411071540-e67fb0f894e0/go.mod h1:0jaXXPRHNx/fctHUM6NC5tixFQl48UizJ1FK/WveXeE= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= diff --git a/pkg/proto/libp2p/trace.go b/pkg/proto/libp2p/trace.go index 655bcb7c..78268f14 100644 --- a/pkg/proto/libp2p/trace.go +++ b/pkg/proto/libp2p/trace.go @@ -231,12 +231,12 @@ func TraceEventToRejectMessage(event *host.TraceEvent) (*RejectMessage, error) { } return &RejectMessage{ - MessageId: wrapperspb.String(messageID), - ReceivedFrom: wrapperspb.String(receivedFrom.String()), - Reason: wrapperspb.String(reason), - Topic: wrapperspb.String(topic), - MsgSize: wrapperspb.UInt32(uint32(msgSize)), - SeqNo: wrapperspb.String(hex.EncodeToString(seqNo)), + MessageId: wrapperspb.String(messageID), + PeerId: wrapperspb.String(receivedFrom.String()), + Reason: wrapperspb.String(reason), + Topic: wrapperspb.String(topic), + MessageSize: wrapperspb.UInt32(uint32(msgSize)), + SeqNo: wrapperspb.String(hex.EncodeToString(seqNo)), }, nil } @@ -278,12 +278,12 @@ func TraceEventToDuplicateMessage(event *host.TraceEvent) (*DuplicateMessage, er } return &DuplicateMessage{ - MessageId: wrapperspb.String(messageID), - ReceivedFrom: wrapperspb.String(receivedFrom.String()), - Topic: wrapperspb.String(topic), - MsgSize: wrapperspb.UInt32(uint32(msgSize)), - SeqNo: wrapperspb.String(hex.EncodeToString(seqNo)), - Local: wrapperspb.Bool(local), + MessageId: wrapperspb.String(messageID), + PeerId: wrapperspb.String(receivedFrom.String()), + Topic: wrapperspb.String(topic), + MessageSize: wrapperspb.UInt32(uint32(msgSize)), + SeqNo: wrapperspb.String(hex.EncodeToString(seqNo)), + Local: wrapperspb.Bool(local), }, nil } @@ -347,7 +347,7 @@ func TraceEventToRecvRPC(event *host.TraceEvent) (*RecvRPC, error) { } r := &RecvRPC{ - ReceivedFrom: wrapperspb.String(payload.PeerID.String()), + PeerId: wrapperspb.String(payload.PeerID.String()), Meta: &RPCMeta{ PeerId: wrapperspb.String(payload.PeerID.String()), Messages: convertRPCMessages(payload.Messages), @@ -590,11 +590,11 @@ func TraceEventToValidateMessage(event *host.TraceEvent) (*ValidateMessage, erro } return &ValidateMessage{ - MessageId: wrapperspb.String(messageID), - PeerId: wrapperspb.String(receivedFrom.String()), - Topic: wrapperspb.String(topic), - Local: wrapperspb.Bool(local), - MsgSize: wrapperspb.UInt32(uint32(msgSize)), - SeqNo: wrapperspb.String(hex.EncodeToString(seqNo)), + MessageId: wrapperspb.String(messageID), + PeerId: wrapperspb.String(receivedFrom.String()), + Topic: wrapperspb.String(topic), + Local: wrapperspb.Bool(local), + MessageSize: wrapperspb.UInt32(uint32(msgSize)), + SeqNo: wrapperspb.String(hex.EncodeToString(seqNo)), }, nil } diff --git a/pkg/proto/libp2p/trace.pb.go b/pkg/proto/libp2p/trace.pb.go index a4fb34ee..582201fe 100644 --- a/pkg/proto/libp2p/trace.pb.go +++ b/pkg/proto/libp2p/trace.pb.go @@ -206,12 +206,12 @@ type RejectMessage struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MessageId *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=message_id,proto3" json:"message_id,omitempty"` - ReceivedFrom *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=received_from,proto3" json:"received_from,omitempty"` - Reason *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"` - Topic *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=topic,proto3" json:"topic,omitempty"` - SeqNo *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=seq_no,proto3" json:"seq_no,omitempty"` - MsgSize *wrapperspb.UInt32Value `protobuf:"bytes,6,opt,name=msg_size,proto3" json:"msg_size,omitempty"` + MessageId *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=message_id,proto3" json:"message_id,omitempty"` + PeerId *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=peer_id,proto3" json:"peer_id,omitempty"` + Reason *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"` + Topic *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=topic,proto3" json:"topic,omitempty"` + SeqNo *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=seq_no,proto3" json:"seq_no,omitempty"` + MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,6,opt,name=message_size,proto3" json:"message_size,omitempty"` } func (x *RejectMessage) Reset() { @@ -253,9 +253,9 @@ func (x *RejectMessage) GetMessageId() *wrapperspb.StringValue { return nil } -func (x *RejectMessage) GetReceivedFrom() *wrapperspb.StringValue { +func (x *RejectMessage) GetPeerId() *wrapperspb.StringValue { if x != nil { - return x.ReceivedFrom + return x.PeerId } return nil } @@ -281,9 +281,9 @@ func (x *RejectMessage) GetSeqNo() *wrapperspb.StringValue { return nil } -func (x *RejectMessage) GetMsgSize() *wrapperspb.UInt32Value { +func (x *RejectMessage) GetMessageSize() *wrapperspb.UInt32Value { if x != nil { - return x.MsgSize + return x.MessageSize } return nil } @@ -293,12 +293,12 @@ type DuplicateMessage struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MessageId *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=message_id,proto3" json:"message_id,omitempty"` - ReceivedFrom *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=received_from,proto3" json:"received_from,omitempty"` - Topic *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=topic,proto3" json:"topic,omitempty"` - SeqNo *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=seq_no,proto3" json:"seq_no,omitempty"` - MsgSize *wrapperspb.UInt32Value `protobuf:"bytes,5,opt,name=msg_size,proto3" json:"msg_size,omitempty"` - Local *wrapperspb.BoolValue `protobuf:"bytes,6,opt,name=local,proto3" json:"local,omitempty"` + MessageId *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=message_id,proto3" json:"message_id,omitempty"` + PeerId *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=peer_id,proto3" json:"peer_id,omitempty"` + Topic *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=topic,proto3" json:"topic,omitempty"` + SeqNo *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=seq_no,proto3" json:"seq_no,omitempty"` + MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,5,opt,name=message_size,proto3" json:"message_size,omitempty"` + Local *wrapperspb.BoolValue `protobuf:"bytes,6,opt,name=local,proto3" json:"local,omitempty"` } func (x *DuplicateMessage) Reset() { @@ -340,9 +340,9 @@ func (x *DuplicateMessage) GetMessageId() *wrapperspb.StringValue { return nil } -func (x *DuplicateMessage) GetReceivedFrom() *wrapperspb.StringValue { +func (x *DuplicateMessage) GetPeerId() *wrapperspb.StringValue { if x != nil { - return x.ReceivedFrom + return x.PeerId } return nil } @@ -361,9 +361,9 @@ func (x *DuplicateMessage) GetSeqNo() *wrapperspb.StringValue { return nil } -func (x *DuplicateMessage) GetMsgSize() *wrapperspb.UInt32Value { +func (x *DuplicateMessage) GetMessageSize() *wrapperspb.UInt32Value { if x != nil { - return x.MsgSize + return x.MessageSize } return nil } @@ -380,12 +380,12 @@ type DeliverMessage struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MessageId *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=message_id,proto3" json:"message_id,omitempty"` - Topic *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"` - PeerId *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=peer_id,proto3" json:"peer_id,omitempty"` - Local *wrapperspb.BoolValue `protobuf:"bytes,4,opt,name=local,proto3" json:"local,omitempty"` - SeqNo *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=seq_no,proto3" json:"seq_no,omitempty"` - MsgSize *wrapperspb.UInt32Value `protobuf:"bytes,6,opt,name=msg_size,proto3" json:"msg_size,omitempty"` + MessageId *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=message_id,proto3" json:"message_id,omitempty"` + Topic *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"` + PeerId *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=peer_id,proto3" json:"peer_id,omitempty"` + Local *wrapperspb.BoolValue `protobuf:"bytes,4,opt,name=local,proto3" json:"local,omitempty"` + SeqNo *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=seq_no,proto3" json:"seq_no,omitempty"` + MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,6,opt,name=message_size,proto3" json:"message_size,omitempty"` } func (x *DeliverMessage) Reset() { @@ -455,9 +455,9 @@ func (x *DeliverMessage) GetSeqNo() *wrapperspb.StringValue { return nil } -func (x *DeliverMessage) GetMsgSize() *wrapperspb.UInt32Value { +func (x *DeliverMessage) GetMessageSize() *wrapperspb.UInt32Value { if x != nil { - return x.MsgSize + return x.MessageSize } return nil } @@ -467,12 +467,12 @@ type ValidateMessage struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - MessageId *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=message_id,proto3" json:"message_id,omitempty"` - Topic *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"` - PeerId *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=peer_id,proto3" json:"peer_id,omitempty"` - Local *wrapperspb.BoolValue `protobuf:"bytes,4,opt,name=local,proto3" json:"local,omitempty"` - SeqNo *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=seq_no,proto3" json:"seq_no,omitempty"` - MsgSize *wrapperspb.UInt32Value `protobuf:"bytes,6,opt,name=msg_size,proto3" json:"msg_size,omitempty"` + MessageId *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=message_id,proto3" json:"message_id,omitempty"` + Topic *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"` + PeerId *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=peer_id,proto3" json:"peer_id,omitempty"` + Local *wrapperspb.BoolValue `protobuf:"bytes,4,opt,name=local,proto3" json:"local,omitempty"` + SeqNo *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=seq_no,proto3" json:"seq_no,omitempty"` + MessageSize *wrapperspb.UInt32Value `protobuf:"bytes,6,opt,name=message_size,proto3" json:"message_size,omitempty"` } func (x *ValidateMessage) Reset() { @@ -542,9 +542,9 @@ func (x *ValidateMessage) GetSeqNo() *wrapperspb.StringValue { return nil } -func (x *ValidateMessage) GetMsgSize() *wrapperspb.UInt32Value { +func (x *ValidateMessage) GetMessageSize() *wrapperspb.UInt32Value { if x != nil { - return x.MsgSize + return x.MessageSize } return nil } @@ -656,8 +656,8 @@ type RecvRPC struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ReceivedFrom *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=received_from,proto3" json:"received_from,omitempty"` - Meta *RPCMeta `protobuf:"bytes,2,opt,name=meta,proto3" json:"meta,omitempty"` + PeerId *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=peer_id,proto3" json:"peer_id,omitempty"` + Meta *RPCMeta `protobuf:"bytes,2,opt,name=meta,proto3" json:"meta,omitempty"` } func (x *RecvRPC) Reset() { @@ -692,9 +692,9 @@ func (*RecvRPC) Descriptor() ([]byte, []int) { return file_pkg_proto_libp2p_trace_proto_rawDescGZIP(), []int{7} } -func (x *RecvRPC) GetReceivedFrom() *wrapperspb.StringValue { +func (x *RecvRPC) GetPeerId() *wrapperspb.StringValue { if x != nil { - return x.ReceivedFrom + return x.PeerId } return nil } @@ -1841,74 +1841,74 @@ var file_pkg_proto_libp2p_trace_proto_rawDesc = []byte{ 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x22, 0xeb, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, + 0x63, 0x22, 0xe7, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, - 0x64, 0x12, 0x42, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x66, 0x72, - 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x34, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x05, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, - 0x34, 0x0a, 0x06, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x73, - 0x65, 0x71, 0x5f, 0x6e, 0x6f, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x22, - 0xea, 0x02, 0x0a, 0x10, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, - 0x69, 0x64, 0x12, 0x42, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x66, - 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x64, 0x12, 0x36, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x06, 0x72, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, + 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x6f, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x06, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x6f, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x22, 0xe6, 0x02, 0x0a, 0x10, + 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x12, 0x36, + 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x70, + 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x6f, - 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x22, 0xdc, 0x02, 0x0a, - 0x0e, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x12, 0x32, 0x0a, - 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x12, 0x36, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x05, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x12, 0x34, 0x0a, 0x06, 0x73, - 0x65, 0x71, 0x5f, 0x6e, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x22, 0xe4, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x73, 0x65, 0x71, 0x5f, 0x6e, - 0x6f, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x36, 0x0a, 0x07, 0x70, 0x65, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x12, 0x30, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x22, 0xdd, 0x02, 0x0a, 0x0f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x06, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x6f, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, @@ -1927,255 +1927,255 @@ var file_pkg_proto_libp2p_trace_proto_rawDesc = []byte{ 0x65, 0x71, 0x5f, 0x6e, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x73, 0x65, 0x71, 0x5f, 0x6e, - 0x6f, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x7b, 0x0a, 0x07, 0x41, - 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, 0x38, - 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x44, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x77, - 0x0a, 0x07, 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x12, 0x42, 0x0a, 0x0d, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x28, 0x0a, - 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, - 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x22, 0x6b, 0x0a, 0x07, 0x53, 0x65, 0x6e, 0x64, 0x52, - 0x50, 0x43, 0x12, 0x36, 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x12, 0x28, 0x0a, 0x04, 0x6d, 0x65, - 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, - 0x6d, 0x65, 0x74, 0x61, 0x22, 0x6b, 0x0a, 0x07, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x12, - 0x36, 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x6f, 0x12, 0x40, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x22, 0x7b, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12, 0x36, + 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x70, + 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x22, 0x44, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x36, + 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x70, + 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x6b, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x76, 0x52, 0x50, + 0x43, 0x12, 0x36, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x6d, 0x65, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, 0x6d, + 0x65, 0x74, 0x61, 0x22, 0x6b, 0x0a, 0x07, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x12, 0x36, + 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x73, + 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x12, 0x28, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x2e, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, + 0x22, 0x6b, 0x0a, 0x07, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x12, 0x36, 0x0a, 0x07, 0x73, + 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, + 0x5f, 0x74, 0x6f, 0x12, 0x28, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, + 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x22, 0x3a, 0x0a, + 0x04, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x3b, 0x0a, 0x05, 0x4c, 0x65, 0x61, + 0x76, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x73, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x66, 0x74, 0x12, + 0x36, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, - 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x6f, 0x12, 0x28, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x2e, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, - 0x61, 0x22, 0x3a, 0x0a, 0x04, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x3b, 0x0a, - 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x73, 0x0a, 0x05, 0x50, + 0x72, 0x75, 0x6e, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x73, 0x0a, 0x05, 0x47, 0x72, - 0x61, 0x66, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x6c, 0x75, 0x65, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x05, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x22, 0x46, 0x0a, 0x0c, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x50, 0x65, 0x65, 0x72, + 0x12, 0x36, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0xf2, 0x01, 0x0a, 0x14, 0x55, 0x6e, 0x64, + 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x12, + 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x12, 0x36, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x75, 0x65, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x05, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, + 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x22, 0xe7, 0x01, + 0x0a, 0x07, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x34, 0x0a, 0x08, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, + 0x3a, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x75, 0x62, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0d, 0x73, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, + 0x36, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, + 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x7f, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x22, - 0x73, 0x0a, 0x05, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x7d, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x4d, + 0x65, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x09, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x38, 0x0a, + 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x22, 0x46, 0x0a, 0x0c, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, - 0x50, 0x65, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0xf2, 0x01, 0x0a, - 0x14, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x22, 0xe1, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x05, 0x69, 0x68, 0x61, 0x76, 0x65, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, + 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x05, 0x69, 0x68, 0x61, 0x76, 0x65, 0x12, 0x33, 0x0a, 0x05, + 0x69, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x49, 0x57, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x05, 0x69, 0x77, 0x61, 0x6e, + 0x74, 0x12, 0x33, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, 0x66, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, + 0x05, 0x67, 0x72, 0x61, 0x66, 0x74, 0x12, 0x33, 0x0a, 0x05, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, + 0x4d, 0x65, 0x74, 0x61, 0x52, 0x05, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x10, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, + 0x12, 0x38, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x36, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, - 0x30, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x22, 0xe7, 0x01, 0x0a, 0x07, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x34, 0x0a, - 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x75, 0x62, 0x4d, 0x65, 0x74, 0x61, - 0x52, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x32, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x52, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x22, 0x52, 0x0a, 0x10, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x3e, + 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x22, 0x4c, + 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, 0x66, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x7f, 0x0a, 0x0b, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x3c, 0x0a, 0x0a, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x7d, 0x0a, 0x07, - 0x53, 0x75, 0x62, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x75, 0x65, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x22, 0x86, 0x01, 0x0a, + 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x22, 0xe1, 0x01, 0x0a, 0x0b, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x05, 0x69, - 0x68, 0x61, 0x76, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, - 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x49, 0x48, 0x61, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x05, 0x69, 0x68, 0x61, 0x76, 0x65, - 0x12, 0x33, 0x0a, 0x05, 0x69, 0x77, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x05, - 0x69, 0x77, 0x61, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, 0x66, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x52, 0x05, 0x67, 0x72, 0x61, 0x66, 0x74, 0x12, 0x33, 0x0a, 0x05, 0x70, 0x72, - 0x75, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, - 0x72, 0x75, 0x6e, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x05, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x22, - 0x8c, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x48, 0x61, 0x76, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x12, 0x3e, - 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x65, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x12, 0x38, 0x0a, 0x08, 0x70, + 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x70, 0x65, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x73, 0x22, 0xa2, 0x01, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x63, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x07, + 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x70, 0x65, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x12, 0x54, 0x0a, 0x17, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x17, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xfd, 0x02, 0x0a, 0x09, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0d, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x64, 0x64, 0x72, 0x73, 0x12, 0x42, 0x0a, 0x0d, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x22, 0x52, - 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x49, 0x57, 0x61, 0x6e, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, - 0x64, 0x73, 0x22, 0x4c, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x72, 0x61, - 0x66, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, - 0x22, 0x86, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x75, 0x6e, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x12, - 0x38, 0x0a, 0x08, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x08, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x22, 0xa2, 0x01, 0x0a, 0x12, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x36, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, 0x54, 0x0a, 0x17, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x17, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xfd, - 0x02, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0b, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0d, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x02, 0x20, + 0x65, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x3a, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x64, 0x64, 0x72, 0x73, - 0x12, 0x42, 0x0a, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x32, 0x0a, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x06, 0x6f, 0x70, - 0x65, 0x6e, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x80, - 0x03, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, - 0x3e, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x12, - 0x42, 0x0a, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x64, 0x64, 0x72, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x64, - 0x64, 0x72, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x18, 0x05, 0x20, + 0x65, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x06, + 0x6f, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x65, 0x64, + 0x12, 0x38, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x69, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x65, 0x6e, - 0x74, 0x2a, 0xb0, 0x04, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, - 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x44, - 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0c, 0x0a, - 0x08, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x52, - 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, - 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, - 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, - 0x41, 0x47, 0x45, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, - 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, - 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, - 0x08, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x09, 0x12, - 0x0c, 0x0a, 0x08, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x0a, 0x12, 0x0c, 0x0a, - 0x08, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x0b, 0x12, 0x08, 0x0a, 0x04, 0x4a, - 0x4f, 0x49, 0x4e, 0x10, 0x0c, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0x0d, - 0x12, 0x09, 0x0a, 0x05, 0x47, 0x52, 0x41, 0x46, 0x54, 0x10, 0x0e, 0x12, 0x09, 0x0a, 0x05, 0x50, - 0x52, 0x55, 0x4e, 0x45, 0x10, 0x0f, 0x12, 0x14, 0x0a, 0x10, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, - 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x10, 0x12, 0x11, 0x0a, 0x0d, - 0x54, 0x48, 0x52, 0x4f, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x11, 0x12, - 0x19, 0x0a, 0x15, 0x55, 0x4e, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x41, 0x42, 0x4c, 0x45, - 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x12, 0x12, 0x11, 0x0a, 0x0d, 0x48, 0x41, - 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x10, 0x13, 0x12, 0x11, 0x0a, - 0x0d, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x14, - 0x12, 0x13, 0x0a, 0x0f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, - 0x41, 0x54, 0x41, 0x10, 0x15, 0x12, 0x21, 0x0a, 0x1d, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, - 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x53, 0x5f, 0x42, 0x59, - 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x16, 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x41, 0x4e, 0x44, - 0x4c, 0x45, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x53, - 0x5f, 0x42, 0x59, 0x5f, 0x52, 0x4f, 0x4f, 0x54, 0x10, 0x17, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x41, - 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x48, - 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x47, 0x4f, 0x4f, 0x44, 0x42, 0x59, 0x45, 0x10, 0x19, 0x12, - 0x21, 0x0a, 0x1d, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, - 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x53, 0x5f, 0x42, 0x59, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, - 0x10, 0x1a, 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x42, 0x45, 0x41, - 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x53, 0x5f, 0x42, 0x59, 0x5f, 0x52, 0x4f, - 0x4f, 0x54, 0x10, 0x1b, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x65, 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, - 0x61, 0x74, 0x75, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x80, 0x03, 0x0a, 0x0c, 0x44, + 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0d, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x64, 0x64, 0x72, 0x73, 0x12, + 0x42, 0x0a, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x32, 0x0a, 0x06, 0x6f, 0x70, 0x65, 0x6e, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x06, 0x6f, 0x70, 0x65, + 0x6e, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x65, 0x6e, 0x74, 0x2a, 0xb0, 0x04, + 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x4e, + 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x44, 0x44, + 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x4d, 0x4f, 0x56, + 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x55, 0x42, 0x4c, + 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x05, 0x12, 0x12, 0x0a, + 0x0e, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, + 0x06, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x45, 0x4c, 0x49, + 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x08, 0x12, 0x0c, 0x0a, + 0x08, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x09, 0x12, 0x0c, 0x0a, 0x08, 0x53, + 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x0a, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x52, 0x4f, + 0x50, 0x5f, 0x52, 0x50, 0x43, 0x10, 0x0b, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x4f, 0x49, 0x4e, 0x10, + 0x0c, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0x0d, 0x12, 0x09, 0x0a, 0x05, + 0x47, 0x52, 0x41, 0x46, 0x54, 0x10, 0x0e, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x52, 0x55, 0x4e, 0x45, + 0x10, 0x0f, 0x12, 0x14, 0x0a, 0x10, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x10, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x48, 0x52, 0x4f, + 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x10, 0x11, 0x12, 0x19, 0x0a, 0x15, 0x55, + 0x4e, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x53, + 0x53, 0x41, 0x47, 0x45, 0x10, 0x12, 0x12, 0x11, 0x0a, 0x0d, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, + 0x5f, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x10, 0x13, 0x12, 0x11, 0x0a, 0x0d, 0x48, 0x41, 0x4e, + 0x44, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x14, 0x12, 0x13, 0x0a, 0x0f, + 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, 0x54, 0x41, 0x10, + 0x15, 0x12, 0x21, 0x0a, 0x1d, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x42, 0x4c, 0x4f, 0x42, + 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x53, 0x5f, 0x42, 0x59, 0x5f, 0x52, 0x41, 0x4e, + 0x47, 0x45, 0x10, 0x16, 0x12, 0x20, 0x0a, 0x1c, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x42, + 0x4c, 0x4f, 0x42, 0x5f, 0x53, 0x49, 0x44, 0x45, 0x43, 0x41, 0x52, 0x53, 0x5f, 0x42, 0x59, 0x5f, + 0x52, 0x4f, 0x4f, 0x54, 0x10, 0x17, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, + 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x18, 0x12, 0x12, 0x0a, 0x0e, 0x48, 0x41, 0x4e, 0x44, 0x4c, + 0x45, 0x5f, 0x47, 0x4f, 0x4f, 0x44, 0x42, 0x59, 0x45, 0x10, 0x19, 0x12, 0x21, 0x0a, 0x1d, 0x48, + 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, + 0x43, 0x4b, 0x53, 0x5f, 0x42, 0x59, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x1a, 0x12, 0x20, + 0x0a, 0x1c, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, + 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x53, 0x5f, 0x42, 0x59, 0x5f, 0x52, 0x4f, 0x4f, 0x54, 0x10, 0x1b, + 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x65, + 0x74, 0x68, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x6f, 0x70, 0x73, 0x2f, 0x78, 0x61, 0x74, 0x75, 0x2f, + 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2230,33 +2230,33 @@ var file_pkg_proto_libp2p_trace_proto_depIdxs = []int32{ 28, // 0: xatu.libp2p.PublishMessage.message_id:type_name -> google.protobuf.StringValue 28, // 1: xatu.libp2p.PublishMessage.topic:type_name -> google.protobuf.StringValue 28, // 2: xatu.libp2p.RejectMessage.message_id:type_name -> google.protobuf.StringValue - 28, // 3: xatu.libp2p.RejectMessage.received_from:type_name -> google.protobuf.StringValue + 28, // 3: xatu.libp2p.RejectMessage.peer_id:type_name -> google.protobuf.StringValue 28, // 4: xatu.libp2p.RejectMessage.reason:type_name -> google.protobuf.StringValue 28, // 5: xatu.libp2p.RejectMessage.topic:type_name -> google.protobuf.StringValue 28, // 6: xatu.libp2p.RejectMessage.seq_no:type_name -> google.protobuf.StringValue - 29, // 7: xatu.libp2p.RejectMessage.msg_size:type_name -> google.protobuf.UInt32Value + 29, // 7: xatu.libp2p.RejectMessage.message_size:type_name -> google.protobuf.UInt32Value 28, // 8: xatu.libp2p.DuplicateMessage.message_id:type_name -> google.protobuf.StringValue - 28, // 9: xatu.libp2p.DuplicateMessage.received_from:type_name -> google.protobuf.StringValue + 28, // 9: xatu.libp2p.DuplicateMessage.peer_id:type_name -> google.protobuf.StringValue 28, // 10: xatu.libp2p.DuplicateMessage.topic:type_name -> google.protobuf.StringValue 28, // 11: xatu.libp2p.DuplicateMessage.seq_no:type_name -> google.protobuf.StringValue - 29, // 12: xatu.libp2p.DuplicateMessage.msg_size:type_name -> google.protobuf.UInt32Value + 29, // 12: xatu.libp2p.DuplicateMessage.message_size:type_name -> google.protobuf.UInt32Value 30, // 13: xatu.libp2p.DuplicateMessage.local:type_name -> google.protobuf.BoolValue 28, // 14: xatu.libp2p.DeliverMessage.message_id:type_name -> google.protobuf.StringValue 28, // 15: xatu.libp2p.DeliverMessage.topic:type_name -> google.protobuf.StringValue 28, // 16: xatu.libp2p.DeliverMessage.peer_id:type_name -> google.protobuf.StringValue 30, // 17: xatu.libp2p.DeliverMessage.local:type_name -> google.protobuf.BoolValue 28, // 18: xatu.libp2p.DeliverMessage.seq_no:type_name -> google.protobuf.StringValue - 29, // 19: xatu.libp2p.DeliverMessage.msg_size:type_name -> google.protobuf.UInt32Value + 29, // 19: xatu.libp2p.DeliverMessage.message_size:type_name -> google.protobuf.UInt32Value 28, // 20: xatu.libp2p.ValidateMessage.message_id:type_name -> google.protobuf.StringValue 28, // 21: xatu.libp2p.ValidateMessage.topic:type_name -> google.protobuf.StringValue 28, // 22: xatu.libp2p.ValidateMessage.peer_id:type_name -> google.protobuf.StringValue 30, // 23: xatu.libp2p.ValidateMessage.local:type_name -> google.protobuf.BoolValue 28, // 24: xatu.libp2p.ValidateMessage.seq_no:type_name -> google.protobuf.StringValue - 29, // 25: xatu.libp2p.ValidateMessage.msg_size:type_name -> google.protobuf.UInt32Value + 29, // 25: xatu.libp2p.ValidateMessage.message_size:type_name -> google.protobuf.UInt32Value 28, // 26: xatu.libp2p.AddPeer.peer_id:type_name -> google.protobuf.StringValue 28, // 27: xatu.libp2p.AddPeer.protocol:type_name -> google.protobuf.StringValue 28, // 28: xatu.libp2p.RemovePeer.peer_id:type_name -> google.protobuf.StringValue - 28, // 29: xatu.libp2p.RecvRPC.received_from:type_name -> google.protobuf.StringValue + 28, // 29: xatu.libp2p.RecvRPC.peer_id:type_name -> google.protobuf.StringValue 17, // 30: xatu.libp2p.RecvRPC.meta:type_name -> xatu.libp2p.RPCMeta 28, // 31: xatu.libp2p.SendRPC.send_to:type_name -> google.protobuf.StringValue 17, // 32: xatu.libp2p.SendRPC.meta:type_name -> xatu.libp2p.RPCMeta diff --git a/pkg/proto/libp2p/trace.proto b/pkg/proto/libp2p/trace.proto index bc40ddb0..8447ff42 100644 --- a/pkg/proto/libp2p/trace.proto +++ b/pkg/proto/libp2p/trace.proto @@ -45,19 +45,19 @@ message PublishMessage { message RejectMessage { google.protobuf.StringValue message_id = 1 [json_name = "message_id"]; - google.protobuf.StringValue received_from = 2 [json_name = "received_from"]; + google.protobuf.StringValue peer_id = 2 [json_name = "peer_id"]; google.protobuf.StringValue reason = 3; google.protobuf.StringValue topic = 4; google.protobuf.StringValue seq_no = 5 [json_name = "seq_no"]; - google.protobuf.UInt32Value msg_size = 6 [json_name = "msg_size"]; + google.protobuf.UInt32Value message_size = 6 [json_name = "message_size"]; } message DuplicateMessage { google.protobuf.StringValue message_id = 1 [json_name = "message_id"]; - google.protobuf.StringValue received_from = 2 [json_name = "received_from"]; + google.protobuf.StringValue peer_id = 2 [json_name = "peer_id"]; google.protobuf.StringValue topic = 3; google.protobuf.StringValue seq_no = 4 [json_name = "seq_no"]; - google.protobuf.UInt32Value msg_size = 5 [json_name = "msg_size"]; + google.protobuf.UInt32Value message_size = 5 [json_name = "message_size"]; google.protobuf.BoolValue local = 6; } @@ -67,7 +67,7 @@ message DeliverMessage { google.protobuf.StringValue peer_id = 3 [json_name = "peer_id"]; google.protobuf.BoolValue local = 4; google.protobuf.StringValue seq_no = 5 [json_name = "seq_no"]; - google.protobuf.UInt32Value msg_size = 6 [json_name = "msg_size"]; + google.protobuf.UInt32Value message_size = 6 [json_name = "message_size"]; } message ValidateMessage { @@ -76,7 +76,7 @@ message ValidateMessage { google.protobuf.StringValue peer_id = 3 [json_name = "peer_id"]; google.protobuf.BoolValue local = 4; google.protobuf.StringValue seq_no = 5 [json_name = "seq_no"]; - google.protobuf.UInt32Value msg_size = 6 [json_name = "msg_size"]; + google.protobuf.UInt32Value message_size = 6 [json_name = "message_size"]; } message AddPeer { @@ -89,7 +89,7 @@ message RemovePeer { } message RecvRPC { - google.protobuf.StringValue received_from = 1 [json_name = "received_from"]; + google.protobuf.StringValue peer_id = 1 [json_name = "peer_id"]; RPCMeta meta = 2; } diff --git a/pkg/proto/xatu/event_ingester.pb.go b/pkg/proto/xatu/event_ingester.pb.go index 92162821..93b20a0e 100644 --- a/pkg/proto/xatu/event_ingester.pb.go +++ b/pkg/proto/xatu/event_ingester.pb.go @@ -2913,75 +2913,75 @@ type DecoratedEvent_EthV2BeaconBlockElaboratedAttestation struct { } type DecoratedEvent_Libp2PTracePublishMessage struct { - Libp2PTracePublishMessage *libp2p.PublishMessage `protobuf:"bytes,40,opt,name=libp2p_trace_publish_message,json=libp2pTracePublishMessage,proto3,oneof"` + Libp2PTracePublishMessage *libp2p.PublishMessage `protobuf:"bytes,40,opt,name=libp2p_trace_publish_message,json=LIBP2P_TRACE_PUBLISH_MESSAGE,proto3,oneof"` } type DecoratedEvent_Libp2PTraceRejectMessage struct { - Libp2PTraceRejectMessage *libp2p.RejectMessage `protobuf:"bytes,41,opt,name=libp2p_trace_reject_message,json=libp2pTraceRejectMessage,proto3,oneof"` + Libp2PTraceRejectMessage *libp2p.RejectMessage `protobuf:"bytes,41,opt,name=libp2p_trace_reject_message,json=LIBP2P_TRACE_REJECT_MESSAGE,proto3,oneof"` } type DecoratedEvent_Libp2PTraceDuplicateMessage struct { - Libp2PTraceDuplicateMessage *libp2p.DuplicateMessage `protobuf:"bytes,42,opt,name=libp2p_trace_duplicate_message,json=libp2pTraceDuplicateMessage,proto3,oneof"` + Libp2PTraceDuplicateMessage *libp2p.DuplicateMessage `protobuf:"bytes,42,opt,name=libp2p_trace_duplicate_message,json=LIBP2P_TRACE_DUPLICATE_MESSAGE,proto3,oneof"` } type DecoratedEvent_Libp2PTraceDeliverMessage struct { - Libp2PTraceDeliverMessage *libp2p.DeliverMessage `protobuf:"bytes,43,opt,name=libp2p_trace_deliver_message,json=libp2pTraceDeliverMessage,proto3,oneof"` + Libp2PTraceDeliverMessage *libp2p.DeliverMessage `protobuf:"bytes,43,opt,name=libp2p_trace_deliver_message,json=LIBP2P_TRACE_DELIVER_MESSAGE,proto3,oneof"` } type DecoratedEvent_Libp2PTraceAddPeer struct { - Libp2PTraceAddPeer *libp2p.AddPeer `protobuf:"bytes,44,opt,name=libp2p_trace_add_peer,json=libp2pTraceAddPeer,proto3,oneof"` + Libp2PTraceAddPeer *libp2p.AddPeer `protobuf:"bytes,44,opt,name=libp2p_trace_add_peer,json=LIBP2P_TRACE_ADD_PEER,proto3,oneof"` } type DecoratedEvent_Libp2PTraceRemovePeer struct { - Libp2PTraceRemovePeer *libp2p.RemovePeer `protobuf:"bytes,45,opt,name=libp2p_trace_remove_peer,json=libp2pTraceRemovePeer,proto3,oneof"` + Libp2PTraceRemovePeer *libp2p.RemovePeer `protobuf:"bytes,45,opt,name=libp2p_trace_remove_peer,json=LIBP2P_TRACE_REMOVE_PEER,proto3,oneof"` } type DecoratedEvent_Libp2PTraceRecvRpc struct { - Libp2PTraceRecvRpc *libp2p.RecvRPC `protobuf:"bytes,46,opt,name=libp2p_trace_recv_rpc,json=libp2pTraceRecvRpc,proto3,oneof"` + Libp2PTraceRecvRpc *libp2p.RecvRPC `protobuf:"bytes,46,opt,name=libp2p_trace_recv_rpc,json=LIBP2P_TRACE_RECV_RPC,proto3,oneof"` } type DecoratedEvent_Libp2PTraceSendRpc struct { - Libp2PTraceSendRpc *libp2p.SendRPC `protobuf:"bytes,47,opt,name=libp2p_trace_send_rpc,json=libp2pTraceSendRpc,proto3,oneof"` + Libp2PTraceSendRpc *libp2p.SendRPC `protobuf:"bytes,47,opt,name=libp2p_trace_send_rpc,json=LIBP2P_TRACE_SEND_RPC,proto3,oneof"` } type DecoratedEvent_Libp2PTraceDropRpc struct { - Libp2PTraceDropRpc *libp2p.DropRPC `protobuf:"bytes,48,opt,name=libp2p_trace_drop_rpc,json=libp2pTraceDropRpc,proto3,oneof"` + Libp2PTraceDropRpc *libp2p.DropRPC `protobuf:"bytes,48,opt,name=libp2p_trace_drop_rpc,json=LIBP2P_TRACE_DROP_RPC,proto3,oneof"` } type DecoratedEvent_Libp2PTraceJoin struct { - Libp2PTraceJoin *libp2p.Join `protobuf:"bytes,49,opt,name=libp2p_trace_join,json=libp2pTraceJoin,proto3,oneof"` + Libp2PTraceJoin *libp2p.Join `protobuf:"bytes,49,opt,name=libp2p_trace_join,json=LIBP2P_TRACE_JOIN,proto3,oneof"` } type DecoratedEvent_Libp2PTraceLeave struct { - Libp2PTraceLeave *libp2p.Leave `protobuf:"bytes,50,opt,name=libp2p_trace_leave,json=libp2pTraceLeave,proto3,oneof"` + Libp2PTraceLeave *libp2p.Leave `protobuf:"bytes,50,opt,name=libp2p_trace_leave,json=LIBP2P_TRACE_LEAVE,proto3,oneof"` } type DecoratedEvent_Libp2PTraceGraft struct { - Libp2PTraceGraft *libp2p.Graft `protobuf:"bytes,51,opt,name=libp2p_trace_graft,json=libp2pTraceGraft,proto3,oneof"` + Libp2PTraceGraft *libp2p.Graft `protobuf:"bytes,51,opt,name=libp2p_trace_graft,json=LIBP2P_TRACE_GRAFT,proto3,oneof"` } type DecoratedEvent_Libp2PTracePrune struct { - Libp2PTracePrune *libp2p.Prune `protobuf:"bytes,52,opt,name=libp2p_trace_prune,json=libp2pTracePrune,proto3,oneof"` + Libp2PTracePrune *libp2p.Prune `protobuf:"bytes,52,opt,name=libp2p_trace_prune,json=LIBP2P_TRACE_PRUNE,proto3,oneof"` } type DecoratedEvent_Libp2PTraceValidateMessage struct { - Libp2PTraceValidateMessage *libp2p.ValidateMessage `protobuf:"bytes,53,opt,name=libp2p_trace_validate_message,json=libp2pTraceValidateMessage,proto3,oneof"` + Libp2PTraceValidateMessage *libp2p.ValidateMessage `protobuf:"bytes,53,opt,name=libp2p_trace_validate_message,json=LIBP2P_TRACE_VALIDATE_MESSAGE,proto3,oneof"` } type DecoratedEvent_Libp2PTraceThrottlePeer struct { - Libp2PTraceThrottlePeer *libp2p.ThrottlePeer `protobuf:"bytes,54,opt,name=libp2p_trace_throttle_peer,json=libp2pTraceThrottlePeer,proto3,oneof"` + Libp2PTraceThrottlePeer *libp2p.ThrottlePeer `protobuf:"bytes,54,opt,name=libp2p_trace_throttle_peer,json=LIBP2P_TRACE_THROTTLE_PEER,proto3,oneof"` } type DecoratedEvent_Libp2PTraceUndeliverableMessage struct { - Libp2PTraceUndeliverableMessage *libp2p.UndeliverableMessage `protobuf:"bytes,55,opt,name=libp2p_trace_undeliverable_message,json=libp2pTraceUndeliverableMessage,proto3,oneof"` + Libp2PTraceUndeliverableMessage *libp2p.UndeliverableMessage `protobuf:"bytes,55,opt,name=libp2p_trace_undeliverable_message,json=LIBP2P_TRACE_UNDELIVERABLE_MESSAGE,proto3,oneof"` } type DecoratedEvent_Libp2PTraceConnected struct { - Libp2PTraceConnected *libp2p.Connected `protobuf:"bytes,56,opt,name=libp2p_trace_connected,json=libp2pTraceConnected,proto3,oneof"` + Libp2PTraceConnected *libp2p.Connected `protobuf:"bytes,56,opt,name=libp2p_trace_connected,json=LIBP2P_TRACE_CONNECTED,proto3,oneof"` } type DecoratedEvent_Libp2PTraceDisconnected struct { - Libp2PTraceDisconnected *libp2p.Disconnected `protobuf:"bytes,57,opt,name=libp2p_trace_disconnected,json=libp2pTraceDisconnected,proto3,oneof"` + Libp2PTraceDisconnected *libp2p.Disconnected `protobuf:"bytes,57,opt,name=libp2p_trace_disconnected,json=LIBP2P_TRACE_DISCONNECTED,proto3,oneof"` } func (*DecoratedEvent_EthV1EventsAttestation) isDecoratedEvent_Data() {} @@ -9276,7 +9276,7 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x43, 0x45, 0x5f, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x53, 0x5f, 0x42, 0x59, 0x5f, 0x52, 0x4f, 0x4f, 0x54, 0x10, 0x40, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, - 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x41, 0x22, 0xcf, 0x2c, 0x0a, 0x0e, + 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x41, 0x22, 0xff, 0x2c, 0x0a, 0x0e, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, @@ -9538,102 +9538,105 @@ var file_pkg_proto_xatu_event_ingester_proto_rawDesc = []byte{ 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x35, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x49, 0x5f, 0x45, 0x54, 0x48, 0x5f, 0x56, 0x32, 0x5f, 0x42, 0x45, 0x41, 0x43, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x45, 0x4c, 0x41, 0x42, 0x4f, 0x52, 0x41, 0x54, 0x45, - 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x5e, 0x0a, + 0x44, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x48, 0x00, 0x52, 0x19, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x5b, 0x0a, - 0x1b, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, - 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x29, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, - 0x52, 0x18, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6a, - 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x64, 0x0a, 0x1e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x2a, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x2e, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x48, 0x00, 0x52, 0x1b, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x5e, 0x0a, 0x1c, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x19, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x54, 0x72, 0x61, - 0x63, 0x65, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x49, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x5f, 0x61, 0x64, 0x64, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x41, 0x64, - 0x64, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x18, 0x6c, - 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, - 0x54, 0x72, 0x61, 0x63, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, - 0x49, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, - 0x72, 0x65, 0x63, 0x76, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, 0x65, 0x63, - 0x76, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x52, 0x65, 0x63, 0x76, 0x52, 0x70, 0x63, 0x12, 0x49, 0x0a, 0x15, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x5f, - 0x72, 0x70, 0x63, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, - 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x50, 0x43, 0x48, - 0x00, 0x52, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x54, 0x72, 0x61, 0x63, 0x65, 0x53, 0x65, - 0x6e, 0x64, 0x52, 0x70, 0x63, 0x12, 0x49, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x30, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x12, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x70, 0x63, - 0x12, 0x3f, 0x0a, 0x11, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, - 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x48, 0x00, - 0x52, 0x0f, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x54, 0x72, 0x61, 0x63, 0x65, 0x4a, 0x6f, 0x69, - 0x6e, 0x12, 0x42, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, - 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4c, 0x65, 0x61, 0x76, - 0x65, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x42, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, - 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x33, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, - 0x47, 0x72, 0x61, 0x66, 0x74, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x47, 0x72, 0x61, 0x66, 0x74, 0x12, 0x42, 0x0a, 0x12, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, 0x18, - 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x2e, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x54, 0x72, 0x61, 0x63, 0x65, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x12, 0x61, 0x0a, - 0x1d, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x35, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x48, 0x00, 0x52, 0x1a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x54, 0x72, 0x61, 0x63, - 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x58, 0x0a, 0x1a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, - 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x36, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, - 0x32, 0x70, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x50, 0x65, 0x65, 0x72, 0x48, - 0x00, 0x52, 0x17, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x54, 0x72, 0x61, 0x63, 0x65, 0x54, 0x68, - 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x50, 0x65, 0x65, 0x72, 0x12, 0x70, 0x0a, 0x22, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x6c, - 0x69, 0x76, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x61, 0x62, - 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1f, 0x6c, 0x69, 0x62, - 0x70, 0x32, 0x70, 0x54, 0x72, 0x61, 0x63, 0x65, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, - 0x72, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4e, 0x0a, 0x16, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, - 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x14, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x57, 0x0a, 0x19, - 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x69, 0x73, - 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x69, - 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x17, 0x6c, 0x69, - 0x62, 0x70, 0x32, 0x70, 0x54, 0x72, 0x61, 0x63, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x58, 0x0a, + 0x48, 0x00, 0x52, 0x1c, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x12, 0x5e, 0x0a, 0x1b, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, + 0x5f, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x48, 0x00, 0x52, 0x1b, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x12, 0x67, 0x0a, 0x1e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, + 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1e, 0x4c, 0x49, 0x42, 0x50, 0x32, + 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, + 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x61, 0x0a, 0x1c, 0x6c, 0x69, 0x62, + 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, + 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x65, + 0x6c, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1c, + 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, 0x4c, + 0x49, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x4c, 0x0a, 0x15, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, + 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, 0x61, + 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x65, 0x65, + 0x72, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, + 0x45, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x50, 0x45, 0x45, 0x52, 0x12, 0x55, 0x0a, 0x18, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, 0x18, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x50, 0x45, 0x45, + 0x52, 0x12, 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, + 0x65, 0x5f, 0x72, 0x65, 0x63, 0x76, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x52, + 0x65, 0x63, 0x76, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, + 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x56, 0x5f, 0x52, 0x50, 0x43, 0x12, + 0x4c, 0x0a, 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, + 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x53, 0x65, 0x6e, + 0x64, 0x52, 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x4c, 0x0a, + 0x15, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x72, + 0x6f, 0x70, 0x5f, 0x72, 0x70, 0x63, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x78, + 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x52, + 0x50, 0x43, 0x48, 0x00, 0x52, 0x15, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x5f, 0x52, 0x50, 0x43, 0x12, 0x41, 0x0a, 0x11, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, + 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x11, 0x4c, 0x49, 0x42, + 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x12, 0x44, + 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x6c, + 0x65, 0x61, 0x76, 0x65, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x48, 0x00, + 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x4c, + 0x45, 0x41, 0x56, 0x45, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, + 0x72, 0x61, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x66, 0x74, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x47, + 0x72, 0x61, 0x66, 0x74, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x46, 0x54, 0x12, 0x44, 0x0a, 0x12, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x75, 0x6e, 0x65, + 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x2e, 0x50, 0x72, 0x75, 0x6e, 0x65, 0x48, 0x00, 0x52, 0x12, 0x4c, 0x49, + 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x55, 0x4e, 0x45, + 0x12, 0x64, 0x0a, 0x1d, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, + 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, + 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1d, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x4d, + 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x5b, 0x0a, 0x1a, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, + 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x5f, + 0x70, 0x65, 0x65, 0x72, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x78, 0x61, 0x74, + 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, + 0x65, 0x50, 0x65, 0x65, 0x72, 0x48, 0x00, 0x52, 0x1a, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x48, 0x52, 0x4f, 0x54, 0x54, 0x4c, 0x45, 0x5f, 0x50, + 0x45, 0x45, 0x52, 0x12, 0x73, 0x0a, 0x22, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x65, 0x5f, 0x75, 0x6e, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x55, 0x6e, + 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x48, 0x00, 0x52, 0x22, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x41, 0x42, 0x4c, 0x45, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x12, 0x50, 0x0a, 0x16, 0x6c, 0x69, 0x62, 0x70, + 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, + 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x48, 0x00, 0x52, 0x16, 0x4c, 0x49, 0x42, 0x50, 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, + 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x12, 0x59, 0x0a, 0x19, 0x6c, 0x69, + 0x62, 0x70, 0x32, 0x70, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x39, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x78, 0x61, 0x74, 0x75, 0x2e, 0x6c, 0x69, 0x62, 0x70, 0x32, 0x70, 0x2e, 0x44, 0x69, 0x73, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x19, 0x4c, 0x49, 0x42, 0x50, + 0x32, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, + 0x45, 0x43, 0x54, 0x45, 0x44, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x58, 0x0a, 0x0d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x19, 0x2e, 0x78, 0x61, 0x74, 0x75, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, diff --git a/pkg/proto/xatu/event_ingester.proto b/pkg/proto/xatu/event_ingester.proto index db1cbe22..c36e89b1 100644 --- a/pkg/proto/xatu/event_ingester.proto +++ b/pkg/proto/xatu/event_ingester.proto @@ -1295,23 +1295,41 @@ message DecoratedEvent { xatu.eth.v1.ElaboratedAttestation eth_v2_beacon_block_elaborated_attestation = 39 [ json_name = "BEACON_API_ETH_V2_BEACON_BLOCK_ELABORATED_ATTESTATION" ]; - xatu.libp2p.PublishMessage libp2p_trace_publish_message = 40; - xatu.libp2p.RejectMessage libp2p_trace_reject_message = 41; - xatu.libp2p.DuplicateMessage libp2p_trace_duplicate_message = 42; - xatu.libp2p.DeliverMessage libp2p_trace_deliver_message = 43; - xatu.libp2p.AddPeer libp2p_trace_add_peer = 44; - xatu.libp2p.RemovePeer libp2p_trace_remove_peer = 45; - xatu.libp2p.RecvRPC libp2p_trace_recv_rpc = 46; - xatu.libp2p.SendRPC libp2p_trace_send_rpc = 47; - xatu.libp2p.DropRPC libp2p_trace_drop_rpc = 48; - xatu.libp2p.Join libp2p_trace_join = 49; - xatu.libp2p.Leave libp2p_trace_leave = 50; - xatu.libp2p.Graft libp2p_trace_graft = 51; - xatu.libp2p.Prune libp2p_trace_prune = 52; - xatu.libp2p.ValidateMessage libp2p_trace_validate_message = 53; - xatu.libp2p.ThrottlePeer libp2p_trace_throttle_peer = 54; - xatu.libp2p.UndeliverableMessage libp2p_trace_undeliverable_message = 55; - xatu.libp2p.Connected libp2p_trace_connected = 56; - xatu.libp2p.Disconnected libp2p_trace_disconnected = 57; + xatu.libp2p.PublishMessage libp2p_trace_publish_message = 40 + [ json_name = "LIBP2P_TRACE_PUBLISH_MESSAGE" ]; + xatu.libp2p.RejectMessage libp2p_trace_reject_message = 41 + [ json_name = "LIBP2P_TRACE_REJECT_MESSAGE" ]; + xatu.libp2p.DuplicateMessage libp2p_trace_duplicate_message = 42 + [ json_name = "LIBP2P_TRACE_DUPLICATE_MESSAGE" ]; + xatu.libp2p.DeliverMessage libp2p_trace_deliver_message = 43 + [ json_name = "LIBP2P_TRACE_DELIVER_MESSAGE" ]; + xatu.libp2p.AddPeer libp2p_trace_add_peer = 44 + [ json_name = "LIBP2P_TRACE_ADD_PEER" ]; + xatu.libp2p.RemovePeer libp2p_trace_remove_peer = 45 + [ json_name = "LIBP2P_TRACE_REMOVE_PEER" ]; + xatu.libp2p.RecvRPC libp2p_trace_recv_rpc = 46 + [ json_name = "LIBP2P_TRACE_RECV_RPC" ]; + xatu.libp2p.SendRPC libp2p_trace_send_rpc = 47 + [ json_name = "LIBP2P_TRACE_SEND_RPC" ]; + xatu.libp2p.DropRPC libp2p_trace_drop_rpc = 48 + [ json_name = "LIBP2P_TRACE_DROP_RPC" ]; + xatu.libp2p.Join libp2p_trace_join = 49 + [ json_name = "LIBP2P_TRACE_JOIN" ]; + xatu.libp2p.Leave libp2p_trace_leave = 50 + [ json_name = "LIBP2P_TRACE_LEAVE" ]; + xatu.libp2p.Graft libp2p_trace_graft = 51 + [ json_name = "LIBP2P_TRACE_GRAFT" ]; + xatu.libp2p.Prune libp2p_trace_prune = 52 + [ json_name = "LIBP2P_TRACE_PRUNE" ]; + xatu.libp2p.ValidateMessage libp2p_trace_validate_message = 53 + [ json_name = "LIBP2P_TRACE_VALIDATE_MESSAGE" ]; + xatu.libp2p.ThrottlePeer libp2p_trace_throttle_peer = 54 + [ json_name = "LIBP2P_TRACE_THROTTLE_PEER" ]; + xatu.libp2p.UndeliverableMessage libp2p_trace_undeliverable_message = 55 + [ json_name = "LIBP2P_TRACE_UNDELIVERABLE_MESSAGE" ]; + xatu.libp2p.Connected libp2p_trace_connected = 56 + [ json_name = "LIBP2P_TRACE_CONNECTED" ]; + xatu.libp2p.Disconnected libp2p_trace_disconnected = 57 + [ json_name = "LIBP2P_TRACE_DISCONNECTED" ]; }; }