rearrange offchain worker execution sequence
Signed-off-by: Uncle Stretch <uncle.stretch@ghostchain.io>
This commit is contained in:
parent
0323c25d08
commit
a6ce55c1e8
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -3837,7 +3837,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ghost-slow-clap"
|
name = "ghost-slow-clap"
|
||||||
version = "0.4.6"
|
version = "0.4.7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"frame-benchmarking",
|
"frame-benchmarking",
|
||||||
"frame-support",
|
"frame-support",
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "ghost-slow-clap"
|
name = "ghost-slow-clap"
|
||||||
version = "0.4.6"
|
version = "0.4.7"
|
||||||
description = "Applause protocol for the EVM bridge"
|
description = "Applause protocol for the EVM bridge"
|
||||||
license.workspace = true
|
license.workspace = true
|
||||||
authors.workspace = true
|
authors.workspace = true
|
||||||
|
|||||||
@ -788,34 +788,18 @@ impl<T: Config> Pallet<T> {
|
|||||||
|
|
||||||
fn start_slow_clapping(block_number: BlockNumberFor<T>) -> OffchainResult<T, ()> {
|
fn start_slow_clapping(block_number: BlockNumberFor<T>) -> OffchainResult<T, ()> {
|
||||||
let session_index = T::ValidatorSet::session_index();
|
let session_index = T::ValidatorSet::session_index();
|
||||||
let networks_len = T::NetworkDataHandler::iter().count();
|
let networks = T::NetworkDataHandler::iter().collect::<Vec<_>>();
|
||||||
let network_in_use = T::NetworkDataHandler::iter()
|
let network_index = block_number
|
||||||
.nth(
|
.into()
|
||||||
block_number
|
.as_usize()
|
||||||
.into()
|
.checked_rem(networks.len())
|
||||||
.as_usize()
|
.unwrap_or_default();
|
||||||
.checked_rem(networks_len)
|
|
||||||
.unwrap_or_default(),
|
let network_in_use = networks
|
||||||
)
|
.iter()
|
||||||
|
.nth(network_index)
|
||||||
.ok_or(OffchainErr::NoStoredNetworks)?;
|
.ok_or(OffchainErr::NoStoredNetworks)?;
|
||||||
|
|
||||||
let network_id_encoded = network_in_use.0.encode();
|
|
||||||
|
|
||||||
let rate_limit_delay_key = Self::create_storage_key(b"rate-limit-", &network_id_encoded);
|
|
||||||
let rate_limit_delay = Self::read_persistent_offchain_storage(
|
|
||||||
&rate_limit_delay_key,
|
|
||||||
network_in_use.1.rate_limit_delay,
|
|
||||||
);
|
|
||||||
|
|
||||||
let network_lock_key = Self::create_storage_key(b"network-lock-", &network_id_encoded);
|
|
||||||
let block_until =
|
|
||||||
rt_offchain::Duration::from_millis(rate_limit_delay.max(MIN_LOCK_GUARD_PERIOD));
|
|
||||||
let mut network_lock = StorageLock::<Time>::with_deadline(&network_lock_key, block_until);
|
|
||||||
|
|
||||||
let _lock_guard = network_lock
|
|
||||||
.try_lock()
|
|
||||||
.map_err(|_| OffchainErr::OffchainTimeoutPeriod(network_in_use.0))?;
|
|
||||||
|
|
||||||
log::info!(
|
log::info!(
|
||||||
target: LOG_TARGET,
|
target: LOG_TARGET,
|
||||||
"👻 Offchain worker started for network #{:?} at block #{:?}",
|
"👻 Offchain worker started for network #{:?} at block #{:?}",
|
||||||
@ -823,6 +807,15 @@ impl<T: Config> Pallet<T> {
|
|||||||
block_number,
|
block_number,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
let network_id_encoded = network_in_use.0.encode();
|
||||||
|
let network_lock_key = Self::create_storage_key(b"network-lock-", &network_id_encoded);
|
||||||
|
let lock_until = rt_offchain::Duration::from_millis(MIN_LOCK_GUARD_PERIOD);
|
||||||
|
let mut network_lock = StorageLock::<Time>::with_deadline(&network_lock_key, lock_until);
|
||||||
|
|
||||||
|
let _lock_guard = network_lock
|
||||||
|
.try_lock()
|
||||||
|
.map_err(|_| OffchainErr::OffchainTimeoutPeriod(network_in_use.0))?;
|
||||||
|
|
||||||
Self::do_evm_claps_or_save_block(session_index, network_in_use.0, &network_in_use.1)
|
Self::do_evm_claps_or_save_block(session_index, network_in_use.0, &network_in_use.1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user