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

Add the 4 new libp2p bootstrappers #2581

Closed
wants to merge 5 commits into from
Closed

Conversation

mburns
Copy link

@mburns mburns commented Nov 3, 2019

The Infra team has stood up the 4 bootstrap servers whose addresses go-ipfs has shipped with (but never been able to use).

This PR adds the new bootstrap node's multiaddrs so js-ipfs stays in sync.

We will be deprecating the legacy bootstrap nodes eventually, as they have 1024-bit keys which upstream libp2p has end-of-life'd.

now with stronger keys
@mburns mburns requested a review from alanshaw November 4, 2019 06:25
Copy link
Member

@alanshaw alanshaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✨ Nice! Thanks @mburns. I have some questions 🙏

These will also need to be added to the default config for Node.js here: https://github.com/ipfs/js-ipfs/blob/7473582405c3a6aaa13946eab36692d831baee8a/src/core/runtime/config-nodejs.js

'/dnsaddr/bootstrap.libp2p.io/ipfs/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN',
'/dnsaddr/bootstrap.libp2p.io/ipfs/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa',
'/dnsaddr/bootstrap.libp2p.io/ipfs/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb',
'/dnsaddr/bootstrap.libp2p.io/ipfs/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt',
Copy link
Member

@alanshaw alanshaw Nov 4, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these working @mburns? I'm getting failed DNS lookups for bootstrap.libp2p.io:

nslookup
> set type=txt
> bootstrap.libp2p.io
Server:		1.1.1.1
Address:	1.1.1.1#53

Non-authoritative answer:
*** Can't find bootstrap.libp2p.io: No answer

Authoritative answers can be found from:
bootstrap.libp2p.io
	origin = ns1.dnsimple.com
	mail addr = admin.dnsimple.com
	serial = 1490150281
	refresh = 86400
	retry = 7200
	expire = 604800
	minimum = 300
> _dnslink.bootstrap.libp2p.io
Server:		1.1.1.1
Address:	1.1.1.1#53

** server can't find _dnslink.bootstrap.libp2p.io: NXDOMAIN
> dnslink.bootstrap.libp2p.io
Server:		1.1.1.1
Address:	1.1.1.1#53

** server can't find dnslink.bootstrap.libp2p.io: NXDOMAIN

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we connect to these with websockets (secure)? We cannot connect via tcp sockets from the browser.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jacobheun does libp2p support dnsaddr in node addresses currently?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@alanshaw no not yet, resolve needs to be implemented in js-multiaddr in order to get the TXT records, multiformats/js-multiaddr#94.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi!

$ dig +short -t txt _dnsaddr.bootstrap.libp2p.io
"dnsaddr=/ip4/147.75.77.187/tcp/4001/ipfs/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa"
"dnsaddr=/ip4/147.75.83.83/tcp/4001/ipfs/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb"
"dnsaddr=/ip4/147.75.94.115/tcp/4001/ipfs/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt"

"dnsaddr=/ip4/139.178.68.71/tcp/4001/ipfs/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN"

They're still being worked on / rolled out, but as of this writing, the first 3 results are working and my local go-ipfs instance can connect to them. The fourth will work Real Soon Now. Currently IPv4-only with IPv6 support also in-flight.

These nodes should be accessible over wss on 443 via nginx. Haven't tested that yet, but it is all wired up.

@olizilla
Copy link
Member

olizilla commented Dec 3, 2019

@alanshaw @jacobheun where abouts is "support for dnsaddr" bootstrappers on your list of things? We'd like to be able to take the old boostrappers down for maintenance, and ideally deprecate them and remove them from the default bootstrap list for new releases, but we can't do that until js-ipfs can use the new ones.

@jacobheun
Copy link
Contributor

@alanshaw @jacobheun where abouts is "support for dnsaddr" bootstrappers on your list of things? We'd like to be able to take the old boostrappers down for maintenance, and ideally deprecate them and remove them from the default bootstrap list for new releases, but we can't do that until js-ipfs can use the new ones.

@olizilla If nobody starts on it before I can get to it, I can probably pick this up in a couple weeks (once the libp2p async refactor is done / in final RC testing). Is there a particular time frame you're looking for?

@olizilla
Copy link
Member

olizilla commented Dec 3, 2019

@jacobheun it'll be like a christmas present! I have no hard requirement, it's just that the new bootstappers have more monitoring and aren't tied to specific IPs, and I want to be able to retire the old ones.

@mburns
Copy link
Author

mburns commented Jan 29, 2020

Updated the PR to sync with master && remove legacy hardcoded IPs and exclusively use the new Boostrappers and the Preloaders.

@mburns mburns requested review from jacobheun and alanshaw February 5, 2020 23:57
@@ -20,6 +20,7 @@ module.exports = () => ({
}
},
Bootstrap: [
'/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mburns if js-ipfs supports using the p2p protocol name rather than ipfs then it'd be best to use p2p consistently for all the entries here.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As of 0.41.0 it does!

@achingbrain
Copy link
Member

@mburns what's the status on this PR?

@achingbrain
Copy link
Member

@jacobheun says:

We (I) need to get dnsaddr resolution in place before [this] can be merged. js-multiaddr resolvers are blocking this. multiformats/js-multiaddr#94

@mburns
Copy link
Author

mburns commented Jun 4, 2020

I'm going to close this, the config lines can be added whenever multiformats/js-multiaddr#94 lands. No sense in keeping this around clogging up the active PR list.

@mburns mburns closed this Jun 4, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants