mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 22:51:13 +00:00
Removal of execution strategies (#14387)
* Start * More work! * Moar * More changes * More fixes * More worrk * More fixes * More fixes to make it compile * Adds `NoOffchainStorage` * Pass the extensions * Small basti making small progress * Fix merge errors and remove `ExecutionContext` * Move registration of `ReadRuntimeVersionExt` to `ExecutionExtension` Instead of registering `ReadRuntimeVersionExt` in `sp-state-machine` it is moved to `ExecutionExtension` which provides the default extensions. * Fix compilation * Register the global extensions inside runtime api instance * Fixes * Fix `generate_initial_session_keys` by passing the keystore extension * Fix the grandpa tests * Fix more tests * Fix more tests * Don't set any heap pages if there isn't an override * Fix small fallout * FMT * Fix tests * More tests * Offchain worker custom extensions * More fixes * Make offchain tx pool creation reusable Introduces an `OffchainTransactionPoolFactory` for creating offchain transactions pools that can be registered in the runtime externalities context. This factory will be required for a later pr to make the creation of offchain transaction pools easier. * Fixes * Fixes * Set offchain transaction pool in BABE before using it in the runtime * Add the `offchain_tx_pool` to Grandpa as well * Fix the nodes * Print some error when using the old warnings * Fix merge issues * Fix compilation * Rename `babe_link` * Rename to `offchain_tx_pool_factory` * Cleanup * FMT * Fix benchmark name * Fix `try-runtime` * Remove `--execution` CLI args * Make clippy happy * Forward bls functions * Fix docs * Update UI tests * Update client/api/src/execution_extensions.rs Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Koute <koute@users.noreply.github.com> * Update client/cli/src/params/import_params.rs Co-authored-by: Koute <koute@users.noreply.github.com> * Update client/api/src/execution_extensions.rs Co-authored-by: Koute <koute@users.noreply.github.com> * Pass the offchain storage to the MMR RPC * Update client/api/src/execution_extensions.rs Co-authored-by: Sebastian Kunert <skunert49@gmail.com> * Review comments * Fixes --------- Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com> Co-authored-by: Koute <koute@users.noreply.github.com> Co-authored-by: Sebastian Kunert <skunert49@gmail.com>
This commit is contained in:
@@ -161,17 +161,6 @@ pub enum ExecutionStrategy {
|
||||
NativeElseWasm,
|
||||
}
|
||||
|
||||
impl Into<sc_client_api::ExecutionStrategy> for ExecutionStrategy {
|
||||
fn into(self) -> sc_client_api::ExecutionStrategy {
|
||||
match self {
|
||||
ExecutionStrategy::Native => sc_client_api::ExecutionStrategy::NativeWhenPossible,
|
||||
ExecutionStrategy::Wasm => sc_client_api::ExecutionStrategy::AlwaysWasm,
|
||||
ExecutionStrategy::Both => sc_client_api::ExecutionStrategy::Both,
|
||||
ExecutionStrategy::NativeElseWasm => sc_client_api::ExecutionStrategy::NativeElseWasm,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Available RPC methods.
|
||||
#[allow(missing_docs)]
|
||||
#[derive(Debug, Copy, Clone, PartialEq, ValueEnum)]
|
||||
@@ -270,16 +259,3 @@ impl Into<sc_network::config::SyncMode> for SyncMode {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Default value for the `--execution-syncing` parameter.
|
||||
pub const DEFAULT_EXECUTION_SYNCING: ExecutionStrategy = ExecutionStrategy::Wasm;
|
||||
/// Default value for the `--execution-import-block` parameter.
|
||||
pub const DEFAULT_EXECUTION_IMPORT_BLOCK: ExecutionStrategy = ExecutionStrategy::Wasm;
|
||||
/// Default value for the `--execution-import-block` parameter when the node is a validator.
|
||||
pub const DEFAULT_EXECUTION_IMPORT_BLOCK_VALIDATOR: ExecutionStrategy = ExecutionStrategy::Wasm;
|
||||
/// Default value for the `--execution-block-construction` parameter.
|
||||
pub const DEFAULT_EXECUTION_BLOCK_CONSTRUCTION: ExecutionStrategy = ExecutionStrategy::Wasm;
|
||||
/// Default value for the `--execution-offchain-worker` parameter.
|
||||
pub const DEFAULT_EXECUTION_OFFCHAIN_WORKER: ExecutionStrategy = ExecutionStrategy::Wasm;
|
||||
/// Default value for the `--execution-other` parameter.
|
||||
pub const DEFAULT_EXECUTION_OTHER: ExecutionStrategy = ExecutionStrategy::Wasm;
|
||||
|
||||
@@ -24,7 +24,6 @@ use crate::{
|
||||
};
|
||||
use log::warn;
|
||||
use names::{Generator, Name};
|
||||
use sc_client_api::execution_extensions::ExecutionStrategies;
|
||||
use sc_service::{
|
||||
config::{
|
||||
BasePath, Configuration, DatabaseSource, KeystoreConfig, NetworkConfiguration,
|
||||
@@ -291,21 +290,6 @@ pub trait CliConfiguration<DCV: DefaultConfigurationValues = ()>: Sized {
|
||||
self.import_params().map(|x| x.wasm_runtime_overrides()).unwrap_or_default()
|
||||
}
|
||||
|
||||
/// Get the execution strategies.
|
||||
///
|
||||
/// By default this is retrieved from `ImportParams` if it is available. Otherwise its
|
||||
/// `ExecutionStrategies::default()`.
|
||||
fn execution_strategies(
|
||||
&self,
|
||||
is_dev: bool,
|
||||
is_validator: bool,
|
||||
) -> Result<ExecutionStrategies> {
|
||||
Ok(self
|
||||
.import_params()
|
||||
.map(|x| x.execution_strategies(is_dev, is_validator))
|
||||
.unwrap_or_default())
|
||||
}
|
||||
|
||||
/// Get the RPC address.
|
||||
fn rpc_addr(&self, _default_listen_port: u16) -> Result<Option<SocketAddr>> {
|
||||
Ok(None)
|
||||
@@ -508,7 +492,6 @@ pub trait CliConfiguration<DCV: DefaultConfigurationValues = ()>: Sized {
|
||||
blocks_pruning: self.blocks_pruning()?,
|
||||
wasm_method: self.wasm_method()?,
|
||||
wasm_runtime_overrides: self.wasm_runtime_overrides(),
|
||||
execution_strategies: self.execution_strategies(is_dev, is_validator)?,
|
||||
rpc_addr: self.rpc_addr(DCV::rpc_listen_port())?,
|
||||
rpc_methods: self.rpc_methods()?,
|
||||
rpc_max_connections: self.rpc_max_connections()?,
|
||||
|
||||
@@ -19,15 +19,11 @@
|
||||
use crate::{
|
||||
arg_enums::{
|
||||
ExecutionStrategy, WasmExecutionMethod, WasmtimeInstantiationStrategy,
|
||||
DEFAULT_EXECUTION_BLOCK_CONSTRUCTION, DEFAULT_EXECUTION_IMPORT_BLOCK,
|
||||
DEFAULT_EXECUTION_IMPORT_BLOCK_VALIDATOR, DEFAULT_EXECUTION_OFFCHAIN_WORKER,
|
||||
DEFAULT_EXECUTION_OTHER, DEFAULT_EXECUTION_SYNCING,
|
||||
DEFAULT_WASMTIME_INSTANTIATION_STRATEGY, DEFAULT_WASM_EXECUTION_METHOD,
|
||||
},
|
||||
params::{DatabaseParams, PruningParams},
|
||||
};
|
||||
use clap::Args;
|
||||
use sc_client_api::execution_extensions::ExecutionStrategies;
|
||||
use std::path::PathBuf;
|
||||
|
||||
/// Parameters for block import.
|
||||
@@ -104,6 +100,8 @@ impl ImportParams {
|
||||
|
||||
/// Get the WASM execution method from the parameters
|
||||
pub fn wasm_method(&self) -> sc_service::config::WasmExecutionMethod {
|
||||
self.execution_strategies.check_usage_and_print_deprecation_warning();
|
||||
|
||||
crate::execution_method_from_cli(self.wasm_method, self.wasmtime_instantiation_strategy)
|
||||
}
|
||||
|
||||
@@ -112,36 +110,6 @@ impl ImportParams {
|
||||
pub fn wasm_runtime_overrides(&self) -> Option<PathBuf> {
|
||||
self.wasm_runtime_overrides.clone()
|
||||
}
|
||||
|
||||
/// Get execution strategies for the parameters
|
||||
pub fn execution_strategies(&self, is_dev: bool, is_validator: bool) -> ExecutionStrategies {
|
||||
let exec = &self.execution_strategies;
|
||||
let exec_all_or = |strat: Option<ExecutionStrategy>, default: ExecutionStrategy| {
|
||||
let default = if is_dev { ExecutionStrategy::Native } else { default };
|
||||
|
||||
exec.execution.unwrap_or_else(|| strat.unwrap_or(default)).into()
|
||||
};
|
||||
|
||||
let default_execution_import_block = if is_validator {
|
||||
DEFAULT_EXECUTION_IMPORT_BLOCK_VALIDATOR
|
||||
} else {
|
||||
DEFAULT_EXECUTION_IMPORT_BLOCK
|
||||
};
|
||||
|
||||
ExecutionStrategies {
|
||||
syncing: exec_all_or(exec.execution_syncing, DEFAULT_EXECUTION_SYNCING),
|
||||
importing: exec_all_or(exec.execution_import_block, default_execution_import_block),
|
||||
block_construction: exec_all_or(
|
||||
exec.execution_block_construction,
|
||||
DEFAULT_EXECUTION_BLOCK_CONSTRUCTION,
|
||||
),
|
||||
offchain_worker: exec_all_or(
|
||||
exec.execution_offchain_worker,
|
||||
DEFAULT_EXECUTION_OFFCHAIN_WORKER,
|
||||
),
|
||||
other: exec_all_or(exec.execution_other, DEFAULT_EXECUTION_OTHER),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Execution strategies parameters.
|
||||
@@ -186,3 +154,23 @@ pub struct ExecutionStrategiesParams {
|
||||
)]
|
||||
pub execution: Option<ExecutionStrategy>,
|
||||
}
|
||||
|
||||
impl ExecutionStrategiesParams {
|
||||
/// Check if one of the parameters is still passed and print a warning if so.
|
||||
fn check_usage_and_print_deprecation_warning(&self) {
|
||||
for (param, name) in [
|
||||
(&self.execution_syncing, "execution-syncing"),
|
||||
(&self.execution_import_block, "execution-import-block"),
|
||||
(&self.execution_block_construction, "execution-block-construction"),
|
||||
(&self.execution_offchain_worker, "execution-offchain-worker"),
|
||||
(&self.execution_other, "execution-other"),
|
||||
(&self.execution, "execution"),
|
||||
] {
|
||||
if param.is_some() {
|
||||
eprintln!(
|
||||
"CLI parameter `--{name}` has no effect anymore and will be removed in the future!"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -265,7 +265,6 @@ mod tests {
|
||||
)),
|
||||
wasm_method: Default::default(),
|
||||
wasm_runtime_overrides: None,
|
||||
execution_strategies: Default::default(),
|
||||
rpc_addr: None,
|
||||
rpc_max_connections: Default::default(),
|
||||
rpc_cors: None,
|
||||
|
||||
Reference in New Issue
Block a user