Provider Strategy Discussion
- Dominant language
- Go
- Stars
- 17.1k
- Forks
- 3.2k
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 11
Description
@Stebalien please add the people you think should be a part of this discussion.
We are introducing a provider system into go-ipfs (https://github.com/ipfs/go-ipfs/pull/6141) that replaces the mechanism in bitswap that provides all new blocks when it comes into contact with them. The new provider system is intended to give us more control over which blocks are provided during different operations.
The important questions for this group are:
#### 1. What kinds of _provide strategies_ will need to be supported?
> e.g.
> - All
> - Roots
> - Whole/recursive (all of a dag when add _or_ pin)
> - Pin roots
> - Pin recursive
> - Probabilistic (TBD)
> - Nothing
> - Some other strategy ...
@Stebalien mentioned an approach here https://github.com/ipfs/go-ipfs/pull/5870#discussion_r261048681 which should be considered here as well.
#### 2. What do we have to support initially?
Given the concerns I hear around providing, it seems like the following would help right away and could be merged on its own:
- the ability to provide everything
- the ability to disable providing without disabling content routing
- the ability to provide only roots during bulk provide operations (e.g. add and pin)
But would that be enough?
---
Additionally, the reprovider strategies are being removed and instead a reprovide will work over all blocks that have been provided. Is that ok?
Contributor guide
Assessment
This issue has not been assessed yet.