At the moment, storageDiff is a plain method.
To implement storageDiff of two arbitrary blocks, we'll have to iterate through the keys of both blocks and access the storage of those keys requested by the user.
This operation might be expensive enough to DoS the node, considering users might request differences between genesis <-> latest-finalized.
Another benefit of having a subscription-based approach for storageDiff is that we can leverage the backpressure system implemented for the chainHead subscription.
On the other side, users will have to adapt their code to work with a subscription-based approach.
Implementation ref: https://github.com/paritytech/polkadot-sdk/pull/5997/files#diff-ac650a2e540d8d37576d05083cce78260192944382ecf1e68f0db50b5d86907eR350-R369
// cc @paritytech/subxt-team @tomaka @josepot Would love to get your thoughts on this 🙏