Reprovider to reannounce blocks to the network #2160
Description
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.