Skip to content
This repository has been archived by the owner on Jun 27, 2023. It is now read-only.

Commit

Permalink
Exchange don't add blocks on their own anymore
Browse files Browse the repository at this point in the history
  • Loading branch information
MichaelMure authored and Jorropo committed Jul 27, 2022
1 parent 5252e91 commit 678648a
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 16 deletions.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ require (
github.com/ipfs/go-datastore v0.5.0
github.com/ipfs/go-ipfs-blockstore v1.2.0
github.com/ipfs/go-ipfs-blocksutil v0.0.1
github.com/ipfs/go-ipfs-exchange-interface v0.1.0
github.com/ipfs/go-ipfs-exchange-interface v0.2.0
github.com/ipfs/go-ipfs-util v0.0.2
github.com/ipfs/go-ipld-format v0.3.0
)
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ github.com/ipfs/go-ipfs-blocksutil v0.0.1/go.mod h1:Yq4M86uIOmxmGPUHv/uI7uKqZNtL
github.com/ipfs/go-ipfs-delay v0.0.0-20181109222059-70721b86a9a8/go.mod h1:8SP1YXK1M1kXuc4KJZINY3TQQ03J2rwBG9QfXmbRPrw=
github.com/ipfs/go-ipfs-ds-help v1.1.0 h1:yLE2w9RAsl31LtfMt91tRZcrx+e61O5mDxFRR994w4Q=
github.com/ipfs/go-ipfs-ds-help v1.1.0/go.mod h1:YR5+6EaebOhfcqVCyqemItCLthrpVNot+rsOU/5IatU=
github.com/ipfs/go-ipfs-exchange-interface v0.1.0 h1:TiMekCrOGQuWYtZO3mf4YJXDIdNgnKWZ9IE3fGlnWfo=
github.com/ipfs/go-ipfs-exchange-interface v0.1.0/go.mod h1:ych7WPlyHqFvCi/uQI48zLZuAWVP5iTQPXEfVaw5WEI=
github.com/ipfs/go-ipfs-exchange-interface v0.2.0 h1:8lMSJmKogZYNo2jjhUs0izT+dck05pqUw4mWNW9Pw6Y=
github.com/ipfs/go-ipfs-exchange-interface v0.2.0/go.mod h1:z6+RhJuDQbqKguVyslSOuVDhqF9JtTrO3eptSAiW2/Y=
github.com/ipfs/go-ipfs-util v0.0.1/go.mod h1:spsl5z8KUnrve+73pOhSVZND1SIxPW5RyBCNzQxlJBc=
github.com/ipfs/go-ipfs-util v0.0.2 h1:59Sswnk1MFaiq+VcaknX7aYEyGyGDAA73ilhEK2POp8=
github.com/ipfs/go-ipfs-util v0.0.2/go.mod h1:CbPtkWJzjLdEcezDns2XYaehFVNXG9zrdrtMecczcsQ=
Expand Down
11 changes: 4 additions & 7 deletions offline.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,10 @@ func (e *offlineExchange) GetBlock(ctx context.Context, k cid.Cid) (blocks.Block
return blk, err
}

// HasBlock always returns nil.
func (e *offlineExchange) HasBlock(ctx context.Context, b blocks.Block) error {
return e.bs.Put(ctx, b)
// NotifyNewBlocks tells the exchange that new blocks are available and can be served.
func (e *offlineExchange) NotifyNewBlocks(ctx context.Context, blocks ...blocks.Block) error {
// as an offline exchange we have nothing to do
return nil
}

// Close always returns nil.
Expand Down Expand Up @@ -71,7 +72,3 @@ func (e *offlineExchange) GetBlocks(ctx context.Context, ks []cid.Cid) (<-chan b
}()
return out, nil
}

func (e *offlineExchange) IsOnline() bool {
return false
}
16 changes: 10 additions & 6 deletions offline_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,14 @@ func TestHasBlockReturnsNil(t *testing.T) {
ex := Exchange(store)
block := blocks.NewBlock([]byte("data"))

err := ex.HasBlock(context.Background(), block)
if err != nil {
t.Fail()
// we don't need to do that for the test, but that illustrate the normal workflow
if err := store.Put(context.Background(), block); err != nil {
t.Fatal(err)
}

if _, err := store.Get(context.Background(), block.Cid()); err != nil {
t.Fatal(err)
err := ex.NotifyNewBlocks(context.Background(), block)
if err != nil {
t.Fail()
}
}

Expand All @@ -46,7 +47,10 @@ func TestGetBlocks(t *testing.T) {
expected := g.Blocks(2)

for _, b := range expected {
if err := ex.HasBlock(context.Background(), b); err != nil {
if err := store.Put(context.Background(), b); err != nil {
t.Fatal(err)
}
if err := ex.NotifyNewBlocks(context.Background(), b); err != nil {
t.Fail()
}
}
Expand Down

0 comments on commit 678648a

Please sign in to comment.