pub async fn subscribe(&self) -> (Subscriber<HeadChange>, Arc<Tipset>) {
        let sub = self.publisher.write().await.subscribe();
        let ts = self.heaviest_tipset().await.unwrap();
        (sub, ts)
    }
// subscribing returns a future sink that we can essentially iterate over using future streams
subscribing returns a future sink that we can essentially iterate over using future streams
subscribing returns a future sink that we can essentially iterate over using future streams
pub async fn subscribe(&self) -> (Subscriber<HeadChange>, Arc<Tipset>) {
        let sub = self.publisher.write().await.subscribe();
        let ts = self.heaviest_tipset().await.unwrap();
        (sub, ts)
    }
pub async fn subscribe ( & self ) -> ( Subscriber < HeadChange > , Arc < Tipset > ) { let sub = self . publisher . write ( ) . await . subscribe ( ) ; let ts = self . heaviest_tipset ( ) . await . unwrap ( ) ; ( sub , ts ) }
subscribing returns a future sink that we can essentially iterate over using future streams
subscribing returns a future sink that we can essentially iterate over using future streams
&self