-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Closed
Labels
kind/bugA bug in existing code (including security flaws)A bug in existing code (including security flaws)status/in-progressIn progressIn progresstopic/metaTopic metaTopic meta
Description
Version information:
v0.5.0-dev
Description:
Libp2p recently increased the minimum RSA key size to 2048 bits. While almost all nodes in the network are using 2048 bit keys already, most of the built-in bootstrap nodes are not.
Luckily, we did have some newer nodes using 2048 bit keys. Specifically, the /dnsaddr/bootstrap.libp2p.io nodes. Unfortunately:
- These bootstrappers were added (relatively) recently. Nodes with older configs won't use them.
- The DNS record for these bootstrappers was too large: 4 bootstrappers, 4 IP addresses per bootstrapper) to fit into a single UDP packet.
To solve 2, we switched to indirect dnsaddr records: now we have 4 top-level records that each resolve two two dnsaddr records, one for each IP address for each bootstrapper. These records all, individually, fit into single UDP packets.
Unfortunately, go-libp2p doesn't support recursive dnsaddr resolution: libp2p/go-libp2p#744.
So, we need to:
- Add support for recursive dnsaddr resolution to go-libp2p (Recursive dnsaddr resolution. libp2p/go-libp2p#744).
- Add a repo migration that:
- Checks if we already have the new bootstrappers in the config. If so, skip.
- Checks to see if we have bootstrappers with known sub 2048 bit keys. If not, skip.
- Otherwise, remove them and replace these old bootstrappers with the new bootstrappers.
- Replace the
/ipfspart of these multiaddrs with/p2p(no reason not to).
- Test the migration.
- Update the repo version in go-ipfs.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
kind/bugA bug in existing code (including security flaws)A bug in existing code (including security flaws)status/in-progressIn progressIn progresstopic/metaTopic metaTopic meta