 
   Blocks have two primary attributes, `:id` and `:size`. The block identifier
   is a multihash with the digest identifying the content. The size is the
-  number of bytes in the block content.
+  number of bytes in the block content. Blocks also have a `:stored-at` value
+  giving the instant they were persisted, but this does not affect equality or
+  the block's hash code.
 
   Internally, blocks may reference their content in-memory as a byte array, or
   a _content reader_ which constructs new input streams for the block data on

  blocks with readers are _lazy blocks_."
  (:require
    [byte-streams :as bytes]
    [multiformats.hash :as mhash])
  (:import
    blocks.data.PersistentBytes
    (java.io

    org.apache.commons.io.input.BoundedInputStream))


;; ## Block Type

(deftype Block
  [^Multihash id
   ^long size
   ^Instant stored-at
   content
   _meta
   ^:unsynchronized-mutable _hash]

  :load-ns true


  java.lang.Object

  (toString
    [this]
    (format "Block[%s %s %s]" id size stored-at))


  (equals
    [this that]
