msc { client,historian,recorder; recorder=>historian [ label = "e0 = Entry{id: h0, n: 0, event: Tick}" ] ; recorder=>recorder [ label = "h1 = hash(h0)" ] ; recorder=>recorder [ label = "h2 = hash(h1)" ] ; client=>historian [ label = "Transaction(d0)" ] ; historian=>recorder [ label = "Transaction(d0)" ] ; recorder=>recorder [ label = "h3 = hash(h2 + d0)" ] ; recorder=>historian [ label = "e1 = Entry{id: hash(h3), n: 3, event: Transaction(d0)}" ] ; recorder=>recorder [ label = "h4 = hash(h3)" ] ; recorder=>recorder [ label = "h5 = hash(h4)" ] ; recorder=>recorder [ label = "h6 = hash(h5)" ] ; recorder=>historian [ label = "e2 = Entry{id: h6, n: 3, event: Tick}" ] ; client=>historian [ label = "collect()" ] ; historian=>client [ label = "entries = [e0, e1, e2]" ] ; client=>client [ label = "entries.verify(h0)" ] ; }