However, with transactions, we can both subscribe and search for them. The first is great for responsive apps. The second great to get a history. With a symetrical design, we would also be able to search for blocks/headers not only by height (as now), but also tags. There recently has been some work on the tagging system #3643, so I figured this would be a good time to propose finishing the work on tagging blocks.
But what is the real use case? Simple - in order to support light-client proofs (and headers for ibc), it is very useful to get a list of all blocks where the validator set changed. That is where header.NextValidatorHash != header.ValidatorHash. I started the design to emit a tag on EndBlock whenever the App updates the validator set, which then can be subscribed to in order to find the changes. So far, this works well. However, if a client is offline and wants to catch-up, there is no clear way to locate such blocks - either built-in or making use of the tagging system.
The text was updated successfully, but these errors were encountered: