From 74e815362784c196bc7e0989fbe55fa807c500c0 Mon Sep 17 00:00:00 2001 From: David Palm Date: Thu, 7 Mar 2024 13:12:21 +0100 Subject: [PATCH 1/6] chore: merge conflicts --- .../Cargo.toml | 2 +- .../src/lib.rs | 0 .../src/subnet_contract.rs | 0 .../Cargo.toml | 4 +- .../src/certification.rs | 2 +- .../src/lib.rs | 2 +- .../src/proxy.rs | 99 ++++++++++--------- .../tests/common/abi.rs | 0 .../tests/common/mod.rs | 0 .../tests/common/subnet_test_data.rs | 0 .../tests/subnet_contract.rs | 24 +++-- .../Cargo.toml | 5 +- .../src/app_context.rs | 31 +++--- .../src/lib.rs | 57 ++++++----- crates/topos-certificate-spammer/src/lib.rs | 4 +- crates/topos-config/src/base.rs | 4 +- .../{sequencer.rs => certificate_producer.rs} | 14 +-- crates/topos-config/src/lib.rs | 2 +- crates/topos-config/src/node.rs | 14 +-- .../topos-core/proto/topos/tce/v1/api.proto | 2 +- .../src/api/grpc/generated/topos.tce.v1.rs | 2 +- crates/topos-node/src/process.rs | 26 ++--- crates/topos-tce-proxy/src/client.rs | 6 +- crates/topos-tce-proxy/src/lib.rs | 6 +- crates/topos-tce-proxy/src/worker.rs | 2 +- crates/topos-tce-storage/src/fullnode/mod.rs | 2 +- crates/topos-tce-storage/src/lib.rs | 2 +- .../mod.rs | 0 crates/topos-test-sdk/src/lib.rs | 2 +- crates/topos/Cargo.toml | 2 +- .../src/components/node/commands/init.rs | 2 +- crates/topos/tests/config.rs | 4 +- 32 files changed, 173 insertions(+), 149 deletions(-) rename crates/{topos-sequencer-subnet-client => topos-certificate-producer-subnet-client}/Cargo.toml (91%) rename crates/{topos-sequencer-subnet-client => topos-certificate-producer-subnet-client}/src/lib.rs (100%) rename crates/{topos-sequencer-subnet-client => topos-certificate-producer-subnet-client}/src/subnet_contract.rs (100%) rename crates/{topos-sequencer-subnet-runtime => topos-certificate-producer-subnet-runtime}/Cargo.toml (84%) rename crates/{topos-sequencer-subnet-runtime => topos-certificate-producer-subnet-runtime}/src/certification.rs (98%) rename crates/{topos-sequencer-subnet-runtime => topos-certificate-producer-subnet-runtime}/src/lib.rs (99%) rename crates/{topos-sequencer-subnet-runtime => topos-certificate-producer-subnet-runtime}/src/proxy.rs (91%) rename crates/{topos-sequencer-subnet-runtime => topos-certificate-producer-subnet-runtime}/tests/common/abi.rs (100%) rename crates/{topos-sequencer-subnet-runtime => topos-certificate-producer-subnet-runtime}/tests/common/mod.rs (100%) rename crates/{topos-sequencer-subnet-runtime => topos-certificate-producer-subnet-runtime}/tests/common/subnet_test_data.rs (100%) rename crates/{topos-sequencer-subnet-runtime => topos-certificate-producer-subnet-runtime}/tests/subnet_contract.rs (98%) rename crates/{topos-sequencer => topos-certificate-producer}/Cargo.toml (77%) rename crates/{topos-sequencer => topos-certificate-producer}/src/app_context.rs (82%) rename crates/{topos-sequencer => topos-certificate-producer}/src/lib.rs (82%) rename crates/topos-config/src/{sequencer.rs => certificate_producer.rs} (85%) rename crates/topos-test-sdk/src/{sequencer => certificate_producer}/mod.rs (100%) diff --git a/crates/topos-sequencer-subnet-client/Cargo.toml b/crates/topos-certificate-producer-subnet-client/Cargo.toml similarity index 91% rename from crates/topos-sequencer-subnet-client/Cargo.toml rename to crates/topos-certificate-producer-subnet-client/Cargo.toml index 38adf8233..b227a10c5 100644 --- a/crates/topos-sequencer-subnet-client/Cargo.toml +++ b/crates/topos-certificate-producer-subnet-client/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "topos-sequencer-subnet-client" +name = "topos-certificate-producer-subnet-client" version = "0.1.0" edition = "2021" diff --git a/crates/topos-sequencer-subnet-client/src/lib.rs b/crates/topos-certificate-producer-subnet-client/src/lib.rs similarity index 100% rename from crates/topos-sequencer-subnet-client/src/lib.rs rename to crates/topos-certificate-producer-subnet-client/src/lib.rs diff --git a/crates/topos-sequencer-subnet-client/src/subnet_contract.rs b/crates/topos-certificate-producer-subnet-client/src/subnet_contract.rs similarity index 100% rename from crates/topos-sequencer-subnet-client/src/subnet_contract.rs rename to crates/topos-certificate-producer-subnet-client/src/subnet_contract.rs diff --git a/crates/topos-sequencer-subnet-runtime/Cargo.toml b/crates/topos-certificate-producer-subnet-runtime/Cargo.toml similarity index 84% rename from crates/topos-sequencer-subnet-runtime/Cargo.toml rename to crates/topos-certificate-producer-subnet-runtime/Cargo.toml index 6e503b549..96edd2261 100644 --- a/crates/topos-sequencer-subnet-runtime/Cargo.toml +++ b/crates/topos-certificate-producer-subnet-runtime/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "topos-sequencer-subnet-runtime" +name = "topos-certificate-producer-subnet-runtime" version = "0.1.0" edition = "2021" @@ -29,7 +29,7 @@ tracing-opentelemetry.workspace = true opentelemetry.workspace = true topos-core = { workspace = true, features = ["uci"] } -topos-sequencer-subnet-client = { package = "topos-sequencer-subnet-client", path = "../topos-sequencer-subnet-client" } +topos-certificate-producer-subnet-client = { package = "topos-certificate-producer-subnet-client", path = "../topos-certificate-producer-subnet-client" } topos-crypto = {package = "topos-crypto", path = "../topos-crypto"} [dev-dependencies] diff --git a/crates/topos-sequencer-subnet-runtime/src/certification.rs b/crates/topos-certificate-producer-subnet-runtime/src/certification.rs similarity index 98% rename from crates/topos-sequencer-subnet-runtime/src/certification.rs rename to crates/topos-certificate-producer-subnet-runtime/src/certification.rs index fa70e160b..daf5cab03 100644 --- a/crates/topos-sequencer-subnet-runtime/src/certification.rs +++ b/crates/topos-certificate-producer-subnet-runtime/src/certification.rs @@ -3,8 +3,8 @@ use std::collections::{HashSet, LinkedList}; use std::fmt::{Debug, Formatter}; use std::sync::Arc; use tokio::sync::Mutex; +use topos_certificate_producer_subnet_client::{BlockInfo, SubnetEvent}; use topos_core::uci::{Certificate, CertificateId, SubnetId}; -use topos_sequencer_subnet_client::{BlockInfo, SubnetEvent}; pub struct Certification { /// Last known certificate id for subnet diff --git a/crates/topos-sequencer-subnet-runtime/src/lib.rs b/crates/topos-certificate-producer-subnet-runtime/src/lib.rs similarity index 99% rename from crates/topos-sequencer-subnet-runtime/src/lib.rs rename to crates/topos-certificate-producer-subnet-runtime/src/lib.rs index aabd1f670..afcdf59dc 100644 --- a/crates/topos-sequencer-subnet-runtime/src/lib.rs +++ b/crates/topos-certificate-producer-subnet-runtime/src/lib.rs @@ -38,7 +38,7 @@ pub enum Error { #[error("subnet client error: {source}")] SubnetError { #[from] - source: topos_sequencer_subnet_client::Error, + source: topos_certificate_producer_subnet_client::Error, }, #[error("Unable to retrieve key error: {source}")] diff --git a/crates/topos-sequencer-subnet-runtime/src/proxy.rs b/crates/topos-certificate-producer-subnet-runtime/src/proxy.rs similarity index 91% rename from crates/topos-sequencer-subnet-runtime/src/proxy.rs rename to crates/topos-certificate-producer-subnet-runtime/src/proxy.rs index dfc28d64f..f12def801 100644 --- a/crates/topos-sequencer-subnet-runtime/src/proxy.rs +++ b/crates/topos-certificate-producer-subnet-runtime/src/proxy.rs @@ -9,9 +9,12 @@ use std::sync::Arc; use tokio::sync::Mutex; use tokio::sync::{mpsc, oneshot}; use tokio::time::Duration; +use topos_certificate_producer_subnet_client::{ + self, BlockInfo, SubnetClient, SubnetClientListener, +}; +use topos_certificate_producer_subnet_client::{BlockInfo, SubnetClient, SubnetClientListener}; use topos_core::api::grpc::checkpoints::TargetStreamPosition; use topos_core::uci::{Certificate, CertificateId, SubnetId}; -use topos_sequencer_subnet_client::{BlockInfo, SubnetClient, SubnetClientListener}; use tracing::{debug, error, field, info, info_span, instrument, warn, Instrument, Span}; use tracing_opentelemetry::OpenTelemetrySpanExt; @@ -102,7 +105,7 @@ impl SubnetRuntimeProxy { let runtime_proxy = runtime_proxy.clone(); let subnet_contract_address = subnet_contract_address.clone(); tokio::spawn(async move { - // If the `start_block` sequencer parameter is provided, first block retrieved from blockchain (for genesis certificate) + // If the `start_block` CP parameter is provided, first block retrieved from blockchain (for genesis certificate) // will be `start_block`. `default_block_sync_start` is hence `start_block`-1 // as first block retrieved from subnet node is `latest_acquired_subnet_block_number` + 1 let default_block_sync_start: i128 = config @@ -128,7 +131,7 @@ impl SubnetRuntimeProxy { certificate_and_position ); // If tce source head position is provided, continue synchronizing from it - // If the `start_block` sequencer parameter is provided and tce source head is missing, + // If the `start_block` CP parameter is provided and tce source head is missing, // we should start synchronizing from that block instead of genesis // If neither tce source head position nor start_block parameters are provided, // sync should start form -1, so that first fetched is subnet genesis block @@ -155,7 +158,7 @@ impl SubnetRuntimeProxy { // Establish the connection with the Subnet let subnet_listener: Option = tokio::select! { // Create subnet client - Ok(client) = topos_sequencer_subnet_client::connect_to_subnet_listener_with_retry( + Ok(client) = topos_certificate_producer_subnet_client::connect_to_subnet_listener_with_retry( ws_runtime_endpoint.as_str(), subnet_contract_address.as_str(), ) => { @@ -290,7 +293,7 @@ impl SubnetRuntimeProxy { // Establish the connection with the Subnet let mut subnet_client: Option = tokio::select! { // Create subnet client - Ok(client) = topos_sequencer_subnet_client::connect_to_subnet_with_retry( + Ok(client) = topos_certificate_producer_subnet_client::connect_to_subnet_with_retry( http_runtime_endpoint.as_ref(), Some(signing_key.clone()), subnet_contract_address.as_str(), @@ -361,10 +364,14 @@ impl SubnetRuntimeProxy { info!("Block {} processed", next_block); Ok(()) } - Err(topos_sequencer_subnet_client::Error::BlockNotAvailable(block_number)) => { + Err(topos_certificate_producer_subnet_client::Error::BlockNotAvailable( + block_number, + )) => { warn!("New block {block_number} not yet available, trying again soon"); Err(Error::SubnetError { - source: topos_sequencer_subnet_client::Error::BlockNotAvailable(block_number), + source: topos_certificate_producer_subnet_client::Error::BlockNotAvailable( + block_number, + ), }) } Err(e) => { @@ -568,25 +575,26 @@ impl SubnetRuntimeProxy { info!("Connecting to subnet to query for checkpoints..."); let http_runtime_endpoint = self.config.http_endpoint.as_ref(); // Create subnet client - let subnet_client = match topos_sequencer_subnet_client::connect_to_subnet_with_retry( - http_runtime_endpoint, - None, // We do not need actual key here as we are just reading state - self.config.subnet_contract_address.as_str(), - ) - .await - { - Ok(subnet_client) => { - info!( - "Connected to subnet node to acquire checkpoints {}", - http_runtime_endpoint - ); - subnet_client - } - Err(e) => { - error!("Unable to connect to the subnet node to get checkpoints: {e}"); - return Err(Error::SubnetError { source: e }); - } - }; + let subnet_client = + match topos_certificate_producer_subnet_client::connect_to_subnet_with_retry( + http_runtime_endpoint, + None, // We do not need actual key here as we are just reading state + self.config.subnet_contract_address.as_str(), + ) + .await + { + Ok(subnet_client) => { + info!( + "Connected to subnet node to acquire checkpoints {}", + http_runtime_endpoint + ); + subnet_client + } + Err(e) => { + error!("Unable to connect to the subnet node to get checkpoints: {e}"); + return Err(Error::SubnetError { source: e }); + } + }; match subnet_client.get_checkpoints(&self.config.subnet_id).await { Ok(checkpoints) => { @@ -611,25 +619,26 @@ impl SubnetRuntimeProxy { ) -> Result { info!("Connecting to subnet to query for subnet id..."); // Create subnet client - let subnet_client = match topos_sequencer_subnet_client::connect_to_subnet_with_retry( - http_endpoint, - None, // We do not need actual key here as we are just reading state - contract_address, - ) - .await - { - Ok(subnet_client) => { - info!( - "Connected to subnet node to acquire subnet id {}", - http_endpoint - ); - subnet_client - } - Err(e) => { - error!("Unable to connect to the subnet node to get subnet id: {e}"); - return Err(Error::SubnetError { source: e }); - } - }; + let subnet_client = + match topos_certificate_producer_subnet_client::connect_to_subnet_with_retry( + http_endpoint, + None, // We do not need actual key here as we are just reading state + contract_address, + ) + .await + { + Ok(subnet_client) => { + info!( + "Connected to subnet node to acquire subnet id {}", + http_endpoint + ); + subnet_client + } + Err(e) => { + error!("Unable to connect to the subnet node to get subnet id: {e}"); + return Err(Error::SubnetError { source: e }); + } + }; match subnet_client.get_subnet_id().await { Ok(subnet_id) => { diff --git a/crates/topos-sequencer-subnet-runtime/tests/common/abi.rs b/crates/topos-certificate-producer-subnet-runtime/tests/common/abi.rs similarity index 100% rename from crates/topos-sequencer-subnet-runtime/tests/common/abi.rs rename to crates/topos-certificate-producer-subnet-runtime/tests/common/abi.rs diff --git a/crates/topos-sequencer-subnet-runtime/tests/common/mod.rs b/crates/topos-certificate-producer-subnet-runtime/tests/common/mod.rs similarity index 100% rename from crates/topos-sequencer-subnet-runtime/tests/common/mod.rs rename to crates/topos-certificate-producer-subnet-runtime/tests/common/mod.rs diff --git a/crates/topos-sequencer-subnet-runtime/tests/common/subnet_test_data.rs b/crates/topos-certificate-producer-subnet-runtime/tests/common/subnet_test_data.rs similarity index 100% rename from crates/topos-sequencer-subnet-runtime/tests/common/subnet_test_data.rs rename to crates/topos-certificate-producer-subnet-runtime/tests/common/subnet_test_data.rs diff --git a/crates/topos-sequencer-subnet-runtime/tests/subnet_contract.rs b/crates/topos-certificate-producer-subnet-runtime/tests/subnet_contract.rs similarity index 98% rename from crates/topos-sequencer-subnet-runtime/tests/subnet_contract.rs rename to crates/topos-certificate-producer-subnet-runtime/tests/subnet_contract.rs index da2256324..ec54d9e12 100644 --- a/crates/topos-sequencer-subnet-runtime/tests/subnet_contract.rs +++ b/crates/topos-certificate-producer-subnet-runtime/tests/subnet_contract.rs @@ -6,24 +6,29 @@ use ethers::{ middleware::SignerMiddleware, providers::{Http, Middleware, Provider}, signers::{LocalWallet, Signer}, - types::{Block, H256}, + types::{Block, H160, H256}, }; use rstest::*; use serial_test::serial; use std::collections::HashSet; use std::process::{Child, Command}; +use std::str::FromStr; use std::sync::Arc; use test_log::test; use tokio::sync::Mutex; +use topos_certificate_producer_subnet_runtime::proxy::{ + SubnetRuntimeProxyCommand, SubnetRuntimeProxyEvent, +}; use topos_core::uci::{Certificate, CertificateId, SubnetId, SUBNET_ID_LENGTH}; -use topos_sequencer_subnet_runtime::proxy::{SubnetRuntimeProxyCommand, SubnetRuntimeProxyEvent}; use tracing::{error, info, warn, Span}; use tracing_opentelemetry::OpenTelemetrySpanExt; mod common; use crate::common::subnet_test_data::generate_test_private_key; +use topos_certificate_producer_subnet_runtime::{ + SubnetRuntimeProxyConfig, SubnetRuntimeProxyWorker, +}; use topos_core::api::grpc::checkpoints::TargetStreamPosition; -use topos_sequencer_subnet_runtime::{SubnetRuntimeProxyConfig, SubnetRuntimeProxyWorker}; use topos_test_sdk::constants::*; @@ -498,7 +503,7 @@ async fn test_subnet_node_get_block_info( ) -> Result<(), Box> { //Context with subnet let context = context_running_subnet_node.await; - match topos_sequencer_subnet_client::SubnetClientListener::new( + match topos_certificate_producer_subnet_client::SubnetClientListener::new( &context.jsonrpc_ws(), &("0x".to_string() + &hex::encode(context.i_topos_core.address())), ) @@ -546,7 +551,8 @@ async fn test_create_runtime() -> Result<(), Box> { test_private_key, ) .await?; - let runtime_proxy = topos_sequencer_subnet_runtime::testing::get_runtime(&runtime_proxy_worker); + let runtime_proxy = + topos_certificate_producer_subnet_runtime::testing::get_runtime(&runtime_proxy_worker); let runtime_proxy = runtime_proxy.lock().await; info!("New runtime proxy created:{:?}", &runtime_proxy); Ok(()) @@ -688,7 +694,7 @@ async fn test_subnet_certificate_get_checkpoints_call( let subnet_jsonrpc_http = context.jsonrpc(); // Get checkpoints when contract is empty - let subnet_client = topos_sequencer_subnet_client::SubnetClient::new( + let subnet_client = topos_certificate_producer_subnet_client::SubnetClient::new( &subnet_jsonrpc_http, Some(hex::decode(TEST_SECRET_ETHEREUM_KEY).unwrap()), &subnet_smart_contract_address, @@ -806,7 +812,7 @@ async fn test_subnet_id_call( let subnet_jsonrpc_http = context.jsonrpc(); // Create subnet client - let subnet_client = topos_sequencer_subnet_client::SubnetClient::new( + let subnet_client = topos_certificate_producer_subnet_client::SubnetClient::new( &subnet_jsonrpc_http, Some(hex::decode(TEST_SECRET_ETHEREUM_KEY).unwrap()), &subnet_smart_contract_address, @@ -903,7 +909,7 @@ async fn test_subnet_send_token_processing( .i_erc20_messaging .send_token( TARGET_SUBNET_ID_2.into(), - TOKEN_SYMBOL.into(), + H160::from_str(TOKEN_SYMBOL).unwrap(), "00000000000000000000000000000000000000AA".parse()?, U256::from(2), ) @@ -1409,7 +1415,7 @@ async fn test_subnet_multiple_send_token_in_a_block( if let Err(e) = i_erc20_messaging .send_token( target_subnet.into(), - TOKEN_SYMBOL.into(), + H160::from_str(TOKEN_SYMBOL).unwrap(), "00000000000000000000000000000000000000AA".parse().unwrap(), U256::from(i), ) diff --git a/crates/topos-sequencer/Cargo.toml b/crates/topos-certificate-producer/Cargo.toml similarity index 77% rename from crates/topos-sequencer/Cargo.toml rename to crates/topos-certificate-producer/Cargo.toml index 61ea66c50..f0b0e3e73 100644 --- a/crates/topos-sequencer/Cargo.toml +++ b/crates/topos-certificate-producer/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "topos-sequencer" +name = "topos-certificate-producer" description = "Implementation of the Topos protocol" version = "0.1.0" edition = "2021" @@ -20,6 +20,5 @@ opentelemetry.workspace = true topos-crypto.workspace = true topos-wallet = { path = "../topos-wallet" } topos-core = { workspace = true, features = ["uci"] } -topos-sequencer-subnet-runtime = { package = "topos-sequencer-subnet-runtime", path = "../topos-sequencer-subnet-runtime" } +topos-certificate-producer-subnet-runtime = { package = "topos-certificate-producer-subnet-runtime", path = "../topos-certificate-producer-subnet-runtime" } topos-tce-proxy = { package = "topos-tce-proxy", path = "../topos-tce-proxy" } - diff --git a/crates/topos-sequencer/src/app_context.rs b/crates/topos-certificate-producer/src/app_context.rs similarity index 82% rename from crates/topos-sequencer/src/app_context.rs rename to crates/topos-certificate-producer/src/app_context.rs index 55e540bb6..096f50272 100644 --- a/crates/topos-sequencer/src/app_context.rs +++ b/crates/topos-certificate-producer/src/app_context.rs @@ -1,17 +1,19 @@ //! //! Application logic glue //! -use crate::SequencerConfiguration; +use crate::CertificateProducerConfiguration; use opentelemetry::trace::FutureExt; use tokio::sync::mpsc; use tokio_util::sync::CancellationToken; -use topos_sequencer_subnet_runtime::proxy::{SubnetRuntimeProxyCommand, SubnetRuntimeProxyEvent}; -use topos_sequencer_subnet_runtime::SubnetRuntimeProxyWorker; +use topos_certificate_producer_subnet_runtime::proxy::{ + SubnetRuntimeProxyCommand, SubnetRuntimeProxyEvent, +}; +use topos_certificate_producer_subnet_runtime::SubnetRuntimeProxyWorker; use topos_tce_proxy::{worker::TceProxyWorker, TceProxyCommand, TceProxyEvent}; use tracing::{debug, error, info, info_span, warn, Instrument, Span}; use tracing_opentelemetry::OpenTelemetrySpanExt; -/// Top-level transducer sequencer app context & driver (alike) +/// Top-level transducer certificate producer app context & driver (alike) /// /// Implements <...Host> traits for network and Api, listens for protocol events in events /// (store is not active component). @@ -20,7 +22,7 @@ use tracing_opentelemetry::OpenTelemetrySpanExt; /// config+data as input and runs app returning data as output /// pub struct AppContext { - pub config: SequencerConfiguration, + pub config: CertificateProducerConfiguration, pub subnet_runtime_proxy_worker: SubnetRuntimeProxyWorker, pub tce_proxy_worker: TceProxyWorker, } @@ -33,7 +35,7 @@ pub enum AppContextStatus { impl AppContext { /// Factory pub fn new( - config: SequencerConfiguration, + config: CertificateProducerConfiguration, runtime_proxy_worker: SubnetRuntimeProxyWorker, tce_proxy_worker: TceProxyWorker, ) -> Self { @@ -63,15 +65,14 @@ impl AppContext { debug!("tce_proxy_worker.next_event(): {:?}", &tce_evt); match tce_evt { TceProxyEvent::TceServiceFailure | TceProxyEvent::WatchCertificatesChannelFailed => { - // Unrecoverable failure in interaction with the TCE. Sequencer needs to be restarted + // Unrecoverable failure in interaction with the TCE. Certificate Producer needs to be restarted error!( - "Unrecoverable failure in sequencer <-> tce interaction. Shutting down sequencer \ - sequencer..." + "Unrecoverable failure in Certificate Producer <-> TCE interaction. Shutting down Certificate Producer." ); if let Err(e) = self.shutdown().await { warn!("Failed to shutdown: {e:?}"); } - info!("Shutdown finished, restarting sequencer..."); + info!("Shutdown finished, restarting Certificate Producer..."); return AppContextStatus::Restarting; }, _ => self.on_tce_proxy_event(tce_evt).await, @@ -80,11 +81,11 @@ impl AppContext { // Shutdown signal _ = shutdown.0.cancelled() => { - info!("Shutting down Sequencer app context..."); + info!("Shutting down Certificate Producer app context..."); if let Err(e) = self.shutdown().await { - error!("Failed to shutdown the Sequencer app context: {e}"); + error!("Error shutting down Certificate Producer app context: {e}"); } - // Drop the sender to notify the Sequencer termination + // Drop the sender to notify the Certificate Producer termination drop(shutdown.1); return AppContextStatus::Finished; } @@ -100,7 +101,7 @@ impl AppContext { block_number: _, ctx, } => { - let span = info_span!("Sequencer app context"); + let span = info_span!("Certificate Producer app context"); span.set_parent(ctx); if let Err(e) = self .tce_proxy_worker @@ -123,7 +124,7 @@ impl AppContext { async fn on_tce_proxy_event(&mut self, evt: TceProxyEvent) { if let TceProxyEvent::NewDeliveredCerts { certificates, ctx } = evt { - let span = info_span!("Sequencer app context"); + let span = info_span!("Certificate Producer app context"); span.set_parent(ctx); async { // New certificates acquired from TCE diff --git a/crates/topos-sequencer/src/lib.rs b/crates/topos-certificate-producer/src/lib.rs similarity index 82% rename from crates/topos-sequencer/src/lib.rs rename to crates/topos-certificate-producer/src/lib.rs index 08da48f62..34e211036 100644 --- a/crates/topos-sequencer/src/lib.rs +++ b/crates/topos-certificate-producer/src/lib.rs @@ -9,8 +9,10 @@ use tokio::{ }, }; use tokio_util::sync::CancellationToken; +use topos_certificate_producer_subnet_runtime::{ + SubnetRuntimeProxyConfig, SubnetRuntimeProxyWorker, +}; use topos_core::uci::{CertificateId, SubnetId}; -use topos_sequencer_subnet_runtime::{SubnetRuntimeProxyConfig, SubnetRuntimeProxyWorker}; use topos_tce_proxy::{worker::TceProxyWorker, TceProxyConfig}; use topos_wallet::SecretKey; use tracing::{debug, info, warn}; @@ -18,7 +20,7 @@ use tracing::{debug, info, warn}; mod app_context; #[derive(Debug, Clone)] -pub struct SequencerConfiguration { +pub struct CertificateProducerConfiguration { pub subnet_id: Option, pub public_key: Option>, pub subnet_jsonrpc_http: String, @@ -31,12 +33,12 @@ pub struct SequencerConfiguration { } async fn launch_workers( - config: SequencerConfiguration, + config: CertificateProducerConfiguration, ctx_send: Sender, subnet_id: SubnetId, ) -> Result<(), Box> { let (http_endpoint, mut ws_endpoint) = - topos_sequencer_subnet_runtime::derive_endpoints(&config.subnet_jsonrpc_http)?; + topos_certificate_producer_subnet_runtime::derive_endpoints(&config.subnet_jsonrpc_http)?; if let Some(config_ws_endpoint) = config.subnet_jsonrpc_ws.as_ref() { // Use explicitly provided websocket subnet endpoint @@ -72,9 +74,9 @@ async fn launch_workers( } }; - // Launch Tce proxy worker for handling interaction with TCE node - // For initialization it will retry using backoff algorithm, but if it fails we can not proceed and we restart sequencer - // Once it is initialized, TCE proxy will try reconnecting in the loop (with backoff) if TCE becomes unavailable + // Launch Tce proxy worker for handling interaction with the TCE node + // For initialization it will retry using backoff algorithm, but if it fails we can not proceed and we restart the certificate producer + // Once it is initialized, the TCE proxy will try to reconnect in a loop (with backoff) if TCE becomes unavailable let (tce_proxy_worker, source_head_certificate_id) = match TceProxyWorker::new(TceProxyConfig { subnet_id, tce_endpoint: config.tce_grpc_endpoint.clone(), @@ -127,10 +129,10 @@ async fn launch_workers( } pub async fn launch( - config: SequencerConfiguration, + config: CertificateProducerConfiguration, ctx_send: Sender, ) -> Result<(), Box> { - debug!("Starting topos-sequencer application"); + debug!("Starting topos-certificate-producer application"); // If subnetID is specified as command line argument, use it let subnet_id: SubnetId = if let Some(pk) = &config.public_key { @@ -147,15 +149,16 @@ pub async fn launch( // Get subnet id from the subnet node if not provided via the command line argument // It will retry using backoff algorithm, but if it fails (default max backoff elapsed time is 15 min) we can not proceed else { - let http_endpoint = - topos_sequencer_subnet_runtime::derive_endpoints(&config.subnet_jsonrpc_http) - .map_err(|e| { - Box::new(std::io::Error::new( - InvalidInput, - format!("Invalid subnet endpoint: {e}"), - )) - })? - .0; + let http_endpoint = topos_certificate_producer_subnet_runtime::derive_endpoints( + &config.subnet_jsonrpc_http, + ) + .map_err(|e| { + Box::new(std::io::Error::new( + InvalidInput, + format!("Invalid subnet endpoint: {e}"), + )) + })? + .0; match SubnetRuntimeProxyWorker::get_subnet_id( &http_endpoint, config.subnet_contract_address.as_str(), @@ -176,7 +179,7 @@ pub async fn launch( } pub async fn run( - config: SequencerConfiguration, + config: CertificateProducerConfiguration, shutdown: (CancellationToken, mpsc::Sender<()>), ) -> Result> { loop { @@ -202,7 +205,7 @@ pub async fn run( // Shutdown signal _ = shutdown.0.cancelled() => { - info!("Stopping Sequencer launch..."); + info!("Stopping Certificate Producer..."); drop(shutdown.1); launching.abort(); return Ok(ExitStatus::default()); @@ -212,18 +215,22 @@ pub async fn run( if let Some(mut app) = app_context { match app.run(shutdown_appcontext).await { AppContextStatus::Restarting => { - // We finish the loop, restarting sequencer here - warn!("Restarting sequencer..."); + // We finish the loop, restarting the CP here + warn!("Restarting Certificate Producer..."); tokio::time::sleep(tokio::time::Duration::from_secs(10)).await; } AppContextStatus::Finished => { - info!("Sequencer app finished, exiting..."); + info!("Certificate Producer done, exiting..."); return Ok(ExitStatus::default()); } } } else { - warn!("Sequencer startup sequencer failed, restarting sequencer..."); - tokio::time::sleep(tokio::time::Duration::from_secs(10)).await; + let retry = 10; + warn!( + "Certificate Producer startup sequence failed, retrying in {}s...", + retry + ); + tokio::time::sleep(tokio::time::Duration::from_secs(retry)).await; } } } diff --git a/crates/topos-certificate-spammer/src/lib.rs b/crates/topos-certificate-spammer/src/lib.rs index 4e62dbaab..0e55eb79f 100644 --- a/crates/topos-certificate-spammer/src/lib.rs +++ b/crates/topos-certificate-spammer/src/lib.rs @@ -30,9 +30,9 @@ struct FileNodes { nodes: Vec, } -/// Represents connection from one sequencer to a TCE node +/// Represents connection from one Certificate Producer to a TCE node /// Multiple different subnets could be connected to the same TCE node address (represented with TargetNodeConnection with different SubnetId and created client) -/// Multiple topos-sequencers from the same subnet could be connected to the same TCE node address (so they would have same SubnetID, but different client instances) +/// Multiple topos-certificate-producers from the same subnet could be connected to the same TCE node address (so they would have same SubnetID, but different client instances) struct TargetNodeConnection { address: NodeApiAddress, client: Arc>, diff --git a/crates/topos-config/src/base.rs b/crates/topos-config/src/base.rs index ef0938b08..57d49d04e 100644 --- a/crates/topos-config/src/base.rs +++ b/crates/topos-config/src/base.rs @@ -46,8 +46,8 @@ impl BaseConfig { self.subnet == "topos" } - pub fn need_sequencer(&self) -> bool { - matches!(self.role, NodeRole::Sequencer) + pub fn need_certificate_producer(&self) -> bool { + matches!(self.role, NodeRole::CertificateProducer) } pub fn need_edge(&self) -> bool { diff --git a/crates/topos-config/src/sequencer.rs b/crates/topos-config/src/certificate_producer.rs similarity index 85% rename from crates/topos-config/src/sequencer.rs rename to crates/topos-config/src/certificate_producer.rs index 907958c41..9f7eb5435 100644 --- a/crates/topos-config/src/sequencer.rs +++ b/crates/topos-config/src/certificate_producer.rs @@ -9,8 +9,8 @@ use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize, Debug, Clone)] #[serde(rename_all = "kebab-case")] -pub struct SequencerConfig { - /// SubnetId of your Sequencer, hex encoded 32 bytes prefixed with 0x +pub struct CertificateProducerConfig { + /// SubnetId of your Certificate Producer, hex encoded 32 bytes prefixed with 0x pub subnet_id: Option, /// JSON-RPC endpoint of the Edge node, websocket and http support expected @@ -54,17 +54,17 @@ fn default_tce_grpc_endpoint() -> String { "http://[::1]:1340".to_string() } -impl Config for SequencerConfig { +impl Config for CertificateProducerConfig { type Output = Self; fn load_from_file(figment: Figment, home: &Path) -> Figment { let home = home.join("config.toml"); - let sequencer = Figment::new() + let certificate_producer = Figment::new() .merge(Toml::file(home).nested()) - .select("sequencer"); + .select("certificate_producer"); - figment.merge(sequencer) + figment.merge(certificate_producer) } fn load_context(figment: Figment) -> Result { @@ -72,6 +72,6 @@ impl Config for SequencerConfig { } fn profile() -> String { - "sequencer".to_string() + "certificate_producer".to_string() } } diff --git a/crates/topos-config/src/lib.rs b/crates/topos-config/src/lib.rs index 59610b749..eaf99e13c 100644 --- a/crates/topos-config/src/lib.rs +++ b/crates/topos-config/src/lib.rs @@ -1,8 +1,8 @@ pub(crate) mod base; +pub mod certificate_producer; pub mod edge; pub mod genesis; pub mod node; -pub mod sequencer; pub mod tce; use std::path::Path; diff --git a/crates/topos-config/src/node.rs b/crates/topos-config/src/node.rs index 40f99a1bb..1764996b0 100644 --- a/crates/topos-config/src/node.rs +++ b/crates/topos-config/src/node.rs @@ -10,15 +10,15 @@ use topos_wallet::SecretManager; use tracing::{debug, error}; use crate::{ - base::BaseConfig, edge::EdgeConfig, load_config, sequencer::SequencerConfig, tce::TceConfig, - Config, + base::BaseConfig, certificate_producer::CertificateProducerConfig, edge::EdgeConfig, + load_config, tce::TceConfig, Config, }; #[derive(clap::ValueEnum, Clone, Debug, Deserialize, Serialize)] #[serde(rename_all = "lowercase")] pub enum NodeRole { Validator, - Sequencer, + CertificateProducer, FullNode, } @@ -26,7 +26,7 @@ pub enum NodeRole { pub struct NodeConfig { pub base: BaseConfig, pub tce: Option, - pub sequencer: Option, + pub certificate_producer: Option, pub edge: Option, #[serde(skip)] @@ -90,9 +90,9 @@ impl NodeConfig { edge_path, home_path: home_path.to_path_buf(), base: base.clone(), - sequencer: base - .need_sequencer() - .then(|| load_config::(node_folder, None)), + certificate_producer: base + .need_certificate_producer() + .then(|| load_config::(home, None)), tce: base .need_tce() .then(|| load_config::(node_folder, None)), diff --git a/crates/topos-core/proto/topos/tce/v1/api.proto b/crates/topos-core/proto/topos/tce/v1/api.proto index 935b17456..120f011d7 100644 --- a/crates/topos-core/proto/topos/tce/v1/api.proto +++ b/crates/topos-core/proto/topos/tce/v1/api.proto @@ -88,7 +88,7 @@ message WatchCertificatesResponse { repeated topos.shared.v1.SubnetId subnet_ids = 1; } - // Target Certificate pushed from the TCE to the sequencer + // Target Certificate pushed from the TCE to the certificate producer message CertificatePushed { topos.uci.v1.Certificate certificate = 1; repeated topos.shared.v1.Positions.TargetStreamPosition positions = 2; diff --git a/crates/topos-core/src/api/grpc/generated/topos.tce.v1.rs b/crates/topos-core/src/api/grpc/generated/topos.tce.v1.rs index 62810b084..963115bc8 100644 --- a/crates/topos-core/src/api/grpc/generated/topos.tce.v1.rs +++ b/crates/topos-core/src/api/grpc/generated/topos.tce.v1.rs @@ -564,7 +564,7 @@ pub mod watch_certificates_response { super::super::super::shared::v1::SubnetId, >, } - /// Target Certificate pushed from the TCE to the sequencer + /// Target Certificate pushed from the TCE to the certificate producer #[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct CertificatePushed { diff --git a/crates/topos-node/src/process.rs b/crates/topos-node/src/process.rs index 3e8419dae..b26cf82fa 100644 --- a/crates/topos-node/src/process.rs +++ b/crates/topos-node/src/process.rs @@ -4,12 +4,12 @@ use std::process::ExitStatus; use thiserror::Error; use tokio::{spawn, sync::mpsc, task::JoinHandle}; use tokio_util::sync::CancellationToken; +use topos_certificate_producer::CertificateProducerConfiguration; +use topos_config::certificate_producer::CertificateProducerConfig; use topos_config::edge::command::CommandConfig; -use topos_config::sequencer::SequencerConfig; use topos_config::tce::broadcast::ReliableBroadcastParams; use topos_config::tce::{AuthKey, StorageConfiguration, TceConfig}; use topos_p2p::Multiaddr; -use topos_sequencer::SequencerConfiguration; use topos_wallet::SecretManager; use tracing::{debug, error, warn}; @@ -19,18 +19,18 @@ use topos_config::genesis::Genesis; pub enum Errors { #[error("TCE error")] TceFailure, - #[error("Sequencer error")] - SequencerFailure, + #[error("CertificateProducer error")] + CertificateProducerFailure, #[error("Edge error: {0}")] EdgeTerminated(#[from] std::io::Error), } -pub(crate) fn spawn_sequencer_process( - config: SequencerConfig, +pub(crate) fn spawn_certificate_producer_process( + config: CertificateProducerConfig, keys: &SecretManager, shutdown: (CancellationToken, mpsc::Sender<()>), ) -> JoinHandle> { - let config = SequencerConfiguration { + let config = CertificateProducerConfiguration { subnet_id: config.subnet_id, public_key: keys.validator_pubkey(), subnet_jsonrpc_http: config.subnet_jsonrpc_http, @@ -42,12 +42,14 @@ pub(crate) fn spawn_sequencer_process( start_block: config.start_block, }; - debug!("Sequencer args: {config:?}"); + debug!("Certificate Producer args: {config:?}"); spawn(async move { - topos_sequencer::run(config, shutdown).await.map_err(|e| { - error!("Sequencer failure: {e:?}"); - Errors::SequencerFailure - }) + topos_certificate_producer::run(config, shutdown) + .await + .map_err(|e| { + error!("Certificate Producer failure: {e:?}"); + Errors::CertificateProducerFailure + }) }) } diff --git a/crates/topos-tce-proxy/src/client.rs b/crates/topos-tce-proxy/src/client.rs index 69f81adb9..228d173ab 100644 --- a/crates/topos-tce-proxy/src/client.rs +++ b/crates/topos-tce-proxy/src/client.rs @@ -348,8 +348,8 @@ impl TceClientBuilder { continue; } Err(e) => { - // Backoff maximum period timeout. We need to restart sequencer. - error!("Failed to submit certificate to the tce network, backoff timeout with error: {e}. Restarting sequencer..."); + // Backoff maximum period timeout. We need to restart the certificate producer. + error!("Failed to submit certificate to the tce network, backoff timeout with error: {e}. Restarting the certificate producer..."); if let Some(tce_proxy_event_sender) = tce_proxy_event_sender.clone() { if let Err(e) = tce_proxy_event_sender.send(TceProxyEvent::TceServiceFailure).await { error!("Unable to send tce communication failure signal: {e}"); @@ -529,7 +529,7 @@ impl TceClientBuilder { }; } None => { - error!("Unexpected termination of the TCE proxy service of the Sequencer"); + error!("Unexpected termination of the TCE proxy service of the Certificate Producer"); break; } } diff --git a/crates/topos-tce-proxy/src/lib.rs b/crates/topos-tce-proxy/src/lib.rs index fcef0a39f..a635838dc 100644 --- a/crates/topos-tce-proxy/src/lib.rs +++ b/crates/topos-tce-proxy/src/lib.rs @@ -77,9 +77,9 @@ pub enum TceProxyEvent { certificates: Vec<(Certificate, u64)>, ctx: Context, }, - /// Failed watching certificates channel. Requires a restart of the sequencer tce proxy to recover. + /// Failed watching certificates channel. Requires a restart of the certificate producer tce proxy to recover. WatchCertificatesChannelFailed, - /// Failure in communication with the TCE grpc service. Sequencer needs to be restarted + /// Failure in communication with the TCE grpc service. Certificate Producer needs to be restarted TceServiceFailure, } @@ -87,7 +87,7 @@ pub enum TceProxyEvent { pub struct TceProxyConfig { /// The [`SubnetId`] this config handles certificate proxying for. pub subnet_id: SubnetId, - /// The GRPC endpoint where the Sequencer is expecting to find a TCE node. + /// The GRPC endpoint where the Certificate Producer is expecting to find a TCE node. pub tce_endpoint: String, /// The positions in the index of the known Certificates. pub positions: Vec, diff --git a/crates/topos-tce-proxy/src/worker.rs b/crates/topos-tce-proxy/src/worker.rs index 0869893af..6cf7037cc 100644 --- a/crates/topos-tce-proxy/src/worker.rs +++ b/crates/topos-tce-proxy/src/worker.rs @@ -96,7 +96,7 @@ impl TceProxyWorker { Some(cmd) = command_rcv.recv() => { match cmd { TceProxyCommand::SubmitCertificate{cert, ctx} => { - let span = info_span!("Sequencer TCE Proxy"); + let span = info_span!("Certificate Producer TCE Proxy"); span.set_parent(ctx); async { info!("Submitting new certificate to the TCE network: {}", &cert.id); diff --git a/crates/topos-tce-storage/src/fullnode/mod.rs b/crates/topos-tce-storage/src/fullnode/mod.rs index ff668d6dd..3a31fbba6 100644 --- a/crates/topos-tce-storage/src/fullnode/mod.rs +++ b/crates/topos-tce-storage/src/fullnode/mod.rs @@ -167,7 +167,7 @@ impl WriteStore for FullNodeStore { }; // Return list of new target stream positions of certificate that will be persisted - // Information is needed by sequencer/subnet contract to know from + // Information is needed by certificate producer/subnet contract to know from // where to continue with streaming on restart let mut target_subnet_stream_positions: HashMap = HashMap::new(); diff --git a/crates/topos-tce-storage/src/lib.rs b/crates/topos-tce-storage/src/lib.rs index 1390aef1c..edf937ef6 100644 --- a/crates/topos-tce-storage/src/lib.rs +++ b/crates/topos-tce-storage/src/lib.rs @@ -136,7 +136,7 @@ pub struct CertificatePositions { /// Uniquely identify the source certificate stream head of one subnet. /// The head represent the internal state of the TCE regarding a source subnet stream for -/// certificates that it receives from local sequencer +/// certificates that it receives from the local certificate producer #[derive(Serialize, Deserialize, Debug, Clone)] pub struct SourceHead { /// Certificate id of the head diff --git a/crates/topos-test-sdk/src/sequencer/mod.rs b/crates/topos-test-sdk/src/certificate_producer/mod.rs similarity index 100% rename from crates/topos-test-sdk/src/sequencer/mod.rs rename to crates/topos-test-sdk/src/certificate_producer/mod.rs diff --git a/crates/topos-test-sdk/src/lib.rs b/crates/topos-test-sdk/src/lib.rs index 8c68c678d..a34105c63 100644 --- a/crates/topos-test-sdk/src/lib.rs +++ b/crates/topos-test-sdk/src/lib.rs @@ -1,8 +1,8 @@ pub mod certificates; +pub mod certificate_producer; pub mod networking; pub mod p2p; -pub mod sequencer; pub mod storage; pub mod tce; diff --git a/crates/topos/Cargo.toml b/crates/topos/Cargo.toml index f3b2dfbca..58d49de50 100644 --- a/crates/topos/Cargo.toml +++ b/crates/topos/Cargo.toml @@ -11,7 +11,7 @@ topos-node = { path = "../topos-node/" } topos-config = { path = "../topos-config/" } topos-tce = { path = "../topos-tce/" } topos-p2p = { path = "../topos-p2p" } -topos-sequencer = { path = "../topos-sequencer" } +topos-certificate-producer = { path = "../topos-certificate-producer" } topos-core = { workspace = true, features = ["api"] } topos-certificate-spammer = { path = "../topos-certificate-spammer" } topos-tce-broadcast = { path = "../topos-tce-broadcast", optional = true } diff --git a/crates/topos/src/components/node/commands/init.rs b/crates/topos/src/components/node/commands/init.rs index bad806672..261057ff4 100644 --- a/crates/topos/src/components/node/commands/init.rs +++ b/crates/topos/src/components/node/commands/init.rs @@ -24,7 +24,7 @@ pub struct Init { pub secrets_config: Option, /// For certain use cases, we manually provide private keys to a running node, and don't want to - /// rely on polygon-edge during runtime. Example: A sequencer which runs for an external EVM chain + /// rely on polygon-edge during runtime. Example: A Certificate Producer which runs for an external EVM chain #[arg(long, env = "TOPOS_NO_EDGE_PROCESS", action)] pub no_edge_process: bool, } diff --git a/crates/topos/tests/config.rs b/crates/topos/tests/config.rs index 3ac3c53c8..08ebff9ea 100644 --- a/crates/topos/tests/config.rs +++ b/crates/topos/tests/config.rs @@ -209,7 +209,7 @@ mod serial_integration { let node_init_home_cli = tmp_home_dir_cli.to_str().unwrap(); let node_edge_path_cli = node_edge_path_env.clone(); let node_init_name_cli = "TEST_NODE_CLI"; - let node_init_role_cli = "sequencer"; + let node_init_role_cli = "certificate-producer"; let node_init_subnet_cli = "topos-cli"; let mut cmd = Command::cargo_bin("topos")?; @@ -245,7 +245,7 @@ mod serial_integration { // Check if config file params are according to cli params let config_contents = std::fs::read_to_string(&config_path).unwrap(); assert!(config_contents.contains("name = \"TEST_NODE_CLI\"")); - assert!(config_contents.contains("role = \"sequencer\"")); + assert!(config_contents.contains("role = \"certificate-producer\"")); assert!(config_contents.contains("subnet = \"topos-cli\"")); Ok(()) From 0d427814d49025839374fb8ac0e3d7a292f9e136 Mon Sep 17 00:00:00 2001 From: David Palm Date: Thu, 7 Mar 2024 13:13:12 +0100 Subject: [PATCH 2/6] # This is a combination of 6 commits. # This is the 1st commit message: chore: merge conflicts # This is the commit message #2: chore: rename seq to cert producer # This is the commit message #3: chore: rename seq to cert producer # This is the commit message #4: fix: use kebab case for node roles # This is the commit message #5: chore: comment on e2e-test files # This is the commit message #6: Update named file in other repo --- ...ate_producer_topos_core_contract_test.yml} | 5 +- .github/workflows/coverage.yml | 2 +- .github/workflows/test.yml | 22 +-- Cargo.lock | 136 +++++++++--------- LICENSE | 5 +- crates/topos-config/src/node.rs | 2 +- 6 files changed, 86 insertions(+), 86 deletions(-) rename .github/workflows/{sequencer_topos_core_contract_test.yml => certificate_producer_topos_core_contract_test.yml} (66%) diff --git a/.github/workflows/sequencer_topos_core_contract_test.yml b/.github/workflows/certificate_producer_topos_core_contract_test.yml similarity index 66% rename from .github/workflows/sequencer_topos_core_contract_test.yml rename to .github/workflows/certificate_producer_topos_core_contract_test.yml index c81e0abcb..c82e12312 100644 --- a/.github/workflows/sequencer_topos_core_contract_test.yml +++ b/.github/workflows/certificate_producer_topos_core_contract_test.yml @@ -1,4 +1,4 @@ -name: Sequencer Topos Core Contract interaction test +name: Certificate Producer Topos Core Contract interaction test on: push: @@ -16,7 +16,8 @@ jobs: owner: topos-protocol repo: e2e-tests github_token: ${{ secrets.ROBOT_PAT_TRIGGER_E2E_WORKFLOWS }} - workflow_file_name: topos:sequencer-contracts.yml + # This file is part of https://github.com/topos-protocol/e2e-tests/blob/main/.github/workflows/topos%3Asequencer-contracts.yml + workflow_file_name: topos:certificate-producer-contracts.yml ref: main wait_interval: 60 client_payload: '{ "topos-ref": "${{ github.head_ref }}" }' diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index dfbf865bc..b030c984d 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -37,7 +37,7 @@ jobs: RUSTFLAGS: "-Cinstrument-coverage" RUSTDOCFLAGS: "-Cinstrument-coverage" LLVM_PROFILE_FILE: "codecov-instrumentation-%p-%m.profraw" - run: cargo nextest run --workspace --exclude topos-sequencer-subnet-runtime + run: cargo nextest run --workspace --exclude topos-certificate-producer-subnet-runtime - name: Run grcov run: | diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d57db3efa..1fb895531 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,16 +18,16 @@ jobs: name: Test documentation runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 - - uses: ./.github/actions/install-rust - with: - toolchain: nightly - AWS_ACCESS_KEY_ID: ${{ secrets.ROBOT_AWS_ACCESS_KEY_ID}} - AWS_SECRET_ACCESS_KEY: ${{ secrets.ROBOT_AWS_SECRET_ACCESS_KEY}} + - name: Checkout + uses: actions/checkout@v4 + - uses: ./.github/actions/install-rust + with: + toolchain: nightly + AWS_ACCESS_KEY_ID: ${{ secrets.ROBOT_AWS_ACCESS_KEY_ID}} + AWS_SECRET_ACCESS_KEY: ${{ secrets.ROBOT_AWS_SECRET_ACCESS_KEY}} - - name: Build Documentation - run: cargo +nightly doc --no-deps --all --all-features + - name: Build Documentation + run: cargo +nightly doc --no-deps --all --all-features test_stable: runs-on: ubuntu-latest-16-core @@ -41,7 +41,7 @@ jobs: AWS_ACCESS_KEY_ID: ${{ secrets.ROBOT_AWS_ACCESS_KEY_ID}} AWS_SECRET_ACCESS_KEY: ${{ secrets.ROBOT_AWS_SECRET_ACCESS_KEY}} - - run: cargo nextest run --workspace --exclude topos-sequencer-subnet-runtime && cargo test --doc --workspace + - run: cargo nextest run --workspace --exclude topos-certificate-producer-subnet-runtime && cargo test --doc --workspace env: RUST_LOG: warn,topos=info @@ -58,7 +58,7 @@ jobs: AWS_ACCESS_KEY_ID: ${{ secrets.ROBOT_AWS_ACCESS_KEY_ID}} AWS_SECRET_ACCESS_KEY: ${{ secrets.ROBOT_AWS_SECRET_ACCESS_KEY}} - - run: cargo nextest run --workspace --exclude topos-sequencer-subnet-runtime && cargo test --doc --workspace + - run: cargo nextest run --workspace --exclude topos-certificate-producer-subnet-runtime && cargo test --doc --workspace env: RUST_LOG: topos=warn diff --git a/Cargo.lock b/Cargo.lock index bc2c1e2f1..2d136944a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7708,12 +7708,12 @@ dependencies = [ "tokio-util", "toml 0.7.8", "tonic 0.10.2", + "topos-certificate-producer", "topos-certificate-spammer", "topos-config", "topos-core", "topos-node", "topos-p2p", - "topos-sequencer", "topos-tce", "topos-tce-api", "topos-tce-broadcast", @@ -7732,6 +7732,73 @@ dependencies = [ "uuid 1.7.0", ] +[[package]] +name = "topos-certificate-producer" +version = "0.1.0" +dependencies = [ + "hex", + "opentelemetry", + "serde", + "tokio", + "tokio-util", + "topos-certificate-producer-subnet-runtime", + "topos-core", + "topos-crypto", + "topos-tce-proxy", + "topos-wallet", + "tracing", + "tracing-opentelemetry", + "tracing-subscriber", +] + +[[package]] +name = "topos-certificate-producer-subnet-client" +version = "0.1.0" +dependencies = [ + "backoff", + "ethers", + "ethers-providers", + "hex", + "rustc-hex", + "serde", + "serde_json", + "thiserror", + "tiny-keccak 1.5.0", + "tokio", + "topos-core", + "tracing", +] + +[[package]] +name = "topos-certificate-producer-subnet-runtime" +version = "0.1.0" +dependencies = [ + "byteorder", + "env_logger 0.10.2", + "ethers", + "fs_extra", + "hex", + "opentelemetry", + "rand", + "rand_core", + "rstest", + "secp256k1", + "serde", + "serde_json", + "serial_test", + "test-log", + "thiserror", + "tiny-keccak 1.5.0", + "tokio", + "topos-certificate-producer-subnet-client", + "topos-core", + "topos-crypto", + "topos-test-sdk", + "tracing", + "tracing-opentelemetry", + "tracing-subscriber", +] + [[package]] name = "topos-certificate-spammer" version = "0.1.0" @@ -7980,73 +8047,6 @@ dependencies = [ "void", ] -[[package]] -name = "topos-sequencer" -version = "0.1.0" -dependencies = [ - "hex", - "opentelemetry", - "serde", - "tokio", - "tokio-util", - "topos-core", - "topos-crypto", - "topos-sequencer-subnet-runtime", - "topos-tce-proxy", - "topos-wallet", - "tracing", - "tracing-opentelemetry", - "tracing-subscriber", -] - -[[package]] -name = "topos-sequencer-subnet-client" -version = "0.1.0" -dependencies = [ - "backoff", - "ethers", - "ethers-providers", - "hex", - "rustc-hex", - "serde", - "serde_json", - "thiserror", - "tiny-keccak 1.5.0", - "tokio", - "topos-core", - "tracing", -] - -[[package]] -name = "topos-sequencer-subnet-runtime" -version = "0.1.0" -dependencies = [ - "byteorder", - "env_logger 0.10.2", - "ethers", - "fs_extra", - "hex", - "opentelemetry", - "rand", - "rand_core", - "rstest", - "secp256k1", - "serde", - "serde_json", - "serial_test", - "test-log", - "thiserror", - "tiny-keccak 1.5.0", - "tokio", - "topos-core", - "topos-crypto", - "topos-sequencer-subnet-client", - "topos-test-sdk", - "tracing", - "tracing-opentelemetry", - "tracing-subscriber", -] - [[package]] name = "topos-tce" version = "0.1.0" diff --git a/LICENSE b/LICENSE index 396d39e0c..f73a11e1c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -The Transmission Control Engine (TCE) and Sequencer are licensed under BSL-1.1. +The Transmission Control Engine (TCE) and Certificate Producer are licensed under BSL-1.1. ----------------------------------------------------------------------------- @@ -12,7 +12,7 @@ Parameters Licensor: zk Foundation Licensed Work: Code contained within the "topos" repository - Transmission Control Engine (TCE) and Sequencer + Transmission Control Engine (TCE) and Certificate Producer The Licensed Work is (c) zk Foundation Additional Use Grant: @@ -114,4 +114,3 @@ Notice The Business Source License (this document, or the "License") is not an Open Source license. However, the Licensed Work will eventually be made available under an Open Source License, as stated in this License. - diff --git a/crates/topos-config/src/node.rs b/crates/topos-config/src/node.rs index 1764996b0..03f0cb96c 100644 --- a/crates/topos-config/src/node.rs +++ b/crates/topos-config/src/node.rs @@ -15,7 +15,7 @@ use crate::{ }; #[derive(clap::ValueEnum, Clone, Debug, Deserialize, Serialize)] -#[serde(rename_all = "lowercase")] +#[serde(rename_all = "kebab-case")] pub enum NodeRole { Validator, CertificateProducer, From 7941059a4ce777d5e156acda5e70c491f4671e11 Mon Sep 17 00:00:00 2001 From: David Palm Date: Thu, 7 Mar 2024 13:14:04 +0100 Subject: [PATCH 3/6] chore: merge conflicts --- .../src/api/grpc/generated/topos.bin | Bin 16928 -> 16939 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/crates/topos-core/src/api/grpc/generated/topos.bin b/crates/topos-core/src/api/grpc/generated/topos.bin index adc02a560befb435a981ada5a9e72be1a47bd1ac..b0022e5d12744410a0427a6f9e3d1685ca84e49b 100644 GIT binary patch delta 66 zcmZ3`!nnGHal>RK#)q4yC^c|0-qL}VgPBo?C7LOYS;}QHpP9a3a%xdY WW?E))Vo9n(K~a86>1JoMyW9Z4G!*y% delta 67 zcmV-J0KEUJgaM$00kD%I0oJpWB7g}A%@qm;5(EGMUz6`QAG16x!wC;Z3IqfQ0|62Q ZTLNAK8aa~=HZKNqWpQ<7ZnI7{-3zJZ6AAzT From 2e9d0a94b6ad3f3fe626b589a158e69cb278a4bb Mon Sep 17 00:00:00 2001 From: David Palm Date: Thu, 7 Mar 2024 13:14:54 +0100 Subject: [PATCH 4/6] chore: merge conflicts --- crates/topos/src/components/node/mod.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/crates/topos/src/components/node/mod.rs b/crates/topos/src/components/node/mod.rs index 410791548..9ce34e236 100644 --- a/crates/topos/src/components/node/mod.rs +++ b/crates/topos/src/components/node/mod.rs @@ -169,3 +169,26 @@ fn setup_console_tce_grpc(endpoint: &str) -> Arc, + trigger: CancellationToken, + mut termination: mpsc::Receiver<()>, +) { + trigger.cancel(); + info!("Waiting for all components to stop"); + // let _ = termination.recv().await; + match termination.recv().await { + Some(x) => info!("All good in the hood? {:?}", x), + None => tracing::warn!("Odd, got a None. What does that mean?"), + } + info!("Shutdown complete, exiting."); + + // Shutdown tracing + global::shutdown_tracer_provider(); + if let Some(basic_controller) = basic_controller { + if let Err(e) = basic_controller.stop(&tracing::Span::current().context()) { + error!("Error stopping tracing: {e}"); + } + } +} From 97e85228e225ee7b8aee2692d4ee80c0b15edcfe Mon Sep 17 00:00:00 2001 From: David Palm Date: Thu, 7 Mar 2024 13:15:34 +0100 Subject: [PATCH 5/6] chore: merge conflicts --- crates/topos/tests/config.rs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/crates/topos/tests/config.rs b/crates/topos/tests/config.rs index 08ebff9ea..e0885408b 100644 --- a/crates/topos/tests/config.rs +++ b/crates/topos/tests/config.rs @@ -187,7 +187,7 @@ mod serial_integration { // Check if config file params are according to env params let config_contents = std::fs::read_to_string(&config_path).unwrap(); assert!(config_contents.contains("name = \"TEST_NODE_ENV\"")); - assert!(config_contents.contains("role = \"fullnode\"")); + assert!(config_contents.contains("role = \"full-node\"")); assert!(config_contents.contains("subnet = \"topos-env\"")); Ok(()) @@ -422,12 +422,13 @@ mod serial_integration { let pid = cmd.id().unwrap(); let _ = tokio::time::sleep(std::time::Duration::from_secs(10)).await; - let s = System::new_all(); - if let Some(process) = s.process(Pid::from_u32(pid)) { - if process.kill_with(Signal::Term).is_none() { - eprintln!("This signal isn't supported on this platform"); - } - } + println!("STDOUT: {}", stdout); + let reg = Regex::new(r#"Local node is listening on "\/ip4\/.*\/tcp\/9091\/p2p\/"#).unwrap(); + assert!( + reg.is_match(&stdout), + "Expected node 'Local node is listening on…' but instead got:\n----\n{}\n----\n", + stdout + ); if let Ok(output) = cmd.wait_with_output().await { assert!(output.status.success()); From 6ef3aa444dddd7e7f53e8da3fa8047bd48befe5f Mon Sep 17 00:00:00 2001 From: David Palm Date: Thu, 7 Mar 2024 13:20:28 +0100 Subject: [PATCH 6/6] chore: merge conflicts --- Cargo.lock | 867 ++++++++++-------- .../src/proxy.rs | 3 - crates/topos-config/src/node.rs | 2 +- crates/topos-node/Cargo.toml | 2 +- crates/topos-node/src/lib.rs | 23 +- crates/topos-tce-api/src/stream/mod.rs | 2 +- crates/topos/src/components/node/mod.rs | 23 - crates/topos/tests/config.rs | 13 +- 8 files changed, 484 insertions(+), 451 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2d136944a..b66b79840 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -39,9 +39,9 @@ dependencies = [ [[package]] name = "aes" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", @@ -112,9 +112,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.11" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" +checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" dependencies = [ "anstyle", "anstyle-parse", @@ -160,15 +160,15 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" [[package]] name = "arc-swap" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" +checksum = "7b3d0060af21e8d11a926981cc00c6c1541aa91dd64b9f881985c3da1094425f" [[package]] name = "arrayref" @@ -244,9 +244,9 @@ checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] name = "assert_cmd" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00ad3f3a942eee60335ab4342358c161ee296829e0d16ff42fc1d6cb07815467" +checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8" dependencies = [ "anstyle", "bstr", @@ -270,13 +270,13 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" +checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3" dependencies = [ "concurrent-queue", - "event-listener 4.0.3", - "event-listener-strategy", + "event-listener 5.2.0", + "event-listener-strategy 0.5.0", "futures-core", "pin-project-lite", ] @@ -313,7 +313,7 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" dependencies = [ - "async-channel 2.1.1", + "async-channel 2.2.0", "async-executor", "async-io 2.3.1", "async-lock 3.3.0", @@ -339,8 +339,8 @@ dependencies = [ "fnv", "futures-util", "handlebars", - "http 0.2.11", - "indexmap 2.2.2", + "http 0.2.12", + "indexmap 2.2.5", "mime", "multer", "num-traits", @@ -381,12 +381,12 @@ checksum = "c7f329c7eb9b646a72f70c9c4b516c70867d356ec46cb00dcac8ad343fd006b0" dependencies = [ "Inflector", "async-graphql-parser", - "darling 0.20.5", + "darling 0.20.8", "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "strum", - "syn 2.0.48", + "strum 0.25.0", + "syn 2.0.52", "thiserror", ] @@ -409,7 +409,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "323a5143f5bdd2030f45e3f2e0c821c9b1d36e79cf382129c64299c50a7f3750" dependencies = [ "bytes", - "indexmap 2.2.2", + "indexmap 2.2.5", "serde", "serde_json", ] @@ -446,7 +446,7 @@ dependencies = [ "futures-io", "futures-lite 2.2.0", "parking", - "polling 3.4.0", + "polling 3.5.0", "rustix 0.38.31", "slab", "tracing", @@ -469,7 +469,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" dependencies = [ "event-listener 4.0.3", - "event-listener-strategy", + "event-listener-strategy 0.4.0", "pin-project-lite", ] @@ -509,7 +509,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -549,7 +549,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -566,7 +566,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -614,7 +614,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2" dependencies = [ - "http 0.2.11", + "http 0.2.12", "log", "url", ] @@ -632,13 +632,13 @@ dependencies = [ [[package]] name = "auto_impl" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -660,7 +660,7 @@ dependencies = [ "bytes", "futures-util", "headers", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "hyper 0.14.28", "itoa", @@ -693,10 +693,10 @@ dependencies = [ "axum-core 0.4.3", "bytes", "futures-util", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "http-body-util", - "hyper 1.1.0", + "hyper 1.2.0", "hyper-util", "itoa", "matchit", @@ -726,7 +726,7 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "mime", "rustversion", @@ -743,7 +743,7 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "http-body-util", "mime", @@ -765,7 +765,7 @@ dependencies = [ "bytes", "futures", "futures-core", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "matchit", "metrics", @@ -774,7 +774,7 @@ dependencies = [ "pin-project", "tokio", "tower", - "tower-http 0.5.1", + "tower-http 0.5.2", ] [[package]] @@ -943,7 +943,7 @@ version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" dependencies = [ - "async-channel 2.1.1", + "async-channel 2.2.0", "async-lock 3.3.0", "async-task", "fastrand 2.0.1", @@ -965,7 +965,7 @@ dependencies = [ "futures-core", "futures-util", "hex", - "http 0.2.11", + "http 0.2.12", "hyper 0.14.28", "hyperlocal", "log", @@ -1003,20 +1003,20 @@ dependencies = [ [[package]] name = "bstr" -version = "1.9.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc" +checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" dependencies = [ "memchr", - "regex-automata 0.4.5", + "regex-automata 0.4.6", "serde", ] [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b" [[package]] name = "byte-slice-cast" @@ -1032,9 +1032,9 @@ checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205" [[package]] name = "bytemuck" -version = "1.14.2" +version = "1.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea31d69bda4949c1c1562c1e6f042a1caefac98cdc8a298260a2ff41c1e2d42b" +checksum = "a2ef034f05691a48569bd920a96c81b9d91bbad1ab5ac7c4616c1f6ef36cb79f" [[package]] name = "byteorder" @@ -1083,9 +1083,9 @@ dependencies = [ [[package]] name = "cargo-platform" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceed8ef69d8518a5dda55c07425450b58a4e1946f4951eab6d7191ee86c2443d" +checksum = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f" dependencies = [ "serde", ] @@ -1112,9 +1112,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.83" +version = "1.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "8cd6604a82acf3039f1144f54b8eb34e91ffba622051189e71b781822d5ee1f5" dependencies = [ "jobserver", "libc", @@ -1161,14 +1161,14 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.33" +version = "0.4.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb" +checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" dependencies = [ "android-tzdata", "iana-time-zone", "num-traits", - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -1232,31 +1232,31 @@ dependencies = [ "clap_lex 0.2.4", "indexmap 1.9.3", "once_cell", - "strsim", + "strsim 0.10.0", "termcolor", - "textwrap 0.16.0", + "textwrap 0.16.1", ] [[package]] name = "clap" -version = "4.4.18" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" +checksum = "b230ab84b0ffdf890d5a10abdbc8b83ae1c4918275daea1ab8801f71536b2651" dependencies = [ "clap_builder", - "clap_derive 4.4.7", + "clap_derive 4.5.0", ] [[package]] name = "clap_builder" -version = "4.4.18" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" dependencies = [ "anstream", "anstyle", - "clap_lex 0.6.0", - "strsim", + "clap_lex 0.7.0", + "strsim 0.11.0", ] [[package]] @@ -1274,14 +1274,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.4.7" +version = "4.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -1295,9 +1295,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "coins-bip32" @@ -1381,9 +1381,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d59688ad0945eaf6b84cb44fedbe93484c81b48970e98f09db8a22832d7961" +checksum = "efbd12d49ab0eaf8193ba9175e45f56bbc2e4b27d57b8cfe62aa47942a46b9a9" dependencies = [ "cfg-if", "cpufeatures", @@ -1440,9 +1440,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" dependencies = [ "cfg-if", ] @@ -1456,7 +1456,7 @@ dependencies = [ "anes", "cast", "ciborium", - "clap 4.4.18", + "clap 4.5.2", "criterion-plot", "futures", "is-terminal", @@ -1487,9 +1487,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.11" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" +checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95" dependencies = [ "crossbeam-utils", ] @@ -1657,7 +1657,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -1672,12 +1672,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.5" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc5d6b04b3fd0ba9926f945895de7d806260a2d7431ba82e7edaecb043c4c6b8" +checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" dependencies = [ - "darling_core 0.20.5", - "darling_macro 0.20.5", + "darling_core 0.20.8", + "darling_macro 0.20.8", ] [[package]] @@ -1690,22 +1690,22 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim", + "strsim 0.10.0", "syn 1.0.109", ] [[package]] name = "darling_core" -version = "0.20.5" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04e48a959bcd5c761246f5d090ebc2fbf7b9cd527a492b07a67510c108f1e7e3" +checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", - "strsim", - "syn 2.0.48", + "strsim 0.10.0", + "syn 2.0.52", ] [[package]] @@ -1721,13 +1721,13 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.20.5" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1545d67a2149e1d93b7e5c7752dce5a7426eb5d1357ddcfd89336b94444f77" +checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" dependencies = [ - "darling_core 0.20.5", + "darling_core 0.20.8", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -1813,12 +1813,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "diff" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" - [[package]] name = "difflib" version = "0.4.0" @@ -1896,7 +1890,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -1947,9 +1941,9 @@ checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" [[package]] name = "dyn-clone" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "ecdsa" @@ -1992,9 +1986,9 @@ dependencies = [ [[package]] name = "either" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" [[package]] name = "elliptic-curve" @@ -2041,9 +2035,9 @@ dependencies = [ [[package]] name = "enr" -version = "0.9.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe81b5c06ecfdbc71dd845216f225f53b62a10cb8a16c946836a3467f701d05b" +checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" dependencies = [ "base64 0.21.7", "bytes", @@ -2078,7 +2072,16 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", +] + +[[package]] +name = "env_filter" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" +dependencies = [ + "log", ] [[package]] @@ -2107,6 +2110,16 @@ dependencies = [ "termcolor", ] +[[package]] +name = "env_logger" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" +dependencies = [ + "env_filter", + "log", +] + [[package]] name = "equivalent" version = "1.0.1" @@ -2222,9 +2235,9 @@ dependencies = [ [[package]] name = "ethers" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c7cd562832e2ff584fa844cd2f6e5d4f35bbe11b28c7c9b8df957b2e1d0c701" +checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" dependencies = [ "ethers-addressbook", "ethers-contract", @@ -2238,9 +2251,9 @@ dependencies = [ [[package]] name = "ethers-addressbook" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35dc9a249c066d17e8947ff52a4116406163cf92c7f0763cb8c001760b26403f" +checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" dependencies = [ "ethers-core", "once_cell", @@ -2250,9 +2263,9 @@ dependencies = [ [[package]] name = "ethers-contract" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43304317c7f776876e47f2f637859f6d0701c1ec7930a150f169d5fbe7d76f5a" +checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" dependencies = [ "const-hex", "ethers-contract-abigen", @@ -2269,9 +2282,9 @@ dependencies = [ [[package]] name = "ethers-contract-abigen" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9f96502317bf34f6d71a3e3d270defaa9485d754d789e15a8e04a84161c95eb" +checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" dependencies = [ "Inflector", "const-hex", @@ -2286,7 +2299,7 @@ dependencies = [ "reqwest", "serde", "serde_json", - "syn 2.0.48", + "syn 2.0.52", "tokio", "toml 0.8.10", "url", @@ -2295,9 +2308,9 @@ dependencies = [ [[package]] name = "ethers-contract-derive" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "452ff6b0a64507ce8d67ffd48b1da3b42f03680dcf5382244e9c93822cbbf5de" +checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" dependencies = [ "Inflector", "const-hex", @@ -2306,14 +2319,14 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] name = "ethers-core" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aab3cef6cc1c9fd7f787043c81ad3052eff2b96a3878ef1526aa446311bdbfc9" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" dependencies = [ "arrayvec", "bytes", @@ -2331,8 +2344,8 @@ dependencies = [ "rlp", "serde", "serde_json", - "strum", - "syn 2.0.48", + "strum 0.26.1", + "syn 2.0.52", "tempfile", "thiserror", "tiny-keccak 2.0.2", @@ -2341,9 +2354,9 @@ dependencies = [ [[package]] name = "ethers-etherscan" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d45b981f5fa769e1d0343ebc2a44cfa88c9bc312eb681b676318b40cef6fb1" +checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" dependencies = [ "chrono", "ethers-core", @@ -2357,9 +2370,9 @@ dependencies = [ [[package]] name = "ethers-middleware" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145211f34342487ef83a597c1e69f0d3e01512217a7c72cc8a25931854c7dca0" +checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" dependencies = [ "async-trait", "auto_impl", @@ -2384,9 +2397,9 @@ dependencies = [ [[package]] name = "ethers-providers" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb6b15393996e3b8a78ef1332d6483c11d839042c17be58decc92fa8b1c3508a" +checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" dependencies = [ "async-trait", "auto_impl", @@ -2400,7 +2413,7 @@ dependencies = [ "futures-timer", "futures-util", "hashers", - "http 0.2.11", + "http 0.2.12", "instant", "jsonwebtoken", "once_cell", @@ -2422,9 +2435,9 @@ dependencies = [ [[package]] name = "ethers-signers" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3b125a103b56aef008af5d5fb48191984aa326b50bfd2557d231dc499833de3" +checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" dependencies = [ "async-trait", "coins-bip32", @@ -2441,9 +2454,9 @@ dependencies = [ [[package]] name = "ethers-solc" -version = "2.0.13" +version = "2.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d21df08582e0a43005018a858cc9b465c5fff9cf4056651be64f844e57d1f55f" +checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" dependencies = [ "cfg-if", "const-hex", @@ -2499,6 +2512,17 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "event-listener" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite", +] + [[package]] name = "event-listener-strategy" version = "0.4.0" @@ -2509,6 +2533,16 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "event-listener-strategy" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291" +dependencies = [ + "event-listener 5.2.0", + "pin-project-lite", +] + [[package]] name = "eyre" version = "0.6.12" @@ -2798,7 +2832,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -2836,9 +2870,9 @@ dependencies = [ [[package]] name = "futures-timer" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" dependencies = [ "gloo-timers", "send_wrapper 0.4.0", @@ -2895,9 +2929,9 @@ dependencies = [ [[package]] name = "ghash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" dependencies = [ "opaque-debug", "polyval", @@ -2928,7 +2962,7 @@ checksum = "b0e085ded9f1267c32176b40921b9754c474f7dd96f7e808d4a982e48aa1e854" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -2952,7 +2986,7 @@ dependencies = [ "aho-corasick", "bstr", "log", - "regex-automata 0.4.5", + "regex-automata 0.4.6", "regex-syntax 0.8.2", ] @@ -3001,8 +3035,8 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http 0.2.11", - "indexmap 2.2.2", + "http 0.2.12", + "indexmap 2.2.5", "slab", "tokio", "tokio-util", @@ -3020,8 +3054,8 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http 1.0.0", - "indexmap 2.2.2", + "http 1.1.0", + "indexmap 2.2.5", "slab", "tokio", "tokio-util", @@ -3030,9 +3064,9 @@ dependencies = [ [[package]] name = "half" -version = "2.3.1" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" +checksum = "b5eceaaeec696539ddaf7b333340f1af35a5aa87ae3e4f3ead0532f72affab2e" dependencies = [ "cfg-if", "crunchy", @@ -3058,15 +3092,6 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -[[package]] -name = "hashbrown" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ff8ae62cd3a9102e5637afc8452c55acf3844001bd5374e0b0bd7b6616c038" -dependencies = [ - "ahash", -] - [[package]] name = "hashbrown" version = "0.14.3" @@ -3095,7 +3120,7 @@ dependencies = [ "base64 0.21.7", "bytes", "headers-core", - "http 0.2.11", + "http 0.2.12", "httpdate", "mime", "sha1", @@ -3107,7 +3132,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" dependencies = [ - "http 0.2.11", + "http 0.2.12", ] [[package]] @@ -3136,9 +3161,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.3.5" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -3213,9 +3238,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -3224,9 +3249,9 @@ dependencies = [ [[package]] name = "http" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", @@ -3240,7 +3265,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", - "http 0.2.11", + "http 0.2.12", "pin-project-lite", ] @@ -3251,7 +3276,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" dependencies = [ "bytes", - "http 1.0.0", + "http 1.1.0", ] [[package]] @@ -3262,7 +3287,7 @@ checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840" dependencies = [ "bytes", "futures-util", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "pin-project-lite", ] @@ -3302,13 +3327,13 @@ dependencies = [ "futures-core", "futures-util", "h2 0.3.24", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2 0.5.5", + "socket2 0.5.6", "tokio", "tower-service", "tracing", @@ -3317,20 +3342,21 @@ dependencies = [ [[package]] name = "hyper" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75" +checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a" dependencies = [ "bytes", "futures-channel", "futures-util", "h2 0.4.2", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "httparse", "httpdate", "itoa", "pin-project-lite", + "smallvec", "tokio", ] @@ -3341,7 +3367,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", - "http 0.2.11", + "http 0.2.12", "hyper 0.14.28", "rustls 0.21.10", "tokio", @@ -3381,11 +3407,11 @@ checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" dependencies = [ "bytes", "futures-util", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", - "hyper 1.1.0", + "hyper 1.2.0", "pin-project-lite", - "socket2 0.5.5", + "socket2 0.5.6", "tokio", ] @@ -3502,7 +3528,7 @@ dependencies = [ "attohttpc", "bytes", "futures", - "http 0.2.11", + "http 0.2.12", "hyper 0.14.28", "log", "rand", @@ -3521,7 +3547,7 @@ dependencies = [ "globset", "log", "memchr", - "regex-automata 0.4.5", + "regex-automata 0.4.6", "same-file", "walkdir", "winapi-util", @@ -3592,9 +3618,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.2" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" +checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -3624,9 +3650,9 @@ dependencies = [ [[package]] name = "insta" -version = "1.34.0" +version = "1.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d64600be34b2fcfc267740a243fa7744441bb4947a619ac4e5bb6507f35fbfc" +checksum = "0a7c22c4d34ef4788c351e971c52bfdfe7ea2766f8c5466bc175dd46e52ac22e" dependencies = [ "console", "lazy_static", @@ -3663,7 +3689,7 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.5", + "hermit-abi 0.3.9", "libc", "windows-sys 0.48.0", ] @@ -3674,7 +3700,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.5", + "socket2 0.5.6", "widestring", "windows-sys 0.48.0", "winreg", @@ -3688,12 +3714,12 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "is-terminal" -version = "0.4.10" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" dependencies = [ - "hermit-abi 0.3.5", - "rustix 0.38.31", + "hermit-abi 0.3.9", + "libc", "windows-sys 0.52.0", ] @@ -3723,18 +3749,18 @@ checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "jobserver" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -3788,31 +3814,33 @@ dependencies = [ [[package]] name = "lalrpop" -version = "0.20.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da4081d44f4611b66c6dd725e6de3169f9f63905421e8626fcb86b6a898998b8" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" dependencies = [ "ascii-canvas", "bit-set", - "diff", "ena", - "is-terminal", - "itertools 0.10.5", + "itertools 0.11.0", "lalrpop-util", "petgraph", "regex", - "regex-syntax 0.7.5", + "regex-syntax 0.8.2", "string_cache", "term", "tiny-keccak 2.0.2", "unicode-xid", + "walkdir", ] [[package]] name = "lalrpop-util" -version = "0.20.0" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" +dependencies = [ + "regex-automata 0.4.6", +] [[package]] name = "lazy_static" @@ -3834,12 +3862,12 @@ checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "libloading" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" dependencies = [ "cfg-if", - "windows-sys 0.48.0", + "windows-targets 0.52.4", ] [[package]] @@ -4074,7 +4102,7 @@ dependencies = [ "log", "rand", "smallvec", - "socket2 0.5.5", + "socket2 0.5.6", "tokio", "trust-dns-proto 0.22.0", "void", @@ -4157,7 +4185,7 @@ dependencies = [ "rand", "ring 0.16.20", "rustls 0.21.10", - "socket2 0.5.5", + "socket2 0.5.6", "thiserror", "tokio", ] @@ -4213,7 +4241,7 @@ dependencies = [ "proc-macro-warning", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -4249,7 +4277,7 @@ dependencies = [ "libp2p-core", "libp2p-identity", "log", - "socket2 0.5.5", + "socket2 0.5.6", "tokio", ] @@ -4417,15 +4445,15 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "lru" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2c024b41519440580066ba82aab04092b333e09066a5eb86c7c4890df31f22" +checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc" dependencies = [ "hashbrown 0.14.3", ] @@ -4494,9 +4522,9 @@ checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "metrics" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77b9e10a211c839210fd7f99954bda26e5f8e26ec686ad68da6a32df7c80e782" +checksum = "cd71d9db2e4287c3407fa04378b8c2ee570aebe0854431562cdd89ca091854f4" dependencies = [ "ahash", "portable-atomic", @@ -4504,13 +4532,13 @@ dependencies = [ [[package]] name = "metrics-exporter-prometheus" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a4c4718a371ddfb7806378f23617876eea8b82e5ff1324516bcd283249d9ea" +checksum = "9bf4e7146e30ad172c42c39b3246864bd2d3c6396780711a1baf749cfe423e21" dependencies = [ "base64 0.21.7", "hyper 0.14.28", - "indexmap 1.9.3", + "indexmap 2.2.5", "ipnet", "metrics", "metrics-util", @@ -4521,13 +4549,13 @@ dependencies = [ [[package]] name = "metrics-util" -version = "0.16.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2670b8badcc285d486261e2e9f1615b506baff91427b61bd336a472b65bbf5ed" +checksum = "ece71ab046dcf45604e573329966ec1db5ff4b81cfa170a924ff4c959ab5451a" dependencies = [ "crossbeam-epoch", "crossbeam-utils", - "hashbrown 0.13.1", + "hashbrown 0.14.3", "metrics", "num_cpus", "quanta", @@ -4602,7 +4630,7 @@ dependencies = [ "bytes", "encoding_rs", "futures-util", - "http 0.2.11", + "http 0.2.12", "httparse", "log", "memchr", @@ -4845,19 +4873,18 @@ checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", "libm", @@ -4869,7 +4896,7 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.5", + "hermit-abi 0.3.9", "libc", ] @@ -4891,7 +4918,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -4929,9 +4956,9 @@ checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "open-fastrlp" @@ -4960,9 +4987,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.63" +version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" +checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ "bitflags 2.4.2", "cfg-if", @@ -4981,7 +5008,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -4992,18 +5019,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-src" -version = "300.2.2+3.2.1" +version = "300.2.3+3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bbfad0063610ac26ee79f7484739e2b07555a75c42453b89263830b5c8103bc" +checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843" dependencies = [ "cc", ] [[package]] name = "openssl-sys" -version = "0.9.99" +version = "0.9.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" +checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff" dependencies = [ "cc", "libc", @@ -5031,7 +5058,7 @@ dependencies = [ "async-trait", "futures", "futures-util", - "http 0.2.11", + "http 0.2.12", "opentelemetry", "opentelemetry-proto", "prost 0.11.9", @@ -5217,7 +5244,7 @@ checksum = "4ccca0f6c17acc81df8e242ed473ec144cbf5c98037e69aa6d144780aad103c8" dependencies = [ "inlinable_string", "pear_codegen", - "yansi 1.0.0-rc.1", + "yansi 1.0.0", ] [[package]] @@ -5229,7 +5256,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -5282,9 +5309,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.7" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219c0dcc30b6a27553f9cc242972b67f75b60eb0db71f0b5462f38b058c41546" +checksum = "56f8023d0fb78c8e03784ea1c7f3fa36e68a723138990b8d5a47d916b651e7a8" dependencies = [ "memchr", "thiserror", @@ -5293,9 +5320,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.7" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e1288dbd7786462961e69bfd4df7848c1e37e8b74303dbdab82c3a9cdd2809" +checksum = "b0d24f72393fd16ab6ac5738bc33cdb6a9aa73f8b902e8fe29cf4e67d7dd1026" dependencies = [ "pest", "pest_generator", @@ -5303,22 +5330,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.7" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1381c29a877c6d34b8c176e734f35d7f7f5b3adaefe940cb4d1bb7af94678e2e" +checksum = "fdc17e2a6c7d0a492f0158d7a4bd66cc17280308bbaff78d5bef566dca35ab80" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] name = "pest_meta" -version = "2.7.7" +version = "2.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0934d6907f148c22a3acbda520c7eed243ad7487a30f51f6ce52b58b7077a8a" +checksum = "934cd7631c050f4674352a6e835d5f6711ffbfb9345c2fc0107155ac495ae293" dependencies = [ "once_cell", "pest", @@ -5332,7 +5359,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 2.2.2", + "indexmap 2.2.5", ] [[package]] @@ -5375,7 +5402,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -5398,22 +5425,22 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -5451,9 +5478,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "platforms" @@ -5507,9 +5534,9 @@ dependencies = [ [[package]] name = "polling" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14" +checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9" dependencies = [ "cfg-if", "concurrent-queue", @@ -5532,9 +5559,9 @@ dependencies = [ [[package]] name = "polyval" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", "cpufeatures", @@ -5617,7 +5644,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" dependencies = [ "proc-macro2", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -5707,7 +5734,7 @@ checksum = "3d1eaa7fa0aa1929ffdf7eeb6eac234dde6268914a14ad44d23521ab6a9b258e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -5727,9 +5754,9 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", "version_check", - "yansi 1.0.0-rc.1", + "yansi 1.0.0", ] [[package]] @@ -5775,7 +5802,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -5831,7 +5858,7 @@ dependencies = [ "prost 0.12.3", "prost-types", "regex", - "syn 2.0.48", + "syn 2.0.52", "tempfile", "which", ] @@ -5859,7 +5886,7 @@ dependencies = [ "itertools 0.11.0", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -5963,7 +5990,7 @@ checksum = "055b4e778e8feb9f93c4e439f71dc2156ef13360b432b799e179a8c4cdf0b1d7" dependencies = [ "bytes", "libc", - "socket2 0.5.5", + "socket2 0.5.6", "tracing", "windows-sys 0.48.0", ] @@ -6043,9 +6070,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" dependencies = [ "either", "rayon-core", @@ -6101,7 +6128,7 @@ checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.5", + "regex-automata 0.4.6", "regex-syntax 0.8.2", ] @@ -6116,9 +6143,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", @@ -6131,12 +6158,6 @@ version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" -[[package]] -name = "regex-syntax" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - [[package]] name = "regex-syntax" version = "0.8.2" @@ -6155,7 +6176,7 @@ dependencies = [ "futures-core", "futures-util", "h2 0.3.24", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "hyper 0.14.28", "hyper-rustls", @@ -6224,16 +6245,17 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.7" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", + "cfg-if", "getrandom", "libc", "spin 0.9.8", "untrusted 0.9.0", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -6401,7 +6423,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", - "ring 0.17.7", + "ring 0.17.8", "rustls-webpki", "sct", ] @@ -6433,7 +6455,7 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.7", + "ring 0.17.8", "untrusted 0.9.0", ] @@ -6456,9 +6478,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" [[package]] name = "salsa20" @@ -6535,7 +6557,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.7", + "ring 0.17.8", "untrusted 0.9.0", ] @@ -6629,9 +6651,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" dependencies = [ "serde", ] @@ -6650,29 +6672,29 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.196" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] name = "serde_json" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" dependencies = [ "itoa", "ryu", @@ -6734,11 +6756,11 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.31" +version = "0.9.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adf8a49373e98a4c5f0ceb5d05aa7c648d75f63774981ed95b7c7443bbd50c6e" +checksum = "8fd075d994154d4a774f95b51fb96bdc2832b0ea48425c92546073816cda1f2f" dependencies = [ - "indexmap 2.2.2", + "indexmap 2.2.5", "itoa", "ryu", "serde", @@ -6923,7 +6945,7 @@ dependencies = [ "chacha20poly1305", "curve25519-dalek", "rand_core", - "ring 0.17.7", + "ring 0.17.8", "rustc_version", "sha2 0.10.8", "subtle", @@ -6941,12 +6963,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -7010,13 +7032,28 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +[[package]] +name = "strsim" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01" + [[package]] name = "strum" version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" dependencies = [ - "strum_macros", + "strum_macros 0.25.3", +] + +[[package]] +name = "strum" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f" +dependencies = [ + "strum_macros 0.26.1", ] [[package]] @@ -7029,7 +7066,20 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.48", + "syn 2.0.52", +] + +[[package]] +name = "strum_macros" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.52", ] [[package]] @@ -7071,9 +7121,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07" dependencies = [ "proc-macro2", "quote", @@ -7186,9 +7236,9 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.10.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand 2.0.1", @@ -7224,24 +7274,24 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "test-log" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6159ab4116165c99fc88cce31f99fa2c9dbe08d3691cb38da02fc3b45f357d2b" +checksum = "7b319995299c65d522680decf80f2c108d85b861d81dfe340a10d16cee29d9e6" dependencies = [ - "env_logger 0.10.2", + "env_logger 0.11.3", "test-log-macros", "tracing-subscriber", ] [[package]] name = "test-log-macros" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba277e77219e9eea169e8508942db1bf5d8a41ff2db9b20aab5a5aadc9fa25d" +checksum = "c8f546451eaa38373f549093fe9fd05e7d2bade739e2ddf834b9968621d60107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -7255,35 +7305,35 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" +checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" [[package]] name = "thiserror" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "1.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -7377,7 +7427,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.5", + "socket2 0.5.6", "tokio-macros", "windows-sys 0.48.0", ] @@ -7400,7 +7450,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -7506,7 +7556,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.4", + "toml_edit 0.22.6", ] [[package]] @@ -7524,11 +7574,11 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.2", + "indexmap 2.2.5", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] @@ -7537,9 +7587,9 @@ version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "indexmap 2.2.2", + "indexmap 2.2.5", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] @@ -7548,22 +7598,22 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.2.2", + "indexmap 2.2.5", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.22.4" +version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951" +checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" dependencies = [ - "indexmap 2.2.2", + "indexmap 2.2.5", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.5", ] [[package]] @@ -7580,7 +7630,7 @@ dependencies = [ "futures-core", "futures-util", "h2 0.3.24", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "hyper 0.14.28", "hyper-timeout", @@ -7613,7 +7663,7 @@ dependencies = [ "base64 0.21.7", "bytes", "h2 0.3.24", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "hyper 0.14.28", "hyper-timeout", @@ -7642,7 +7692,7 @@ dependencies = [ "proc-macro2", "prost-build", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -7678,7 +7728,7 @@ dependencies = [ "assert_cmd", "async-stream", "async-trait", - "clap 4.4.18", + "clap 4.5.2", "dirs", "env_logger 0.10.2", "flate2", @@ -7803,10 +7853,10 @@ dependencies = [ name = "topos-certificate-spammer" version = "0.1.0" dependencies = [ - "clap 4.4.18", + "clap 4.5.2", "futures", "hex", - "http 0.2.11", + "http 0.2.12", "lazy_static", "opentelemetry", "rand", @@ -7845,7 +7895,7 @@ dependencies = [ "assert_cmd", "async-stream", "async-trait", - "clap 4.4.18", + "clap 4.5.2", "dirs", "env_logger 0.10.2", "figment", @@ -7954,7 +8004,7 @@ dependencies = [ "assert_cmd", "async-stream", "async-trait", - "clap 4.4.18", + "clap 4.5.2", "dirs", "env_logger 0.10.2", "flate2", @@ -7984,11 +8034,11 @@ dependencies = [ "tokio-util", "toml 0.7.8", "tonic 0.10.2", + "topos-certificate-producer", "topos-certificate-spammer", "topos-config", "topos-core", "topos-p2p", - "topos-sequencer", "topos-tce", "topos-tce-api", "topos-tce-broadcast", @@ -8017,7 +8067,7 @@ dependencies = [ "env_logger 0.10.2", "futures", "hex", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "http-body-util", "hyper 0.14.28", @@ -8057,7 +8107,7 @@ dependencies = [ "axum-prometheus", "bincode", "bytes", - "clap 4.4.18", + "clap 4.5.2", "cucumber", "env_logger 0.10.2", "futures", @@ -8112,7 +8162,7 @@ dependencies = [ "env_logger 0.10.2", "futures", "hex", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "hyper 0.14.28", "pin-project", @@ -8370,7 +8420,7 @@ dependencies = [ "bytes", "futures-core", "futures-util", - "http 0.2.11", + "http 0.2.12", "http-body 0.4.6", "http-range-header", "pin-project-lite", @@ -8380,13 +8430,13 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0da193277a4e2c33e59e09b5861580c33dd0a637c3883d0fa74ba40c0374af2e" +checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5" dependencies = [ "bitflags 2.4.2", "bytes", - "http 1.0.0", + "http 1.1.0", "http-body 1.0.0", "http-body-util", "pin-project-lite", @@ -8426,7 +8476,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -8591,7 +8641,7 @@ dependencies = [ "byteorder", "bytes", "data-encoding", - "http 0.2.11", + "http 0.2.12", "httparse", "log", "rand", @@ -8666,9 +8716,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] @@ -8819,9 +8869,9 @@ checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -8844,9 +8894,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -8854,24 +8904,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -8881,9 +8931,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -8891,28 +8941,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "web-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", @@ -8924,7 +8974,7 @@ version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" dependencies = [ - "ring 0.17.7", + "ring 0.17.8", "untrusted 0.9.0", ] @@ -9008,7 +9058,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -9026,7 +9076,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets 0.52.4", ] [[package]] @@ -9046,17 +9096,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b" dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm 0.52.4", + "windows_aarch64_msvc 0.52.4", + "windows_i686_gnu 0.52.4", + "windows_i686_msvc 0.52.4", + "windows_x86_64_gnu 0.52.4", + "windows_x86_64_gnullvm 0.52.4", + "windows_x86_64_msvc 0.52.4", ] [[package]] @@ -9067,9 +9117,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9" [[package]] name = "windows_aarch64_msvc" @@ -9079,9 +9129,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675" [[package]] name = "windows_i686_gnu" @@ -9091,9 +9141,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3" [[package]] name = "windows_i686_msvc" @@ -9103,9 +9153,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02" [[package]] name = "windows_x86_64_gnu" @@ -9115,9 +9165,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03" [[package]] name = "windows_x86_64_gnullvm" @@ -9127,9 +9177,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177" [[package]] name = "windows_x86_64_msvc" @@ -9139,15 +9189,24 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.0" +version = "0.52.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8" [[package]] name = "winnow" -version = "0.5.39" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5389a154b01683d28c77f8f68f49dea75f0a4da32557a58f68ee51ebba472d29" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8" dependencies = [ "memchr", ] @@ -9277,9 +9336,9 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" [[package]] name = "yansi" -version = "1.0.0-rc.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1367295b8f788d371ce2dbc842c7b709c73ee1364d30351dd300ec2203b12377" +checksum = "6c2861d76f58ec8fc95708b9b1e417f7b12fd72ad33c01fa6886707092dea0d3" [[package]] name = "yasna" @@ -9307,7 +9366,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] @@ -9327,7 +9386,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.52", ] [[package]] diff --git a/crates/topos-certificate-producer-subnet-runtime/src/proxy.rs b/crates/topos-certificate-producer-subnet-runtime/src/proxy.rs index f12def801..375f31af2 100644 --- a/crates/topos-certificate-producer-subnet-runtime/src/proxy.rs +++ b/crates/topos-certificate-producer-subnet-runtime/src/proxy.rs @@ -9,9 +9,6 @@ use std::sync::Arc; use tokio::sync::Mutex; use tokio::sync::{mpsc, oneshot}; use tokio::time::Duration; -use topos_certificate_producer_subnet_client::{ - self, BlockInfo, SubnetClient, SubnetClientListener, -}; use topos_certificate_producer_subnet_client::{BlockInfo, SubnetClient, SubnetClientListener}; use topos_core::api::grpc::checkpoints::TargetStreamPosition; use topos_core::uci::{Certificate, CertificateId, SubnetId}; diff --git a/crates/topos-config/src/node.rs b/crates/topos-config/src/node.rs index 03f0cb96c..55aa5cbf3 100644 --- a/crates/topos-config/src/node.rs +++ b/crates/topos-config/src/node.rs @@ -92,7 +92,7 @@ impl NodeConfig { base: base.clone(), certificate_producer: base .need_certificate_producer() - .then(|| load_config::(home, None)), + .then(|| load_config::(node_folder, None)), tce: base .need_tce() .then(|| load_config::(node_folder, None)), diff --git a/crates/topos-node/Cargo.toml b/crates/topos-node/Cargo.toml index 5962cd6bd..9ad8b507d 100644 --- a/crates/topos-node/Cargo.toml +++ b/crates/topos-node/Cargo.toml @@ -12,7 +12,7 @@ workspace = true topos-config = { path = "../topos-config/" } topos-tce = { path = "../topos-tce/" } topos-p2p = { path = "../topos-p2p" } -topos-sequencer = { path = "../topos-sequencer" } +topos-certificate-producer = { path = "../topos-certificate-producer" } topos-core = { workspace = true, features = ["api"] } topos-certificate-spammer = { path = "../topos-certificate-spammer" } topos-tce-broadcast = { path = "../topos-tce-broadcast", optional = true } diff --git a/crates/topos-node/src/lib.rs b/crates/topos-node/src/lib.rs index 3b9b6a5a3..69c05ece3 100644 --- a/crates/topos-node/src/lib.rs +++ b/crates/topos-node/src/lib.rs @@ -36,9 +36,10 @@ pub enum Error { IO(#[from] std::io::Error), #[error( - "The role in the config file expect to have a sequencer config defined, none was found" + "The role in the config file expects to have a Certificate Producer config defined, none \ + was found" )] - MissingSequencerConfig, + MissingCertificateProducerConfig, #[error("An Edge config was expected to be found in the config file")] MissingEdgeConfig, @@ -179,19 +180,19 @@ fn spawn_processes( )); } - // Sequencer - if matches!(config.base.role, NodeRole::Sequencer) { - let sequencer_config = config - .sequencer + // Certificate Producer + if matches!(config.base.role, NodeRole::CertificateProducer) { + let cert_prod_config = config + .certificate_producer .take() - .ok_or(Error::MissingSequencerConfig)?; + .ok_or(Error::MissingCertificateProducerConfig)?; info!( - "Running sequencer with configuration {:?}", - sequencer_config + "Running Certificate Producer with configuration {:?}", + cert_prod_config ); - processes.push(process::spawn_sequencer_process( - sequencer_config, + processes.push(process::spawn_certificate_producer_process( + cert_prod_config, &keys, (shutdown_token.clone(), shutdown_sender.clone()), )); diff --git a/crates/topos-tce-api/src/stream/mod.rs b/crates/topos-tce-api/src/stream/mod.rs index 0cef0d097..820cc3362 100644 --- a/crates/topos-tce-api/src/stream/mod.rs +++ b/crates/topos-tce-api/src/stream/mod.rs @@ -165,7 +165,7 @@ impl Stream { } _ => { // We are not handling specific errors for now. - // If the sequencer is closing the connection, we are receiving a + // If the Certificate Producer is closing the connection, we are receiving a // StreamErrorKind::TransportError. error!( "Stream error: {:?}", error); return Err(StreamError::new(self.stream_id, error.kind)); diff --git a/crates/topos/src/components/node/mod.rs b/crates/topos/src/components/node/mod.rs index 9ce34e236..410791548 100644 --- a/crates/topos/src/components/node/mod.rs +++ b/crates/topos/src/components/node/mod.rs @@ -169,26 +169,3 @@ fn setup_console_tce_grpc(endpoint: &str) -> Arc, - trigger: CancellationToken, - mut termination: mpsc::Receiver<()>, -) { - trigger.cancel(); - info!("Waiting for all components to stop"); - // let _ = termination.recv().await; - match termination.recv().await { - Some(x) => info!("All good in the hood? {:?}", x), - None => tracing::warn!("Odd, got a None. What does that mean?"), - } - info!("Shutdown complete, exiting."); - - // Shutdown tracing - global::shutdown_tracer_provider(); - if let Some(basic_controller) = basic_controller { - if let Err(e) = basic_controller.stop(&tracing::Span::current().context()) { - error!("Error stopping tracing: {e}"); - } - } -} diff --git a/crates/topos/tests/config.rs b/crates/topos/tests/config.rs index e0885408b..014522a3b 100644 --- a/crates/topos/tests/config.rs +++ b/crates/topos/tests/config.rs @@ -422,13 +422,12 @@ mod serial_integration { let pid = cmd.id().unwrap(); let _ = tokio::time::sleep(std::time::Duration::from_secs(10)).await; - println!("STDOUT: {}", stdout); - let reg = Regex::new(r#"Local node is listening on "\/ip4\/.*\/tcp\/9091\/p2p\/"#).unwrap(); - assert!( - reg.is_match(&stdout), - "Expected node 'Local node is listening on…' but instead got:\n----\n{}\n----\n", - stdout - ); + let s = System::new_all(); + if let Some(process) = s.process(Pid::from_u32(pid)) { + if process.kill_with(Signal::Term).is_none() { + eprintln!("This signal isn't supported on this platform"); + } + } if let Ok(output) = cmd.wait_with_output().await { assert!(output.status.success());