go-ipfs-config: migrate to the consolidated libp2p
BREAKING: this also removes the dependency on go-ipfs-addr so we can deprecate that package. This only appears to affect go-ipfs itself.
Steven Allen committed
May 31, 2019 at 12:54 UTC
e76a8cf714d93cf5c1dd3561d82225fa0aa6db7c
3 files changed
+18
-24
config/bootstrap_peers.go
+15
-21
@@ -4,7 +4,9 @@ import (
4
"errors"
5
"fmt"
6
7
- iaddr "github.com/ipfs/go-ipfs-addr"
7
+ peer "github.com/libp2p/go-libp2p-core/peer"
8
+ ma "github.com/multiformats/go-multiaddr"
9
+
10
// Needs to be imported so that users can import this package directly
11
// and still parse the bootstrap addresses.
12
_ "github.com/multiformats/go-multiaddr-dns"
@@ -32,20 +34,17 @@ var DefaultBootstrapAddresses = []string{
34
"/ip6/2a03:b0c0:0:1010::23:1001/tcp/4001/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd", // earth.i.ipfs.io
35
}
36
35
-// BootstrapPeer is a peer used to bootstrap the network.
36
-type BootstrapPeer iaddr.IPFSAddr
37
-
37
// ErrInvalidPeerAddr signals an address is not a valid peer address.
38
var ErrInvalidPeerAddr = errors.New("invalid peer address")
39
41
-func (c *Config) BootstrapPeers() ([]BootstrapPeer, error) {
40
+func (c *Config) BootstrapPeers() ([]peer.AddrInfo, error) {
41
return ParseBootstrapPeers(c.Bootstrap)
42
}
43
44
// DefaultBootstrapPeers returns the (parsed) set of default bootstrap peers.
45
// if it fails, it returns a meaningful error for the user.
46
// This is here (and not inside cmd/ipfs/init) because of module dependency problems.
48
-func DefaultBootstrapPeers() ([]BootstrapPeer, error) {
47
+func DefaultBootstrapPeers() ([]peer.AddrInfo, error) {
48
ps, err := ParseBootstrapPeers(DefaultBootstrapAddresses)
49
if err != nil {
50
return nil, fmt.Errorf(`failed to parse hardcoded bootstrap peers: %s
@@ -54,31 +53,26 @@ This is a problem with the ipfs codebase. Please report it to the dev team.`, er
53
return ps, nil
54
}
55
57
-func (c *Config) SetBootstrapPeers(bps []BootstrapPeer) {
56
+func (c *Config) SetBootstrapPeers(bps []peer.AddrInfo) {
57
c.Bootstrap = BootstrapPeerStrings(bps)
58
}
59
61
-func ParseBootstrapPeer(addr string) (BootstrapPeer, error) {
62
- ia, err := iaddr.ParseString(addr)
63
- if err != nil {
64
- return nil, err
65
- }
66
- return BootstrapPeer(ia), err
67
-}
68
-
69
-func ParseBootstrapPeers(addrs []string) ([]BootstrapPeer, error) {
70
- peers := make([]BootstrapPeer, len(addrs))
71
- var err error
60
+// ParseBootstrapPeer parses a bootstrap list into a list of AddrInfos.
61
+func ParseBootstrapPeers(addrs []string) ([]peer.AddrInfo, error) {
62
+ maddrs := make([]ma.Multiaddr, len(addrs))
63
for i, addr := range addrs {
73
- peers[i], err = ParseBootstrapPeer(addr)
64
+ var err error
65
+ maddrs[i], err = ma.NewMultiaddr(addr)
66
if err != nil {
67
return nil, err
68
}
69
}
78
- return peers, nil
70
+ return peer.AddrInfosFromP2pAddrs(maddrs...)
71
}
72
81
-func BootstrapPeerStrings(bps []BootstrapPeer) []string {
73
+// BootstrapPeerStrings formats a list of AddrInfos as a bootstrap peer list
74
+// suitable for serialization.
75
+func BootstrapPeerStrings(bps []peer.AddrInfo) []string {
76
bpss := make([]string, len(bps))
77
for i, p := range bps {
78
bpss[i] = p.String()
config/identity.go
+1
-1
@@ -3,7 +3,7 @@ package config
3
import (
4
"encoding/base64"
5
6
- ic "github.com/libp2p/go-libp2p-crypto"
6
+ ic "github.com/libp2p/go-libp2p-core/crypto"
7
)
8
9
const IdentityTag = "Identity"
config/init.go
+2
-2
@@ -7,8 +7,8 @@ import (
7
"io"
8
"time"
9
10
- ci "github.com/libp2p/go-libp2p-crypto"
11
- peer "github.com/libp2p/go-libp2p-peer"
10
+ ci "github.com/libp2p/go-libp2p-core/crypto"
11
+ peer "github.com/libp2p/go-libp2p-core/peer"
12
)
13
14
func Init(out io.Writer, nBitsForKeypair int) (*Config, error) {