display ENR

This commit is contained in:
Richard Ramos 2021-09-27 18:50:19 -04:00
parent 2cbe24280d
commit 9b92d3d8b9
No known key found for this signature in database
GPG Key ID: 80D4B01265FDFE8F
2 changed files with 26 additions and 17 deletions

View File

@ -14,6 +14,7 @@ import (
"time"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/p2p/enode"
dssql "github.com/ipfs/go-ds-sql"
logging "github.com/ipfs/go-log"
"github.com/libp2p/go-libp2p"
@ -91,9 +92,6 @@ var rootCmd = &cobra.Command{
prvKey, err := crypto.HexToECDSA(key)
checkError(err, "error converting key into valid ecdsa key")
// TODO: this ENR record might be necessary later for DNS discovery
// enr := enode.NewV4(&prvKey.PublicKey, hostAddr.IP, hostAddr.Port, 0)
if dbPath == "" && useDB {
checkError(errors.New("dbpath can't be null"), "")
}
@ -196,19 +194,30 @@ var rootCmd = &cobra.Command{
}
}
if enableDnsDiscovery && dnsDiscoveryUrl != "" {
log.Info("attempting DNS discovery with ", dnsDiscoveryUrl)
multiaddresses, err := discovery.RetrieveNodes(ctx, dnsDiscoveryUrl, discovery.WithNameserver(dnsDiscoveryNameServer))
if err != nil {
log.Warn("dns discovery error ", err)
} else {
log.Info("found dns entries ", multiaddresses)
for _, m := range multiaddresses {
err = wakuNode.DialPeerWithMultiAddress(m)
if err != nil {
log.Error("error dialing peer ", err)
if enableDnsDiscovery {
for _, addr := range wakuNode.ListenAddresses() {
ip, _ := addr.ValueForProtocol(multiaddr.P_IP4)
enr := enode.NewV4(&prvKey.PublicKey, net.ParseIP(ip), hostAddr.Port, 0)
log.Info("ENR: ", enr)
}
if dnsDiscoveryUrl != "" {
log.Info("attempting DNS discovery with ", dnsDiscoveryUrl)
multiaddresses, err := discovery.RetrieveNodes(ctx, dnsDiscoveryUrl, discovery.WithNameserver(dnsDiscoveryNameServer))
if err != nil {
log.Warn("dns discovery error ", err)
} else {
log.Info("found dns entries ", multiaddresses)
for _, m := range multiaddresses {
err = wakuNode.DialPeerWithMultiAddress(m)
if err != nil {
log.Error("error dialing peer ", err)
}
}
}
} else {
log.Fatal("DNS discovery URL is required")
}
}

View File

@ -352,11 +352,11 @@ func (w *WakuNode) HasHistory() bool {
return false
}
func (w *WakuNode) ListenAddresses() []string {
func (w *WakuNode) ListenAddresses() []ma.Multiaddr {
hostInfo, _ := ma.NewMultiaddr(fmt.Sprintf("/p2p/%s", w.host.ID().Pretty()))
var result []string
var result []ma.Multiaddr
for _, addr := range w.host.Addrs() {
result = append(result, addr.Encapsulate(hostInfo).String())
result = append(result, addr.Encapsulate(hostInfo))
}
return result
}