@cryptotaxi247 / kubo / commits / 0bd0edc78

feat(bootstrap): add JS-based va1.bootstrap.libp2p.io (#10575)

* feat(bootstrap): /dnsaddr/va1.bootstrap.libp2p.io this adds https://github.com/libp2p/js-libp2p-amino-dht-bootstrapper instance at /dnsaddr/va1.bootstrap.libp2p.io to ensure Kubo does not depend on single language stack for initial bootstrap * docs: document where defaults live * test: updated bootstrappers

Marcin Rataj committed Nov 25, 2024 at 18:04 UTC 0bd0edc782401f1bed59c5696dbc441abbeeff85
3 files changed +11 -7
config/bootstrap_peers.go
+4 -3
@@ -16,11 +16,12 @@ import (
16 // import dependency issue. TODO: move this into a config/default/ package.
17 var DefaultBootstrapAddresses = []string{
18 "/dnsaddr/bootstrap.libp2p.io/p2p/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTezGAJN",
19 - "/dnsaddr/bootstrap.libp2p.io/p2p/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa",
19 + "/dnsaddr/bootstrap.libp2p.io/p2p/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa", // rust-libp2p-server
20 "/dnsaddr/bootstrap.libp2p.io/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb",
21 "/dnsaddr/bootstrap.libp2p.io/p2p/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt",
22 - "/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ", // mars.i.ipfs.io
23 - "/ip4/104.131.131.82/udp/4001/quic-v1/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ", // mars.i.ipfs.io
22 + "/dnsaddr/va1.bootstrap.libp2p.io/p2p/12D3KooWKnDdG3iXw9eTFijk3EWSunZcFi54Zka4wmtqtt6rPxc8", // js-libp2p-amino-dht-bootstrapper
23 + "/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ", // mars.i.ipfs.io
24 + "/ip4/104.131.131.82/udp/4001/quic-v1/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ", // mars.i.ipfs.io
25 }
26
27 // ErrInvalidPeerAddr signals an address is not a valid peer address.
docs/config.md
+1 -1
@@ -567,7 +567,7 @@ Type: `optionalString`
567
568 Bootstrap is an array of [multiaddrs][multiaddr] of trusted nodes that your node connects to, to fetch other nodes of the network on startup.
569
570 -Default: The ipfs.io bootstrap nodes
570 +Default: [`config.DefaultBootstrapAddresses`](https://github.com/ipfs/kubo/blob/master/config/bootstrap_peers.go)
571
572 Type: `array[string]` ([multiaddrs][multiaddr])
573
test/sharness/t0120-bootstrap.sh
+6 -3
@@ -9,8 +9,9 @@ BP1="/dnsaddr/bootstrap.libp2p.io/p2p/QmNnooDu7bfjPFoTZYxMNLWUQJyrVwtbZg5gBMjTez
9 BP2="/dnsaddr/bootstrap.libp2p.io/p2p/QmQCU2EcMqAqQPR2i9bChDtGNJchTbq5TbXJJ16u19uLTa"
10 BP3="/dnsaddr/bootstrap.libp2p.io/p2p/QmbLHAnMoJPWSCR5Zhtx6BHJX9KiKNN6tpvbUcqanj75Nb"
11 BP4="/dnsaddr/bootstrap.libp2p.io/p2p/QmcZf59bWwK5XFi76CZX8cbJ4BhTzzA3gU1ZjYZcYW3dwt"
12 -BP5="/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ"
13 -BP6="/ip4/104.131.131.82/udp/4001/quic-v1/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ"
12 +BP5="/dnsaddr/va1.bootstrap.libp2p.io/p2p/12D3KooWKnDdG3iXw9eTFijk3EWSunZcFi54Zka4wmtqtt6rPxc8"
13 +BP6="/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ"
14 +BP7="/ip4/104.131.131.82/udp/4001/quic-v1/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ"
15
16 test_description="Test ipfs repo operations"
17
@@ -93,10 +94,11 @@ test_bootstrap_cmd() {
94 echo "added $BP4" >>add2_expected &&
95 echo "added $BP5" >>add2_expected &&
96 echo "added $BP6" >>add2_expected &&
97 + echo "added $BP7" >>add2_expected &&
98 test_cmp add2_expected add2_actual
99 '
100
99 - test_bootstrap_list_cmd $BP1 $BP2 $BP3 $BP4 $BP5 $BP6
101 + test_bootstrap_list_cmd $BP1 $BP2 $BP3 $BP4 $BP5 $BP6 $BP7
102
103 test_expect_success "'ipfs bootstrap rm --all' succeeds" '
104 ipfs bootstrap rm --all >rm2_actual
@@ -109,6 +111,7 @@ test_bootstrap_cmd() {
111 echo "removed $BP4" >>rm2_expected &&
112 echo "removed $BP5" >>rm2_expected &&
113 echo "removed $BP6" >>rm2_expected &&
114 + echo "removed $BP7" >>rm2_expected &&
115 test_cmp rm2_expected rm2_actual
116 '
117