Skip to content

Commit e7a64e5

Browse files
Corey Richardsonbkase
authored andcommitted
libp2p: use external IP (#3602)
* libp2p: use external IP * reformat
1 parent 9125107 commit e7a64e5

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

src/codanet.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ import (
44
"bytes"
55
"context"
66
"fmt"
7+
"log"
8+
"os"
9+
"path"
10+
"strconv"
11+
712
dsb "github.com/ipfs/go-ds-badger"
813
logging "github.com/ipfs/go-log"
914
p2p "github.com/libp2p/go-libp2p"
@@ -23,12 +28,8 @@ import (
2328
mdns "github.com/libp2p/go-libp2p/p2p/discovery"
2429
tcp "github.com/libp2p/go-tcp-transport"
2530
ws "github.com/libp2p/go-ws-transport"
26-
"github.com/multiformats/go-multiaddr"
31+
ma "github.com/multiformats/go-multiaddr"
2732
"golang.org/x/crypto/blake2b"
28-
"log"
29-
"os"
30-
"path"
31-
"strconv"
3233
)
3334

3435
// Helper contains all the daemon state
@@ -61,7 +62,7 @@ func (cv customValidator) Select(key string, values [][]byte) (int, error) {
6162
// TODO: just put this into main.go?
6263

6364
// MakeHelper does all the initialization to run one host
64-
func MakeHelper(ctx context.Context, listenOn []multiaddr.Multiaddr, statedir string, pk crypto.PrivKey, networkID string) (*Helper, error) {
65+
func MakeHelper(ctx context.Context, listenOn []ma.Multiaddr, externalAddr ma.Multiaddr, statedir string, pk crypto.PrivKey, networkID string) (*Helper, error) {
6566
logger := logging.Logger("codanet.Helper")
6667
dso := dsb.DefaultOptions
6768

@@ -108,6 +109,11 @@ func MakeHelper(ctx context.Context, listenOn []multiaddr.Multiaddr, statedir st
108109
p2p.Peerstore(ps),
109110
p2p.DisableRelay(),
110111
p2p.ListenAddrs(listenOn...),
112+
p2p.AddrsFactory(func(as []ma.Multiaddr) []ma.Multiaddr {
113+
as = append(as, externalAddr)
114+
return as
115+
}),
116+
p2p.NATPortMap(),
111117
p2p.Routing(
112118
p2pconfig.RoutingC(func(host host.Host) (routing.PeerRouting, error) {
113119
kad, err := kad.New(ctx, host, kadopts.Datastore(dsDht), kadopts.Validator(rv))

src/libp2p_helper/main.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ import (
88
"encoding/json"
99
"fmt"
1010
"io"
11+
"io/ioutil"
1112
"log"
13+
"net/http"
1214
"os"
1315
"sync"
1416
"time"
@@ -142,6 +144,7 @@ type configureMsg struct {
142144
Privk string `json:"privk"`
143145
NetworkID string `json:"network_id"`
144146
ListenOn []string `json:"ifaces"`
147+
External string `json:"external_maddr"`
145148
}
146149

147150
type discoveredPeerUpcall struct {
@@ -167,7 +170,8 @@ func (m *configureMsg) run(app *app) (interface{}, error) {
167170
}
168171
maddrs[i] = res
169172
}
170-
helper, err := codanet.MakeHelper(app.Ctx, maddrs, m.Statedir, privk, m.NetworkID)
173+
174+
helper, err := codanet.MakeHelper(app.Ctx, maddrs, multiaddr.NewMultiaddr(m.External), m.Statedir, privk, m.NetworkID)
171175
if err != nil {
172176
return nil, badHelper(err)
173177
}

0 commit comments

Comments
 (0)