[bootnode] support dnsaddr in bootnode

Signed-off-by: Leo Chen <leo@harmony.one>
pull/3478/head
Leo Chen 4 years ago
parent 415d981595
commit 6444b599df
  1. 17
      api/service/networkinfo/service.go
  2. 1
      go.mod

@ -18,6 +18,7 @@ import (
libp2pdis "github.com/libp2p/go-libp2p-discovery"
libp2pdht "github.com/libp2p/go-libp2p-kad-dht"
libp2pdhtopts "github.com/libp2p/go-libp2p-kad-dht/opts"
madns "github.com/multiformats/go-multiaddr-dns"
manet "github.com/multiformats/go-multiaddr-net"
"github.com/pkg/errors"
)
@ -139,7 +140,21 @@ func (s *Service) Init() error {
}
connected := false
for _, peerAddr := range s.bootnodes {
var bnList p2p.AddrList
for _, maddr := range s.bootnodes {
if madns.Matches(maddr) {
mas, err := madns.Resolve(context.Background(), maddr)
if err != nil {
utils.Logger().Error().Err(err).Msg("Resolve bootnode")
continue
}
bnList = append(bnList, mas...)
} else {
bnList = append(bnList, maddr)
}
}
for _, peerAddr := range bnList {
peerinfo, _ := libp2p_peer.AddrInfoFromP2pAddr(peerAddr)
wg.Add(1)
go func() {

@ -38,6 +38,7 @@ require (
github.com/libp2p/go-libp2p-kad-dht v0.8.3
github.com/libp2p/go-libp2p-pubsub v0.3.3
github.com/multiformats/go-multiaddr v0.2.2
github.com/multiformats/go-multiaddr-dns v0.2.0
github.com/multiformats/go-multiaddr-net v0.1.5
github.com/natefinch/lumberjack v2.0.0+incompatible
github.com/pborman/uuid v1.2.0

Loading…
Cancel
Save