diff --git a/substrate/frame/executive/src/lib.rs b/substrate/frame/executive/src/lib.rs index 35d44f53e0..9f42ac1a05 100644 --- a/substrate/frame/executive/src/lib.rs +++ b/substrate/frame/executive/src/lib.rs @@ -311,7 +311,7 @@ where /// Start an offchain worker and generate extrinsics. pub fn offchain_worker(n: System::BlockNumber) { - >::generate_extrinsics(n) + >::offchain_worker(n) } } diff --git a/substrate/frame/support/src/dispatch.rs b/substrate/frame/support/src/dispatch.rs index 7d7103b0a4..d80b8ca440 100644 --- a/substrate/frame/support/src/dispatch.rs +++ b/substrate/frame/support/src/dispatch.rs @@ -1001,7 +1001,7 @@ macro_rules! decl_module { $crate::sp_runtime::traits::OffchainWorker<$trait_instance::BlockNumber> for $module<$trait_instance$(, $instance)?> where $( $other_where_bounds )* { - fn generate_extrinsics(_block_number_not_used: $trait_instance::BlockNumber) { $( $impl )* } + fn offchain_worker(_block_number_not_used: $trait_instance::BlockNumber) { $( $impl )* } } }; @@ -1014,7 +1014,7 @@ macro_rules! decl_module { $crate::sp_runtime::traits::OffchainWorker<$trait_instance::BlockNumber> for $module<$trait_instance$(, $instance)?> where $( $other_where_bounds )* { - fn generate_extrinsics($param: $param_ty) { $( $impl )* } + fn offchain_worker($param: $param_ty) { $( $impl )* } } }; diff --git a/substrate/primitives/sr-primitives/src/traits.rs b/substrate/primitives/sr-primitives/src/traits.rs index e3b06b2260..5400c5d3af 100644 --- a/substrate/primitives/sr-primitives/src/traits.rs +++ b/substrate/primitives/sr-primitives/src/traits.rs @@ -346,18 +346,22 @@ pub trait OnInitialize { /// Off-chain computation trait. /// /// Implementing this trait on a module allows you to perform long-running tasks -/// that make validators generate extrinsics (either transactions or inherents) -/// with the results of those long-running computations. +/// that make (by default) validators generate transactions that feed results +/// of those long-running computations back on chain. /// /// NOTE: This function runs off-chain, so it can access the block state, -/// but cannot preform any alterations. +/// but cannot preform any alterations. More specifically alterations are +/// not forbidden, but they are not persisted in any way after the worker +/// has finished. #[impl_for_tuples(30)] pub trait OffchainWorker { - /// This function is being called on every block. + /// This function is being called after every block import (when fully synced). /// - /// Implement this and use special `extern`s to generate transactions or inherents. + /// Implement this and use any of the `Offchain` `sp_io` set of APIs + /// to perform offchain computations, calls and submit transactions + /// with results to trigger any on-chain changes. /// Any state alterations are lost and are not persisted. - fn generate_extrinsics(_n: BlockNumber) {} + fn offchain_worker(_n: BlockNumber) {} } /// Abstraction around hashing