mirror of
https://github.com/ipfs/kubo.git
synced 2026-02-21 10:27:46 +08:00
Some checks failed
CodeQL / codeql (push) Has been cancelled
Docker Build / docker-build (push) Has been cancelled
Gateway Conformance / gateway-conformance (push) Has been cancelled
Gateway Conformance / gateway-conformance-libp2p-experiment (push) Has been cancelled
Go Build / go-build (push) Has been cancelled
Go Check / go-check (push) Has been cancelled
Go Lint / go-lint (push) Has been cancelled
Go Test / go-test (push) Has been cancelled
Interop / interop-prep (push) Has been cancelled
Sharness / sharness-test (push) Has been cancelled
Spell Check / spellcheck (push) Has been cancelled
Interop / helia-interop (push) Has been cancelled
Interop / ipfs-webui (push) Has been cancelled
https://github.com/ipfs/kubo/pull/10883 https://github.com/ipshipyard/config.ipfs-mainnet.org/issues/3 --------- Co-authored-by: gammazero <gammazero@users.noreply.github.com>
50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
package config
|
|
|
|
import (
|
|
"errors"
|
|
|
|
peer "github.com/libp2p/go-libp2p/core/peer"
|
|
ma "github.com/multiformats/go-multiaddr"
|
|
)
|
|
|
|
// ErrInvalidPeerAddr signals an address is not a valid peer address.
|
|
var ErrInvalidPeerAddr = errors.New("invalid peer address")
|
|
|
|
func (c *Config) BootstrapPeers() ([]peer.AddrInfo, error) {
|
|
return ParseBootstrapPeers(c.Bootstrap)
|
|
}
|
|
|
|
func (c *Config) SetBootstrapPeers(bps []peer.AddrInfo) {
|
|
c.Bootstrap = BootstrapPeerStrings(bps)
|
|
}
|
|
|
|
// ParseBootstrapPeers parses a bootstrap list into a list of AddrInfos.
|
|
func ParseBootstrapPeers(addrs []string) ([]peer.AddrInfo, error) {
|
|
maddrs := make([]ma.Multiaddr, len(addrs))
|
|
for i, addr := range addrs {
|
|
var err error
|
|
maddrs[i], err = ma.NewMultiaddr(addr)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
return peer.AddrInfosFromP2pAddrs(maddrs...)
|
|
}
|
|
|
|
// BootstrapPeerStrings formats a list of AddrInfos as a bootstrap peer list
|
|
// suitable for serialization.
|
|
func BootstrapPeerStrings(bps []peer.AddrInfo) []string {
|
|
bpss := make([]string, 0, len(bps))
|
|
for _, pi := range bps {
|
|
addrs, err := peer.AddrInfoToP2pAddrs(&pi)
|
|
if err != nil {
|
|
// programmer error.
|
|
panic(err)
|
|
}
|
|
for _, addr := range addrs {
|
|
bpss = append(bpss, addr.String())
|
|
}
|
|
}
|
|
return bpss
|
|
}
|