I've seen some code like this
move |_, ()| async move {
let uncles =
sp_authorship::InherentDataProvider::<<Block as BlockT>::Header>::check_inherents();
let timestamp = sp_timestamp::InherentDataProvider::from_system_time();
let slot =
sp_consensus_babe::inherents::InherentDataProvider::from_timestamp_and_duration(
*timestamp,
slot_duration,
);
Ok((timestamp, slot, uncles))
},
But I don't know what it means. If I remove one of them, the node still can be compiled and running without any issue.
Or I should ask what is InherentData
. What does it use for?