From 533d82e3ef99aef5a151c57c48e0c49a42e3db3f Mon Sep 17 00:00:00 2001 From: stringhandler Date: Thu, 9 May 2024 14:56:43 +0200 Subject: [PATCH] ci: build dockers test (#1020) --- .github/workflows/build_binaries.json | 12 +- .github/workflows/build_binaries.yml | 2 +- Cargo.lock | 106 +++++++++--------- Cargo.toml | 2 +- applications/tari_generate/src/main.rs | 13 ++- applications/tari_indexer/log4rs_sample.yml | 8 +- ci_all.bat | 6 +- .../src/hotstuff/on_receive_local_proposal.rs | 9 +- .../base_layer/base_layer_epoch_manager.rs | 52 ++++++--- .../src/base_layer/epoch_manager_service.rs | 4 +- .../storage/src/global/backend_adapter.rs | 6 + .../storage/src/global/validator_node_db.rs | 30 +++-- .../2024-04-01-121212_add_sidechain_id/up.sql | 6 +- .../2024-04-12-000000_create_committes/up.sql | 4 +- dan_layer/storage_sqlite/src/error.rs | 2 +- .../src/global/backend_adapter.rs | 65 +++++++---- .../src/global/models/committee.rs | 10 +- .../src/global/models/validator_node.rs | 23 ++-- dan_layer/storage_sqlite/src/global/schema.rs | 4 +- dan_layer/storage_sqlite/tests/global_db.rs | 16 ++- networking/core/src/worker.rs | 3 +- networking/rpc_framework/src/server/mod.rs | 6 +- 22 files changed, 231 insertions(+), 158 deletions(-) diff --git a/.github/workflows/build_binaries.json b/.github/workflows/build_binaries.json index aaed6bf00..40ef4ca74 100644 --- a/.github/workflows/build_binaries.json +++ b/.github/workflows/build_binaries.json @@ -2,7 +2,7 @@ { "name": "linux-x86_64", "runs-on": "ubuntu-22.04", - "rust": "stable", + "rust": "1.77", "target": "x86_64-unknown-linux-gnu", "cross": false, "features": "" @@ -10,7 +10,7 @@ { "name": "linux-arm64", "runs-on": "ubuntu-20.04", - "rust": "stable", + "rust": "1.77", "target": "aarch64-unknown-linux-gnu", "cross": true, "features": "", @@ -30,7 +30,7 @@ { "name": "macos-x86_64", "runs-on": "macos-11", - "rust": "stable", + "rust": "1.77", "target": "x86_64-apple-darwin", "cross": false, "features": "" @@ -38,7 +38,7 @@ { "name": "macos-arm64", "runs-on": "macos-14", - "rust": "stable", + "rust": "1.77", "target": "aarch64-apple-darwin", "cross": false, "features": "", @@ -48,7 +48,7 @@ { "name": "windows-x64", "runs-on": "windows-2019", - "rust": "stable", + "rust": "1.77", "target": "x86_64-pc-windows-msvc", "cross": false, "features": "" @@ -56,7 +56,7 @@ { "name": "windows-arm64", "runs-on": "windows-latest", - "rust": "stable", + "rust": "1.77", "target": "aarch64-pc-windows-msvc", "cross": false, "target_bins": "tari_dan_wallet_cli, tari_dan_wallet_daemon, tari_indexer, tari_validator_node, tari_signaling_server", diff --git a/.github/workflows/build_binaries.yml b/.github/workflows/build_binaries.yml index 1c5994128..7f8001122 100644 --- a/.github/workflows/build_binaries.yml +++ b/.github/workflows/build_binaries.yml @@ -27,7 +27,7 @@ env: TS_LIBRARIES: "" TARI_TARGET_NETWORK: igor TARI_NETWORK: igor - toolchain: stable + toolchain: 1.77 matrix-json-file: ".github/workflows/build_binaries.json" CARGO_HTTP_MULTIPLEXING: false CARGO_UNSTABLE_SPARSE_REGISTRY: true diff --git a/Cargo.lock b/Cargo.lock index 50f91e028..267e5c71f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1687,7 +1687,7 @@ dependencies = [ [[package]] name = "consensus_tests" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "async-trait", @@ -3249,7 +3249,7 @@ checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" [[package]] name = "generate_ristretto_value_lookup" -version = "0.5.1" +version = "0.5.3" dependencies = [ "clap 3.2.25", "human_bytes", @@ -4039,7 +4039,7 @@ checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" [[package]] name = "integration_tests" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "base64 0.21.7", @@ -4665,7 +4665,7 @@ dependencies = [ [[package]] name = "libp2p-messaging" -version = "0.5.1" +version = "0.5.3" dependencies = [ "async-trait", "futures-bounded", @@ -4821,7 +4821,7 @@ dependencies = [ [[package]] name = "libp2p-substream" -version = "0.5.1" +version = "0.5.3" dependencies = [ "libp2p", "smallvec 1.13.2", @@ -7015,7 +7015,7 @@ dependencies = [ [[package]] name = "proto_builder" -version = "0.5.1" +version = "0.5.3" dependencies = [ "prost-build 0.12.4", "sha2", @@ -8448,7 +8448,7 @@ dependencies = [ [[package]] name = "sqlite_message_logger" -version = "0.5.1" +version = "0.5.3" dependencies = [ "chrono", "diesel", @@ -8795,7 +8795,7 @@ dependencies = [ [[package]] name = "tari_base_node_client" -version = "0.5.1" +version = "0.5.3" dependencies = [ "async-trait", "log", @@ -8813,7 +8813,7 @@ dependencies = [ [[package]] name = "tari_bor" -version = "0.5.1" +version = "0.5.3" dependencies = [ "ciborium", "ciborium-io", @@ -8998,7 +8998,7 @@ dependencies = [ [[package]] name = "tari_consensus" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "async-trait", @@ -9141,7 +9141,7 @@ dependencies = [ [[package]] name = "tari_dan_app_utilities" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "async-trait", @@ -9190,7 +9190,7 @@ dependencies = [ [[package]] name = "tari_dan_common_types" -version = "0.5.1" +version = "0.5.3" dependencies = [ "blake2", "libp2p-identity", @@ -9213,7 +9213,7 @@ dependencies = [ [[package]] name = "tari_dan_engine" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "blake2", @@ -9247,7 +9247,7 @@ dependencies = [ [[package]] name = "tari_dan_p2p" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "prost 0.12.4", @@ -9267,7 +9267,7 @@ dependencies = [ [[package]] name = "tari_dan_storage" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "chrono", @@ -9290,7 +9290,7 @@ dependencies = [ [[package]] name = "tari_dan_storage_lmdb" -version = "0.5.1" +version = "0.5.3" dependencies = [ "hex", "lmdb-zero", @@ -9304,7 +9304,7 @@ dependencies = [ [[package]] name = "tari_dan_storage_sqlite" -version = "0.5.1" +version = "0.5.3" dependencies = [ "chrono", "diesel", @@ -9322,7 +9322,7 @@ dependencies = [ [[package]] name = "tari_dan_wallet_cli" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "base64 0.20.0", @@ -9351,7 +9351,7 @@ dependencies = [ [[package]] name = "tari_dan_wallet_crypto" -version = "0.5.1" +version = "0.5.3" dependencies = [ "blake2", "chacha20poly1305", @@ -9369,7 +9369,7 @@ dependencies = [ [[package]] name = "tari_dan_wallet_daemon" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "axum", @@ -9417,7 +9417,7 @@ dependencies = [ [[package]] name = "tari_dan_wallet_sdk" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "async-trait", @@ -9449,7 +9449,7 @@ dependencies = [ [[package]] name = "tari_dan_wallet_storage_sqlite" -version = "0.5.1" +version = "0.5.3" dependencies = [ "bigdecimal", "chrono", @@ -9472,7 +9472,7 @@ dependencies = [ [[package]] name = "tari_engine_types" -version = "0.5.1" +version = "0.5.3" dependencies = [ "base64 0.21.7", "blake2", @@ -9496,7 +9496,7 @@ dependencies = [ [[package]] name = "tari_epoch_manager" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "async-trait", @@ -9521,7 +9521,7 @@ source = "git+https://github.com/tari-project/tari.git?branch=feature-dan2#7d480 [[package]] name = "tari_generate" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "clap 3.2.25", @@ -9548,7 +9548,7 @@ dependencies = [ [[package]] name = "tari_indexer" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "async-graphql", @@ -9598,7 +9598,7 @@ dependencies = [ [[package]] name = "tari_indexer_client" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "multiaddr 0.18.1", @@ -9619,7 +9619,7 @@ dependencies = [ [[package]] name = "tari_indexer_lib" -version = "0.5.1" +version = "0.5.3" dependencies = [ "async-trait", "futures 0.3.30", @@ -9713,7 +9713,7 @@ dependencies = [ [[package]] name = "tari_networking" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "async-trait", @@ -9762,7 +9762,7 @@ dependencies = [ [[package]] name = "tari_rpc_framework" -version = "0.5.1" +version = "0.5.3" dependencies = [ "async-trait", "bitflags 2.5.0", @@ -9787,7 +9787,7 @@ dependencies = [ [[package]] name = "tari_rpc_macros" -version = "0.5.1" +version = "0.5.3" dependencies = [ "proc-macro2", "quote", @@ -9796,7 +9796,7 @@ dependencies = [ [[package]] name = "tari_rpc_state_sync" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "async-trait", @@ -9817,7 +9817,7 @@ dependencies = [ [[package]] name = "tari_scaffolder" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "clap 3.2.25", @@ -9871,7 +9871,7 @@ dependencies = [ [[package]] name = "tari_signaling_server" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "axum", @@ -9894,7 +9894,7 @@ dependencies = [ [[package]] name = "tari_state_store_sqlite" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "bigdecimal", @@ -9918,7 +9918,7 @@ dependencies = [ [[package]] name = "tari_state_tree" -version = "0.5.1" +version = "0.5.3" dependencies = [ "hex", "indexmap 2.2.6", @@ -9947,7 +9947,7 @@ dependencies = [ [[package]] name = "tari_swarm" -version = "0.5.1" +version = "0.5.3" dependencies = [ "libp2p", "libp2p-messaging", @@ -9959,7 +9959,7 @@ dependencies = [ [[package]] name = "tari_swarm_daemon" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "async-trait", @@ -9997,7 +9997,7 @@ dependencies = [ [[package]] name = "tari_template_abi" -version = "0.5.1" +version = "0.5.3" dependencies = [ "hashbrown 0.13.2", "serde", @@ -10007,14 +10007,14 @@ dependencies = [ [[package]] name = "tari_template_builtin" -version = "0.5.1" +version = "0.5.3" dependencies = [ "tari_engine_types", ] [[package]] name = "tari_template_lib" -version = "0.5.1" +version = "0.5.3" dependencies = [ "newtype-ops", "serde", @@ -10028,7 +10028,7 @@ dependencies = [ [[package]] name = "tari_template_macros" -version = "0.5.1" +version = "0.5.3" dependencies = [ "indoc", "proc-macro2", @@ -10040,7 +10040,7 @@ dependencies = [ [[package]] name = "tari_template_test_tooling" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "rand", @@ -10074,7 +10074,7 @@ dependencies = [ [[package]] name = "tari_transaction" -version = "0.5.1" +version = "0.5.3" dependencies = [ "indexmap 2.2.6", "rand", @@ -10090,7 +10090,7 @@ dependencies = [ [[package]] name = "tari_transaction_manifest" -version = "0.5.1" +version = "0.5.3" dependencies = [ "proc-macro2", "syn 1.0.109", @@ -10122,7 +10122,7 @@ dependencies = [ [[package]] name = "tari_validator_node" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "async-trait", @@ -10179,7 +10179,7 @@ dependencies = [ [[package]] name = "tari_validator_node_cli" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "clap 3.2.25", @@ -10207,7 +10207,7 @@ dependencies = [ [[package]] name = "tari_validator_node_client" -version = "0.5.1" +version = "0.5.3" dependencies = [ "multiaddr 0.18.1", "reqwest", @@ -10225,7 +10225,7 @@ dependencies = [ [[package]] name = "tari_validator_node_rpc" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "async-trait", @@ -10246,7 +10246,7 @@ dependencies = [ [[package]] name = "tari_wallet_daemon_client" -version = "0.5.1" +version = "0.5.3" dependencies = [ "chrono", "reqwest", @@ -10265,7 +10265,7 @@ dependencies = [ [[package]] name = "tariswap_bench" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "clap 4.5.4", @@ -10854,7 +10854,7 @@ dependencies = [ [[package]] name = "transaction_generator" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "bincode 2.0.0-rc.3", @@ -10873,7 +10873,7 @@ dependencies = [ [[package]] name = "transaction_submitter" -version = "0.5.1" +version = "0.5.3" dependencies = [ "anyhow", "clap 4.5.4", diff --git a/Cargo.toml b/Cargo.toml index 882bbc3de..e5f03b96b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ # NOTE: When editing this version, also edit the versions in template_built_in/templates/account and account_nft [workspace.package] -version = "0.5.1" +version = "0.5.3" edition = "2021" authors = ["The Tari Development Community"] repository = "https://github.com/tari-project/tari-dan" diff --git a/applications/tari_generate/src/main.rs b/applications/tari_generate/src/main.rs index 94fcda3fb..c06c47f35 100644 --- a/applications/tari_generate/src/main.rs +++ b/applications/tari_generate/src/main.rs @@ -88,7 +88,7 @@ struct ScaffoldArgs { #[clap(long, short = 'c', alias = "config")] pub generator_config_file: Option, #[clap(long, short = 'a')] - address: String, + template_address: String, #[clap(long, short = 'j')] dan_testing_jrpc_url: String, } @@ -284,9 +284,12 @@ async fn scaffold(args: ScaffoldArgs) -> anyhow::Result<()> { output_path: "output/".into(), liquid: Some(generators::LiquidGeneratorOpts { skip_format: false, - variables: vec![("template_address".to_string(), Value::String(args.address.clone()))] - .into_iter() - .collect(), + variables: vec![( + "template_address".to_string(), + Value::String(args.template_address.clone()), + )] + .into_iter() + .collect(), }), }; @@ -307,7 +310,7 @@ async fn scaffold(args: ScaffoldArgs) -> anyhow::Result<()> { let request = json!({ "jsonrpc" : "2.0", "method": "get_template", - "params": [hex::decode(args.address)?], + "params": [hex::decode(args.template_address)?], "id": 1 }); let response = reqwest::Client::new() diff --git a/applications/tari_indexer/log4rs_sample.yml b/applications/tari_indexer/log4rs_sample.yml index ceef1fe9a..fed295cc4 100644 --- a/applications/tari_indexer/log4rs_sample.yml +++ b/applications/tari_indexer/log4rs_sample.yml @@ -106,12 +106,16 @@ loggers: - stdout additive: false + tari::dan::networking: + level: debug + appenders: + - network + additive: true + tari::dan: level: info appenders: - dan_layer - - stdout - additive: false tari::indexer: level: info diff --git a/ci_all.bat b/ci_all.bat index 777c6070e..4f72c3f12 100644 --- a/ci_all.bat +++ b/ci_all.bat @@ -1,5 +1 @@ -cargo +nightly ci-fmt -cargo machete -cargo ci-check -cargo ci-test -cargo ci-cucumber \ No newline at end of file +cargo +nightly ci-fmt && cargo machete && cargo ci-check && cargo ci-test && cargo ci-cucumber \ No newline at end of file diff --git a/dan_layer/consensus/src/hotstuff/on_receive_local_proposal.rs b/dan_layer/consensus/src/hotstuff/on_receive_local_proposal.rs index 3db5e95ab..9c01ea8a2 100644 --- a/dan_layer/consensus/src/hotstuff/on_receive_local_proposal.rs +++ b/dan_layer/consensus/src/hotstuff/on_receive_local_proposal.rs @@ -151,7 +151,7 @@ impl OnReceiveLocalProposalHandler OnReceiveLocalProposalHandler::WriteTransaction<'_>, block: Block, @@ -424,6 +424,8 @@ impl OnReceiveLocalProposalHandler OnReceiveLocalProposalHandler candidate_block.height() { warn!(target: LOG_TARGET, "🔥 Bad proposal, dummy block height {} is greater than new height {}", last_dummy_block, candidate_block); diff --git a/dan_layer/epoch_manager/src/base_layer/base_layer_epoch_manager.rs b/dan_layer/epoch_manager/src/base_layer/base_layer_epoch_manager.rs index 7f76467ad..9bbbc68a5 100644 --- a/dan_layer/epoch_manager/src/base_layer/base_layer_epoch_manager.rs +++ b/dan_layer/epoch_manager/src/base_layer/base_layer_epoch_manager.rs @@ -144,7 +144,11 @@ impl let mut tx = self.global_db.create_transaction()?; let mut validator_nodes = self.global_db.validator_nodes(&mut tx); - let vns = validator_nodes.get_all_within_epochs(start_epoch, end_epoch)?; + let vns = validator_nodes.get_all_within_epochs( + start_epoch, + end_epoch, + self.config.validator_node_sidechain_id.as_ref(), + )?; let num_committees = calculate_num_committees(vns.len() as u64, self.config.committee_size); @@ -152,6 +156,7 @@ impl validator_nodes.set_committee_bucket( vn.shard_key, vn.shard_key.to_committee_shard(num_committees), + self.config.validator_node_sidechain_id.as_ref(), self.current_epoch, )?; } @@ -349,7 +354,12 @@ impl let vn = self .global_db .validator_nodes(&mut tx) - .get_by_public_key(start_epoch, end_epoch, public_key) + .get_by_public_key( + start_epoch, + end_epoch, + public_key, + self.config.validator_node_sidechain_id.as_ref(), + ) .optional()?; Ok(vn) @@ -388,7 +398,12 @@ impl let vn = self .global_db .validator_nodes(&mut tx) - .get_by_public_key(start_epoch, end_epoch, &public_key) + .get_by_public_key( + start_epoch, + end_epoch, + &public_key, + self.config.validator_node_sidechain_id.as_ref(), + ) .optional()? .ok_or_else(|| EpochManagerError::ValidatorNodeNotRegistered { address: public_key.to_string(), @@ -490,7 +505,7 @@ impl let (start_epoch, end_epoch) = self.get_epoch_range(epoch)?; let mut tx = self.global_db.create_transaction()?; let mut vn_db = self.global_db.validator_nodes(&mut tx); - let num_vns = vn_db.count(start_epoch, end_epoch)?; + let num_vns = vn_db.count(start_epoch, end_epoch, self.config.validator_node_sidechain_id.as_ref())?; let vn = vn_db.get_by_address(start_epoch, end_epoch, identity)?; let num_committees = calculate_num_committees(num_vns, self.config.committee_size); let shard = substate_address.to_committee_shard(num_committees); @@ -504,7 +519,11 @@ impl let (start_epoch, end_epoch) = self.get_epoch_range(epoch)?; let mut tx = self.global_db.create_transaction()?; - let num_vns = self.global_db.validator_nodes(&mut tx).count(start_epoch, end_epoch)?; + let num_vns = self.global_db.validator_nodes(&mut tx).count( + start_epoch, + end_epoch, + self.config.validator_node_sidechain_id.as_ref(), + )?; Ok(calculate_num_committees(num_vns, self.config.committee_size)) } @@ -522,10 +541,11 @@ impl let (start_epoch, end_epoch) = self.get_epoch_range(epoch)?; let mut tx = self.global_db.create_transaction()?; - let db_vns = self - .global_db - .validator_nodes(&mut tx) - .get_all_within_epochs(start_epoch, end_epoch)?; + let db_vns = self.global_db.validator_nodes(&mut tx).get_all_within_epochs( + start_epoch, + end_epoch, + self.config.validator_node_sidechain_id.as_ref(), + )?; let vns = db_vns.into_iter().map(Into::into).collect(); Ok(vns) } @@ -599,8 +619,12 @@ impl let mut tx = self.global_db.create_transaction()?; let mut validator_node_db = self.global_db.validator_nodes(&mut tx); let (start_epoch, end_epoch) = self.get_epoch_range(epoch)?; - let validators = - validator_node_db.get_by_shard_range(start_epoch, end_epoch, rounded_substate_address_range)?; + let validators = validator_node_db.get_by_shard_range( + start_epoch, + end_epoch, + self.config.validator_node_sidechain_id.as_ref(), + rounded_substate_address_range, + )?; Ok(Committee::new( validators.into_iter().map(|v| (v.address, v.public_key)).collect(), )) @@ -622,7 +646,8 @@ impl let mut tx = self.global_db.create_transaction()?; let mut validator_node_db = self.global_db.validator_nodes(&mut tx); let (start_epoch, end_epoch) = self.get_epoch_range(epoch)?; - let num_validators = validator_node_db.count(start_epoch, end_epoch)?; + let num_validators = + validator_node_db.count(start_epoch, end_epoch, self.config.validator_node_sidechain_id.as_ref())?; Ok(num_validators) } @@ -642,7 +667,8 @@ impl let shard = substate_address.to_committee_shard(num_committees); let mut tx = self.global_db.create_transaction()?; let mut validator_node_db = self.global_db.validator_nodes(&mut tx); - let num_validators = validator_node_db.count_in_bucket(epoch, shard)?; + let num_validators = + validator_node_db.count_in_bucket(epoch, self.config.validator_node_sidechain_id.as_ref(), shard)?; let num_validators = u32::try_from(num_validators).map_err(|_| EpochManagerError::IntegerOverflow { func: "get_committee_shard", })?; diff --git a/dan_layer/epoch_manager/src/base_layer/epoch_manager_service.rs b/dan_layer/epoch_manager/src/base_layer/epoch_manager_service.rs index e08e2cf48..f309b78fa 100644 --- a/dan_layer/epoch_manager/src/base_layer/epoch_manager_service.rs +++ b/dan_layer/epoch_manager/src/base_layer/epoch_manager_service.rs @@ -20,7 +20,7 @@ // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE // USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -use log::{error, info}; +use log::{debug, error, info}; use tari_base_node_client::grpc::GrpcBaseNodeClient; use tari_common_types::types::PublicKey; use tari_dan_common_types::{DerivableFromPublicKey, NodeAddressable}; @@ -102,7 +102,7 @@ impl #[allow(clippy::too_many_lines)] async fn handle_request(&mut self, req: EpochManagerRequest) { - info!(target: LOG_TARGET, "Received request: {:?}", req); + debug!(target: LOG_TARGET, "Received request: {:?}", req); match req { EpochManagerRequest::CurrentEpoch { reply } => handle(reply, Ok(self.inner.current_epoch())), EpochManagerRequest::CurrentBlockInfo { reply } => handle(reply, Ok(self.inner.current_block_info())), diff --git a/dan_layer/storage/src/global/backend_adapter.rs b/dan_layer/storage/src/global/backend_adapter.rs index e23916851..fed386018 100644 --- a/dan_layer/storage/src/global/backend_adapter.rs +++ b/dan_layer/storage/src/global/backend_adapter.rs @@ -94,6 +94,7 @@ pub trait GlobalDbAdapter: AtomicDb + Send + Sync + Clone { tx: &mut Self::DbTransaction<'_>, start_epoch: Epoch, end_epoch: Epoch, + sidechain_id: Option<&PublicKey>, ) -> Result>, Self::Error>; fn get_validator_node_by_address( &self, @@ -108,17 +109,20 @@ pub trait GlobalDbAdapter: AtomicDb + Send + Sync + Clone { start_epoch: Epoch, end_epoch: Epoch, public_key: &PublicKey, + sidechain_id: Option<&PublicKey>, ) -> Result, Self::Error>; fn validator_nodes_count( &self, tx: &mut Self::DbTransaction<'_>, start_epoch: Epoch, end_epoch: Epoch, + sidechain_id: Option<&PublicKey>, ) -> Result; fn validator_nodes_count_for_bucket( &self, tx: &mut Self::DbTransaction<'_>, epoch: Epoch, + sidechain_id: Option<&PublicKey>, bucket: Shard, ) -> Result; @@ -127,6 +131,7 @@ pub trait GlobalDbAdapter: AtomicDb + Send + Sync + Clone { tx: &mut Self::DbTransaction<'_>, shard_key: SubstateAddress, bucket: Shard, + sidechain_id: Option<&PublicKey>, epoch: Epoch, ) -> Result<(), Self::Error>; @@ -135,6 +140,7 @@ pub trait GlobalDbAdapter: AtomicDb + Send + Sync + Clone { tx: &mut Self::DbTransaction<'_>, start_epoch: Epoch, end_epoch: Epoch, + sidechain_id: Option<&PublicKey>, shard_range: RangeInclusive, ) -> Result>, Self::Error>; diff --git a/dan_layer/storage/src/global/validator_node_db.rs b/dan_layer/storage/src/global/validator_node_db.rs index d1a679c3d..881c30ff5 100644 --- a/dan_layer/storage/src/global/validator_node_db.rs +++ b/dan_layer/storage/src/global/validator_node_db.rs @@ -62,15 +62,25 @@ impl<'a, 'tx, TGlobalDbAdapter: GlobalDbAdapter> ValidatorNodeDb<'a, 'tx, TGloba .map_err(TGlobalDbAdapter::Error::into) } - pub fn count(&mut self, start_epoch: Epoch, end_epoch: Epoch) -> Result { + pub fn count( + &mut self, + start_epoch: Epoch, + end_epoch: Epoch, + sidechain_id: Option<&PublicKey>, + ) -> Result { self.backend - .validator_nodes_count(self.tx, start_epoch, end_epoch) + .validator_nodes_count(self.tx, start_epoch, end_epoch, sidechain_id) .map_err(TGlobalDbAdapter::Error::into) } - pub fn count_in_bucket(&mut self, epoch: Epoch, bucket: Shard) -> Result { + pub fn count_in_bucket( + &mut self, + epoch: Epoch, + sidechain_id: Option<&PublicKey>, + bucket: Shard, + ) -> Result { self.backend - .validator_nodes_count_for_bucket(self.tx, epoch, bucket) + .validator_nodes_count_for_bucket(self.tx, epoch, sidechain_id, bucket) .map_err(TGlobalDbAdapter::Error::into) } @@ -79,9 +89,10 @@ impl<'a, 'tx, TGlobalDbAdapter: GlobalDbAdapter> ValidatorNodeDb<'a, 'tx, TGloba start_epoch: Epoch, end_epoch: Epoch, public_key: &PublicKey, + sidechain_id: Option<&PublicKey>, ) -> Result, TGlobalDbAdapter::Error> { self.backend - .get_validator_node_by_public_key(self.tx, start_epoch, end_epoch, public_key) + .get_validator_node_by_public_key(self.tx, start_epoch, end_epoch, public_key, sidechain_id) .map_err(TGlobalDbAdapter::Error::into) } @@ -100,9 +111,10 @@ impl<'a, 'tx, TGlobalDbAdapter: GlobalDbAdapter> ValidatorNodeDb<'a, 'tx, TGloba &mut self, start_epoch: Epoch, end_epoch: Epoch, + sidechain_id: Option<&PublicKey>, ) -> Result>, TGlobalDbAdapter::Error> { self.backend - .get_validator_nodes_within_epochs(self.tx, start_epoch, end_epoch) + .get_validator_nodes_within_epochs(self.tx, start_epoch, end_epoch, sidechain_id) .map_err(TGlobalDbAdapter::Error::into) } @@ -110,10 +122,11 @@ impl<'a, 'tx, TGlobalDbAdapter: GlobalDbAdapter> ValidatorNodeDb<'a, 'tx, TGloba &mut self, start_epoch: Epoch, end_epoch: Epoch, + sidechain_id: Option<&PublicKey>, shard_range: RangeInclusive, ) -> Result>, TGlobalDbAdapter::Error> { self.backend - .validator_nodes_get_by_shard_range(self.tx, start_epoch, end_epoch, shard_range) + .validator_nodes_get_by_shard_range(self.tx, start_epoch, end_epoch, sidechain_id, shard_range) .map_err(TGlobalDbAdapter::Error::into) } @@ -132,10 +145,11 @@ impl<'a, 'tx, TGlobalDbAdapter: GlobalDbAdapter> ValidatorNodeDb<'a, 'tx, TGloba &mut self, substate_address: SubstateAddress, committee_bucket: Shard, + sidechain_id: Option<&PublicKey>, epoch: Epoch, ) -> Result<(), TGlobalDbAdapter::Error> { self.backend - .validator_nodes_set_committee_bucket(self.tx, substate_address, committee_bucket, epoch) + .validator_nodes_set_committee_bucket(self.tx, substate_address, committee_bucket, sidechain_id, epoch) .map_err(TGlobalDbAdapter::Error::into) } } diff --git a/dan_layer/storage_sqlite/migrations/2024-04-01-121212_add_sidechain_id/up.sql b/dan_layer/storage_sqlite/migrations/2024-04-01-121212_add_sidechain_id/up.sql index faaf7de98..93cbc8fe8 100644 --- a/dan_layer/storage_sqlite/migrations/2024-04-01-121212_add_sidechain_id/up.sql +++ b/dan_layer/storage_sqlite/migrations/2024-04-01-121212_add_sidechain_id/up.sql @@ -1,3 +1,7 @@ -- Your SQL goes here ALTER TABLE validator_nodes - ADD COLUMN sidechain_id BLOB NULL; + ADD COLUMN sidechain_id BLOB NOT NULL; + +drop index validator_nodes_public_key_uniq_idx; + +create unique index validator_nodes_public_key_uniq_idx on validator_nodes (public_key, sidechain_id); \ No newline at end of file diff --git a/dan_layer/storage_sqlite/migrations/2024-04-12-000000_create_committes/up.sql b/dan_layer/storage_sqlite/migrations/2024-04-12-000000_create_committes/up.sql index 62fd50df9..a6122185c 100644 --- a/dan_layer/storage_sqlite/migrations/2024-04-12-000000_create_committes/up.sql +++ b/dan_layer/storage_sqlite/migrations/2024-04-12-000000_create_committes/up.sql @@ -1,10 +1,10 @@ CREATE TABLE committees ( id INTEGER PRIMARY KEY autoincrement NOT NULL, - public_key BLOB NOT NULL, + validator_node_id INTEGER NOT NULL, epoch BIGINT NOT NULL, committee_bucket BIGINT NOT NULL, - FOREIGN KEY (public_key) REFERENCES validator_nodes (public_key) + FOREIGN KEY (validator_node_id) REFERENCES validator_nodes (id) ); CREATE INDEX committees_epoch_index ON committees (epoch); diff --git a/dan_layer/storage_sqlite/src/error.rs b/dan_layer/storage_sqlite/src/error.rs index e459291e6..b547a85f8 100644 --- a/dan_layer/storage_sqlite/src/error.rs +++ b/dan_layer/storage_sqlite/src/error.rs @@ -40,7 +40,7 @@ pub enum SqliteStorageError { source: diesel::result::Error, operation: String, }, - #[error("Could not migrate the database")] + #[error("Could not migrate the database: {source}")] MigrationError { #[from] source: Box, diff --git a/dan_layer/storage_sqlite/src/global/backend_adapter.rs b/dan_layer/storage_sqlite/src/global/backend_adapter.rs index b87738a3f..38377274b 100644 --- a/dan_layer/storage_sqlite/src/global/backend_adapter.rs +++ b/dan_layer/storage_sqlite/src/global/backend_adapter.rs @@ -378,16 +378,16 @@ impl GlobalDbAdapter for SqliteGlobalDbAdapter { validator_nodes::shard_key.eq(shard_key.as_bytes()), validator_nodes::epoch.eq(epoch.as_u64() as i64), validator_nodes::fee_claim_public_key.eq(ByteArray::as_bytes(&fee_claim_public_key)), - validator_nodes::sidechain_id.eq(sidechain_id.as_ref().map(|id| id.as_bytes())), + validator_nodes::sidechain_id.eq(sidechain_id.as_ref().map(|id| id.as_bytes()).unwrap_or(&[0u8; 32])), )) - .on_conflict(validator_nodes::public_key) + .on_conflict((validator_nodes::public_key, validator_nodes::sidechain_id)) .do_update() .set(( validator_nodes::address.eq(&addr), validator_nodes::shard_key.eq(shard_key.as_bytes()), validator_nodes::epoch.eq(epoch.as_u64() as i64), validator_nodes::fee_claim_public_key.eq(ByteArray::as_bytes(&fee_claim_public_key)), - validator_nodes::sidechain_id.eq(sidechain_id.as_ref().map(|id| id.as_bytes())), + validator_nodes::sidechain_id.eq(sidechain_id.as_ref().map(|id| id.as_bytes()).unwrap_or(&[0u8; 32])), )) .execute(tx.connection()) .map_err(|source| SqliteStorageError::DieselError { @@ -404,11 +404,12 @@ impl GlobalDbAdapter for SqliteGlobalDbAdapter { start_epoch: Epoch, end_epoch: Epoch, public_key: &PublicKey, + sidechain_id: Option<&PublicKey>, ) -> Result, Self::Error> { use crate::global::schema::{committees, validator_nodes}; let vn = validator_nodes::table - .left_join(committees::table.on(committees::public_key.eq(validator_nodes::public_key))) + .left_join(committees::table.on(committees::validator_node_id.eq(validator_nodes::id))) .select(( validator_nodes::id, validator_nodes::public_key, @@ -424,6 +425,7 @@ impl GlobalDbAdapter for SqliteGlobalDbAdapter { ) .filter(coalesce_bigint(committees::epoch.nullable(), validator_nodes::epoch).le(end_epoch.as_u64() as i64)) .filter(validator_nodes::public_key.eq(ByteArray::as_bytes(public_key))) + .filter(validator_nodes::sidechain_id.eq(sidechain_id.map(ByteArray::as_bytes).unwrap_or(&[0u8; 32]))) .order_by(committees::epoch.desc()) .first::(tx.connection()) .map_err(|source| SqliteStorageError::DieselError { @@ -440,16 +442,21 @@ impl GlobalDbAdapter for SqliteGlobalDbAdapter { tx: &mut Self::DbTransaction<'_>, start_epoch: Epoch, end_epoch: Epoch, + sidechain_id: Option<&PublicKey>, ) -> Result { - let count = - sql_query("SELECT COUNT(distinct public_key) as cnt FROM validator_nodes WHERE epoch >= ? AND epoch <= ?") - .bind::(start_epoch.as_u64() as i64) - .bind::(end_epoch.as_u64() as i64) - .get_result::(tx.connection()) - .map_err(|source| SqliteStorageError::DieselError { - source, - operation: "count_validator_nodes".to_string(), - })?; + let db_sidechain_id = sidechain_id.map(|id| id.as_bytes()).unwrap_or(&[0u8; 32]); + let count = sql_query( + "SELECT COUNT(distinct public_key) as cnt FROM validator_nodes WHERE epoch >= ? AND epoch <= ? AND \ + sidechain_id = ?", + ) + .bind::(start_epoch.as_u64() as i64) + .bind::(end_epoch.as_u64() as i64) + .bind::(db_sidechain_id) + .get_result::(tx.connection()) + .map_err(|source| SqliteStorageError::DieselError { + source, + operation: "count_validator_nodes".to_string(), + })?; Ok(count.cnt as u64) } @@ -458,12 +465,17 @@ impl GlobalDbAdapter for SqliteGlobalDbAdapter { &self, tx: &mut Self::DbTransaction<'_>, epoch: Epoch, + sidechain_id: Option<&PublicKey>, bucket: Shard, ) -> Result { - use crate::global::schema::committees; + use crate::global::schema::{committees, validator_nodes}; + + let db_sidechain_id = sidechain_id.map(|id| id.as_bytes()).unwrap_or(&[0u8; 32]); let count = committees::table + .inner_join(validator_nodes::table.on(committees::validator_node_id.eq(validator_nodes::id))) .filter(committees::epoch.eq(epoch.as_u64() as i64)) .filter(committees::committee_bucket.eq(i64::from(bucket.as_u32()))) + .filter(validator_nodes::sidechain_id.eq(db_sidechain_id)) .count() .limit(1) .get_result::(tx.connection()) @@ -480,20 +492,23 @@ impl GlobalDbAdapter for SqliteGlobalDbAdapter { tx: &mut Self::DbTransaction<'_>, shard_key: SubstateAddress, bucket: Shard, + sidechain_id: Option<&PublicKey>, epoch: Epoch, ) -> Result<(), Self::Error> { use crate::global::schema::{committees, validator_nodes}; - let public_key = validator_nodes::table - .select(validator_nodes::public_key) + let db_sidechain_id = sidechain_id.map(|id| id.as_bytes()).unwrap_or(&[0u8; 32]); + let validator_id = validator_nodes::table + .select(validator_nodes::id) .filter(validator_nodes::shard_key.eq(shard_key.as_bytes())) - .first::>(tx.connection()) + .filter(validator_nodes::sidechain_id.eq(db_sidechain_id)) + .first::(tx.connection()) .map_err(|source| SqliteStorageError::DieselError { source, operation: "validator_nodes_set_committee_bucket".to_string(), })?; diesel::insert_into(committees::table) .values(( - committees::public_key.eq(public_key), + committees::validator_node_id.eq(validator_id), committees::epoch.eq(epoch.as_u64() as i64), committees::committee_bucket.eq(i64::from(bucket.as_u32())), )) @@ -510,12 +525,14 @@ impl GlobalDbAdapter for SqliteGlobalDbAdapter { tx: &mut Self::DbTransaction<'_>, start_epoch: Epoch, end_epoch: Epoch, + sidechain_id: Option<&PublicKey>, shard_range: RangeInclusive, ) -> Result>, Self::Error> { use crate::global::schema::{committees, validator_nodes}; + let db_sidechain_id = sidechain_id.map(|id| id.as_bytes()).unwrap_or(&[0u8; 32]); let validators = validator_nodes::table - .left_join(committees::table.on(committees::public_key.eq(validator_nodes::public_key))) + .left_join(committees::table.on(committees::validator_node_id.eq(validator_nodes::id))) .select(( validator_nodes::id, validator_nodes::public_key, @@ -532,6 +549,7 @@ impl GlobalDbAdapter for SqliteGlobalDbAdapter { // the same way convert shard IDs to 256-bit integers when allocating committee shards. .filter(validator_nodes::shard_key.ge(shard_range.start().as_bytes())) .filter(validator_nodes::shard_key.le(shard_range.end().as_bytes())) + .filter(validator_nodes::sidechain_id.eq(db_sidechain_id)) .order_by((validator_nodes::shard_key.asc(), committees::epoch.desc())) .get_results::(tx.connection()) .map_err(|source| SqliteStorageError::DieselError { @@ -552,7 +570,7 @@ impl GlobalDbAdapter for SqliteGlobalDbAdapter { use crate::global::schema::{committees, validator_nodes}; let validators = validator_nodes::table - .left_join(committees::table.on(committees::public_key.eq(validator_nodes::public_key))) + .left_join(committees::table.on(committees::validator_node_id.eq(validator_nodes::id))) .select(( validator_nodes::id, validator_nodes::public_key, @@ -597,11 +615,13 @@ impl GlobalDbAdapter for SqliteGlobalDbAdapter { tx: &mut Self::DbTransaction<'_>, start_epoch: Epoch, end_epoch: Epoch, + sidechain_id: Option<&PublicKey>, ) -> Result>, Self::Error> { use crate::global::schema::{committees, validator_nodes}; + let db_sidechain_id = sidechain_id.map(|id| id.as_bytes()).unwrap_or(&[0u8; 32]); let sqlite_vns = validator_nodes::table - .left_join(committees::table.on(committees::public_key.eq(validator_nodes::public_key))) + .left_join(committees::table.on(committees::validator_node_id.eq(validator_nodes::id))) .select(( validator_nodes::id, validator_nodes::public_key, @@ -616,6 +636,7 @@ impl GlobalDbAdapter for SqliteGlobalDbAdapter { coalesce_bigint(committees::epoch.nullable(), validator_nodes::epoch).ge(start_epoch.as_u64() as i64), ) .filter(coalesce_bigint(committees::epoch.nullable(), validator_nodes::epoch).le(end_epoch.as_u64() as i64)) + .filter(validator_nodes::sidechain_id.eq(db_sidechain_id)) .order_by(committees::epoch.desc()) .get_results::(tx.connection()) .map_err(|source| SqliteStorageError::DieselError { @@ -636,7 +657,7 @@ impl GlobalDbAdapter for SqliteGlobalDbAdapter { use crate::global::schema::{committees, validator_nodes}; let vn = validator_nodes::table - .left_join(committees::table.on(committees::public_key.eq(validator_nodes::public_key))) + .left_join(committees::table.on(committees::validator_node_id.eq(validator_nodes::id))) .select(( validator_nodes::id, validator_nodes::public_key, diff --git a/dan_layer/storage_sqlite/src/global/models/committee.rs b/dan_layer/storage_sqlite/src/global/models/committee.rs index eec744c95..aac035da2 100644 --- a/dan_layer/storage_sqlite/src/global/models/committee.rs +++ b/dan_layer/storage_sqlite/src/global/models/committee.rs @@ -34,16 +34,8 @@ use crate::{ #[diesel(table_name = committees)] pub struct DbCommittee { pub id: i32, - pub public_key: Vec, + pub validator_node_id: i32, pub epoch: i64, pub bucket: i64, } -#[derive(Insertable)] -#[diesel(table_name = committees)] -pub struct NewValidatorNode { - pub vn_id: i32, - pub public_key: Vec, - pub epoch: i64, - pub bucket: i64, -} diff --git a/dan_layer/storage_sqlite/src/global/models/validator_node.rs b/dan_layer/storage_sqlite/src/global/models/validator_node.rs index 6fca43f68..41180ee26 100644 --- a/dan_layer/storage_sqlite/src/global/models/validator_node.rs +++ b/dan_layer/storage_sqlite/src/global/models/validator_node.rs @@ -40,7 +40,7 @@ pub struct DbValidatorNode { pub committee_bucket: Option, pub fee_claim_public_key: Vec, pub address: String, - pub sidechain_id: Option>, + pub sidechain_id: Vec, } impl TryFrom for ValidatorNode { type Error = SqliteStorageError; @@ -63,17 +63,16 @@ impl TryFrom for ValidatorNode { vn.id )) })?, - sidechain_id: vn - .sidechain_id - .map(|v| { - PublicKey::from_canonical_bytes(&v).map_err(|_| { - SqliteStorageError::MalformedDbData(format!( - "Invalid sidechain id in validator node record id={}", - vn.id - )) - }) - }) - .transpose()?, + sidechain_id: if vn.sidechain_id == [0u8; 32] { + None + } else { + Some(PublicKey::from_canonical_bytes(&vn.sidechain_id).map_err(|_| { + SqliteStorageError::MalformedDbData(format!( + "Invalid sidechain id in validator node record id={}", + vn.id + )) + })?) + }, }) } } diff --git a/dan_layer/storage_sqlite/src/global/schema.rs b/dan_layer/storage_sqlite/src/global/schema.rs index 63dbc096e..56ebf90ec 100644 --- a/dan_layer/storage_sqlite/src/global/schema.rs +++ b/dan_layer/storage_sqlite/src/global/schema.rs @@ -17,7 +17,7 @@ diesel::table! { diesel::table! { committees (id) { id -> Integer, - public_key -> Binary, + validator_node_id -> Integer, epoch -> BigInt, committee_bucket -> BigInt, } @@ -63,7 +63,7 @@ diesel::table! { epoch -> BigInt, fee_claim_public_key -> Binary, address -> Text, - sidechain_id -> Nullable, + sidechain_id -> Binary, } } diff --git a/dan_layer/storage_sqlite/tests/global_db.rs b/dan_layer/storage_sqlite/tests/global_db.rs index 64a72027d..4463149c5 100644 --- a/dan_layer/storage_sqlite/tests/global_db.rs +++ b/dan_layer/storage_sqlite/tests/global_db.rs @@ -63,7 +63,7 @@ fn update_committee_bucket( epoch: Epoch, ) { validator_nodes - .set_committee_bucket(derived_substate_address(public_key), committee_bucket, epoch) + .set_committee_bucket(derived_substate_address(public_key), committee_bucket, None, epoch) .unwrap(); } @@ -75,7 +75,9 @@ fn insert_and_get_within_epoch() { insert_vns(&mut validator_nodes, 2, Epoch(0), None); insert_vns(&mut validator_nodes, 1, Epoch(10), None); - let vns = validator_nodes.get_all_within_epochs(Epoch(0), Epoch(10)).unwrap(); + let vns = validator_nodes + .get_all_within_epochs(Epoch(0), Epoch(10), None) + .unwrap(); assert_eq!(vns.len(), 3); } @@ -90,7 +92,9 @@ fn change_committee_bucket() { update_committee_bucket(&mut validator_nodes, &pk, Shard::from(3), Epoch(1)); update_committee_bucket(&mut validator_nodes, &pk, Shard::from(7), Epoch(2)); update_committee_bucket(&mut validator_nodes, &pk, Shard::from(4), Epoch(3)); - let vns = validator_nodes.get_all_within_epochs(Epoch(0), Epoch(10)).unwrap(); + let vns = validator_nodes + .get_all_within_epochs(Epoch(0), Epoch(10), None) + .unwrap(); assert_eq!(vns[0].committee_shard, Some(Shard::from(4))); } @@ -125,7 +129,7 @@ fn insert_and_get_within_shard_range_duplicate_public_keys() { }; let vns = validator_nodes - .get_by_shard_range(Epoch(0), Epoch(10), start..=end) + .get_by_shard_range(Epoch(0), Epoch(10), None, start..=end) .unwrap(); if shard_id > shard_id2 { assert_eq!(vns[0].public_key, pk2); @@ -144,7 +148,9 @@ fn insert_and_get_within_shard_range_duplicate_public_keys() { } assert_eq!(vns.len(), 2); - let vn = validator_nodes.get_by_public_key(Epoch(0), Epoch(10), &pk).unwrap(); + let vn = validator_nodes + .get_by_public_key(Epoch(0), Epoch(10), &pk, None) + .unwrap(); assert_eq!(vn.epoch, Epoch(2)); assert_eq!(vn.committee_shard, Some(Shard::from(2))); } diff --git a/networking/core/src/worker.rs b/networking/core/src/worker.rs index b73226230..2183534b2 100644 --- a/networking/core/src/worker.rs +++ b/networking/core/src/worker.rs @@ -520,6 +520,7 @@ where relay_peer_id, renewal, limit ); }, + RelayClient(event) => { info!(target: LOG_TARGET, "🌎️ RelayClient event: {:?}", event); }, @@ -921,7 +922,7 @@ where let _ignore = reply.send(Ok(NegotiatedSubstream::new(peer_id, protocol, stream))); }, InboundSubstreamOpen { notification } => { - info!(target: LOG_TARGET, "📥 Inbound substream open: protocol={}", notification.protocol); + debug!(target: LOG_TARGET, "📥 Inbound substream open: protocol={}", notification.protocol); self.substream_notifiers.notify(notification); }, InboundFailure { diff --git a/networking/rpc_framework/src/server/mod.rs b/networking/rpc_framework/src/server/mod.rs index 4da8c3acd..bb9809cb7 100644 --- a/networking/rpc_framework/src/server/mod.rs +++ b/networking/rpc_framework/src/server/mod.rs @@ -368,7 +368,7 @@ where } fn on_session_complete(&mut self, node_id: &PeerId) { - info!(target: LOG_TARGET, "Session complete for {}", node_id); + debug!(target: LOG_TARGET, "Session complete for {}", node_id); if let Some(v) = self.sessions.get_mut(node_id) { *v -= 1; if *v == 0 { @@ -416,7 +416,7 @@ where match self.new_session_for(peer_id) { Ok(num_sessions) => { - info!( + debug!( target: LOG_TARGET, "NEW SESSION for {} ({} active) ", peer_id, num_sessions ); @@ -446,7 +446,7 @@ where #[cfg(feature = "metrics")] num_sessions.inc(); service.start().await; - info!(target: LOG_TARGET, "END OF SESSION for {} ", peer_id,); + debug!(target: LOG_TARGET, "END OF SESSION for {} ", peer_id,); #[cfg(feature = "metrics")] num_sessions.dec();