Skip to content

Commit 3d4728c

Browse files
hannahhowardmvdan
andauthored
Update for LinkSystem (#161)
* swap go-ipld-prime-proto for go-codec-dagpb DO NOT MERGE * feat(graphsync): update for linksystem replace most instances of loader and storer with ipld.LinkSystem * feat(graphsync): use trusted storage * feat(deps): update to released ipld-prime * ci(circle): use updated orb * style(lint): fix lint errors Co-authored-by: Daniel Martí <[email protected]>
1 parent 478a6f1 commit 3d4728c

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+366
-428
lines changed

.circleci/config.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
version: 2.1
22
orbs:
3-
ci-go: ipfs/ci-go@0.2.9
3+
ci-go: ipfs/ci-go@0.3.1
44

55
executors:
66
golang:

allocator/allocator_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,8 @@ func TestAllocator(t *testing.T) {
319319
select {
320320
case <-allocated:
321321
default:
322-
pending = append(pending, pendingResultWithChan{pendingResult{op.p, op.amount}, allocated})
322+
323+
pending = append(pending, pendingResultWithChan{pendingResult{p: op.p, amount: op.amount}, allocated}) //nolint:gosimple
323324
}
324325
case releasePeer:
325326
err := allocator.ReleasePeerMemory(op.p)

benchmarks/benchmark_test.go

+35-35
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,15 @@ import (
2929
basicnode "github.com/ipld/go-ipld-prime/node/basic"
3030
ipldselector "github.com/ipld/go-ipld-prime/traversal/selector"
3131
"github.com/ipld/go-ipld-prime/traversal/selector/builder"
32-
peer "github.com/libp2p/go-libp2p-core/peer"
3332
mocknet "github.com/libp2p/go-libp2p/p2p/net/mock"
3433
"github.com/stretchr/testify/require"
34+
"golang.org/x/sync/errgroup"
3535

3636
"github.com/ipfs/go-graphsync/benchmarks/testinstance"
3737
tn "github.com/ipfs/go-graphsync/benchmarks/testnet"
3838
graphsync "github.com/ipfs/go-graphsync/impl"
3939
)
4040

41-
const stdBlockSize = 8000
42-
4341
type runStats struct {
4442
Time time.Duration
4543
Name string
@@ -96,34 +94,36 @@ func benchmarkRepeatedDisconnects(ctx context.Context, b *testing.B, numnodes in
9694
b.ReportAllocs()
9795
fetcher := instances[0]
9896
for i := 0; i < b.N; i++ {
99-
var wg sync.WaitGroup
10097
ctx, cancel := context.WithTimeout(ctx, 10*time.Second)
10198
require.NoError(b, err)
10299
start := time.Now()
100+
errgrp, grpctx := errgroup.WithContext(ctx)
103101
for j := 0; j < numnodes; j++ {
104102
instance := instances[j+1]
105-
_, errChan := fetcher.Exchange.Request(ctx, instance.Peer, cidlink.Link{Cid: allCids[i][j]}, allSelector)
103+
_, errChan := fetcher.Exchange.Request(grpctx, instance.Peer, cidlink.Link{Cid: allCids[i][j]}, allSelector)
104+
other := instance.Peer
106105

107-
wg.Add(1)
108-
go func(other peer.ID) {
106+
errgrp.Go(func() error {
109107
defer func() {
110-
mn.DisconnectPeers(fetcher.Peer, other)
111-
wg.Done()
108+
_ = mn.DisconnectPeers(fetcher.Peer, other)
112109
}()
113110
for {
114111
select {
115-
case <-ctx.Done():
116-
return
112+
case <-grpctx.Done():
113+
return nil
117114
case err, ok := <-errChan:
118115
if !ok {
119-
return
116+
return nil
120117
}
121-
b.Fatalf("received error on request: %s", err.Error())
118+
return err
122119
}
123120
}
124-
}(instance.Peer)
121+
})
122+
123+
}
124+
if err := errgrp.Wait(); err != nil {
125+
b.Fatalf("received error on request: %s", err.Error())
125126
}
126-
wg.Wait()
127127
result := runStats{
128128
Time: time.Since(start),
129129
Name: b.Name(),
@@ -163,24 +163,24 @@ func p2pStrestTest(ctx context.Context, b *testing.B, numfiles int, df distFunc,
163163
b.ReportAllocs()
164164
for i := 0; i < b.N; i++ {
165165
fetcher := instances[i+1]
166-
var wg sync.WaitGroup
167166
ctx, cancel := context.WithTimeout(ctx, 10*time.Second)
168167
require.NoError(b, err)
169168
start := time.Now()
169+
errgrp, grpctx := errgroup.WithContext(ctx)
170170
for j := 0; j < numfiles; j++ {
171-
responseChan, errChan := fetcher.Exchange.Request(ctx, instances[0].Peer, cidlink.Link{Cid: allCids[j]}, allSelector)
172-
173-
wg.Add(1)
174-
go func(j int) {
175-
defer wg.Done()
176-
for _ = range responseChan {
171+
responseChan, errChan := fetcher.Exchange.Request(grpctx, instances[0].Peer, cidlink.Link{Cid: allCids[j]}, allSelector)
172+
errgrp.Go(func() error {
173+
for range responseChan {
177174
}
178175
for err := range errChan {
179-
b.Fatalf("received error on request: %s", err.Error())
176+
return err
180177
}
181-
}(j)
178+
return nil
179+
})
180+
}
181+
if err := errgrp.Wait(); err != nil {
182+
b.Fatalf("received error on request: %s", err.Error())
182183
}
183-
wg.Wait()
184184
result := runStats{
185185
Time: time.Since(start),
186186
Name: b.Name(),
@@ -216,31 +216,31 @@ func subtestDistributeAndFetch(ctx context.Context, b *testing.B, numnodes int,
216216
b.ReportAllocs()
217217
for i := 0; i < b.N; i++ {
218218
fetcher := instances[i+numnodes]
219-
var wg sync.WaitGroup
220219
ctx, cancel := context.WithTimeout(ctx, 10*time.Second)
221220
require.NoError(b, err)
222221
start := time.Now()
222+
errgrp, grpctx := errgroup.WithContext(ctx)
223223
for j := 0; j < numnodes; j++ {
224224
instance := instances[j]
225-
_, errChan := fetcher.Exchange.Request(ctx, instance.Peer, cidlink.Link{Cid: destCids[j]}, allSelector)
225+
_, errChan := fetcher.Exchange.Request(grpctx, instance.Peer, cidlink.Link{Cid: destCids[j]}, allSelector)
226226

227-
wg.Add(1)
228-
go func() {
229-
defer wg.Done()
227+
errgrp.Go(func() error {
230228
for {
231229
select {
232230
case <-ctx.Done():
233-
return
231+
return err
234232
case err, ok := <-errChan:
235233
if !ok {
236-
return
234+
return nil
237235
}
238-
b.Fatalf("received error on request: %s", err.Error())
236+
return err
239237
}
240238
}
241-
}()
239+
})
240+
}
241+
if err := errgrp.Wait(); err != nil {
242+
b.Fatalf("received error on request: %s", err.Error())
242243
}
243-
wg.Wait()
244244
result := runStats{
245245
Time: time.Since(start),
246246
Name: b.Name(),

benchmarks/testinstance/testinstance.go

+4-7
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,7 @@ func Close(instances []Instance) error {
111111
// Instance is a test instance of bitswap + dependencies for integration testing
112112
type Instance struct {
113113
Peer peer.ID
114-
Loader ipld.Loader
115-
Storer ipld.Storer
114+
LinkSystem ipld.LinkSystem
116115
Exchange graphsync.GraphExchange
117116
BlockStore blockstore.Blockstore
118117
Adapter gsnet.GraphSyncNetwork
@@ -165,9 +164,8 @@ func NewInstance(ctx context.Context, net tn.Network, p tnet.Identity, gsOptions
165164
return Instance{}, err
166165
}
167166

168-
loader := storeutil.LoaderForBlockstore(bstore)
169-
storer := storeutil.StorerForBlockstore(bstore)
170-
gs := gsimpl.New(ctx, adapter, loader, storer, gsOptions...)
167+
lsys := storeutil.LinkSystemForBlockstore(bstore)
168+
gs := gsimpl.New(ctx, adapter, lsys, gsOptions...)
171169
gs.RegisterIncomingRequestHook(func(p peer.ID, request graphsync.RequestData, hookActions graphsync.IncomingRequestHookActions) {
172170
hookActions.ValidateRequest()
173171
})
@@ -176,8 +174,7 @@ func NewInstance(ctx context.Context, net tn.Network, p tnet.Identity, gsOptions
176174
Adapter: adapter,
177175
Peer: p.ID(),
178176
Exchange: gs,
179-
Loader: loader,
180-
Storer: storer,
177+
LinkSystem: lsys,
181178
BlockStore: bstore,
182179
blockstoreDelay: bsdelay,
183180
ds: dstore,

benchmarks/testnet/peernet.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ func (pn *peernet) Adapter(p tnet.Identity) gsnet.GraphSyncNetwork {
2424
if err != nil {
2525
panic(err.Error())
2626
}
27-
pn.Mocknet.LinkAll()
27+
err = pn.Mocknet.LinkAll()
28+
if err != nil {
29+
panic(err.Error())
30+
}
2831
return gsnet.NewFromLibp2pHost(client)
2932
}
3033

go.mod

+4-4
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ require (
2828
github.com/ipfs/go-merkledag v0.3.2
2929
github.com/ipfs/go-peertaskqueue v0.2.0
3030
github.com/ipfs/go-unixfs v0.2.4
31-
github.com/ipld/go-ipld-prime v0.7.0
32-
github.com/ipld/go-ipld-prime-proto v0.1.1
31+
github.com/ipld/go-codec-dagpb v1.2.0
32+
github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db
3333
github.com/jbenet/go-random v0.0.0-20190219211222-123a90aedc0c
3434
github.com/libp2p/go-buffer-pool v0.0.2
3535
github.com/libp2p/go-libp2p v0.13.0
@@ -39,11 +39,11 @@ require (
3939
github.com/libp2p/go-libp2p-testing v0.4.0
4040
github.com/libp2p/go-msgio v0.0.6
4141
github.com/multiformats/go-multiaddr v0.3.1
42-
github.com/multiformats/go-multihash v0.0.14
43-
github.com/polydawn/refmt v0.0.0-20201211092308-30ac6d18308e // indirect
42+
github.com/multiformats/go-multihash v0.0.15
4443
github.com/smartystreets/assertions v1.0.1 // indirect
4544
github.com/stretchr/testify v1.6.1
4645
github.com/whyrusleeping/cbor-gen v0.0.0-20210219115102-f37d292932f2
46+
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9
4747
golang.org/x/tools v0.1.1-0.20210225150353-54dc8c5edb56 // indirect
4848
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1
4949
google.golang.org/protobuf v1.25.0

go.sum

+23-10
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,8 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m
6969
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
7070
github.com/flynn/noise v0.0.0-20180327030543-2492fe189ae6 h1:u/UEqS66A5ckRmS4yNpjmVH56sVtS/RfclBAYocb4as=
7171
github.com/flynn/noise v0.0.0-20180327030543-2492fe189ae6/go.mod h1:1i71OnUq3iUe1ma7Lr6yG6/rjvM3emb6yoL7xLFzcVQ=
72+
github.com/frankban/quicktest v1.11.3 h1:8sXhOn0uLys67V8EsXLc6eszDs8VXWxL3iRvebPhedY=
73+
github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k=
7274
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
7375
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
7476
github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98=
@@ -98,8 +100,9 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a
98100
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
99101
github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
100102
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
101-
github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w=
102103
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
104+
github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M=
105+
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
103106
github.com/google/gopacket v1.1.17 h1:rMrlX2ZY2UbvT+sdz3+6J+pp2z+msCq9MxTU6ymxbBY=
104107
github.com/google/gopacket v1.1.17/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM=
105108
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
@@ -223,7 +226,6 @@ github.com/ipfs/go-log/v2 v2.0.5/go.mod h1:eZs4Xt4ZUJQFM3DlanGhy7TkwwawCZcSByscw
223226
github.com/ipfs/go-log/v2 v2.1.1 h1:G4TtqN+V9y9HY9TA6BwbCVyyBZ2B9MbCjR2MtGx8FR0=
224227
github.com/ipfs/go-log/v2 v2.1.1/go.mod h1:2v2nsGfZsvvAJz13SyFzf9ObaqwHiHxsPLEHntrv9KM=
225228
github.com/ipfs/go-merkledag v0.2.3/go.mod h1:SQiXrtSts3KGNmgOzMICy5c0POOpUNQLvB3ClKnBAlk=
226-
github.com/ipfs/go-merkledag v0.3.1/go.mod h1:fvkZNNZixVW6cKSZ/JfLlON5OlgTXNdRLz0p6QG/I2M=
227229
github.com/ipfs/go-merkledag v0.3.2 h1:MRqj40QkrWkvPswXs4EfSslhZ4RVPRbxwX11js0t1xY=
228230
github.com/ipfs/go-merkledag v0.3.2/go.mod h1:fvkZNNZixVW6cKSZ/JfLlON5OlgTXNdRLz0p6QG/I2M=
229231
github.com/ipfs/go-metrics-interface v0.0.1 h1:j+cpbjYvu4R8zbleSs36gvB7jR+wsL2fGD6n0jO4kdg=
@@ -236,10 +238,11 @@ github.com/ipfs/go-unixfs v0.2.4 h1:6NwppOXefWIyysZ4LR/qUBPvXd5//8J3jiMdvpbw6Lo=
236238
github.com/ipfs/go-unixfs v0.2.4/go.mod h1:SUdisfUjNoSDzzhGVxvCL9QO/nKdwXdr+gbMUdqcbYw=
237239
github.com/ipfs/go-verifcid v0.0.1 h1:m2HI7zIuR5TFyQ1b79Da5N9dnnCP1vcu2QqawmWlK2E=
238240
github.com/ipfs/go-verifcid v0.0.1/go.mod h1:5Hrva5KBeIog4A+UpqlaIU+DEstipcJYQQZc0g37pY0=
239-
github.com/ipld/go-ipld-prime v0.7.0 h1:eigF1ZpaL1prbsKYVMqPLoPJqD/pzkQOe2j1uzvVg7w=
240-
github.com/ipld/go-ipld-prime v0.7.0/go.mod h1:0xEgdD6MKbZ1vF0GC+YcR/C4SQCAlRuOjIJ2i0HxqzM=
241-
github.com/ipld/go-ipld-prime-proto v0.1.1 h1:EX4yWYaIqSLwtVE30nxEcZDcvsWDtx1vImSG+XCJebY=
242-
github.com/ipld/go-ipld-prime-proto v0.1.1/go.mod h1:cI9NwYAUKCLUwqufoUjChISxuTEkaY2yvNYCRCuhRck=
241+
github.com/ipld/go-codec-dagpb v1.2.0 h1:2umV7ud8HBMkRuJgd8gXw95cLhwmcYrihS3cQEy9zpI=
242+
github.com/ipld/go-codec-dagpb v1.2.0/go.mod h1:6nBN7X7h8EOsEejZGqC7tej5drsdBAXbMHyBT+Fne5s=
243+
github.com/ipld/go-ipld-prime v0.9.0/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8=
244+
github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db h1:kFwGn8rXa/Z31ev1OFNQsYeNKNCdifnTPl/NvPy5L38=
245+
github.com/ipld/go-ipld-prime v0.9.1-0.20210324083106-dc342a9917db/go.mod h1:KvBLMr4PX1gWptgkzRjVZCrLmSGcZCb/jioOQwCqZN8=
243246
github.com/jackpal/gateway v1.0.5/go.mod h1:lTpwd4ACLXmpyiCTRtfiNyVnUmqT9RivzCDQetPfnjA=
244247
github.com/jackpal/go-nat-pmp v1.0.1/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc=
245248
github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus=
@@ -268,13 +271,16 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL
268271
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
269272
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
270273
github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4=
274+
github.com/klauspost/cpuid/v2 v2.0.4 h1:g0I61F2K2DjRHz1cnxlkNSBIaePVoJIjjnHui8QHbiw=
275+
github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
271276
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
272277
github.com/koron/go-ssdp v0.0.0-20180514024734-4a0ed625a78b/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk=
273278
github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d h1:68u9r4wEvL3gYg2jvAOgROwZ3H+Y3hIDk4tbbmIjcYQ=
274279
github.com/koron/go-ssdp v0.0.0-20191105050749-2e1c40ed0b5d/go.mod h1:5Ky9EC2xfoUKUor0Hjgi2BJhCSXJfMOFlmyYrVKGQMk=
275280
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
276-
github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs=
277281
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
282+
github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
283+
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
278284
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
279285
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
280286
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
@@ -494,6 +500,8 @@ github.com/minio/sha256-simd v0.1.0/go.mod h1:2FMWW+8GMoPweT6+pI63m9YE3Lmw4J71hV
494500
github.com/minio/sha256-simd v0.1.1-0.20190913151208-6de447530771/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM=
495501
github.com/minio/sha256-simd v0.1.1 h1:5QHSlgo3nt5yKOJrC7W8w7X+NFl8cMPZm96iu8kKUJU=
496502
github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM=
503+
github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo6g=
504+
github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM=
497505
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
498506
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
499507
github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8=
@@ -543,6 +551,8 @@ github.com/multiformats/go-multihash v0.0.10/go.mod h1:YSLudS+Pi8NHE7o6tb3D8vrpK
543551
github.com/multiformats/go-multihash v0.0.13/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc=
544552
github.com/multiformats/go-multihash v0.0.14 h1:QoBceQYQQtNUuf6s7wHxnE2c8bhbMqhfGzNI032se/I=
545553
github.com/multiformats/go-multihash v0.0.14/go.mod h1:VdAWLKTwram9oKAatUcLxBNUjdtcVwxObEQBtRfuyjc=
554+
github.com/multiformats/go-multihash v0.0.15 h1:hWOPdrNqDjwHDx82vsYGSDZNyktOJJ2dzZJzFkOV1jM=
555+
github.com/multiformats/go-multihash v0.0.15/go.mod h1:D6aZrWNLFTV/ynMpKsNtB40mJzmCl4jb1alC0OvHiHg=
546556
github.com/multiformats/go-multistream v0.1.0/go.mod h1:fJTiDfXJVmItycydCnNx4+wSzZ5NwG2FEVAI30fiovg=
547557
github.com/multiformats/go-multistream v0.1.1/go.mod h1:KmHZ40hzVxiaiwlj3MEbYgK9JFk2/9UktWZAF54Du38=
548558
github.com/multiformats/go-multistream v0.2.0 h1:6AuNmQVKUkRnddw2YiDjt5Elit40SFxMJkVnhmETXtU=
@@ -679,11 +689,11 @@ golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8U
679689
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
680690
golang.org/x/crypto v0.0.0-20190618222545-ea8f1a30c443/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
681691
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
682-
golang.org/x/crypto v0.0.0-20200117160349-530e935923ad/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
683692
golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
684693
golang.org/x/crypto v0.0.0-20200423211502-4bdfaf469ed5/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
685-
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
686694
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
695+
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 h1:/ZScEX8SfEmUGRHs0gxpqteO5nfNW6axyZbBdw9A12g=
696+
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
687697
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
688698
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
689699
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
@@ -738,13 +748,16 @@ golang.org/x/sys v0.0.0-20190610200419-93c9922d18ae/go.mod h1:h1NjWce9XRLGQEsW7w
738748
golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
739749
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
740750
golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
751+
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
741752
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
742-
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
743753
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
744754
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
745755
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
746756
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c h1:VwygUrnw9jn88c4u8GD3rZQbqrP/tgas88tPUbBxQrk=
747757
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
758+
golang.org/x/sys v0.0.0-20210309074719-68d13333faf2 h1:46ULzRKLh1CwgRq2dC5SlBzEqqNCi8rreOZnNrbqcIY=
759+
golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
760+
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
748761
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
749762
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
750763
golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=

graphsync.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ type GraphExchange interface {
257257
Request(ctx context.Context, p peer.ID, root ipld.Link, selector ipld.Node, extensions ...ExtensionData) (<-chan ResponseProgress, <-chan error)
258258

259259
// RegisterPersistenceOption registers an alternate loader/storer combo that can be substituted for the default
260-
RegisterPersistenceOption(name string, loader ipld.Loader, storer ipld.Storer) error
260+
RegisterPersistenceOption(name string, lsys ipld.LinkSystem) error
261261

262262
// UnregisterPersistenceOption unregisters an alternate loader/storer combo
263263
UnregisterPersistenceOption(name string) error

0 commit comments

Comments
 (0)