def root_hash
      # TODO: can I memoize computation below?
      return BLANK_ROOT if @root_node == BLANK_NODE

      raise InvalidNode, "invalid root node" unless @root_node.instance_of?(Array)

      val = FastRLP.encode @root_node
      key = Utils.keccak256 val

      @db.put key, val
      SPV.grabbing @root_node

      key
    end
def root_hash
      # TODO: can I memoize computation below?
      return BLANK_ROOT if @root_node == BLANK_NODE

      raise InvalidNode, "invalid root node" unless @root_node.instance_of?(Array)

      val = FastRLP.encode @root_node
      key = Utils.keccak256 val

      @db.put key, val
      SPV.grabbing @root_node

      key
    end
It presents a hash like interface.

 @param db [Object] key value database
 @param root_hash [String] blank or trie node in form of [key, value] or
   [v0, v1, .. v15, v]


 @return empty or 32 bytes string