diff --git a/Cargo.lock b/Cargo.lock index 476f11fa0b92b8f9743ae26a2bc52a35672f2cfa..30051cc42849449b7b8ca5a398fb3860b9d1af3e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3028,7 +3028,7 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "duniter" -version = "0.9.0" +version = "0.9.1" dependencies = [ "async-io", "bs58 0.5.1", diff --git a/node/Cargo.toml b/node/Cargo.toml index 2ac9b0b34f5ca82647d3d13b71c25eaf11cdc5c3..c7eb5ebf2cd88f305cd71be53364c0158df95013 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -7,7 +7,7 @@ homepage.workspace = true license.workspace = true name = "duniter" repository.workspace = true -version = "0.9.0" +version = "0.9.1" default-run = "duniter" [package.metadata.docs.rs] diff --git a/node/src/service.rs b/node/src/service.rs index 8946443088e3857c2f5c5c6feb4c9c43582919f9..fb14fb678a0179ed9744e9f03cda45ec8942059e 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -504,6 +504,7 @@ where >( &*client, parent, distance_dir, &babe_owner_keys.clone() )?; + // in case of manual sealing, the distance is forced to succeed Ok((timestamp, babe, distance)) } }, @@ -549,7 +550,17 @@ where FullBackend, >( &*client, parent, distance_dir, &babe_owner_keys.clone() - )?; + ); + + // provides fallback when distance inherent data provider crashes + // (only when sealing is not manual) + let distance = match distance { + Ok(distance) => distance, + Err(e) => { + log::warn!("{:?}", e); + sp_distance::InherentDataProvider::new(None) + } + }; Ok((slot, timestamp, storage_proof, distance)) }