Fetch Blks rpc should always fetch the blks from consumer
Fetch Blocks RPC when sent to existing member, responds with the data from HomeStore layer itself. The RPC sent all the neccessary information, <dsn, lsn, remote_blkid, key, header>. At present homestore uses remote_blkid (which is local_blkid for this node) and read the data from data_service and fill the data.
In case of HomeObject, this is an issue, because the blkid could have been GC'd and moved to a different block location. The GC does not go through the replication/journal. As a result, reading the blkid could corrupt the follower's data. So homestore needs to use header, key -> pass it on to the consumer and let consumer provide the latest data (just like read_blob path) and respond back to homestore.
This is needed and become a bug once we have GC.
Pushing this a bit later as GC is pushing to later milestone.