Skip to content

Commit b374b08

Browse files
committed
Feat/refactor transport protocol update (#337)
* refactor(network): move network to subdirectory move the network to a subdirectory, also cleanup usage of all selector, move gstestdata to the itest directory * feat(network): introduce wrapped protocol introduces a new wrapped protocol that encodes the transport id so that we can support multiple transports using the network protocol * style(lint): fix imports * fix(rebase): fix issues after rebase
1 parent a319f2f commit b374b08

32 files changed

+458
-270
lines changed

benchmarks/benchmark_test.go

+2-8
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ import (
2424
"github.com/ipfs/go-merkledag"
2525
"github.com/ipfs/go-unixfs/importer/balanced"
2626
ihelper "github.com/ipfs/go-unixfs/importer/helpers"
27-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
28-
ipldselector "github.com/ipld/go-ipld-prime/traversal/selector"
29-
"github.com/ipld/go-ipld-prime/traversal/selector/builder"
27+
selectorparse "github.com/ipld/go-ipld-prime/traversal/selector/parse"
3028
mocknet "github.com/libp2p/go-libp2p/p2p/net/mock"
3129
"github.com/stretchr/testify/require"
3230

@@ -77,10 +75,6 @@ func p2pStrestTest(ctx context.Context, b *testing.B, numfiles int, df distFunc,
7775
thisCids := df(ctx, b, instances[:1])
7876
allCids = append(allCids, thisCids...)
7977
}
80-
ssb := builder.NewSelectorSpecBuilder(basicnode.Prototype.Any)
81-
82-
allSelector := ssb.ExploreRecursive(ipldselector.RecursionLimitNone(),
83-
ssb.ExploreAll(ssb.ExploreRecursiveEdge())).Node()
8478

8579
runtime.GC()
8680
b.ResetTimer()
@@ -105,7 +99,7 @@ func p2pStrestTest(ctx context.Context, b *testing.B, numfiles int, df distFunc,
10599
timer := time.NewTimer(30 * time.Second)
106100
start := time.Now()
107101
for j := 0; j < numfiles; j++ {
108-
_, err := pusher.Manager.OpenPushDataChannel(ctx, receiver.Peer, testutil.NewTestTypedVoucher(), allCids[j], allSelector)
102+
_, err := pusher.Manager.OpenPushDataChannel(ctx, receiver.Peer, testutil.NewTestTypedVoucher(), allCids[j], selectorparse.CommonSelector_ExploreAllRecursively)
109103
if err != nil {
110104
b.Fatalf("received error on request: %s", err.Error())
111105
}

benchmarks/testinstance/testinstance.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ import (
2121
datatransfer "github.com/filecoin-project/go-data-transfer/v2"
2222
tn "github.com/filecoin-project/go-data-transfer/v2/benchmarks/testnet"
2323
dtimpl "github.com/filecoin-project/go-data-transfer/v2/impl"
24-
dtnet "github.com/filecoin-project/go-data-transfer/v2/network"
2524
"github.com/filecoin-project/go-data-transfer/v2/testutil"
2625
gstransport "github.com/filecoin-project/go-data-transfer/v2/transport/graphsync"
26+
dtnet "github.com/filecoin-project/go-data-transfer/v2/transport/helpers/network"
2727
)
2828

2929
// TempDirGenerator is any interface that can generate temporary directories

benchmarks/testnet/interface.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
gsnet "github.com/ipfs/go-graphsync/network"
55
"github.com/libp2p/go-libp2p-core/peer"
66

7-
dtnet "github.com/filecoin-project/go-data-transfer/v2/network"
7+
dtnet "github.com/filecoin-project/go-data-transfer/v2/transport/helpers/network"
88
)
99

1010
// Network is an interface for generating graphsync network interfaces

benchmarks/testnet/peernet.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"github.com/libp2p/go-libp2p-core/peer"
88
mockpeernet "github.com/libp2p/go-libp2p/p2p/net/mock"
99

10-
dtnet "github.com/filecoin-project/go-data-transfer/v2/network"
10+
dtnet "github.com/filecoin-project/go-data-transfer/v2/transport/helpers/network"
1111
)
1212

1313
type peernet struct {

impl/initiating_test.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
dss "github.com/ipfs/go-datastore/sync"
1212
"github.com/ipld/go-ipld-prime/datamodel"
1313
cidlink "github.com/ipld/go-ipld-prime/linking/cid"
14+
selectorparse "github.com/ipld/go-ipld-prime/traversal/selector/parse"
1415
"github.com/libp2p/go-libp2p-core/peer"
1516
"github.com/stretchr/testify/require"
1617

@@ -333,7 +334,7 @@ func TestDataTransferInitiating(t *testing.T) {
333334
events: make(chan datatransfer.EventCode, len(verify.expectedEvents)),
334335
}
335336
ev.setup(t, dt)
336-
h.stor = testutil.AllSelector()
337+
h.stor = selectorparse.CommonSelector_ExploreAllRecursively
337338
h.voucher = testutil.NewTestTypedVoucher()
338339
h.voucherResult = testutil.NewTestTypedVoucher()
339340
require.NoError(t, err)
@@ -580,7 +581,7 @@ func TestDataTransferRestartInitiating(t *testing.T) {
580581
ev.setup(t, dt)
581582

582583
// setup voucher processing
583-
h.stor = testutil.AllSelector()
584+
h.stor = selectorparse.CommonSelector_ExploreAllRecursively
584585
h.voucher = testutil.NewTestTypedVoucher()
585586
require.NoError(t, h.dt.RegisterVoucherType(h.voucher.Type, h.voucherValidator))
586587
h.voucherResult = testutil.NewTestTypedVoucher()

impl/responding_test.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"github.com/ipld/go-ipld-prime"
1414
"github.com/ipld/go-ipld-prime/datamodel"
1515
cidlink "github.com/ipld/go-ipld-prime/linking/cid"
16+
selectorparse "github.com/ipld/go-ipld-prime/traversal/selector/parse"
1617
"github.com/libp2p/go-libp2p-core/peer"
1718
"github.com/stretchr/testify/assert"
1819
"github.com/stretchr/testify/require"
@@ -617,7 +618,7 @@ func TestDataTransferResponding(t *testing.T) {
617618
events: make(chan datatransfer.EventCode, len(verify.expectedEvents)),
618619
}
619620
ev.setup(t, dt)
620-
h.stor = testutil.AllSelector()
621+
h.stor = selectorparse.CommonSelector_ExploreAllRecursively
621622
h.voucher = testutil.NewTestTypedVoucher()
622623
h.baseCid = testutil.GenerateCids(1)[0]
623624
h.id = datatransfer.TransferID(rand.Int31())
@@ -999,7 +1000,7 @@ func TestDataTransferRestartResponding(t *testing.T) {
9991000
events: make(chan datatransfer.EventCode, len(verify.expectedEvents)),
10001001
}
10011002
ev.setup(t, dt)
1002-
h.stor = testutil.AllSelector()
1003+
h.stor = selectorparse.CommonSelector_ExploreAllRecursively
10031004
h.voucher = testutil.NewTestTypedVoucher()
10041005
h.baseCid = testutil.GenerateCids(1)[0]
10051006
h.id = datatransfer.TransferID(rand.Int31())
File renamed without changes.
File renamed without changes.

testutil/gstestdata.go renamed to itest/gstestdata.go

+7-16
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package testutil
1+
package itest
22

33
import (
44
"bytes"
@@ -29,37 +29,30 @@ import (
2929
"github.com/ipfs/go-unixfs/importer/balanced"
3030
ihelper "github.com/ipfs/go-unixfs/importer/helpers"
3131
"github.com/ipld/go-ipld-prime"
32-
"github.com/ipld/go-ipld-prime/datamodel"
3332
cidlink "github.com/ipld/go-ipld-prime/linking/cid"
34-
basicnode "github.com/ipld/go-ipld-prime/node/basic"
35-
"github.com/ipld/go-ipld-prime/traversal/selector"
36-
"github.com/ipld/go-ipld-prime/traversal/selector/builder"
3733
"github.com/libp2p/go-libp2p-core/host"
3834
"github.com/libp2p/go-libp2p-core/protocol"
3935
mocknet "github.com/libp2p/go-libp2p/p2p/net/mock"
4036
"github.com/stretchr/testify/require"
4137

4238
datatransfer "github.com/filecoin-project/go-data-transfer/v2"
43-
"github.com/filecoin-project/go-data-transfer/v2/network"
4439
gstransport "github.com/filecoin-project/go-data-transfer/v2/transport/graphsync"
4540
"github.com/filecoin-project/go-data-transfer/v2/transport/graphsync/extension"
41+
"github.com/filecoin-project/go-data-transfer/v2/transport/helpers/network"
4642
)
4743

48-
var allSelector datamodel.Node
49-
5044
const loremFile = "lorem.txt"
45+
const loremFileTransferBytes = 20439
5146

52-
func init() {
53-
ssb := builder.NewSelectorSpecBuilder(basicnode.Prototype.Any)
54-
allSelector = ssb.ExploreRecursive(selector.RecursionLimitNone(),
55-
ssb.ExploreAll(ssb.ExploreRecursiveEdge())).Node()
56-
}
47+
const loremLargeFile = "lorem_large.txt"
48+
const loremLargeFileTransferBytes = 217452
5749

5850
const unixfsChunkSize uint64 = 1 << 10
5951
const unixfsLinksPerLevel = 1024
6052

6153
var extsForProtocol = map[protocol.ID]graphsync.ExtensionName{
62-
datatransfer.ProtocolDataTransfer1_2: extension.ExtensionDataTransfer1_1,
54+
network.ProtocolDataTransfer1_2: extension.ExtensionDataTransfer1_1,
55+
network.ProtocolFilDataTransfer1_2: extension.ExtensionDataTransfer1_1,
6356
}
6457

6558
// GraphsyncTestingData is a test harness for testing data transfer on top of
@@ -83,7 +76,6 @@ type GraphsyncTestingData struct {
8376
GsNet2 gsnet.GraphSyncNetwork
8477
DtNet1 network.DataTransferNetwork
8578
DtNet2 network.DataTransferNetwork
86-
AllSelector datamodel.Node
8779
OrigBytes []byte
8880
TempDir1 string
8981
TempDir2 string
@@ -152,7 +144,6 @@ func NewGraphsyncTestingData(ctx context.Context, t *testing.T, host1Protocols [
152144
require.NoError(t, err)
153145
gsData.TempDir2 = tempdir
154146
// create a selector for the whole UnixFS dag
155-
gsData.AllSelector = allSelector
156147
gsData.host1Protocols = host1Protocols
157148
gsData.host2Protocols = host2Protocols
158149
return gsData

0 commit comments

Comments
 (0)