From c52c528ee8884d361bc31a85bdd09087a6ce6ab8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Fri, 15 Mar 2019 15:04:01 +0100 Subject: [PATCH] Add grandpa telemetry (+ other minor improvements) (#1997) * Support skipping the interactive purge prompt Skip it via `cargo run -- purge-chain -y`. * Fix typos * Add Grandpa telemetry * Address comments * Revert unnecessary version bump * Version bump to make CI run * Remove unnecessary cast * Do not bump version --- substrate/CONTRIBUTING.adoc | 2 +- substrate/Cargo.lock | 1 + substrate/core/basic-authorship/Cargo.toml | 1 + .../basic-authorship/src/basic_authorship.rs | 5 +++ substrate/core/cli/src/lib.rs | 29 +++++++++------- substrate/core/cli/src/params.rs | 4 +++ substrate/core/client/db/src/storage_cache.rs | 2 +- .../core/finality-grandpa/src/authorities.rs | 7 ++++ .../finality-grandpa/src/communication.rs | 32 ++++++++++++++++++ .../core/finality-grandpa/src/environment.rs | 9 +++++ .../finality-grandpa/src/finality_proof.rs | 7 ++-- substrate/core/finality-grandpa/src/lib.rs | 31 +++++++++++++++-- substrate/core/inherents/src/lib.rs | 2 +- .../core/network/src/consensus_gossip.rs | 2 +- substrate/core/primitives/src/sandbox.rs | 2 +- .../sr-api-macros/src/decl_runtime_apis.rs | 10 +++--- .../sr-api-macros/src/impl_runtime_apis.rs | 4 +-- substrate/core/sr-api-macros/src/lib.rs | 2 +- substrate/core/sr-api-macros/src/utils.rs | 2 +- substrate/core/sr-io/without_std.rs | 2 +- substrate/core/sr-primitives/src/lib.rs | 6 ++-- substrate/core/sr-sandbox/src/lib.rs | 2 +- substrate/core/test-runtime/src/lib.rs | 4 +-- substrate/core/test-runtime/src/system.rs | 2 +- .../substrate_test_runtime.compact.wasm | Bin 56647 -> 56631 bytes .../release/node_runtime.compact.wasm | Bin 874401 -> 873354 bytes substrate/srml/metadata/src/lib.rs | 2 +- substrate/srml/support/src/dispatch.rs | 2 +- substrate/srml/support/src/double_map.rs | 2 +- substrate/srml/support/src/event.rs | 2 +- substrate/srml/support/src/traits.rs | 6 ++-- 31 files changed, 139 insertions(+), 45 deletions(-) diff --git a/substrate/CONTRIBUTING.adoc b/substrate/CONTRIBUTING.adoc index 30bf3a1bb2..7098869dcc 100644 --- a/substrate/CONTRIBUTING.adoc +++ b/substrate/CONTRIBUTING.adoc @@ -47,7 +47,7 @@ When reviewing a pull request, the end-goal is to suggest useful changes to the == Helping out -We use https://github.com/paritytech/substrate/labels[labels] to manage PRs and issues and communicate state of a PR. Please familiarize yourself with them. Further more we are organising issues in https://github.com/paritytech/substrate/milestones[milestones]. Best way to get started is to a pick a ticket from the current milestone tagged https://github.com/paritytech/substrate/issues?q=is%3Aissue+is%3Aopen+label%3AQ2-easy[`easy`] or https://github.com/paritytech/substrate/issues?q=is%3Aissue+is%3Aopen+label%3AQ3-medium[`medium`] and get going or https://github.com/paritytech/substrate/issues?q=is%3Aissue+is%3Aopen+label%3AX1-mentor[`mentor`] and get in contact with the mentor offering their support on that larger task. +We use https://github.com/paritytech/substrate/labels[labels] to manage PRs and issues and communicate state of a PR. Please familiarize yourself with them. Furthermore we are organising issues in https://github.com/paritytech/substrate/milestones[milestones]. Best way to get started is to a pick a ticket from the current milestone tagged https://github.com/paritytech/substrate/issues?q=is%3Aissue+is%3Aopen+label%3AQ2-easy[`easy`] or https://github.com/paritytech/substrate/issues?q=is%3Aissue+is%3Aopen+label%3AQ3-medium[`medium`] and get going or https://github.com/paritytech/substrate/issues?q=is%3Aissue+is%3Aopen+label%3AX1-mentor[`mentor`] and get in contact with the mentor offering their support on that larger task. == Releases diff --git a/substrate/Cargo.lock b/substrate/Cargo.lock index 568a71a265..536354b919 100644 --- a/substrate/Cargo.lock +++ b/substrate/Cargo.lock @@ -3612,6 +3612,7 @@ dependencies = [ "substrate-consensus-common 0.1.0", "substrate-inherents 0.1.0", "substrate-primitives 0.1.0", + "substrate-telemetry 0.3.1", "substrate-test-client 0.1.0", "substrate-transaction-pool 0.1.0", ] diff --git a/substrate/core/basic-authorship/Cargo.toml b/substrate/core/basic-authorship/Cargo.toml index 82187db803..cb801b9a13 100644 --- a/substrate/core/basic-authorship/Cargo.toml +++ b/substrate/core/basic-authorship/Cargo.toml @@ -14,6 +14,7 @@ consensus_common = { package = "substrate-consensus-common", path = "../../core/ primitives = { package = "substrate-primitives", path = "../../core/primitives" } inherents = { package = "substrate-inherents", path = "../inherents" } transaction_pool = { package = "substrate-transaction-pool", path = "../../core/transaction-pool" } +substrate-telemetry = { path = "../telemetry" } [dev-dependencies] test-client = { package = "substrate-test-client", path = "../../core/test-client" } diff --git a/substrate/core/basic-authorship/src/basic_authorship.rs b/substrate/core/basic-authorship/src/basic_authorship.rs index 71114ad2da..579ac17fb1 100644 --- a/substrate/core/basic-authorship/src/basic_authorship.rs +++ b/substrate/core/basic-authorship/src/basic_authorship.rs @@ -37,6 +37,7 @@ use runtime_primitives::generic::BlockId; use runtime_primitives::ApplyError; use transaction_pool::txpool::{self, Pool as TransactionPool}; use inherents::InherentData; +use substrate_telemetry::{telemetry, CONSENSUS_INFO}; /// Build new blocks. pub trait BlockBuilder { @@ -252,6 +253,10 @@ impl Proposer where .collect::>() .join(", ") ); + telemetry!(CONSENSUS_INFO; "prepared_block_for_proposing"; + "number" => ?block.header().number(), + "hash" => ?<::Block as BlockT>::Hash::from(block.header().hash()), + ); let substrate_block = Decode::decode(&mut block.encode().as_slice()) .expect("blocks are defined to serialize to substrate blocks correctly; qed"); diff --git a/substrate/core/cli/src/lib.rs b/substrate/core/cli/src/lib.rs index 3a2798fd2d..189681338c 100644 --- a/substrate/core/cli/src/lib.rs +++ b/substrate/core/cli/src/lib.rs @@ -574,23 +574,28 @@ where S: FnOnce(&str) -> Result>>, String>, { let config = create_config_with_db_path::(spec_factory, &cli.shared_params, version)?; - let db_path = config.database_path; - print!("Are you sure to remove {:?}? (y/n)", &db_path); - stdout().flush().expect("failed to flush stdout"); - let mut input = String::new(); - stdin().read_line(&mut input)?; - let input = input.trim(); + if cli.yes == false { + print!("Are you sure to remove {:?}? (y/n)", &db_path); + stdout().flush().expect("failed to flush stdout"); - match input.chars().nth(0) { - Some('y') | Some('Y') => { - fs::remove_dir_all(&db_path)?; - println!("{:?} removed.", &db_path); - }, - _ => println!("Aborted"), + let mut input = String::new(); + stdin().read_line(&mut input)?; + let input = input.trim(); + + match input.chars().nth(0) { + Some('y') | Some('Y') => {}, + _ => { + println!("Aborted"); + return Ok(()); + }, + } } + fs::remove_dir_all(&db_path)?; + println!("{:?} removed.", &db_path); + Ok(()) } diff --git a/substrate/core/cli/src/params.rs b/substrate/core/cli/src/params.rs index 6f59434237..bffd71b8c7 100644 --- a/substrate/core/cli/src/params.rs +++ b/substrate/core/cli/src/params.rs @@ -338,6 +338,10 @@ impl_get_log_filter!(RevertCmd); /// The `purge-chain` command used to remove the whole chain. #[derive(Debug, StructOpt, Clone)] pub struct PurgeChainCmd { + /// Skip interactive prompt by answering yes automatically. + #[structopt(short = "y")] + pub yes: bool, + #[allow(missing_docs)] #[structopt(flatten)] pub shared_params: SharedParams, diff --git a/substrate/core/client/db/src/storage_cache.rs b/substrate/core/client/db/src/storage_cache.rs index da07aa4d5a..6cfdbdd09b 100644 --- a/substrate/core/client/db/src/storage_cache.rs +++ b/substrate/core/client/db/src/storage_cache.rs @@ -109,7 +109,7 @@ impl, B: Block> CachingState { } } - /// Propagate local cache into the shared cache and synchonize + /// Propagate local cache into the shared cache and synchronize /// the shared cache with the best block state. /// This function updates the shared cache by removing entries /// that are invalidated by chain reorganization. `sync_cache` diff --git a/substrate/core/finality-grandpa/src/authorities.rs b/substrate/core/finality-grandpa/src/authorities.rs index 98b3973855..38bcec2347 100644 --- a/substrate/core/finality-grandpa/src/authorities.rs +++ b/substrate/core/finality-grandpa/src/authorities.rs @@ -22,6 +22,7 @@ use substrate_primitives::ed25519; use grandpa::VoterSet; use parity_codec::{Encode, Decode}; use log::{debug, info}; +use substrate_telemetry::{telemetry, CONSENSUS_INFO}; use std::cmp::Ord; use std::fmt::Debug; @@ -261,6 +262,9 @@ where // apply this change: make the set canonical info!(target: "finality", "Applying authority set change forced at block #{:?}", change.canon_height); + telemetry!(CONSENSUS_INFO; "afg.applying_forced_authority_set_change"; + "block" => ?change.canon_height + ); let median_last_finalized = match change.delay_kind { DelayKind::Best { ref median_last_finalized } => median_last_finalized.clone(), @@ -324,6 +328,9 @@ where if let Some(change) = change { info!(target: "finality", "Applying authority set change scheduled at block #{:?}", change.canon_height); + telemetry!(CONSENSUS_INFO; "afg.applying_scheduled_authority_set_change"; + "block" => ?change.canon_height + ); self.current_authorities = change.next_authorities; self.set_id += 1; diff --git a/substrate/core/finality-grandpa/src/communication.rs b/substrate/core/finality-grandpa/src/communication.rs index 54de53e7bb..1a8ff9ebab 100644 --- a/substrate/core/finality-grandpa/src/communication.rs +++ b/substrate/core/finality-grandpa/src/communication.rs @@ -21,11 +21,13 @@ use std::collections::HashMap; use std::sync::Arc; use grandpa::VoterSet; +use grandpa::Message::{Prevote, Precommit}; use futures::prelude::*; use futures::sync::mpsc; use log::{debug, trace}; use parity_codec::{Encode, Decode}; use substrate_primitives::{ed25519, Pair}; +use substrate_telemetry::{telemetry, CONSENSUS_INFO}; use runtime_primitives::traits::Block as BlockT; use tokio::timer::Interval; use crate::{Error, Network, Message, SignedMessage, Commit, @@ -283,6 +285,24 @@ pub(crate) fn checked_message_stream( debug!(target: "afg", "Skipping message from unknown voter {}", msg.message.id); return Ok(None); } + + match &msg.message.message { + Prevote(prevote) => { + telemetry!(CONSENSUS_INFO; "afg.received_prevote"; + "voter" => ?format!("{}", msg.message.id), + "target_number" => ?prevote.target_number, + "target_hash" => ?prevote.target_hash, + ); + }, + Precommit(precommit) => { + telemetry!(CONSENSUS_INFO; "afg.received_precommit"; + "voter" => ?format!("{}", msg.message.id), + "target_number" => ?precommit.target_number, + "target_hash" => ?precommit.target_hash, + ); + }, + }; + Ok(Some(msg.message)) } _ => { @@ -436,6 +456,15 @@ pub(crate) fn checked_commit_stream( match msg { GossipMessage::Commit(msg) => { let round = msg.round; + let precommits_signed_by: Vec = + msg.message.auth_data.iter().map(move |(_, a)| { + format!("{}", a) + }).collect(); + telemetry!(CONSENSUS_INFO; "afg.received_commit"; + "contains_precommits_signed_by" => ?precommits_signed_by, + "target_number" => ?msg.message.target_number, + "target_hash" => ?msg.message.target_hash, + ); check_compact_commit::(msg.message, &*voters).map(move |c| (round, c)) }, _ => { @@ -477,6 +506,9 @@ impl> Sink for CommitsOut { } let (round, commit) = input; + telemetry!(CONSENSUS_INFO; "afg.commit_issued"; + "target_number" => ?commit.target_number, "target_hash" => ?commit.target_hash, + ); let (precommits, auth_data) = commit.precommits.into_iter() .map(|signed| (signed.precommit, (signed.signature, signed.id))) .unzip(); diff --git a/substrate/core/finality-grandpa/src/environment.rs b/substrate/core/finality-grandpa/src/environment.rs index a9b5a43d01..685337a311 100644 --- a/substrate/core/finality-grandpa/src/environment.rs +++ b/substrate/core/finality-grandpa/src/environment.rs @@ -34,6 +34,7 @@ use runtime_primitives::traits::{ As, Block as BlockT, Header as HeaderT, NumberFor, One, Zero, }; use substrate_primitives::{Blake2Hasher, ed25519, H256, Pair}; +use substrate_telemetry::{telemetry, CONSENSUS_INFO}; use crate::{ Commit, Config, Error, Network, Precommit, Prevote, @@ -469,6 +470,9 @@ pub(crate) fn finalize_block, E, RA>( warn!(target: "finality", "Error applying finality to block {:?}: {:?}", (hash, number), e); e })?; + telemetry!(CONSENSUS_INFO; "afg.finalized_blocks_up_to"; + "number" => ?number, "hash" => ?hash, + ); let new_authorities = if let Some((canon_hash, canon_number)) = status.new_set_block { // the authority set has changed. @@ -480,6 +484,11 @@ pub(crate) fn finalize_block, E, RA>( info!("Applying GRANDPA set change to new set {:?}", set_ref); } + telemetry!(CONSENSUS_INFO; "afg.generating_new_authority_set"; + "number" => ?canon_number, "hash" => ?canon_hash, + "authorities" => ?set_ref.to_vec(), + "set_id" => ?new_id, + ); Some(NewAuthoritySet { canon_hash, canon_number, diff --git a/substrate/core/finality-grandpa/src/finality_proof.rs b/substrate/core/finality-grandpa/src/finality_proof.rs index daebe3b72a..2b34a094a0 100644 --- a/substrate/core/finality-grandpa/src/finality_proof.rs +++ b/substrate/core/finality-grandpa/src/finality_proof.rs @@ -44,6 +44,7 @@ use runtime_primitives::traits::{ }; use substrate_primitives::{ed25519, H256}; use ed25519::Public as AuthorityId; +use substrate_telemetry::{telemetry, CONSENSUS_INFO}; use crate::justification::GrandpaJustification; @@ -170,14 +171,14 @@ fn do_check_finality_proof, C, J>( } } - // check that the last header in finalization path is the jsutification target block + // check that the last header in finalization path is the justification target block let just_block = proof.justification.target_block(); { let finalized_header = proof.finalization_path.last() .expect("checked above that proof.finalization_path is not empty; qed"); if *finalized_header.number() != just_block.0 || finalized_header.hash() != just_block.1 { return Err(ClientErrorKind::BadJustification( - "finality proof: target jsutification block is not a part of finalized path".into() + "finality proof: target justification block is not a part of finalized path".into() ).into()); } } @@ -196,6 +197,8 @@ fn do_check_finality_proof, C, J>( // and now check justification proof.justification.verify(set_id, &grandpa_authorities.into_iter().collect())?; + telemetry!(CONSENSUS_INFO; "afg.finality_proof_ok"; + "set_id" => ?set_id, "finalized_header_hash" => ?block.1); Ok(proof.finalization_path) } diff --git a/substrate/core/finality-grandpa/src/lib.rs b/substrate/core/finality-grandpa/src/lib.rs index 67953489e8..a62cceb655 100644 --- a/substrate/core/finality-grandpa/src/lib.rs +++ b/substrate/core/finality-grandpa/src/lib.rs @@ -69,7 +69,7 @@ use fg_primitives::GrandpaApi; use inherents::InherentDataProviders; use runtime_primitives::generic::BlockId; use substrate_primitives::{ed25519, H256, Blake2Hasher, Pair}; -use substrate_telemetry::{telemetry, CONSENSUS_TRACE, CONSENSUS_DEBUG, CONSENSUS_WARN}; +use substrate_telemetry::{telemetry, CONSENSUS_TRACE, CONSENSUS_DEBUG, CONSENSUS_WARN, CONSENSUS_INFO}; use srml_finality_tracker; @@ -388,6 +388,17 @@ impl GossipValidator { } let topic = commit_topic::(full.set_id); + + let precommits_signed_by: Vec = full.message.auth_data.iter().map(move |(_, a)| { + format!("{}", a) + }).collect(); + telemetry!(CONSENSUS_INFO; "afg.received_commit_msg"; + "contains_precommits_signed_by" => ?precommits_signed_by, + "round" => ?full.round, + "set_id" => ?full.set_id, + "topic" => ?topic, + "block_hash" => ?full.message, + ); network_gossip::ValidationResult::Valid(topic) } } @@ -750,7 +761,13 @@ fn register_finality_tracker_inherent_data_provider Err(std::borrow::Cow::Owned(e.to_string())), - Ok(info) => Ok(info.finalized_number), + Ok(info) => { + telemetry!(CONSENSUS_INFO; "afg.finalized"; + "finalized_number" => ?info.finalized_number, + "finalized_hash" => ?info.finalized_hash, + ); + Ok(info.finalized_number) + }, } })) .map_err(|err| consensus_common::ErrorKind::InherentData(err.into()).into()) @@ -862,6 +879,16 @@ pub fn run_grandpa, N, RA>( let handle_voter_command = move |command: VoterCommand<_, _>, voter_commands_rx| { match command { VoterCommand::ChangeAuthorities(new) => { + let voters: Vec = new.authorities.iter().map(move |(a, _)| { + format!("{}", a) + }).collect(); + telemetry!(CONSENSUS_INFO; "afg.voter_command_change_authorities"; + "number" => ?new.canon_number, + "hash" => ?new.canon_hash, + "voters" => ?voters, + "set_id" => ?new.set_id, + ); + // start the new authority set using the block where the // set changed (not where the signal happened!) as the base. let genesis_state = RoundState::genesis((new.canon_hash, new.canon_number)); diff --git a/substrate/core/inherents/src/lib.rs b/substrate/core/inherents/src/lib.rs index 4f9c8b8006..eadd45ba9e 100644 --- a/substrate/core/inherents/src/lib.rs +++ b/substrate/core/inherents/src/lib.rs @@ -399,7 +399,7 @@ pub trait ProvideInherent { fn create_inherent(data: &InherentData) -> Option; /// Check the given inherent if it is valid. - /// Checking the inherent is optional and can be ommitted. + /// Checking the inherent is optional and can be omitted. fn check_inherent(_: &Self::Call, _: &InherentData) -> Result<(), Self::Error> { Ok(()) } diff --git a/substrate/core/network/src/consensus_gossip.rs b/substrate/core/network/src/consensus_gossip.rs index dbd8836b21..72a384e97a 100644 --- a/substrate/core/network/src/consensus_gossip.rs +++ b/substrate/core/network/src/consensus_gossip.rs @@ -315,7 +315,7 @@ impl ConsensusGossip { use std::collections::hash_map::Entry; let engine_id = message.engine_id; - //validate the message + // validate the message let (topic, status) = match self.validators.get(&engine_id) .map(|v| v.validate(&message.data)) { diff --git a/substrate/core/primitives/src/sandbox.rs b/substrate/core/primitives/src/sandbox.rs index c8404c9eed..773a6b4893 100644 --- a/substrate/core/primitives/src/sandbox.rs +++ b/substrate/core/primitives/src/sandbox.rs @@ -164,7 +164,7 @@ pub const MEM_UNLIMITED: u32 = -1i32 as u32; /// For FFI purposes. pub const ERR_OK: u32 = 0; -/// Validation or instantiation error occured when creating new +/// Validation or instantiation error occurred when creating new /// sandboxed module instance. /// /// For FFI purposes. diff --git a/substrate/core/sr-api-macros/src/decl_runtime_apis.rs b/substrate/core/sr-api-macros/src/decl_runtime_apis.rs index d98b566545..9e4c38f087 100644 --- a/substrate/core/sr-api-macros/src/decl_runtime_apis.rs +++ b/substrate/core/sr-api-macros/src/decl_runtime_apis.rs @@ -51,7 +51,7 @@ const API_VERSION_ATTRIBUTE: &str = "api_version"; /// Is used when the function signature changed between different versions of a trait. /// This attribute should be placed on the old signature of the function. const CHANGED_IN_ATTRIBUTE: &str = "changed_in"; -/// All attributes that we support in the declaratio of a runtime api trait. +/// All attributes that we support in the declaration of a runtime api trait. const SUPPORTED_ATTRIBUTE_NAMES: &[&str] = &[ CORE_TRAIT_ATTRIBUTE, API_VERSION_ATTRIBUTE, CHANGED_IN_ATTRIBUTE ]; @@ -127,7 +127,7 @@ fn return_type_is_using_block(ty: &ReturnType) -> bool { visitor.result } -/// Replace all occurences of `Block` with `NodeBlock` +/// Replace all occurrences of `Block` with `NodeBlock` struct ReplaceBlockWithNodeBlock {} impl Fold for ReplaceBlockWithNodeBlock { @@ -140,13 +140,13 @@ impl Fold for ReplaceBlockWithNodeBlock { } } -/// Replace all occurences of `Block` with `NodeBlock` +/// Replace all occurrences of `Block` with `NodeBlock` fn fn_arg_replace_block_with_node_block(fn_arg: FnArg) -> FnArg { let mut replace = ReplaceBlockWithNodeBlock {}; fold::fold_fn_arg(&mut replace, fn_arg) } -/// Replace all occurences of `Block` with `NodeBlock` +/// Replace all occurrences of `Block` with `NodeBlock` fn return_type_replace_block_with_node_block(return_type: ReturnType) -> ReturnType { let mut replace = ReplaceBlockWithNodeBlock {}; fold::fold_return_type(&mut replace, return_type) @@ -162,7 +162,7 @@ fn generate_native_call_generators(decl: &ItemTrait) -> Result { let trait_ = &decl.ident; let crate_ = generate_crate_access(HIDDEN_INCLUDES_ID); - // Auxilariy function that is used to convert between types that use different block types. + // Auxiliary function that is used to convert between types that use different block types. // The function expects that both a convertable by encoding the one and decoding the other. result.push(quote!( #[cfg(any(feature = "std", test))] diff --git a/substrate/core/sr-api-macros/src/impl_runtime_apis.rs b/substrate/core/sr-api-macros/src/impl_runtime_apis.rs index 4ea3e8331a..5cfb5fcc93 100644 --- a/substrate/core/sr-api-macros/src/impl_runtime_apis.rs +++ b/substrate/core/sr-api-macros/src/impl_runtime_apis.rs @@ -407,7 +407,7 @@ fn generate_api_impl_for_runtime(impls: &[ItemImpl]) -> Result { } -/// Auxilariy data structure that is used to convert `impl Api for Runtime` to +/// Auxiliary data structure that is used to convert `impl Api for Runtime` to /// `impl Api for RuntimeApi`. /// This requires us to replace the runtime `Block` with the node `Block`, /// `impl Api for Runtime` with `impl Api for RuntimeApi` and replace the method implementations @@ -483,7 +483,7 @@ impl<'a> Fold for ApiRuntimeImplToApiRuntimeApiImpl<'a> { -> #crate_::error::Result<#crate_::runtime_api::NativeOrEncoded<#ret_type>> ); - // Generate the new method implementation that calls into the runime. + // Generate the new method implementation that calls into the runtime. parse_quote!( { // Get the error to the user (if we have one). diff --git a/substrate/core/sr-api-macros/src/lib.rs b/substrate/core/sr-api-macros/src/lib.rs index 9df0b0b8af..72e143eb1a 100644 --- a/substrate/core/sr-api-macros/src/lib.rs +++ b/substrate/core/sr-api-macros/src/lib.rs @@ -155,7 +155,7 @@ pub fn impl_runtime_apis(input: TokenStream) -> TokenStream { /// /// To support versioning of the traits, the macro supports the attribute `#[api_version(1)]`. /// The attribute supports any `u32` as version. By default, each trait is at version `1`, if no -/// version is provided. We also support chaning the signature of a method. This signature +/// version is provided. We also support changing the signature of a method. This signature /// change is highlighted with the `#[changed_in(2)]` attribute above a method. A method that is /// tagged with this attribute is callable by the name `METHOD_before_version_VERSION`. This /// method will only support calling into wasm, trying to call into native will fail (change the diff --git a/substrate/core/sr-api-macros/src/utils.rs b/substrate/core/sr-api-macros/src/utils.rs index 4ad8b99840..e593e41ebe 100644 --- a/substrate/core/sr-api-macros/src/utils.rs +++ b/substrate/core/sr-api-macros/src/utils.rs @@ -54,7 +54,7 @@ pub fn generate_hidden_includes(unique_id: &'static str) -> TokenStream { }.into() } -/// Generates the access to the `subtrate_client` crate. +/// Generates the access to the `substrate_client` crate. pub fn generate_crate_access(unique_id: &'static str) -> TokenStream { if env::var("CARGO_PKG_NAME").unwrap() == "substrate-client" { quote!( crate ) diff --git a/substrate/core/sr-io/without_std.rs b/substrate/core/sr-io/without_std.rs index 41dc530d56..e3cf8318a6 100644 --- a/substrate/core/sr-io/without_std.rs +++ b/substrate/core/sr-io/without_std.rs @@ -580,7 +580,7 @@ pub fn sr25519_verify>(sig: &[u8; 64], msg: &[u8], pubkey: P) -> /// Verify and recover a SECP256k1 ECDSA signature. /// - `sig` is passed in RSV format. V should be either 0/1 or 27/28. -/// - returns `None` if the signatue is bad, the 64-byte pubkey (doesn't include the 0x04 prefix). +/// - returns `None` if the signature is bad, the 64-byte pubkey (doesn't include the 0x04 prefix). pub fn secp256k1_ecdsa_recover(sig: &[u8; 65], msg: &[u8; 32]) -> Result<[u8; 64], EcdsaVerifyError> { let mut pubkey = [0u8; 64]; match unsafe { diff --git a/substrate/core/sr-primitives/src/lib.rs b/substrate/core/sr-primitives/src/lib.rs index d0e9dbc8c0..0c77b1a468 100644 --- a/substrate/core/sr-primitives/src/lib.rs +++ b/substrate/core/sr-primitives/src/lib.rs @@ -625,7 +625,7 @@ macro_rules! impl_outer_log { } impl $crate::codec::Decode for $name { - /// `generic::DigestItem` binray compatible decode. + /// `generic::DigestItem` binary compatible decode. fn decode(input: &mut I) -> Option { let gen: $crate::generic::DigestItem<$($genarg),*> = $crate::codec::Decode::decode(input)?; @@ -634,7 +634,7 @@ macro_rules! impl_outer_log { } impl $crate::codec::Encode for $name { - /// `generic::DigestItem` binray compatible encode. + /// `generic::DigestItem` binary compatible encode. fn encode(&self) -> Vec { match self.dref() { Some(dref) => dref.encode(), @@ -665,7 +665,7 @@ macro_rules! impl_outer_log { }; } -/// Simple blob to hold an extrinsic without commiting to its format and ensure it is serialized +/// Simple blob to hold an extrinsic without committing to its format and ensure it is serialized /// correctly. #[derive(PartialEq, Eq, Clone, Default, Encode, Decode)] #[cfg_attr(feature = "std", derive(Debug))] diff --git a/substrate/core/sr-sandbox/src/lib.rs b/substrate/core/sr-sandbox/src/lib.rs index 9130b0544d..e8bdd5727e 100755 --- a/substrate/core/sr-sandbox/src/lib.rs +++ b/substrate/core/sr-sandbox/src/lib.rs @@ -140,7 +140,7 @@ impl EnvironmentDefinitionBuilder { } } - /// Register a host function in this environment defintion. + /// Register a host function in this environment definition. /// /// NOTE that there is no constraints on type of this function. An instance /// can import function passed here with any signature it wants. It can even import diff --git a/substrate/core/test-runtime/src/lib.rs b/substrate/core/test-runtime/src/lib.rs index 9c6f26e4a0..36950bfb1b 100644 --- a/substrate/core/test-runtime/src/lib.rs +++ b/substrate/core/test-runtime/src/lib.rs @@ -214,7 +214,7 @@ cfg_if! { pub trait TestAPI { /// Return the balance of the given account id. fn balance_of(id: AccountId) -> u64; - /// A benchmkark function that adds one to the given value and returns the result. + /// A benchmark function that adds one to the given value and returns the result. fn benchmark_add_one(val: &u64) -> u64; /// A benchmark function that adds one to each value in the given vector and returns the /// result. @@ -239,7 +239,7 @@ cfg_if! { pub trait TestAPI { /// Return the balance of the given account id. fn balance_of(id: AccountId) -> u64; - /// A benchmkark function that adds one to the given value and returns the result. + /// A benchmark function that adds one to the given value and returns the result. fn benchmark_add_one(val: &u64) -> u64; /// A benchmark function that adds one to each value in the given vector and returns the /// result. diff --git a/substrate/core/test-runtime/src/system.rs b/substrate/core/test-runtime/src/system.rs index a66eb58c1f..7c76fdd72b 100644 --- a/substrate/core/test-runtime/src/system.rs +++ b/substrate/core/test-runtime/src/system.rs @@ -52,7 +52,7 @@ pub fn nonce_of(who: AccountId) -> u64 { storage::get_or(&who.to_keyed_vec(NONCE_OF), 0) } -/// Get authorities ar given block. +/// Get authorities at given block. pub fn authorities() -> Vec { let len: u32 = storage::unhashed::get(well_known_keys::AUTHORITY_COUNT) .expect("There are always authorities in test-runtime"); diff --git a/substrate/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm b/substrate/core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm index bff5d3c6fc95aab2ddefa81474a9c6111817dc45..7d348a504e4c4bbbaa5bf7c20fe4879d4bd81fbe 100644 GIT binary patch delta 2758 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%0An``r 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 diff --git a/substrate/srml/metadata/src/lib.rs b/substrate/srml/metadata/src/lib.rs index ec47b6ccc6..3f40753006 100644 --- a/substrate/srml/metadata/src/lib.rs +++ b/substrate/srml/metadata/src/lib.rs @@ -213,7 +213,7 @@ pub trait DefaultByte { fn default_byte(&self) -> Vec; } -/// Wrapper over dyn pointer for accessing a cached once byet value. +/// Wrapper over dyn pointer for accessing a cached once byte value. #[derive(Clone)] pub struct DefaultByteGetter(pub &'static dyn DefaultByte); diff --git a/substrate/srml/support/src/dispatch.rs b/substrate/srml/support/src/dispatch.rs index 166b545171..0e842a9802 100644 --- a/substrate/srml/support/src/dispatch.rs +++ b/substrate/srml/support/src/dispatch.rs @@ -30,7 +30,7 @@ pub use srml_metadata::{ /// A type that can not be instantiated. pub enum Never {} -/// Result of a module function call; either nothing (functions are only called for "side efeects") +/// Result of a module function call; either nothing (functions are only called for "side effects") /// or an error message. pub type Result = result::Result<(), &'static str>; diff --git a/substrate/srml/support/src/double_map.rs b/substrate/srml/support/src/double_map.rs index 609006aa33..a6dad9eabe 100644 --- a/substrate/srml/support/src/double_map.rs +++ b/substrate/srml/support/src/double_map.rs @@ -121,7 +121,7 @@ pub trait StorageDoubleMap { fn derive_key2(key2_data: Vec) -> Vec; /// Returns a compound key that consist of the two parts: (prefix, `k1`) and `k2`. - /// The first part is hased and then concatenated with a hash of `k2`. + /// The first part is hashed and then concatenated with a hash of `k2`. fn full_key(k1: &Q, k2: &R) -> Vec where Self::Key1: Borrow, diff --git a/substrate/srml/support/src/event.rs b/substrate/srml/support/src/event.rs index c945360f9c..dc51b66a94 100644 --- a/substrate/srml/support/src/event.rs +++ b/substrate/srml/support/src/event.rs @@ -67,7 +67,7 @@ pub use srml_metadata::{EventMetadata, DecodeDifferent, OuterEventMetadata, FnEn /// /// mod event2 { /// // Event that uses the generic parameter `Balance`. -/// // If no name for the generic parameter is speciefied explicitly, +/// // If no name for the generic parameter is specified explicitly, /// // the name will be taken from the type name of the trait. /// decl_event!( /// pub enum Event where ::Balance { diff --git a/substrate/srml/support/src/traits.rs b/substrate/srml/support/src/traits.rs index 37290d4ef1..fbce46eac0 100644 --- a/substrate/srml/support/src/traits.rs +++ b/substrate/srml/support/src/traits.rs @@ -176,7 +176,7 @@ pub trait Currency { /// they can be individually replaced or removed. pub type LockIdentifier = [u8; 8]; -/// A currency whose accounts can have liquidity restructions. +/// A currency whose accounts can have liquidity restrictions. pub trait LockableCurrency: Currency { /// The quantity used to denote time; usually just a `BlockNumber`. type Moment; @@ -210,7 +210,7 @@ pub trait LockableCurrency: Currency { /// Charge bytes fee trait pub trait ChargeBytesFee { /// Charge fees from `transactor` for an extrinsic (transaction) of encoded length - /// `encoded_len` bytes. Return Ok iff the payment was successful. + /// `encoded_len` bytes. Return Ok if the payment was successful. fn charge_base_bytes_fee(transactor: &AccountId, encoded_len: usize) -> Result<(), &'static str>; } @@ -222,7 +222,7 @@ pub trait ChargeFee: ChargeBytesFee { /// Charge `amount` of fees from `transactor`. Return Ok iff the payment was successful. fn charge_fee(transactor: &AccountId, amount: Self::Amount) -> Result<(), &'static str>; - /// Refund `amount` of previous charged fees from `transactor`. Return Ok iff the refund was successful. + /// Refund `amount` of previous charged fees from `transactor`. Return Ok if the refund was successful. fn refund_fee(transactor: &AccountId, amount: Self::Amount) -> Result<(), &'static str>; }