Skip to content
This repository was archived by the owner on Feb 12, 2024. It is now read-only.
This repository was archived by the owner on Feb 12, 2024. It is now read-only.

Saving previously seen nodes for later bootstrapping #1505

Closed
@lidel

Description

@lidel

Version: N/A

Type: Enhancement

Severity: Medium

Description:

IPFS Node should persist a list of currently connected peers periodically, so the next time it starts it can use previously working peers in addition to centralized bootstrap nodes.

This is especially important in web browser context, where discovery often relies on centralized signaling servers. Having a ready-to-use cache of known-to-work peers would improve startup performance in those contexts and act as an additional tool for achieving connectivity magic (#1459).

References:

  • This is js-ipfs version for original issue from Saving previously seen nodes for later bootstrapping kubo#3926:

    Bootstrap nodes built into ipfs client don't seem to work for me at all. Had to find and add some manually. Generally having so centralized bootstrap system for otherwise decentralized network is its weakness: Censorship resistant bootstrapping (e.g. for wikipedia) kubo#3908
    Should ipfs automatically save all the nodes it seen and the time of last seen, to clean out the list later? That should make the bootstrapping more reliable and truly decentralized.

  • Prior art: Torrent clients persist things like DHT routing tables between restarts to improve performance, eg. aria CLI https://linux.die.net/man/1/aria2c:

    By default, the routing table of IPv4 DHT is saved to the path $HOME/.aria2/dht.dat and the routing table of IPv6 DHT is saved to the path $HOME/.aria2/dht6.dat.

Metadata

Metadata

Assignees

Labels

P2Medium: Good to have, but can wait until someone steps upexp/expertHaving worked on the specific codebase is importantkind/resolved-in-heliastatus/readyReady to be worked

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions