This issue is a child of Connectivity Magic #1459, and is intended to discuss the implementation of the reprovider in js-ipfs.
The current implementation of reprovider in go-ipfs consists of iterating all blocks in blockstore and provide them every X hours (being X configurable through the config file). Other than that, the reprovider may have different strategies for deciding which blocks it should reprovide ipfs/go-ipfs/docs/config.md#reprovider.
However, go-ipfs team is currently working on improving their reprovider. Consequently, it would be great to have an idea of what is the plan, in order to decide if we should start with this simpler implementation or with the newest one.
Another aspect to take into consideration in the JS implementation is if we should create the concept of Provider. In this case, js-ipfs-bitswap would receive its reference and the Provider could abstract the providing logic from there. I don't know the current logic of js-ipfs-bitswap yet to have strong conclusions in this regard.
cc @michaelavila @Kubuxu @dirkmc @vmx