Will vaults be paid for serving GET from cache?


Will vaults be paid (ie be able to produce a valid farm attempt) for serving GET requests from their cache?

Or will farm attempts only be valid if they come from the vault actually storing the chunk?


I’m pretty sure not for caching - but don’t have a resource at hand right now…


Cache is like a temporarily memory, but since it’s closest to the requesting source, it might be the most efficient way to retrieve the chunk. But is the follow up of that storing the chunk? I honestly don’t know. Farming rewards will only go to vaults actually storing the chunk, as far as I understand. My clueless consumer pov.

Good question as always @mav



David was asked this a while ago along with why would you cache if not rewarded. IIRC he said, no, but that the incentive would be that not to cache would be more costly (ie routing the chunk from its vault mode costly than having a copy handy).

I think this is nice because it allows each vault to optimise its use of resources according to its configuration - and so makes best use of spare resources: got lots of unused ram… use as cache. Got b/w spare but not so much spare RAM… don’t cache as much.


That’s quite a clever mechanism.

It’s an interesting decision because a response from cache would prevent the request reaching the storage vault and reduces the total number of chances for farm attempts, which is a fairly complex-to-model factor in the safecoin algorithm.

The more I think about cache the more it seems to be a critical and under-explored aspect of the network. It could be that storage ends up being seen as a ‘secondary’ or ‘background’ function and most node effort ends up dominated by cache operations. Just speculation but it’s certainly an interesting part of the network.


One could not be awarded with a farming attempt because the caching node is not the node storing, as recognized by the appropriate Data Manager persona. Therefore sending a request for an attempt would not be validated by the DM group.

Returning the chunk out of cache is a standard function and part of a well-functioning network. No additional reward for it, only for storing and preserving and presenting data when it’s your assigned responsibility. Otherwise it’s sort of like a tackle on a football team running downfield and trying to get the quarterback to pass the ball too him, even if the he does get the pass, it’s ineligible receiver downfield == penalty. (Sorry for the American football reference. It’s just too good an analogy. Perhaps someone has a good Cricket analogy? :wink:)

Yes, this will result in less farming attempts from the storing nodes. It would also prevent those nodes from being DDOSed. A DDOSing client/node would quickly gather chunks in immediately-surrounding nodes and thus spin its wheels. (I think it would also be quickly spotted as a malicious actor and be ejected, but not sure if that’s part of the mechanism or not.)

The point is that part of the networks efficiency is that all nodes return data chunks from cache rather than passing on the request. It’s not about maximizing farm attempts. Quite the contrary. I think that a node trying to do something different to maximize its own farm attempts would be quickly spotted and relieved of its status.


Getting a chunk from cache is like passing on the chunk as it hops through your node. Its just part of the hops that chunks make through nodes and as others said just part of the routing chunks mechanism.

Very much so.