A common usage pattern for blockchains is to get data as of a certain block height. In Bitcoin, for example, the original client does not consider transactions "confirmed" until they are six blocks deep.
This threshold may be set differently by different users. dApps dealing with less sensitive data may even want to query data while the transactions are still pending.
Will we need to spin up different query nodes or maintain separate indexes for each possible block height we wish to support. Is there a way to efficiently access past versions of an index using something like structural sharing?