Skip to content

Commit d1e2681

Browse files
authored
Add standalone implementation of v1 Relay (#1186)
* add circuitv1 protobuf * add implementation of v1 circuit relay Intended to be used by standalone daemons and tests * remove references to go-libp2p-circuit from production code * update tests to use the in-tree v1 Relay * use go-log/v2 in relay v1 impl * use in-tree v1 relay in relay example * remove go-libp2p-circuit dep from examples go.mod, go mod tidy
1 parent 621eafc commit d1e2681

17 files changed

Lines changed: 1363 additions & 20 deletions

File tree

examples/go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ require (
88
github.com/ipfs/go-datastore v0.4.6
99
github.com/ipfs/go-log/v2 v2.3.0
1010
github.com/libp2p/go-libp2p v0.14.4
11-
github.com/libp2p/go-libp2p-circuit v0.4.0
1211
github.com/libp2p/go-libp2p-connmgr v0.2.4
1312
github.com/libp2p/go-libp2p-core v0.10.0
1413
github.com/libp2p/go-libp2p-discovery v0.5.1

examples/go.sum

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -439,7 +439,6 @@ github.com/libp2p/go-libp2p-autonat v0.5.0 h1:/+3+4NcQV47DQ/duvRyFDP8oxv6CQTvSKY
439439
github.com/libp2p/go-libp2p-autonat v0.5.0/go.mod h1:085tmmuXn0nXgFwuF7a2tt4UxgTjuapbuml27v4htKY=
440440
github.com/libp2p/go-libp2p-blankhost v0.2.0 h1:3EsGAi0CBGcZ33GwRuXEYJLLPoVWyXJ1bcJzAJjINkk=
441441
github.com/libp2p/go-libp2p-blankhost v0.2.0/go.mod h1:eduNKXGTioTuQAUcZ5epXi9vMl+t4d8ugUBRQ4SqaNQ=
442-
github.com/libp2p/go-libp2p-circuit v0.4.0 h1:eqQ3sEYkGTtybWgr6JLqJY6QLtPWRErvFjFDfAOO1wc=
443442
github.com/libp2p/go-libp2p-circuit v0.4.0/go.mod h1:t/ktoFIUzM6uLQ+o1G6NuBl2ANhBKN9Bc8jRIk31MoA=
444443
github.com/libp2p/go-libp2p-connmgr v0.2.4 h1:TMS0vc0TCBomtQJyWr7fYxcVYYhx+q/2gF++G5Jkl/w=
445444
github.com/libp2p/go-libp2p-connmgr v0.2.4/go.mod h1:YV0b/RIm8NGPnnNWM7hG9Q38OeQiQfKhHCCs1++ufn0=

examples/ipfs-camp-2019/go.sum

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,6 @@ github.com/libp2p/go-libp2p-autonat v0.5.0 h1:/+3+4NcQV47DQ/duvRyFDP8oxv6CQTvSKY
440440
github.com/libp2p/go-libp2p-autonat v0.5.0/go.mod h1:085tmmuXn0nXgFwuF7a2tt4UxgTjuapbuml27v4htKY=
441441
github.com/libp2p/go-libp2p-blankhost v0.2.0 h1:3EsGAi0CBGcZ33GwRuXEYJLLPoVWyXJ1bcJzAJjINkk=
442442
github.com/libp2p/go-libp2p-blankhost v0.2.0/go.mod h1:eduNKXGTioTuQAUcZ5epXi9vMl+t4d8ugUBRQ4SqaNQ=
443-
github.com/libp2p/go-libp2p-circuit v0.4.0 h1:eqQ3sEYkGTtybWgr6JLqJY6QLtPWRErvFjFDfAOO1wc=
444443
github.com/libp2p/go-libp2p-circuit v0.4.0/go.mod h1:t/ktoFIUzM6uLQ+o1G6NuBl2ANhBKN9Bc8jRIk31MoA=
445444
github.com/libp2p/go-libp2p-connmgr v0.2.4 h1:TMS0vc0TCBomtQJyWr7fYxcVYYhx+q/2gF++G5Jkl/w=
446445
github.com/libp2p/go-libp2p-connmgr v0.2.4/go.mod h1:YV0b/RIm8NGPnnNWM7hG9Q38OeQiQfKhHCCs1++ufn0=

examples/pubsub/chat/go.sum

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,6 @@ github.com/libp2p/go-libp2p-autonat v0.5.0 h1:/+3+4NcQV47DQ/duvRyFDP8oxv6CQTvSKY
419419
github.com/libp2p/go-libp2p-autonat v0.5.0/go.mod h1:085tmmuXn0nXgFwuF7a2tt4UxgTjuapbuml27v4htKY=
420420
github.com/libp2p/go-libp2p-blankhost v0.2.0 h1:3EsGAi0CBGcZ33GwRuXEYJLLPoVWyXJ1bcJzAJjINkk=
421421
github.com/libp2p/go-libp2p-blankhost v0.2.0/go.mod h1:eduNKXGTioTuQAUcZ5epXi9vMl+t4d8ugUBRQ4SqaNQ=
422-
github.com/libp2p/go-libp2p-circuit v0.4.0 h1:eqQ3sEYkGTtybWgr6JLqJY6QLtPWRErvFjFDfAOO1wc=
423422
github.com/libp2p/go-libp2p-circuit v0.4.0/go.mod h1:t/ktoFIUzM6uLQ+o1G6NuBl2ANhBKN9Bc8jRIk31MoA=
424423
github.com/libp2p/go-libp2p-connmgr v0.2.4 h1:TMS0vc0TCBomtQJyWr7fYxcVYYhx+q/2gF++G5Jkl/w=
425424
github.com/libp2p/go-libp2p-connmgr v0.2.4/go.mod h1:YV0b/RIm8NGPnnNWM7hG9Q38OeQiQfKhHCCs1++ufn0=

examples/relay/main.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ import (
88
"github.com/libp2p/go-libp2p-core/network"
99
"github.com/libp2p/go-libp2p-core/peer"
1010

11-
circuit "github.com/libp2p/go-libp2p-circuit"
11+
relayv1 "github.com/libp2p/go-libp2p/p2p/protocol/circuitv1/relay"
12+
1213
swarm "github.com/libp2p/go-libp2p-swarm"
1314
ma "github.com/multiformats/go-multiaddr"
1415
)
@@ -35,7 +36,7 @@ func run() {
3536
log.Printf("Failed to create h2: %v", err)
3637
return
3738
}
38-
_, err = circuit.NewRelay(context.Background(), h2, nil, circuit.OptHop)
39+
_, err = relayv1.NewRelay(h2)
3940
if err != nil {
4041
log.Printf("Failed to instantiate h2 relay: %v", err)
4142
return

p2p/host/relay/autorelay.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ import (
1313
"github.com/libp2p/go-libp2p-core/peer"
1414
"github.com/libp2p/go-libp2p-core/routing"
1515

16-
circuit "github.com/libp2p/go-libp2p-circuit"
1716
basic "github.com/libp2p/go-libp2p/p2p/host/basic"
17+
relayv1 "github.com/libp2p/go-libp2p/p2p/protocol/circuitv1/relay"
1818

1919
ma "github.com/multiformats/go-multiaddr"
2020
manet "github.com/multiformats/go-multiaddr/net"
@@ -204,7 +204,7 @@ func (ar *AutoRelay) tryRelay(ctx context.Context, pi peer.AddrInfo) bool {
204204
return false
205205
}
206206

207-
ok, err := circuit.CanHop(ctx, ar.host, pi.ID)
207+
ok, err := relayv1.CanHop(ctx, ar.host, pi.ID)
208208
if err != nil {
209209
log.Debugf("error querying relay: %s", err.Error())
210210
return false

p2p/host/relay/autorelay_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ import (
1010

1111
"github.com/libp2p/go-libp2p"
1212
"github.com/libp2p/go-libp2p/p2p/host/relay"
13+
relayv1 "github.com/libp2p/go-libp2p/p2p/protocol/circuitv1/relay"
1314

1415
"github.com/libp2p/go-libp2p-core/event"
1516
"github.com/libp2p/go-libp2p-core/host"
1617
"github.com/libp2p/go-libp2p-core/network"
1718
"github.com/libp2p/go-libp2p-core/peer"
1819
"github.com/libp2p/go-libp2p-core/routing"
1920

20-
circuit "github.com/libp2p/go-libp2p-circuit"
2121
discovery "github.com/libp2p/go-libp2p-discovery"
2222

2323
"github.com/ipfs/go-cid"
@@ -148,10 +148,11 @@ func TestAutoRelay(t *testing.T) {
148148
}
149149

150150
// instantiate the relay
151-
_, err = circuit.NewRelay(ctx, relayHost, nil, circuit.OptHop)
151+
r, err := relayv1.NewRelay(relayHost)
152152
if err != nil {
153153
t.Fatal(err)
154154
}
155+
defer r.Close()
155156

156157
// advertise the relay
157158
relayRouting, err := makeRouting(relayHost)

p2p/protocol/circuitv1/pb/Makefile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
PB = $(wildcard *.proto)
2+
GO = $(PB:.proto=.pb.go)
3+
4+
all: $(GO)
5+
6+
%.pb.go: %.proto
7+
protoc --gogofast_out=. $<
8+
9+
clean:
10+
rm -f *.pb.go
11+
rm -f *.go

0 commit comments

Comments
 (0)