Skip to content

Decrease Time for Root CID Availability 10x on ipfs add #11015

@dennis-tra

Description

@dennis-tra

Checklist

  • My issue is specific & actionable.
  • I am not suggesting a protocol enhancement.
  • I have searched on the issue tracker for my issue.

Description

I'm suggesting to perform a single optimistic provide operation for the root CID when the user runs ipfs add, copies a CID from the Web UI or similar operations.

Right now, running ipfs add with 100MiB of random data takes ~0.5s until the command returns. However, it takes up to 30s until the root CID is available in the network on a clean install. If the provide queue is already populated it may take even longer until the CID is being provided (is that true or is the new root CID put at the beginning of the queue?).

Running a single optimistic provide operation just on the root CID (either sync to the ipfs add command or also async) will drastically improve the user experience because users can immediately (within 0.5s/2.5s in 50%/95% of the cases) act upon that CID (request it from the gateway, another kubo peer, etc.).

These were the performance differences when we measured this ~1.5-2y ago:

Image

Caveat:

  • the kubo node has to have a network size estimate which it will only get during the routing table bootstrap phase
  • the current optimistic provider implementation applies the strategy globaly to the entire DHT instance. Single operation cannot be run optimistically in isolation as the code is written right now.

Context:

Metadata

Metadata

Labels

P1High: Likely tackled by core team if no one steps upkind/enhancementA net-new feature or improvement to an existing featureneed/analysisNeeds further analysis before proceedingneed/triageNeeds initial labeling and prioritization

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions