From d6ccc21dfff186df13236419febdba724742996b Mon Sep 17 00:00:00 2001 From: Renato Dinhani <101204870+dinhani-cw@users.noreply.github.com> Date: Tue, 11 Jun 2024 15:16:54 -0300 Subject: [PATCH 1/7] feat: remove server side bucket configuration (#1068) --- src/config.rs | 7 -- src/globals.rs | 2 +- src/infra/metrics/metrics_definitions.rs | 116 +++++++++++------------ src/infra/metrics/metrics_init.rs | 28 +----- src/infra/metrics/metrics_macros.rs | 2 - src/infra/metrics/metrics_types.rs | 41 -------- 6 files changed, 61 insertions(+), 135 deletions(-) diff --git a/src/config.rs b/src/config.rs index 1d8d84aaa..4fd5fe62f 100644 --- a/src/config.rs +++ b/src/config.rs @@ -45,8 +45,6 @@ use crate::eth::Executor; use crate::eth::TransactionRelayer; use crate::ext::binary_name; use crate::ext::parse_duration; -#[cfg(feature = "metrics")] -use crate::infra::metrics::MetricsHistogramKind; use crate::infra::tracing::info_task_spawn; use crate::infra::tracing::warn_task_tx_closed; use crate::infra::tracing::TracingLogFormat; @@ -88,11 +86,6 @@ pub struct CommonConfig { #[arg(long = "metrics-exporter-address", env = "METRICS_EXPORTER_ADDRESS", default_value = "0.0.0.0:9000")] pub metrics_exporter_address: SocketAddr, - #[cfg(feature = "metrics")] - /// Metrics histograms will be collected using summaries or histograms (buckets)? - #[arg(long = "metrics-histogram-kind", env = "METRICS_HISTOGRAM_KIND", default_value = "summary")] - pub metrics_histogram_kind: MetricsHistogramKind, - // Address where Tokio Console GRPC server will be exposed. #[arg(long = "tokio-console-address", env = "TRACING_TOKIO_CONSOLE_ADDRESS", default_value = "0.0.0.0:6669")] pub tokio_console_address: SocketAddr, diff --git a/src/globals.rs b/src/globals.rs index 980a625b7..ab7f5badf 100644 --- a/src/globals.rs +++ b/src/globals.rs @@ -57,7 +57,7 @@ where // init metrics #[cfg(feature = "metrics")] - infra::init_metrics(common.metrics_exporter_address, common.metrics_histogram_kind).expect("failed to init metrics"); + infra::init_metrics(common.metrics_exporter_address).expect("failed to init metrics"); // init sentry let _sentry_guard = common diff --git a/src/infra/metrics/metrics_definitions.rs b/src/infra/metrics/metrics_definitions.rs index 0dc9f7038..df15bcde6 100644 --- a/src/infra/metrics/metrics_definitions.rs +++ b/src/infra/metrics/metrics_definitions.rs @@ -5,16 +5,16 @@ metrics! { group: json_rpc, "Number of JSON-RPC requests active right now." - gauge rpc_requests_active{client, method, function} [], + gauge rpc_requests_active{client, method, function}, "Number of JSON-RPC requests that started." - counter rpc_requests_started{client, method, function} [], + counter rpc_requests_started{client, method, function}, "Number of JSON-RPC requests that finished." - histogram_duration rpc_requests_finished{client, method, function, result, success} [], + histogram_duration rpc_requests_finished{client, method, function, result, success}, "Number of JSON-RPC subscriptions active right now." - gauge rpc_subscriptions_active{subscription} [] + gauge rpc_subscriptions_active{subscription} } // Storage reads. @@ -22,31 +22,31 @@ metrics! { group: storage_read, "Time to execute storage check_conflicts operation." - histogram_duration storage_check_conflicts{success, conflicted} [], + histogram_duration storage_check_conflicts{success, conflicted}, "Time to execute storage read_active_block_number operation." - histogram_duration storage_read_active_block_number{success} [], + histogram_duration storage_read_active_block_number{success}, "Time to execute storage read_mined_block_number operation." - histogram_duration storage_read_mined_block_number{success} [], + histogram_duration storage_read_mined_block_number{success}, "Time to execute storage read_account operation." - histogram_duration storage_read_account{found_at, point_in_time, success} [], + histogram_duration storage_read_account{found_at, point_in_time, success}, "Time to execute storage read_block operation." - histogram_duration storage_read_block{success} [], + histogram_duration storage_read_block{success}, "Time to execute storage read_logs operation." - histogram_duration storage_read_logs{success} [], + histogram_duration storage_read_logs{success}, "Time to execute storage read_slot operation." - histogram_duration storage_read_slot{found_at, point_in_time, success} [], + histogram_duration storage_read_slot{found_at, point_in_time, success}, "Time to execute storage read_slot operation." - histogram_duration storage_read_slots{point_in_time, success} [], + histogram_duration storage_read_slots{point_in_time, success}, "Time to execute storage read_mined_transaction operation." - histogram_duration storage_read_mined_transaction{success} [] + histogram_duration storage_read_mined_transaction{success} } // Storage writes. @@ -54,31 +54,31 @@ metrics! { group: storage_write, "Time to execute storage set_active_block_number operation." - histogram_duration storage_set_active_block_number{success} [], + histogram_duration storage_set_active_block_number{success}, "Time to execute storage set_mined_block_number operation." - histogram_duration storage_set_mined_block_number{success} [], + histogram_duration storage_set_mined_block_number{success}, "Time to execute storage save_accounts operation." - histogram_duration storage_save_accounts{success} [], + histogram_duration storage_save_accounts{success}, "Time to execute storage save_account_changes operation." - histogram_duration storage_save_execution{success} [], + histogram_duration storage_save_execution{success}, "Time to execute storage flush operation." - histogram_duration storage_flush{kind, success} [], + histogram_duration storage_flush{kind, success}, "Time to execute storage set_active_external_block operation." - histogram_duration storage_set_active_external_block{success} [], + histogram_duration storage_set_active_external_block{success}, "Time to execute storage finish_block operation." - histogram_duration storage_finish_block{success} [], + histogram_duration storage_finish_block{success}, "Time to execute storage save_block operation." - histogram_duration storage_save_block{size_by_tx, size_by_gas, success} [], + histogram_duration storage_save_block{size_by_tx, size_by_gas, success}, "Time to execute storage reset operation." - histogram_duration storage_reset{kind, success} [] + histogram_duration storage_reset{kind, success} } // Importer online metrics. @@ -86,10 +86,10 @@ metrics! { group: importer_online, "Time to import one block." - histogram_duration import_online_mined_block{} [], + histogram_duration import_online_mined_block{}, "Number of transactions imported." - counter importer_online_transactions_total{} [] + counter importer_online_transactions_total{} } // Execution metrics. @@ -97,120 +97,120 @@ metrics! { group: executor, "Time to execute and persist an external block with all transactions." - histogram_duration executor_external_block{} [], + histogram_duration executor_external_block{}, "Time to execute and persist temporary changes of a single transaction inside import_offline operation." - histogram_duration executor_external_transaction{function} [], + histogram_duration executor_external_transaction{function}, "Gas spent to execute a single transaction inside import_offline operation." - histogram_counter executor_external_transaction_gas{function} [], + histogram_counter executor_external_transaction_gas{function}, "Number of account reads when importing an external block." - histogram_counter executor_external_block_account_reads{} [0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 20., 30., 40., 50., 60., 70., 80., 90., 100., 150., 200.], + histogram_counter executor_external_block_account_reads{}, "Number of slot reads when importing an external block." - histogram_counter executor_external_block_slot_reads{} [0., 10., 20., 30., 40., 50., 60., 70., 80., 90., 100., 200., 300., 400., 500., 600., 700., 800., 900., 1000., 2000., 3000., 4000., 5000., 6000., 7000., 8000., 9000., 10000.], + histogram_counter executor_external_block_slot_reads{}, "Number of slot reads cached when importing an external block." - histogram_counter executor_external_block_slot_reads_cached{} [0., 10., 20., 30., 40., 50., 60., 70., 80., 90., 100., 200., 300., 400., 500., 600., 700., 800., 900., 1000., 2000., 3000., 4000., 5000., 6000., 7000., 8000., 9000., 10000.], + histogram_counter executor_external_block_slot_reads_cached{}, "Time to execute a transaction received with eth_sendRawTransaction." - histogram_duration executor_transact{success, function} [], + histogram_duration executor_transact{success, function}, "Gas spent execute a transaction received with eth_sendRawTransaction." - histogram_counter executor_transact_gas{success, function} [], + histogram_counter executor_transact_gas{success, function}, "Time to execute a transaction received with eth_call or eth_estimateGas." - histogram_duration executor_call{success, function} [], + histogram_duration executor_call{success, function}, "Gas spent to execute a transaction received with eth_call or eth_estimateGas." - histogram_counter executor_call_gas{function} [] + histogram_counter executor_call_gas{function} } metrics! { group: evm, "Time to execute EVM execution." - histogram_duration evm_execution{point_in_time, success} [], + histogram_duration evm_execution{point_in_time, success}, "Number of accounts read in a single EVM execution." - histogram_counter evm_execution_account_reads{} [0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.], + histogram_counter evm_execution_account_reads{}, "Number of slots read in a single EVM execution." - histogram_counter evm_execution_slot_reads{} [0., 10., 20., 30., 40., 50., 60., 70., 80., 90., 100., 200., 300., 400., 500., 600., 700., 800., 900., 1000.], + histogram_counter evm_execution_slot_reads{}, "Number of slots read cached in a single EVM execution." - histogram_counter evm_execution_slot_reads_cached{} [0., 10., 20., 30., 40., 50., 60., 70., 80., 90., 100., 200., 300., 400., 500., 600., 700., 800., 900., 1000.] + histogram_counter evm_execution_slot_reads_cached{} } metrics! { group: rocks, "Number of issued gets to rocksdb." - gauge rocks_db_get{dbname} [], + gauge rocks_db_get{dbname}, "Number of writes issued to rocksdb." - gauge rocks_db_write{dbname} [], + gauge rocks_db_write{dbname}, "Time spent compacting data." - gauge rocks_compaction_time{dbname} [], + gauge rocks_compaction_time{dbname}, "CPU time spent compacting data." - gauge rocks_compaction_cpu_time{dbname} [], + gauge rocks_compaction_cpu_time{dbname}, "Time spent flushing memtable to disk." - gauge rocks_flush_time{dbname} [], + gauge rocks_flush_time{dbname}, "Number of block cache misses." - gauge rocks_block_cache_miss{dbname} [], + gauge rocks_block_cache_miss{dbname}, "Number of block cache hits." - gauge rocks_block_cache_hit{dbname} [], + gauge rocks_block_cache_hit{dbname}, "Number of bytes written." - gauge rocks_bytes_written{dbname} [], + gauge rocks_bytes_written{dbname}, "Number of bytes read." - gauge rocks_bytes_read{dbname} [] + gauge rocks_bytes_read{dbname} } metrics! { group: consensus, "Time to run Consensus::append_block_to_peer." - histogram_duration consensus_append_block_to_peer{} [], + histogram_duration consensus_append_block_to_peer{}, "Time to run Consensus::start_election." - histogram_duration consensus_start_election{} [], + histogram_duration consensus_start_election{}, "Time to run Consensus::forward." - histogram_duration consensus_forward{} [], + histogram_duration consensus_forward{}, "The diff between what is on the follower database and what it received from Append Entries." - gauge append_entries_block_number_diff{} [] + gauge append_entries_block_number_diff{} } metrics! { group: external_relayer, "Time to run ExternalRelayer::relay_next_block." - histogram_duration relay_next_block{} [], + histogram_duration relay_next_block{}, "Time to run ExternalRelayer::compute_tx_dag." - histogram_duration compute_tx_dag{} [], + histogram_duration compute_tx_dag{}, "Time to run ExternalRelayer::relay_and_check_mempool." - histogram_duration relay_and_check_mempool{} [], + histogram_duration relay_and_check_mempool{}, "Time to run ExternalRelayer::take_roots." - histogram_duration take_roots{} [], + histogram_duration take_roots{}, "Time to run ExternalRelayer::relay_dag." - histogram_duration relay_dag{} [], + histogram_duration relay_dag{}, "Number of execution mismatches." - histogram_duration save_mismatch{} [], + histogram_duration save_mismatch{}, "Time to run ExternalRelayerClient::send_to_relayer." - histogram_duration send_to_relayer{} [] + histogram_duration send_to_relayer{} } diff --git a/src/infra/metrics/metrics_init.rs b/src/infra/metrics/metrics_init.rs index b182aa497..70092962b 100644 --- a/src/infra/metrics/metrics_init.rs +++ b/src/infra/metrics/metrics_init.rs @@ -4,7 +4,6 @@ use std::net::SocketAddr; use std::stringify; -use metrics_exporter_prometheus::Matcher; use metrics_exporter_prometheus::PrometheusBuilder; use crate::infra::metrics::metrics_for_consensus; @@ -16,21 +15,11 @@ use crate::infra::metrics::metrics_for_json_rpc; use crate::infra::metrics::metrics_for_rocks; use crate::infra::metrics::metrics_for_storage_read; use crate::infra::metrics::metrics_for_storage_write; -use crate::infra::metrics::MetricsHistogramKind; - -/// Default bucket for duration based metrics. -const BUCKET_FOR_DURATION: [f64; 37] = [ - 0.0001, 0.0002, 0.0003, 0.0004, 0.0005, 0.0006, 0.0007, 0.0008, 0.0009, // 0.1ms to 0.9ms - 0.001, 0.002, 0.003, 0.004, 0.005, 0.006, 0.007, 0.008, 0.009, // 1ms to 9ms - 0.01, 0.02, 0.03, 0.04, 0.05, 0.06, 0.07, 0.08, 0.09, // 10ms to 90ms - 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, // 100ms to 900ms - 1., // 1s or more -]; /// Init application global metrics. /// /// Default configuration runs metrics exporter on port 9000. -pub fn init_metrics(address: SocketAddr, histogram_kind: MetricsHistogramKind) -> anyhow::Result<()> { +pub fn init_metrics(address: SocketAddr) -> anyhow::Result<()> { tracing::info!(%address, "creating metrics exporter"); // get metric definitions @@ -46,20 +35,7 @@ pub fn init_metrics(address: SocketAddr, histogram_kind: MetricsHistogramKind) - metrics.extend(metrics_for_external_relayer()); // init exporter - let mut builder = PrometheusBuilder::new().with_http_listener(address); - - // init buckets - if histogram_kind == MetricsHistogramKind::Histogram { - builder = builder.set_buckets(&BUCKET_FOR_DURATION).unwrap(); - for metric in &metrics { - if metric.has_custom_buckets() { - builder = builder.set_buckets_for_metric(Matcher::Full(metric.name.to_string()), &metric.buckets).unwrap(); - } - } - } - - // init exporter - if let Err(e) = builder.install() { + if let Err(e) = PrometheusBuilder::new().with_http_listener(address).install() { tracing::error!(reason = ?e, %address, "failed to create metrics exporter"); } diff --git a/src/infra/metrics/metrics_macros.rs b/src/infra/metrics/metrics_macros.rs index 4165d7ca2..3cb071354 100644 --- a/src/infra/metrics/metrics_macros.rs +++ b/src/infra/metrics/metrics_macros.rs @@ -7,7 +7,6 @@ macro_rules! metrics { $( $description:literal $kind:ident $name:ident{ $($label:ident),* } - $buckets:expr ),+ ) => { // Generate function to get metric definition. @@ -25,7 +24,6 @@ macro_rules! metrics { kind: stringify!($kind), name: stringify!([]), description: stringify!($description), - buckets: $buckets.to_vec() }, )+ ] diff --git a/src/infra/metrics/metrics_types.rs b/src/infra/metrics/metrics_types.rs index 00c8408da..a8c0422ec 100644 --- a/src/infra/metrics/metrics_types.rs +++ b/src/infra/metrics/metrics_types.rs @@ -1,15 +1,10 @@ use std::borrow::Cow; -use std::str::FromStr; -use anyhow::anyhow; -use display_json::DebugAsJson; use metrics::describe_counter; use metrics::describe_gauge; use metrics::describe_histogram; use metrics::Label; -use crate::ext::not; - // ----------------------------------------------------------------------------- // Metric // ----------------------------------------------------------------------------- @@ -19,15 +14,9 @@ pub(super) struct Metric { pub(super) kind: &'static str, pub(super) name: &'static str, pub(super) description: &'static str, - pub(super) buckets: Vec, } impl Metric { - /// Checks if metric has custom buckets defined. - pub(super) fn has_custom_buckets(&self) -> bool { - not(self.buckets.is_empty()) - } - /// Register description with the provider. pub(super) fn register_description(&self) { match self.kind { @@ -102,33 +91,3 @@ pub(super) fn into_labels(labels: Vec<(&'static str, MetricLabelValue)>) -> Vec< .map(|(key, value)| Label::new(key, value)) .collect() } - -// ----------------------------------------------------------------------------- -// MetricsHistogramKind -// ----------------------------------------------------------------------------- - -/// See: -#[derive(DebugAsJson, Clone, Copy, Eq, PartialEq, serde::Serialize)] -pub enum MetricsHistogramKind { - /// Quantiles are calculated on client-side based on recent data kept in-memory. - /// - /// Client defines the quantiles to calculate. - Summary, - - /// Quantiles are calculated on server-side based on bucket counts. - /// - /// Cient defines buckets to group observations. - Histogram, -} - -impl FromStr for MetricsHistogramKind { - type Err = anyhow::Error; - - fn from_str(s: &str) -> anyhow::Result { - match s.to_lowercase().trim() { - "summary" => Ok(Self::Summary), - "histogram" => Ok(Self::Histogram), - s => Err(anyhow!("unknown metrics histogram kind: {}", s)), - } - } -} From c29b13bdbfd100196d72abe859a0819d0db7b693 Mon Sep 17 00:00:00 2001 From: Maycon Amaro <131882788+mayconamaroCW@users.noreply.github.com> Date: Tue, 11 Jun 2024 15:46:58 -0300 Subject: [PATCH 2/7] ci: ignore postgres tests (#1069) --- .github/workflows/e2e-contracts-postgres.yml | 83 -------------------- .github/workflows/e2e-test.yml | 20 ----- src/eth/primitives/bytecode.rs | 1 + 3 files changed, 1 insertion(+), 103 deletions(-) delete mode 100644 .github/workflows/e2e-contracts-postgres.yml diff --git a/.github/workflows/e2e-contracts-postgres.yml b/.github/workflows/e2e-contracts-postgres.yml deleted file mode 100644 index df676b3b7..000000000 --- a/.github/workflows/e2e-contracts-postgres.yml +++ /dev/null @@ -1,83 +0,0 @@ -name: Contracts E2E Postgres tests - -on: - pull_request: - branches: - - '*' - paths-ignore: - - '.github/workflows/deploy.yml' - - '.github/workflows/docs-release.yml' - - '.github/workflows/outdated.yml' - - '.github/workflows/comment-tag-report.yml' - - '.github/workflows/pr-agent.yml' - - '.github/CODEOWNERS' - - 'config/**' - - 'README.md' - - 'LICENSE' - - 'CONTRIBUTING.md' - - 'utils/slack-notifiers/**' - workflow_dispatch: - push: # Rebuild cache policy - branches: - - 'main' - paths: - - 'Cargo.lock' - - 'Cargo.toml' - -jobs: - contract_test_psql: - strategy: - fail-fast: false - matrix: - contract: [token, pix, periphery, compound, yield, multisig] - name: E2E Postgres on ${{ matrix.contract }} - runs-on: ubuntu-latest - timeout-minutes: 45 - - concurrency: - group: ${{ github.workflow }}-${{ matrix.contract }}-${{ github.ref || github.run_id }} - cancel-in-progress: true - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Rust - run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.75 - - - name: Rust Cache - uses: Swatinem/rust-cache@v2 - id: cache-cargo - with: - prefix-key: ${{ runner.os }}-v3-cargo - shared-key: stable-release - key: ${{ hashFiles('Cargo.lock', 'Cargo.toml') }} - cache-provider: "github" - cache-directories: "~/.cargo/bin/" - - - name: Install protoc - run: sudo apt-get install -y protobuf-compiler - - - name: Set up Just - uses: extractions/setup-just@v2 - - - name: Install Node.js - uses: actions/setup-node@v4 - with: - node-version-file: .tool-versions - - - name: Set up dependencies - if: ${{ steps.cache-cargo.outputs.cache-hit != 'true' }} - run: | - cargo install killport || true - cargo install wait-service || true - - - name: Clone ${{ matrix.contract }} repository - run: just contracts-clone --${{ matrix.contract }} - - - name: Run e2e tests - run: just contracts-test-stratus-postgres --${{ matrix.contract }} - env: - CARGO_PROFILE_RELEASE_DEBUG: 0 - RUST_LOG: off - RELEASE: 1 diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml index f7c45d237..fdf8cc4f1 100644 --- a/.github/workflows/e2e-test.yml +++ b/.github/workflows/e2e-test.yml @@ -35,16 +35,6 @@ jobs: group: ${{ github.workflow }}-automine-inmemory-${{ github.ref || github.run_id }} cancel-in-progress: true - e2e-automine-stratus-postgres: - name: E2E Automine Stratus Postgres - uses: ./.github/workflows/_setup-e2e.yml - with: - justfile_recipe: 'e2e-stratus-postgres automine' - - concurrency: - group: ${{ github.workflow }}-automine-postgres-${{ github.ref || github.run_id }} - cancel-in-progress: true - e2e-automine-stratus-rocks: name: E2E Automine Stratus Rocks uses: ./.github/workflows/_setup-e2e.yml @@ -65,16 +55,6 @@ jobs: group: ${{ github.workflow }}-external-inmemory-${{ github.ref || github.run_id }} cancel-in-progress: true - e2e-external-stratus-postgres: - name: E2E External Stratus Postgres - uses: ./.github/workflows/_setup-e2e.yml - with: - justfile_recipe: 'e2e-stratus-postgres external' - - concurrency: - group: ${{ github.workflow }}-external-postgres-${{ github.ref || github.run_id }} - cancel-in-progress: true - e2e-external-stratus-rocks: name: E2E External Stratus Rocks uses: ./.github/workflows/_setup-e2e.yml diff --git a/src/eth/primitives/bytecode.rs b/src/eth/primitives/bytecode.rs index 6a5898e86..244b0579f 100644 --- a/src/eth/primitives/bytecode.rs +++ b/src/eth/primitives/bytecode.rs @@ -96,6 +96,7 @@ mod tests { const BYTECODE_PIX: &str = include_str!("../../../tests/fixtures/bytecodes/PixCashier.bin"); #[test] + #[ignore] // TODO: add assertions based on storage layout file generated from source code. fn parse_bytecode_slots() { // brlc snapshot From 852ba4817710d68c2f377ba3d05977f2828ec9eb Mon Sep 17 00:00:00 2001 From: Maycon Amaro <131882788+mayconamaroCW@users.noreply.github.com> Date: Tue, 11 Jun 2024 15:55:26 -0300 Subject: [PATCH 3/7] test(clock): reduce duration to 60s (#1071) --- utils/block-time-check.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/block-time-check.sh b/utils/block-time-check.sh index c5180add1..f15eef33e 100755 --- a/utils/block-time-check.sh +++ b/utils/block-time-check.sh @@ -2,7 +2,7 @@ set -e -sleep_interval=120 +sleep_interval=60 error_margin=0.05 echo -n "-> Waiting for blocks to generate... " From 8562bb034fea1ab3882ba2b4b3038f4186f6c48a Mon Sep 17 00:00:00 2001 From: Renato Dinhani <101204870+dinhani-cw@users.noreply.github.com> Date: Tue, 11 Jun 2024 16:20:11 -0300 Subject: [PATCH 4/7] chore: upgrade some dependencies, including metrics (#1070) --- Cargo.lock | 419 +++++++++++++++++++++------- Cargo.toml | 16 +- src/infra/metrics/metrics_macros.rs | 15 +- 3 files changed, 339 insertions(+), 111 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3812f38bf..26123dcad 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -775,9 +775,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.4" +version = "4.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" dependencies = [ "clap_builder", "clap_derive", @@ -785,9 +785,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.2" +version = "4.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" dependencies = [ "anstream", "anstyle", @@ -797,9 +797,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.4" +version = "4.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -1244,6 +1244,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + [[package]] name = "dotenv" version = "0.15.0" @@ -1890,15 +1901,6 @@ dependencies = [ "ahash 0.7.8", ] -[[package]] -name = "hashbrown" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ff8ae62cd3a9102e5637afc8452c55acf3844001bd5374e0b0bd7b6616c038" -dependencies = [ - "ahash 0.8.11", -] - [[package]] name = "hashbrown" version = "0.14.5" @@ -2224,6 +2226,124 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -2232,12 +2352,14 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "icu_normalizer", + "icu_properties", + "smallvec", + "utf8_iter", ] [[package]] @@ -2432,9 +2554,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67210bd846b2dca59dc73f34717d6e1589305d506cdd6f14c849115d08e40876" +checksum = "95a130d27083a4001b7b2d72a19f08786299550f76c9bd5307498dce2c2b20fa" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -2448,9 +2570,9 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4c171d64176ae8f57eec75bca9f9dda2b2f746314adef9160a5bbbb2a7c82cb" +checksum = "039db9fe25cd63b7221c3f8788c1ef4ea07987d40ec25a1e7d7a3c3e3e3fd130" dependencies = [ "base64 0.22.0", "futures-channel", @@ -2473,9 +2595,9 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e966c12c8b6c1790ce67683c792cea9dd250860df49f6b64f1b1ff6c6946850" +checksum = "21545a9445fbd582840ff5160a9a3e12b8e6da582151cdb07bde9a1970ba3a24" dependencies = [ "anyhow", "async-trait", @@ -2502,9 +2624,9 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0187f1969287e5890d84460fe9f6556d98231e70b06179d4416e5c8c47167d" +checksum = "fb25cab482c8512c4f3323a5c90b95a3b8f7c90681a87bf7a68b942d52f08933" dependencies = [ "async-trait", "base64 0.22.0", @@ -2527,9 +2649,9 @@ dependencies = [ [[package]] name = "jsonrpsee-server" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba63ec742f5f9c4016ca4c443d04dc3ca56e240a26ebe6e56609a5109bd9d13f" +checksum = "810f63eff0f78fa8d413d678c0e55b702e2ea61d4587774c0db4ea2fc554ef92" dependencies = [ "anyhow", "futures-util", @@ -2555,11 +2677,10 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "328c33717b7bdc4f47cdf31c21d5449c5b713a800cb05cb767841ccf2944f9d9" +checksum = "f511b714bca46f9a3e97c0e0eb21d2c112e83e444d2db535b5ec7093f5836d73" dependencies = [ - "anyhow", "beef", "http 1.1.0", "serde", @@ -2569,9 +2690,9 @@ dependencies = [ [[package]] name = "jsonrpsee-wasm-client" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c1c1b2f71c32f763d85c1b9836c1a522377b3972177a76b3e66ba42f2582929" +checksum = "8c8a6dfa0c35c8549fa8e003ce0bbcf37b051ab7ef85fce587e8f0ed7881c84d" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -2580,9 +2701,9 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeb22661e1c018eb503d5a47be2d39a176de832b047d2757fa86b3d2b34fc84e" +checksum = "786c100eb67df2f2d863d231c2c6978bcf80ff4bf606ffc40e7e68ef562da7bf" dependencies = [ "http 1.1.0", "jsonrpsee-client-transport", @@ -2844,6 +2965,12 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + [[package]] name = "lock_api" version = "0.4.12" @@ -2870,15 +2997,6 @@ dependencies = [ "libc", ] -[[package]] -name = "mach2" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" -dependencies = [ - "libc", -] - [[package]] name = "matchers" version = "0.1.0" @@ -2912,24 +3030,26 @@ checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "metrics" -version = "0.21.1" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fde3af1a009ed76a778cb84fdef9e7dbbdf5775ae3e4cc1f434a6a307f6f76c5" +checksum = "884adb57038347dfbaf2d5065887b6cf4312330dc8e94bc30a1a839bd79d3261" dependencies = [ "ahash 0.8.11", - "metrics-macros", "portable-atomic", ] [[package]] name = "metrics-exporter-prometheus" -version = "0.12.2" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d4fa7ce7c4862db464a37b0b31d89bca874562f034bd7993895572783d02950" +checksum = "26eb45aff37b45cff885538e1dcbd6c2b462c04fe84ce0155ea469f325672c98" dependencies = [ - "base64 0.21.7", - "hyper 0.14.28", - "indexmap 1.9.3", + "base64 0.22.0", + "http-body-util", + "hyper 1.3.1", + "hyper-tls", + "hyper-util", + "indexmap 2.2.6", "ipnet", "metrics", "metrics-util", @@ -2939,26 +3059,15 @@ dependencies = [ "tracing", ] -[[package]] -name = "metrics-macros" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b4faf00617defe497754acde3024865bc143d44a86799b24e191ecff91354f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - [[package]] name = "metrics-util" -version = "0.15.1" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4de2ed6e491ed114b40b732e4d1659a9d53992ebd87490c44a6ffe23739d973e" +checksum = "4259040465c955f9f2f1a4a8a16dc46726169bca0f88e8fb2dbeced487c3e828" dependencies = [ "crossbeam-epoch", "crossbeam-utils", - "hashbrown 0.13.1", + "hashbrown 0.14.5", "metrics", "num_cpus", "quanta", @@ -3838,13 +3947,12 @@ dependencies = [ [[package]] name = "quanta" -version = "0.11.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17e662a7a8291a865152364c20c7abc5e60486ab2001e8ec10b24862de0b9ab" +checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" dependencies = [ "crossbeam-utils", "libc", - "mach2", "once_cell", "raw-cpuid", "wasi", @@ -3944,11 +4052,11 @@ dependencies = [ [[package]] name = "raw-cpuid" -version = "10.7.0" +version = "11.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332" +checksum = "e29830cbb1290e404f24c73af91c5d8d631ce7e128691e9477556b540cd01ecd" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.5.0", ] [[package]] @@ -4638,9 +4746,9 @@ checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" [[package]] name = "sentry" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b73ab9d5b35ed718611e89db8c886647821cfce79723b9e2e4e7cb3fd9cdd49" +checksum = "5484316556650182f03b43d4c746ce0e3e48074a21e2f51244b648b6542e1066" dependencies = [ "httpdate", "native-tls", @@ -4657,9 +4765,9 @@ dependencies = [ [[package]] name = "sentry-backtrace" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce52a2633e0332821389f865762b94852e71b359cd8e95cbf91f38c154302cb" +checksum = "40aa225bb41e2ec9d7c90886834367f560efc1af028f1c5478a6cce6a59c463a" dependencies = [ "backtrace", "once_cell", @@ -4669,9 +4777,9 @@ dependencies = [ [[package]] name = "sentry-contexts" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10565e6eb013737bf7555250f8b4b8248a571e1de4de7230037f5dd5ea51bc63" +checksum = "1a8dd746da3d16cb8c39751619cefd4fcdbd6df9610f3310fd646b55f6e39910" dependencies = [ "hostname", "libc", @@ -4683,15 +4791,12 @@ dependencies = [ [[package]] name = "sentry-core" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2c5e7a0430cfa86b7cb6e7bc01a56331937b2ba08ab703c2e7331139a99f121" +checksum = "161283cfe8e99c8f6f236a402b9ccf726b201f365988b5bb637ebca0abbd4a30" dependencies = [ - "crc32fast", - "itertools 0.13.0", "once_cell", "rand", - "regex", "sentry-types", "serde", "serde_json", @@ -4699,9 +4804,9 @@ dependencies = [ [[package]] name = "sentry-debug-images" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2be3e693a65dba8578790de0c6adc0a833815979590ed867336aff8fbcf9cbf7" +checksum = "8fc6b25e945fcaa5e97c43faee0267eebda9f18d4b09a251775d8fef1086238a" dependencies = [ "findshlibs", "once_cell", @@ -4710,9 +4815,9 @@ dependencies = [ [[package]] name = "sentry-panic" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f4040c0ad5670b90fc60759bbb31e3fc0d6517448d0c7440255a6f7362c50e7" +checksum = "bc74f229c7186dd971a9491ffcbe7883544aa064d1589bd30b83fb856cd22d63" dependencies = [ "sentry-backtrace", "sentry-core", @@ -4720,9 +4825,9 @@ dependencies = [ [[package]] name = "sentry-tracing" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "151ff7c03687737ba11969ccdc6f45eb7775ed7a95880810297c6cc8c3574e75" +checksum = "cd3c5faf2103cd01eeda779ea439b68c4ee15adcdb16600836e97feafab362ec" dependencies = [ "sentry-backtrace", "sentry-core", @@ -4732,9 +4837,9 @@ dependencies = [ [[package]] name = "sentry-types" -version = "0.33.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10d5ad9e33b9f6f598387a6a23aa23c7f13e4e7740a34cd4d9c8db851bfdae05" +checksum = "5d68cdf6bc41b8ff3ae2a9c4671e97426dcdd154cc1d4b6b72813f285d6b163f" dependencies = [ "debugid", "hex", @@ -5318,6 +5423,12 @@ dependencies = [ "urlencoding", ] +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "static_assertions" version = "1.1.0" @@ -5518,6 +5629,17 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + [[package]] name = "system-configuration" version = "0.5.1" @@ -5679,6 +5801,16 @@ dependencies = [ "crunchy", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -5696,9 +5828,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.37.0" +version = "1.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" dependencies = [ "backtrace", "bytes", @@ -5725,9 +5857,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ "proc-macro2", "quote", @@ -6135,9 +6267,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.0" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56" dependencies = [ "form_urlencoded", "idna", @@ -6151,12 +6283,24 @@ version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + [[package]] name = "utf8-width" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.1" @@ -6545,6 +6689,18 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "wyz" version = "0.5.1" @@ -6554,6 +6710,30 @@ dependencies = [ "tap", ] +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", + "synstructure", +] + [[package]] name = "zerocopy" version = "0.7.32" @@ -6574,6 +6754,27 @@ dependencies = [ "syn 2.0.60", ] +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", + "synstructure", +] + [[package]] name = "zeroize" version = "1.7.0" @@ -6594,6 +6795,28 @@ dependencies = [ "syn 2.0.60", ] +[[package]] +name = "zerovec" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + [[package]] name = "zstd-sys" version = "2.0.10+zstd.1.5.6" diff --git a/Cargo.toml b/Cargo.toml index 6701ac09c..21e93f9e2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,15 +33,15 @@ quote = "=1.0.36" rand = "=0.8.5" strum = "=0.26.2" thiserror = "=1.0.61" -url = "=2.5.0" +url = "=2.5.1" uuid = { version = "=1.8.0", features = ["v4", "fast-rng" ] } # async -tokio = { version = "=1.37.0", features = ["rt-multi-thread", "macros", "signal"] } +tokio = { version = "=1.38.0", features = ["rt-multi-thread", "macros", "signal"] } tokio-util = "=0.7.11" # config -clap = { version = "=4.5.4", features = ["derive", "env"] } +clap = { version = "=4.5.7", features = ["derive", "env"] } dotenvy = "=0.15.7" # serialization @@ -69,7 +69,7 @@ rlp = "=0.5.2" triehash = "=0.8.4" # network -jsonrpsee = { version = "=0.23.0", features = ["server", "client"] } +jsonrpsee = { version = "=0.23.1", features = ["server", "client"] } k8s-openapi = { version = "=0.21.1", optional = true, features = ["v1_27"] } kube = { version = "=0.90.0", optional = true, features = ["runtime", "derive"] } raft = { version = "=0.7.0", optional = true } @@ -79,13 +79,13 @@ tower = "=0.4.13" # observability console-subscriber = "=0.2.0" -metrics = { version = "=0.21.1", optional = true } -metrics-exporter-prometheus = { version = "=0.12.2", optional = true } +metrics = { version = "=0.23.0", optional = true } +metrics-exporter-prometheus = { version = "=0.15.0", optional = true } opentelemetry = "=0.22.0" opentelemetry_sdk = { version = "=0.22.1", features = ["rt-tokio"] } opentelemetry-otlp = "=0.15.0" -sentry = "=0.33.0" -sentry-tracing = "=0.33.0" +sentry = "=0.34.0" +sentry-tracing = "=0.34.0" tracing = { version = "=0.1.40", features = ["attributes"] } tracing-opentelemetry = "=0.23.0" tracing-subscriber = { version = "=0.3.18", features = ["env-filter", "json"] } diff --git a/src/infra/metrics/metrics_macros.rs b/src/infra/metrics/metrics_macros.rs index 3cb071354..4860245ca 100644 --- a/src/infra/metrics/metrics_macros.rs +++ b/src/infra/metrics/metrics_macros.rs @@ -53,7 +53,8 @@ macro_rules! metrics_impl_fn_inc { )* ] ); - metrics::counter!(stringify!([]), n, labels); + let counter = metrics::counter!(stringify!([]), labels); + counter.increment(n); } } @@ -68,7 +69,8 @@ macro_rules! metrics_impl_fn_inc { )* ] ); - metrics::counter!(stringify!([]), 1, labels); + let counter = metrics::counter!(stringify!([]), labels); + counter.increment(1); } } }; @@ -84,7 +86,8 @@ macro_rules! metrics_impl_fn_inc { )* ] ); - metrics::histogram!(stringify!([]), n as f64, labels); + let hist = metrics::histogram!(stringify!([]), labels); + hist.record(n as f64) } } }; @@ -100,7 +103,8 @@ macro_rules! metrics_impl_fn_inc { )* ] ); - metrics::histogram!(stringify!([]), duration, labels); + let hist = metrics::histogram!(stringify!([]), labels); + hist.record(duration); } } }; @@ -116,7 +120,8 @@ macro_rules! metrics_impl_fn_inc { )* ] ); - metrics::gauge!(stringify!([]), n as f64, labels); + let gauge = metrics::gauge!(stringify!([]), labels); + gauge.set(n as f64); } } }; From db2ef3c11ee8c830149692e02c5495dcaa110909 Mon Sep 17 00:00:00 2001 From: Maycon Amaro <131882788+mayconamaroCW@users.noreply.github.com> Date: Tue, 11 Jun 2024 16:42:14 -0300 Subject: [PATCH 5/7] deps(braces): bump to 3.0.3 (#1072) --- e2e-contracts/integration/package-lock.json | 14 +++++++------- e2e/package-lock.json | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/e2e-contracts/integration/package-lock.json b/e2e-contracts/integration/package-lock.json index 1e9a6b6d2..307dba0f1 100644 --- a/e2e-contracts/integration/package-lock.json +++ b/e2e-contracts/integration/package-lock.json @@ -3035,12 +3035,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -4479,9 +4479,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" diff --git a/e2e/package-lock.json b/e2e/package-lock.json index 3b3fc95b3..3e7373d8a 100644 --- a/e2e/package-lock.json +++ b/e2e/package-lock.json @@ -3021,12 +3021,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -4460,9 +4460,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" From 10d11e7d8c68d321013039cc5641ed2c984b5655 Mon Sep 17 00:00:00 2001 From: Renato Dinhani <101204870+dinhani-cw@users.noreply.github.com> Date: Tue, 11 Jun 2024 17:31:21 -0300 Subject: [PATCH 6/7] feat: update tracing dependencies (#1073) --- Cargo.lock | 30 +++++++++++------------------- Cargo.toml | 8 ++++---- 2 files changed, 15 insertions(+), 23 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 26123dcad..8161bb138 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3374,9 +3374,9 @@ dependencies = [ [[package]] name = "opentelemetry" -version = "0.22.0" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900d57987be3f2aeb70d385fff9b27fb74c5723cc9a52d904d4f9c807a0667bf" +checksum = "1b69a91d4893e713e06f724597ad630f1fa76057a5e1026c0ca67054a9032a76" dependencies = [ "futures-core", "futures-sink", @@ -3384,21 +3384,19 @@ dependencies = [ "once_cell", "pin-project-lite", "thiserror", - "urlencoding", ] [[package]] name = "opentelemetry-otlp" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a016b8d9495c639af2145ac22387dcb88e44118e45320d9238fbf4e7889abcb" +checksum = "a94c69209c05319cdf7460c6d4c055ed102be242a0a6245835d7bc42c6ec7f54" dependencies = [ "async-trait", "futures-core", "http 0.2.12", "opentelemetry", "opentelemetry-proto", - "opentelemetry-semantic-conventions", "opentelemetry_sdk", "prost", "thiserror", @@ -3408,9 +3406,9 @@ dependencies = [ [[package]] name = "opentelemetry-proto" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a8fddc9b68f5b80dae9d6f510b88e02396f006ad48cac349411fbecc80caae4" +checksum = "984806e6cf27f2b49282e2a05e288f30594f3dbc74eb7a6e99422bc48ed78162" dependencies = [ "opentelemetry", "opentelemetry_sdk", @@ -3418,24 +3416,18 @@ dependencies = [ "tonic", ] -[[package]] -name = "opentelemetry-semantic-conventions" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9ab5bd6c42fb9349dcf28af2ba9a0667f697f9bdcca045d39f2cec5543e2910" - [[package]] name = "opentelemetry_sdk" -version = "0.22.1" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e90c7113be649e31e9a0f8b5ee24ed7a16923b322c3c5ab6367469c049d6b7e" +checksum = "ae312d58eaa90a82d2e627fd86e075cf5230b3f11794e2ed74199ebbe572d4fd" dependencies = [ "async-trait", - "crossbeam-channel", "futures-channel", "futures-executor", "futures-util", "glob", + "lazy_static", "once_cell", "opentelemetry", "ordered-float 4.2.0", @@ -6090,9 +6082,9 @@ dependencies = [ [[package]] name = "tracing-opentelemetry" -version = "0.23.0" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9be14ba1bbe4ab79e9229f7f89fab8d120b865859f10527f31c033e599d2284" +checksum = "f68803492bf28ab40aeccaecc7021096bd256baf7ca77c3d425d89b35a7be4e4" dependencies = [ "js-sys", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index 21e93f9e2..e703220fe 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -81,13 +81,13 @@ tower = "=0.4.13" console-subscriber = "=0.2.0" metrics = { version = "=0.23.0", optional = true } metrics-exporter-prometheus = { version = "=0.15.0", optional = true } -opentelemetry = "=0.22.0" -opentelemetry_sdk = { version = "=0.22.1", features = ["rt-tokio"] } -opentelemetry-otlp = "=0.15.0" +opentelemetry = "=0.23.0" +opentelemetry_sdk = { version = "=0.23.0", features = ["rt-tokio"] } +opentelemetry-otlp = "=0.16.0" sentry = "=0.34.0" sentry-tracing = "=0.34.0" tracing = { version = "=0.1.40", features = ["attributes"] } -tracing-opentelemetry = "=0.23.0" +tracing-opentelemetry = "=0.24.0" tracing-subscriber = { version = "=0.3.18", features = ["env-filter", "json"] } # storage From eb8dd1a92c254088f418595e68ef338c68f83c66 Mon Sep 17 00:00:00 2001 From: Renato Dinhani <101204870+dinhani-cw@users.noreply.github.com> Date: Tue, 11 Jun 2024 17:55:06 -0300 Subject: [PATCH 7/7] chore: upgrade revm dependency (#1074) --- Cargo.lock | 25 +++++++++++++------------ Cargo.toml | 4 ++-- src/eth/evm/revm.rs | 5 ++--- src/eth/primitives/bytes.rs | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8161bb138..fd9f2fd90 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4178,9 +4178,9 @@ dependencies = [ [[package]] name = "revm" -version = "8.0.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a454c1c650b2b2e23f0c461af09e6c31e1d15e1cbebe905a701c46b8a50afc" +checksum = "3a2c336f9921588e50871c00024feb51a521eca50ce6d01494bb9c50f837c8ed" dependencies = [ "auto_impl", "cfg-if", @@ -4193,9 +4193,9 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "4.0.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d322f2730cd300e99d271a1704a2dfb8973d832428f5aa282aaa40e2473b5eec" +checksum = "a58182c7454179826f9dad2ca577661963092ce9d0fd0c9d682c1e9215a72e70" dependencies = [ "revm-primitives", "serde", @@ -4203,11 +4203,12 @@ dependencies = [ [[package]] name = "revm-precompile" -version = "6.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "931f692f3f4fc72ec39d5d270f8e9d208c4a6008de7590ee96cf948e3b6d3f8d" +checksum = "dc8af9aa737eef0509a50d9f3cc1a631557a00ef2e70a3aa8a75d9ee0ed275bb" dependencies = [ "aurora-engine-modexp", + "blst", "c-kzg", "k256", "once_cell", @@ -4220,9 +4221,9 @@ dependencies = [ [[package]] name = "revm-primitives" -version = "3.1.1" +version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbbc9640790cebcb731289afb7a7d96d16ad94afeb64b5d0b66443bd151e79d6" +checksum = "b9bf5d465e64b697da6a111cb19e798b5b2ebb18e5faf2ad48e9e8d47c64add2" dependencies = [ "alloy-primitives", "auto_impl", @@ -4655,9 +4656,9 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.28.2" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" +checksum = "0e0cc0f1cf93f4969faf3ea1c7d8a9faed25918d96affa959720823dfe86d4f3" dependencies = [ "rand", "secp256k1-sys", @@ -4665,9 +4666,9 @@ dependencies = [ [[package]] name = "secp256k1-sys" -version = "0.9.2" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" +checksum = "1433bd67156263443f14d603720b082dd3121779323fce20cba2aa07b874bc1b" dependencies = [ "cc", ] diff --git a/Cargo.toml b/Cargo.toml index e703220fe..a1f620e70 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -109,10 +109,10 @@ petgraph = "=0.6.5" # ------------------------------------------------------------------------------ [target.'cfg(not(all(target_arch = "aarch64", target_os = "linux")))'.dependencies] -revm = { version = "=8.0.0", features = ["asm-keccak"]} +revm = { version = "=9.0.0", features = ["asm-keccak"]} [target.'cfg(all(target_arch = "aarch64", target_os = "linux"))'.dependencies] -revm = { version = "=8.0.0" } +revm = { version = "=9.0.0" } # ------------------------------------------------------------------------------ # Patches diff --git a/src/eth/evm/revm.rs b/src/eth/evm/revm.rs index 8bb2f7cf3..b515aa0c5 100644 --- a/src/eth/evm/revm.rs +++ b/src/eth/evm/revm.rs @@ -16,7 +16,6 @@ use itertools::Itertools; use revm::primitives::AccountInfo; use revm::primitives::Address as RevmAddress; use revm::primitives::Bytecode as RevmBytecode; -use revm::primitives::CreateScheme; use revm::primitives::ExecutionResult as RevmExecutionResult; use revm::primitives::ResultAndState as RevmResultAndState; use revm::primitives::SpecId; @@ -83,7 +82,7 @@ impl Revm { }); // handler custom instructions - let instructions = handler.take_instruction_table().unwrap(); + let instructions = handler.take_instruction_table(); handler.set_instruction_table(instructions); // configure revm @@ -130,7 +129,7 @@ impl Evm for Revm { tx_env.caller = input.from.into(); tx_env.transact_to = match input.to { Some(contract) => TransactTo::Call(contract.into()), - None => TransactTo::Create(CreateScheme::Create), + None => TransactTo::Create, }; tx_env.gas_limit = min(input.gas_limit.into(), GAS_MAX_LIMIT); tx_env.gas_price = input.gas_price.into(); diff --git a/src/eth/primitives/bytes.rs b/src/eth/primitives/bytes.rs index 153a17111..75ac6c2b9 100644 --- a/src/eth/primitives/bytes.rs +++ b/src/eth/primitives/bytes.rs @@ -81,7 +81,7 @@ impl From for Bytes { impl From for Bytes { fn from(value: RevmBytecode) -> Self { - Self(value.bytecode.0.into()) + Self(value.bytecode().clone().into()) } }