@cryptotaxi247 / kubo / commits / 39febb191

make ipfs swarm connect /ipfs/QmId work

fixes #5102 Also, allow specifying multiple addresses for a single peer. License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>

Steven Allen committed Jun 12, 2018 at 14:37 UTC 39febb1910fa1ba17e530d1c88e8aec4a0060ea2
3 files changed +19 -7
core/commands/swarm.go
+16 -4
@@ -18,8 +18,9 @@ import (
18 mafilter "gx/ipfs/QmSMZwvs3n4GBikZ7hKzT17c3bk65FmyZo2JqtJ16swqCv/multiaddr-filter"
19 swarm "gx/ipfs/QmSvhbgtjQJKdT5avEeb7cvjYs7YrhebJyM1K6GAnkKgfd/go-libp2p-swarm"
20 ma "gx/ipfs/QmUxSEGbv2nmYNnfXi7839wwQqTN3kwQeUxe8dTjZWZs7J/go-multiaddr"
21 + peer "gx/ipfs/QmVf8hTAsLLFtn4WPCRNdnaF2Eag2qTBS6uR8AiHPZARXy/go-libp2p-peer"
22 pstore "gx/ipfs/QmZhsmorLpD9kmQ4ynbAu4vbKv2goMUnXazwGA4gnWHDjB/go-libp2p-peerstore"
22 - iaddr "gx/ipfs/QmckPUj15AbTcLh6MpDEsQpfVCx34tmP2Xg1aNwLb5fiRF/go-ipfs-addr"
23 + iaddr "gx/ipfs/QmaKviZCLQrpuyFdSjteik7kJFcQpcyZgb1VuuwaCBBaEa/go-ipfs-addr"
24 cmdkit "gx/ipfs/QmdE4gMduCKCGAcczM2F5ioYDfdeKuPix138wrES1YSr7f/go-ipfs-cmdkit"
25 )
26
@@ -522,16 +523,27 @@ func parseAddresses(addrs []string) (iaddrs []iaddr.IPFSAddr, err error) {
523
524 // peersWithAddresses is a function that takes in a slice of string peer addresses
525 // (multiaddr + peerid) and returns a slice of properly constructed peers
525 -func peersWithAddresses(addrs []string) (pis []pstore.PeerInfo, err error) {
526 +func peersWithAddresses(addrs []string) ([]pstore.PeerInfo, error) {
527 iaddrs, err := parseAddresses(addrs)
528 if err != nil {
529 return nil, err
530 }
531
532 + peers := make(map[peer.ID][]ma.Multiaddr, len(iaddrs))
533 for _, iaddr := range iaddrs {
534 + id := iaddr.ID()
535 + current, ok := peers[id]
536 + if tpt := iaddr.Transport(); tpt != nil {
537 + peers[id] = append(current, tpt)
538 + } else if !ok {
539 + peers[id] = nil
540 + }
541 + }
542 + pis := make([]pstore.PeerInfo, 0, len(peers))
543 + for id, maddrs := range peers {
544 pis = append(pis, pstore.PeerInfo{
533 - ID: iaddr.ID(),
534 - Addrs: []ma.Multiaddr{iaddr.Transport()},
545 + ID: id,
546 + Addrs: maddrs,
547 })
548 }
549 return pis, nil
package.json
+2 -2
@@ -404,9 +404,9 @@
404 },
405 {
406 "author": "why",
407 - "hash": "QmckPUj15AbTcLh6MpDEsQpfVCx34tmP2Xg1aNwLb5fiRF",
407 + "hash": "QmaKviZCLQrpuyFdSjteik7kJFcQpcyZgb1VuuwaCBBaEa",
408 "name": "go-ipfs-addr",
409 - "version": "0.1.12"
409 + "version": "0.1.13"
410 },
411 {
412 "author": "The Go Authors",
repo/config/bootstrap_peers.go
+1 -1
@@ -4,7 +4,7 @@ import (
4 "errors"
5 "fmt"
6
7 - iaddr "gx/ipfs/QmckPUj15AbTcLh6MpDEsQpfVCx34tmP2Xg1aNwLb5fiRF/go-ipfs-addr"
7 + iaddr "gx/ipfs/QmaKviZCLQrpuyFdSjteik7kJFcQpcyZgb1VuuwaCBBaEa/go-ipfs-addr"
8 )
9
10 // DefaultBootstrapAddresses are the hardcoded bootstrap addresses