diff --git a/src/model.rs b/src/model.rs index 49fc5e37..e1dff7af 100644 --- a/src/model.rs +++ b/src/model.rs @@ -76,6 +76,7 @@ pub type Member = String; pub type Key = String; pub type Delta = i64; pub type Timestamp = u64; +pub type Height = u64; #[derive(Debug)] pub enum Value { @@ -108,7 +109,7 @@ pub enum CRDTCommand { AnyWriteWins(Key, Value), // TODO make sure Value is a generic not stringly typed PNCounter(Key, Delta), - BlockFinished(Point), + BlockFinished(Point, Height), } impl CRDTCommand { @@ -170,7 +171,8 @@ impl CRDTCommand { pub fn block_finished(block: &MultiEraBlock) -> CRDTCommand { let hash = block.hash(); let slot = block.slot(); + let height = block.number(); let point = Point::Specific(slot, hash.to_vec()); - CRDTCommand::BlockFinished(point) + CRDTCommand::BlockFinished(point, height) } } diff --git a/src/storage/redis.rs b/src/storage/redis.rs index aa312a0c..a4fec763 100644 --- a/src/storage/redis.rs +++ b/src/storage/redis.rs @@ -195,9 +195,11 @@ impl gasket::runtime::Worker for Worker { .incr(key, value) .or_restart()?; } - model::CRDTCommand::BlockFinished(point) => { + model::CRDTCommand::BlockFinished(point, height) => { let cursor_str = crosscut::PointArg::from(point).to_string(); + let cursor_str = format!("{},{}", cursor_str, height); + self.connection .as_mut() .unwrap() diff --git a/src/storage/skip.rs b/src/storage/skip.rs index bcd65785..b477d6a9 100644 --- a/src/storage/skip.rs +++ b/src/storage/skip.rs @@ -112,7 +112,7 @@ impl gasket::runtime::Worker for Worker { model::CRDTCommand::PNCounter(key, value) => { log::debug!("increasing counter [{}], by [{}]", key, value); } - model::CRDTCommand::BlockFinished(point) => { + model::CRDTCommand::BlockFinished(point, _height) => { log::debug!("block finished {:?}", point); let mut last_point = self.last_point.lock().unwrap(); *last_point = Some(crosscut::PointArg::from(point));