message: Switch from Timestamp to clock for high resolution
diff: @@ -9,6 +9,7 @@ mod weight;
  pub(crate) mod tests;
  pub(crate) use params::Params;
  +use quanta::Clock;
  pub(crate) use weight::Weight;
  pub(super) use panorama::{Observation, Panorama};
  @@ -339,7 +340,8 @@ impl<C: Context> State<C> {
  /// children of the previously selected block (or from all blocks at height 0), until a block
  /// is reached that has no children with any votes.
  pub(crate) fn fork_choice<'a>(&'a self, pan: &Panorama<C>) -> Option<&'a C::Hash> {
  - let start_time = Timestamp::now();
  + let clock = Clock::new();
  + let start = clock.start();
  // Collect all correct votes in a `Tallies` map, sorted by height.
  let to_entry = |(obs, w): (&Observation<C>, &Weight)| {
  let bhash = &self.vote(obs.correct()?).block;
  @@ -353,8 +355,9 @@ impl<C: Context> State<C> {
  tallies = tallies.filter_descendants(height, bhash, self);
  // If there are no blocks left, `bhash` itself is the fork choice. Otherwise repeat.
  if tallies.is_empty() {
  - let elapsed = start_time.elapsed();
  - trace!(%elapsed,"Time taken for fork-choice to run");
  + let end = clock.end();
  + let delta = clock.delta(start, end).as_nanos();
  + trace!(%delta,"Time taken for fork-choice to run");
  return Some(bhash);
  }
  }
  