diff --git a/blocks/blocks.go b/blocks/blocks.go deleted file mode 100644 index 1f6abe655..000000000 --- a/blocks/blocks.go +++ /dev/null @@ -1,82 +0,0 @@ -// Package blocks contains the lowest level of IPFS data structures. -// A block is raw data accompanied by a CID. The CID contains the multihash -// corresponding to the block. -package blocks - -import ( - "errors" - "fmt" - - mh "gx/ipfs/QmVGtdTZdTFaLsaj2RwdVG8jcjNNcp1DE914DKZ2kHmXHw/go-multihash" - u "gx/ipfs/QmWbjfz3u6HkAdPh34dgPchGbQjob6LXLhAeCGii2TX69n/go-ipfs-util" - cid "gx/ipfs/QmYhQaCYEcaPPjxJX7YcPcVKkQfRy6sJ7B3XmGFk82XYdQ/go-cid" -) - -// ErrWrongHash is returned when the Cid of a block is not the expected -// according to the contents. It is currently used only when debugging. -var ErrWrongHash = errors.New("data did not match given hash") - -// Block provides abstraction for blocks implementations. -type Block interface { - RawData() []byte - Cid() *cid.Cid - String() string - Loggable() map[string]interface{} -} - -// A BasicBlock is a singular block of data in ipfs. It implements the Block -// interface. -type BasicBlock struct { - cid *cid.Cid - data []byte -} - -// NewBlock creates a Block object from opaque data. It will hash the data. -func NewBlock(data []byte) *BasicBlock { - // TODO: fix assumptions - return &BasicBlock{data: data, cid: cid.NewCidV0(u.Hash(data))} -} - -// NewBlockWithCid creates a new block when the hash of the data -// is already known, this is used to save time in situations where -// we are able to be confident that the data is correct. -func NewBlockWithCid(data []byte, c *cid.Cid) (*BasicBlock, error) { - if u.Debug { - chkc, err := c.Prefix().Sum(data) - if err != nil { - return nil, err - } - - if !chkc.Equals(c) { - return nil, ErrWrongHash - } - } - return &BasicBlock{data: data, cid: c}, nil -} - -// Multihash returns the hash contained in the block CID. -func (b *BasicBlock) Multihash() mh.Multihash { - return b.cid.Hash() -} - -// RawData returns the block raw contents as a byte slice. -func (b *BasicBlock) RawData() []byte { - return b.data -} - -// Cid returns the content identifier of the block. -func (b *BasicBlock) Cid() *cid.Cid { - return b.cid -} - -// String provides a human-readable representation of the block CID. -func (b *BasicBlock) String() string { - return fmt.Sprintf("[Block %s]", b.Cid()) -} - -// Loggable returns a go-log loggable item. -func (b *BasicBlock) Loggable() map[string]interface{} { - return map[string]interface{}{ - "block": b.Cid().String(), - } -} diff --git a/blocks/blocks_test.go b/blocks/blocks_test.go deleted file mode 100644 index e984a1772..000000000 --- a/blocks/blocks_test.go +++ /dev/null @@ -1,98 +0,0 @@ -package blocks - -import ( - "bytes" - "testing" - - mh "gx/ipfs/QmVGtdTZdTFaLsaj2RwdVG8jcjNNcp1DE914DKZ2kHmXHw/go-multihash" - u "gx/ipfs/QmWbjfz3u6HkAdPh34dgPchGbQjob6LXLhAeCGii2TX69n/go-ipfs-util" - cid "gx/ipfs/QmYhQaCYEcaPPjxJX7YcPcVKkQfRy6sJ7B3XmGFk82XYdQ/go-cid" -) - -func TestBlocksBasic(t *testing.T) { - - // Test empty data - empty := []byte{} - NewBlock(empty) - - // Test nil case - NewBlock(nil) - - // Test some data - NewBlock([]byte("Hello world!")) -} - -func TestData(t *testing.T) { - data := []byte("some data") - block := NewBlock(data) - - if !bytes.Equal(block.RawData(), data) { - t.Error("data is wrong") - } -} - -func TestHash(t *testing.T) { - data := []byte("some other data") - block := NewBlock(data) - - hash, err := mh.Sum(data, mh.SHA2_256, -1) - if err != nil { - t.Fatal(err) - } - - if !bytes.Equal(block.Multihash(), hash) { - t.Error("wrong multihash") - } -} - -func TestCid(t *testing.T) { - data := []byte("yet another data") - block := NewBlock(data) - c := block.Cid() - - if !bytes.Equal(block.Multihash(), c.Hash()) { - t.Error("key contains wrong data") - } -} - -func TestManualHash(t *testing.T) { - oldDebugState := u.Debug - defer (func() { - u.Debug = oldDebugState - })() - - data := []byte("I can't figure out more names .. data") - hash, err := mh.Sum(data, mh.SHA2_256, -1) - if err != nil { - t.Fatal(err) - } - - c := cid.NewCidV0(hash) - - u.Debug = false - block, err := NewBlockWithCid(data, c) - if err != nil { - t.Fatal(err) - } - - if !bytes.Equal(block.Multihash(), hash) { - t.Error("wrong multihash") - } - - data[5] = byte((uint32(data[5]) + 5) % 256) // Transfrom hash to be different - block, err = NewBlockWithCid(data, c) - if err != nil { - t.Fatal(err) - } - - if !bytes.Equal(block.Multihash(), hash) { - t.Error("wrong multihash") - } - - u.Debug = true - - _, err = NewBlockWithCid(data, c) - if err != ErrWrongHash { - t.Fatal(err) - } -} diff --git a/blocks/blockstore/arc_cache.go b/blocks/blockstore/arc_cache.go index 75c7ee489..ddc9ace87 100644 --- a/blocks/blockstore/arc_cache.go +++ b/blocks/blockstore/arc_cache.go @@ -3,7 +3,7 @@ package blockstore import ( "context" - "github.com/ipfs/go-ipfs/blocks" + "github.com/ipfs/go-block-format" ds "gx/ipfs/QmRWDav6mzWseLWeYfVd5fvUKiVe9xNH29YfMF438fG364/go-datastore" "gx/ipfs/QmRg1gKTHzc3CZXSKzem8aR4E3TubFhbgXwfVuWnSK5CC5/go-metrics-interface" diff --git a/blocks/blockstore/arc_cache_test.go b/blocks/blockstore/arc_cache_test.go index e6f35144d..9ee955f0e 100644 --- a/blocks/blockstore/arc_cache_test.go +++ b/blocks/blockstore/arc_cache_test.go @@ -4,7 +4,7 @@ import ( "context" "testing" - "github.com/ipfs/go-ipfs/blocks" + "github.com/ipfs/go-block-format" ds "gx/ipfs/QmRWDav6mzWseLWeYfVd5fvUKiVe9xNH29YfMF438fG364/go-datastore" syncds "gx/ipfs/QmRWDav6mzWseLWeYfVd5fvUKiVe9xNH29YfMF438fG364/go-datastore/sync" diff --git a/blocks/blockstore/blockstore.go b/blocks/blockstore/blockstore.go index e1c7dcf35..4a0daad6d 100644 --- a/blocks/blockstore/blockstore.go +++ b/blocks/blockstore/blockstore.go @@ -8,7 +8,7 @@ import ( "sync" "sync/atomic" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" dshelp "github.com/ipfs/go-ipfs/thirdparty/ds-help" ds "gx/ipfs/QmRWDav6mzWseLWeYfVd5fvUKiVe9xNH29YfMF438fG364/go-datastore" diff --git a/blocks/blockstore/blockstore_test.go b/blocks/blockstore/blockstore_test.go index 93705997e..bb1525d17 100644 --- a/blocks/blockstore/blockstore_test.go +++ b/blocks/blockstore/blockstore_test.go @@ -6,7 +6,7 @@ import ( "fmt" "testing" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" dshelp "github.com/ipfs/go-ipfs/thirdparty/ds-help" ds "gx/ipfs/QmRWDav6mzWseLWeYfVd5fvUKiVe9xNH29YfMF438fG364/go-datastore" diff --git a/blocks/blockstore/bloom_cache.go b/blocks/blockstore/bloom_cache.go index 8bcf962fe..0f2028c9a 100644 --- a/blocks/blockstore/bloom_cache.go +++ b/blocks/blockstore/bloom_cache.go @@ -5,7 +5,7 @@ import ( "sync/atomic" "time" - "github.com/ipfs/go-ipfs/blocks" + "github.com/ipfs/go-block-format" "gx/ipfs/QmRg1gKTHzc3CZXSKzem8aR4E3TubFhbgXwfVuWnSK5CC5/go-metrics-interface" cid "gx/ipfs/QmYhQaCYEcaPPjxJX7YcPcVKkQfRy6sJ7B3XmGFk82XYdQ/go-cid" diff --git a/blocks/blockstore/bloom_cache_test.go b/blocks/blockstore/bloom_cache_test.go index 85046e270..51a41a115 100644 --- a/blocks/blockstore/bloom_cache_test.go +++ b/blocks/blockstore/bloom_cache_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - "github.com/ipfs/go-ipfs/blocks" + "github.com/ipfs/go-block-format" context "context" ds "gx/ipfs/QmRWDav6mzWseLWeYfVd5fvUKiVe9xNH29YfMF438fG364/go-datastore" diff --git a/blocks/blocksutil/block_generator.go b/blocks/blocksutil/block_generator.go index cff2213b2..e943f8f10 100644 --- a/blocks/blocksutil/block_generator.go +++ b/blocks/blocksutil/block_generator.go @@ -2,7 +2,7 @@ // with Blocks. package blocksutil -import "github.com/ipfs/go-ipfs/blocks" +import "github.com/ipfs/go-block-format" // NewBlockGenerator returns an object capable of // producing blocks. diff --git a/blockservice/blockservice.go b/blockservice/blockservice.go index 66701bc9d..14c445f89 100644 --- a/blockservice/blockservice.go +++ b/blockservice/blockservice.go @@ -8,7 +8,7 @@ import ( "errors" "fmt" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" "github.com/ipfs/go-ipfs/blocks/blockstore" exchange "github.com/ipfs/go-ipfs/exchange" diff --git a/blockservice/blockservice_test.go b/blockservice/blockservice_test.go index bd3b0c665..3085a3444 100644 --- a/blockservice/blockservice_test.go +++ b/blockservice/blockservice_test.go @@ -3,7 +3,7 @@ package blockservice import ( "testing" - "github.com/ipfs/go-ipfs/blocks" + "github.com/ipfs/go-block-format" "github.com/ipfs/go-ipfs/blocks/blockstore" butil "github.com/ipfs/go-ipfs/blocks/blocksutil" offline "github.com/ipfs/go-ipfs/exchange/offline" diff --git a/blockservice/test/blocks_test.go b/blockservice/test/blocks_test.go index 68f77be7e..0b66202bc 100644 --- a/blockservice/test/blocks_test.go +++ b/blockservice/test/blocks_test.go @@ -7,7 +7,7 @@ import ( "testing" "time" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" blockstore "github.com/ipfs/go-ipfs/blocks/blockstore" . "github.com/ipfs/go-ipfs/blockservice" offline "github.com/ipfs/go-ipfs/exchange/offline" diff --git a/core/commands/block.go b/core/commands/block.go index de71c493e..4a6800a49 100644 --- a/core/commands/block.go +++ b/core/commands/block.go @@ -7,7 +7,7 @@ import ( "io/ioutil" "strings" - "github.com/ipfs/go-ipfs/blocks" + "github.com/ipfs/go-block-format" util "github.com/ipfs/go-ipfs/blocks/blockstore/util" cmds "github.com/ipfs/go-ipfs/commands" diff --git a/core/commands/pubsub.go b/core/commands/pubsub.go index e680baacb..d0bede367 100644 --- a/core/commands/pubsub.go +++ b/core/commands/pubsub.go @@ -10,7 +10,7 @@ import ( "sync" "time" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" cmds "github.com/ipfs/go-ipfs/commands" core "github.com/ipfs/go-ipfs/core" diff --git a/core/coreunix/add_test.go b/core/coreunix/add_test.go index c1d182dde..aacd94ab0 100644 --- a/core/coreunix/add_test.go +++ b/core/coreunix/add_test.go @@ -10,7 +10,7 @@ import ( "testing" "time" - "github.com/ipfs/go-ipfs/blocks" + "github.com/ipfs/go-block-format" "github.com/ipfs/go-ipfs/blocks/blockstore" "github.com/ipfs/go-ipfs/blockservice" "github.com/ipfs/go-ipfs/commands/files" diff --git a/exchange/bitswap/bitswap.go b/exchange/bitswap/bitswap.go index 86e53dc2f..eb408c6c9 100644 --- a/exchange/bitswap/bitswap.go +++ b/exchange/bitswap/bitswap.go @@ -9,7 +9,7 @@ import ( "sync" "time" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" blockstore "github.com/ipfs/go-ipfs/blocks/blockstore" exchange "github.com/ipfs/go-ipfs/exchange" decision "github.com/ipfs/go-ipfs/exchange/bitswap/decision" diff --git a/exchange/bitswap/bitswap_test.go b/exchange/bitswap/bitswap_test.go index 3229b183b..38d5b4056 100644 --- a/exchange/bitswap/bitswap_test.go +++ b/exchange/bitswap/bitswap_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" blockstore "github.com/ipfs/go-ipfs/blocks/blockstore" blocksutil "github.com/ipfs/go-ipfs/blocks/blocksutil" decision "github.com/ipfs/go-ipfs/exchange/bitswap/decision" diff --git a/exchange/bitswap/decision/engine.go b/exchange/bitswap/decision/engine.go index 37e370db0..4c8888b71 100644 --- a/exchange/bitswap/decision/engine.go +++ b/exchange/bitswap/decision/engine.go @@ -6,7 +6,7 @@ import ( "time" context "context" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" bstore "github.com/ipfs/go-ipfs/blocks/blockstore" bsmsg "github.com/ipfs/go-ipfs/exchange/bitswap/message" wl "github.com/ipfs/go-ipfs/exchange/bitswap/wantlist" diff --git a/exchange/bitswap/decision/engine_test.go b/exchange/bitswap/decision/engine_test.go index fdac4eba1..06734cad7 100644 --- a/exchange/bitswap/decision/engine_test.go +++ b/exchange/bitswap/decision/engine_test.go @@ -9,7 +9,7 @@ import ( "testing" context "context" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" blockstore "github.com/ipfs/go-ipfs/blocks/blockstore" message "github.com/ipfs/go-ipfs/exchange/bitswap/message" testutil "github.com/ipfs/go-ipfs/thirdparty/testutil" diff --git a/exchange/bitswap/message/message.go b/exchange/bitswap/message/message.go index a0bc2215a..94a3aecab 100644 --- a/exchange/bitswap/message/message.go +++ b/exchange/bitswap/message/message.go @@ -4,7 +4,7 @@ import ( "fmt" "io" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" pb "github.com/ipfs/go-ipfs/exchange/bitswap/message/pb" wantlist "github.com/ipfs/go-ipfs/exchange/bitswap/wantlist" diff --git a/exchange/bitswap/message/message_test.go b/exchange/bitswap/message/message_test.go index ddcba8e17..f945048f7 100644 --- a/exchange/bitswap/message/message_test.go +++ b/exchange/bitswap/message/message_test.go @@ -6,7 +6,7 @@ import ( proto "gx/ipfs/QmZ4Qi3GaRbjcx28Sme5eMH7RQjGkt8wHxt2a65oLaeFEV/gogo-protobuf/proto" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" pb "github.com/ipfs/go-ipfs/exchange/bitswap/message/pb" u "gx/ipfs/QmWbjfz3u6HkAdPh34dgPchGbQjob6LXLhAeCGii2TX69n/go-ipfs-util" cid "gx/ipfs/QmYhQaCYEcaPPjxJX7YcPcVKkQfRy6sJ7B3XmGFk82XYdQ/go-cid" diff --git a/exchange/bitswap/notifications/notifications.go b/exchange/bitswap/notifications/notifications.go index 43322793b..fb82f8326 100644 --- a/exchange/bitswap/notifications/notifications.go +++ b/exchange/bitswap/notifications/notifications.go @@ -3,7 +3,7 @@ package notifications import ( "context" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" pubsub "github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/briantigerchow/pubsub" cid "gx/ipfs/QmYhQaCYEcaPPjxJX7YcPcVKkQfRy6sJ7B3XmGFk82XYdQ/go-cid" diff --git a/exchange/bitswap/notifications/notifications_test.go b/exchange/bitswap/notifications/notifications_test.go index ab83015e4..44627d425 100644 --- a/exchange/bitswap/notifications/notifications_test.go +++ b/exchange/bitswap/notifications/notifications_test.go @@ -6,7 +6,7 @@ import ( "testing" "time" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" blocksutil "github.com/ipfs/go-ipfs/blocks/blocksutil" cid "gx/ipfs/QmYhQaCYEcaPPjxJX7YcPcVKkQfRy6sJ7B3XmGFk82XYdQ/go-cid" ) diff --git a/exchange/bitswap/testnet/network_test.go b/exchange/bitswap/testnet/network_test.go index 44f663787..427b95e9e 100644 --- a/exchange/bitswap/testnet/network_test.go +++ b/exchange/bitswap/testnet/network_test.go @@ -5,7 +5,7 @@ import ( "testing" context "context" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" bsmsg "github.com/ipfs/go-ipfs/exchange/bitswap/message" bsnet "github.com/ipfs/go-ipfs/exchange/bitswap/network" mockrouting "github.com/ipfs/go-ipfs/routing/mock" diff --git a/exchange/interface.go b/exchange/interface.go index 58c4c14ae..becb88c1a 100644 --- a/exchange/interface.go +++ b/exchange/interface.go @@ -5,7 +5,7 @@ import ( "context" "io" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" cid "gx/ipfs/QmYhQaCYEcaPPjxJX7YcPcVKkQfRy6sJ7B3XmGFk82XYdQ/go-cid" ) diff --git a/exchange/offline/offline.go b/exchange/offline/offline.go index a70201c64..a7507943a 100644 --- a/exchange/offline/offline.go +++ b/exchange/offline/offline.go @@ -5,7 +5,7 @@ package offline import ( "context" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" "github.com/ipfs/go-ipfs/blocks/blockstore" exchange "github.com/ipfs/go-ipfs/exchange" diff --git a/exchange/offline/offline_test.go b/exchange/offline/offline_test.go index efdf2c7b1..a143183bb 100644 --- a/exchange/offline/offline_test.go +++ b/exchange/offline/offline_test.go @@ -4,7 +4,7 @@ import ( "context" "testing" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" "github.com/ipfs/go-ipfs/blocks/blockstore" "github.com/ipfs/go-ipfs/blocks/blocksutil" diff --git a/exchange/reprovide/reprovide_test.go b/exchange/reprovide/reprovide_test.go index d4451bab0..a7596f488 100644 --- a/exchange/reprovide/reprovide_test.go +++ b/exchange/reprovide/reprovide_test.go @@ -4,7 +4,7 @@ import ( "testing" context "context" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" blockstore "github.com/ipfs/go-ipfs/blocks/blockstore" mock "github.com/ipfs/go-ipfs/routing/mock" testutil "github.com/ipfs/go-ipfs/thirdparty/testutil" diff --git a/filestore/filestore.go b/filestore/filestore.go index 047d26b51..3472b2059 100644 --- a/filestore/filestore.go +++ b/filestore/filestore.go @@ -10,7 +10,7 @@ package filestore import ( "context" - "github.com/ipfs/go-ipfs/blocks" + "github.com/ipfs/go-block-format" "github.com/ipfs/go-ipfs/blocks/blockstore" posinfo "github.com/ipfs/go-ipfs/thirdparty/posinfo" diff --git a/filestore/fsrefstore.go b/filestore/fsrefstore.go index 46b385067..89e50344a 100644 --- a/filestore/fsrefstore.go +++ b/filestore/fsrefstore.go @@ -7,7 +7,7 @@ import ( "os" "path/filepath" - "github.com/ipfs/go-ipfs/blocks" + "github.com/ipfs/go-block-format" "github.com/ipfs/go-ipfs/blocks/blockstore" pb "github.com/ipfs/go-ipfs/filestore/pb" dshelp "github.com/ipfs/go-ipfs/thirdparty/ds-help" diff --git a/importer/chunk/rabin_test.go b/importer/chunk/rabin_test.go index 907b80999..3605a3dd3 100644 --- a/importer/chunk/rabin_test.go +++ b/importer/chunk/rabin_test.go @@ -3,7 +3,7 @@ package chunk import ( "bytes" "fmt" - "github.com/ipfs/go-ipfs/blocks" + "github.com/ipfs/go-block-format" "gx/ipfs/QmWbjfz3u6HkAdPh34dgPchGbQjob6LXLhAeCGii2TX69n/go-ipfs-util" "io" "testing" diff --git a/merkledag/merkledag.go b/merkledag/merkledag.go index 1a29b56e4..af5619752 100644 --- a/merkledag/merkledag.go +++ b/merkledag/merkledag.go @@ -7,7 +7,7 @@ import ( "strings" "sync" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" bserv "github.com/ipfs/go-ipfs/blockservice" offline "github.com/ipfs/go-ipfs/exchange/offline" diff --git a/merkledag/merkledag_test.go b/merkledag/merkledag_test.go index 2182f9098..b2ce16c1a 100644 --- a/merkledag/merkledag_test.go +++ b/merkledag/merkledag_test.go @@ -13,7 +13,7 @@ import ( "testing" "time" - blocks "github.com/ipfs/go-ipfs/blocks" + blocks "github.com/ipfs/go-block-format" bserv "github.com/ipfs/go-ipfs/blockservice" bstest "github.com/ipfs/go-ipfs/blockservice/test" offline "github.com/ipfs/go-ipfs/exchange/offline" diff --git a/merkledag/raw.go b/merkledag/raw.go index 7c5ba56af..a2b223367 100644 --- a/merkledag/raw.go +++ b/merkledag/raw.go @@ -1,7 +1,7 @@ package merkledag import ( - "github.com/ipfs/go-ipfs/blocks" + "github.com/ipfs/go-block-format" u "gx/ipfs/QmWbjfz3u6HkAdPh34dgPchGbQjob6LXLhAeCGii2TX69n/go-ipfs-util" cid "gx/ipfs/QmYhQaCYEcaPPjxJX7YcPcVKkQfRy6sJ7B3XmGFk82XYdQ/go-cid" diff --git a/test/integration/bitswap_wo_routing_test.go b/test/integration/bitswap_wo_routing_test.go index 8bf3945e3..9b97ffb77 100644 --- a/test/integration/bitswap_wo_routing_test.go +++ b/test/integration/bitswap_wo_routing_test.go @@ -4,7 +4,7 @@ import ( "bytes" "testing" - "github.com/ipfs/go-ipfs/blocks" + "github.com/ipfs/go-block-format" "github.com/ipfs/go-ipfs/core" "github.com/ipfs/go-ipfs/core/mock"