# How often should I re-run ipfs dht provide \_\_\_\_\_ to keep files available?

**URL:** <https://discuss.ipfs.tech/t/how-often-should-i-re-run-ipfs-dht-provide-------to-keep-files-available/4332>\
**Category:** Help\
**Tags:** go-ipfs, dht\
**Created:** [November 24, 2018, 9:19pm UTC](https://discuss.ipfs.tech/t/how-often-should-i-re-run-ipfs-dht-provide-------to-keep-files-available/4332 "2018-11-24T21:19:51Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![aresende](https://avatars.discourse-cdn.com/v4/letter/a/a9adbd/32.png) [@aresende](https://discuss.ipfs.tech/u/aresende)\
**Post date:** [November 24, 2018, 9:19pm UTC](https://discuss.ipfs.tech/t/how-often-should-i-re-run-ipfs-dht-provide-------to-keep-files-available/4332/1 "2018-11-24T21:19:51Z")

</div>

If I have an ipfs node running and announce to the network that I have some content pinned to my machine via “ipfs dht provide _hash key_”, how long will the network be aware that my node is providing this content?

I’ve noticed that after a few days, “ipfs dht findprovs _same hash I provided earlier_” returns nothing. Does terminating the ipfs daemon sort of “erase” that announcement? I would love to read a detailed explaination of DHT, it seems like black magic at the moment.

---

<div class="post-metadata">

**Author:** ![Magik6k](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ipfs.tech/magik6k/32/2318_2.png) [@Magik6k](https://discuss.ipfs.tech/u/Magik6k)\
**Post date:** [November 27, 2018, 8:20pm UTC](https://discuss.ipfs.tech/t/how-often-should-i-re-run-ipfs-dht-provide-------to-keep-files-available/4332/2 "2018-11-27T20:20:08Z")

</div>

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](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 `Reprovider.Strategy` in `.ipfs/config` to `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.
