   (when-not (instance? Multihash id)
     (throw (IllegalArgumentException.
              (str "Id value must be a multihash, got: " (pr-str id)))))
-  (when-let [block (store/-get store id)]
-    (when-not (= id (:id block))
-      (throw (RuntimeException.
-               (str "Asked for block " id " but got " (:id block)))))
-    block))
+  (let [block (measure-method [::get id]
+                (store/-get store id))]
+    (when block
+      (when-not (= id (:id block))
+        (throw (RuntimeException.
+                 (str "Asked for block " id " but got " (:id block)))))
+      (meter/metered-block store ::meter/io-read block))))
 
 
 (defn put!

  removed."
  [store id]
  (when id
    (store/-delete! store id)))




    (when-not (instance? Multihash id)
      (throw (IllegalArgumentException.
               (str "Id value must be a multihash, got: " (pr-str id)))))
    (measure-method [::stat id]
      (store/-stat store id))))


(defn list
