go-ipfs has a mechanism called
reprovider which is supposed do handle providing content over time for you. There are some problems with how it works currently:
* It's only running a single provide query, and each query can take a significant amount of time (10-60s)
* By default it's providing all blocks in the blockstore, which is less than optimal
We are working on improving provider subsystem - https://github.com/ipfs/go-ipfs/issues/5774, this should also address some reprovider issues.
For now what I'd recommend doing is to change
roots (to only reprovide pin roots) or
pinned (to provide all pinned blocks).
I'd recommend using the
roots strategy and pinning all blocks you think users will try to access directly.