Skip to content

Commit a4b8be5

Browse files
update to filecoin-ffi with shared types (#127)
* update to filecoin-ffi with shared types * wire proof type through client
1 parent d6a5a9e commit a4b8be5

File tree

3 files changed

+39
-38
lines changed

3 files changed

+39
-38
lines changed

pieceio/pieceio.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -51,15 +51,15 @@ func NewPieceIOWithStore(carIO CarIO, store filestore.FileStore, bs blockstore.B
5151
return &pieceIOWithStore{pieceIO{carIO, bs}, store}
5252
}
5353

54-
func (pio *pieceIO) GeneratePieceCommitment(payloadCid cid.Cid, selector ipld.Node) ([]byte, abi.UnpaddedPieceSize, error) {
54+
func (pio *pieceIO) GeneratePieceCommitment(rt abi.RegisteredProof, payloadCid cid.Cid, selector ipld.Node) (cid.Cid, abi.UnpaddedPieceSize, error) {
5555
preparedCar, err := pio.carIO.PrepareCar(context.Background(), pio.bs, payloadCid, selector)
5656
if err != nil {
57-
return nil, 0, err
57+
return cid.Undef, 0, err
5858
}
5959
pieceSize := uint64(preparedCar.Size())
6060
r, w, err := os.Pipe()
6161
if err != nil {
62-
return nil, 0, err
62+
return cid.Undef, 0, err
6363
}
6464
var stop sync.WaitGroup
6565
stop.Add(1)
@@ -72,25 +72,25 @@ func (pio *pieceIO) GeneratePieceCommitment(payloadCid cid.Cid, selector ipld.No
7272
werr = err
7373
}
7474
}()
75-
commitment, paddedSize, err := GeneratePieceCommitment(r, pieceSize)
75+
commitment, paddedSize, err := GeneratePieceCommitment(rt, r, pieceSize)
7676
closeErr := r.Close()
7777
if err != nil {
78-
return nil, 0, err
78+
return cid.Undef, 0, err
7979
}
8080
if closeErr != nil {
81-
return nil, 0, closeErr
81+
return cid.Undef, 0, closeErr
8282
}
8383
stop.Wait()
8484
if werr != nil {
85-
return nil, 0, werr
85+
return cid.Undef, 0, werr
8686
}
8787
return commitment, paddedSize, nil
8888
}
8989

90-
func (pio *pieceIOWithStore) GeneratePieceCommitmentToFile(payloadCid cid.Cid, selector ipld.Node) ([]byte, filestore.Path, abi.UnpaddedPieceSize, error) {
90+
func (pio *pieceIOWithStore) GeneratePieceCommitmentToFile(rt abi.RegisteredProof, payloadCid cid.Cid, selector ipld.Node) (cid.Cid, filestore.Path, abi.UnpaddedPieceSize, error) {
9191
f, err := pio.store.CreateTemp()
9292
if err != nil {
93-
return nil, "", 0, err
93+
return cid.Undef, "", 0, err
9494
}
9595
cleanup := func() {
9696
f.Close()
@@ -99,30 +99,30 @@ func (pio *pieceIOWithStore) GeneratePieceCommitmentToFile(payloadCid cid.Cid, s
9999
err = pio.carIO.WriteCar(context.Background(), pio.bs, payloadCid, selector, f)
100100
if err != nil {
101101
cleanup()
102-
return nil, "", 0, err
102+
return cid.Undef, "", 0, err
103103
}
104104
pieceSize := uint64(f.Size())
105105
_, err = f.Seek(0, io.SeekStart)
106106
if err != nil {
107107
cleanup()
108-
return nil, "", 0, err
108+
return cid.Undef, "", 0, err
109109
}
110-
commitment, paddedSize, err := GeneratePieceCommitment(f, pieceSize)
110+
commitment, paddedSize, err := GeneratePieceCommitment(rt, f, pieceSize)
111111
if err != nil {
112112
cleanup()
113-
return nil, "", 0, err
113+
return cid.Undef, "", 0, err
114114
}
115115
_ = f.Close()
116116
return commitment, f.Path(), paddedSize, nil
117117
}
118118

119-
func GeneratePieceCommitment(rd io.Reader, pieceSize uint64) ([]byte, abi.UnpaddedPieceSize, error) {
119+
func GeneratePieceCommitment(rt abi.RegisteredProof, rd io.Reader, pieceSize uint64) (cid.Cid, abi.UnpaddedPieceSize, error) {
120120
paddedReader, paddedSize := padreader.New(rd, pieceSize)
121-
commitment, err := sectorbuilder.GeneratePieceCommitment(paddedReader, paddedSize)
121+
commitment, err := sectorbuilder.GeneratePieceCIDFromFile(rt, paddedReader, paddedSize)
122122
if err != nil {
123-
return nil, 0, err
123+
return cid.Undef, 0, err
124124
}
125-
return commitment[:], paddedSize, nil
125+
return commitment, paddedSize, nil
126126
}
127127

128128
func (pio *pieceIO) ReadPiece(r io.Reader) (cid.Cid, error) {

pieceio/pieceio_test.go

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,26 @@ import (
55
"context"
66
"fmt"
77

8+
"io"
9+
"testing"
10+
811
"github.com/filecoin-project/go-fil-markets/filestore"
912
fsmocks "github.com/filecoin-project/go-fil-markets/filestore/mocks"
1013
"github.com/filecoin-project/go-fil-markets/pieceio"
1114
"github.com/filecoin-project/go-fil-markets/pieceio/cario"
1215
pmocks "github.com/filecoin-project/go-fil-markets/pieceio/mocks"
16+
1317
"github.com/filecoin-project/go-sectorbuilder"
18+
"github.com/filecoin-project/specs-actors/actors/abi"
19+
20+
"github.com/ipfs/go-cid"
1421
dag "github.com/ipfs/go-merkledag"
1522
dstest "github.com/ipfs/go-merkledag/test"
1623
ipldfree "github.com/ipld/go-ipld-prime/impl/free"
1724
"github.com/ipld/go-ipld-prime/traversal/selector"
1825
"github.com/ipld/go-ipld-prime/traversal/selector/builder"
1926
"github.com/stretchr/testify/mock"
2027
"github.com/stretchr/testify/require"
21-
"io"
22-
"testing"
2328
)
2429

2530
func Test_ThereAndBackAgain(t *testing.T) {
@@ -65,7 +70,7 @@ func Test_ThereAndBackAgain(t *testing.T) {
6570
ssb.ExploreIndex(1, ssb.ExploreRecursive(selector.RecursionLimitNone(), ssb.ExploreAll(ssb.ExploreRecursiveEdge()))))
6671
}).Node()
6772

68-
bytes, tmpPath, _, err := pio.GeneratePieceCommitmentToFile(nd3.Cid(), node)
73+
pcid, tmpPath, _, err := pio.GeneratePieceCommitmentToFile(abi.RegisteredProof_StackedDRG2KiBPoSt, nd3.Cid(), node)
6974
require.NoError(t, err)
7075
tmpFile, err := store.Open(tmpPath)
7176
require.NoError(t, err)
@@ -75,9 +80,7 @@ func Test_ThereAndBackAgain(t *testing.T) {
7580
deferErr = store.Delete(tmpFile.Path())
7681
require.NoError(t, deferErr)
7782
}()
78-
for _, b := range bytes {
79-
require.NotEqual(t, 0, b)
80-
}
83+
require.NotEqual(t, pcid, cid.Undef)
8184
bufSize := int64(16) // small buffer to illustrate the logic
8285
buf := make([]byte, bufSize)
8386
var readErr error
@@ -155,7 +158,7 @@ func Test_StoreRestoreMemoryBuffer(t *testing.T) {
155158
ssb.ExploreIndex(1, ssb.ExploreRecursive(selector.RecursionLimitNone(), ssb.ExploreAll(ssb.ExploreRecursiveEdge()))))
156159
}).Node()
157160

158-
commitment, tmpPath, paddedSize, err := pio.GeneratePieceCommitmentToFile(nd3.Cid(), node)
161+
commitment, tmpPath, paddedSize, err := pio.GeneratePieceCommitmentToFile(abi.RegisteredProof_StackedDRG2KiBPoSt, nd3.Cid(), node)
159162
require.NoError(t, err)
160163
tmpFile, err := store.Open(tmpPath)
161164
require.NoError(t, err)
@@ -169,16 +172,14 @@ func Test_StoreRestoreMemoryBuffer(t *testing.T) {
169172
_, err = tmpFile.Seek(0, io.SeekStart)
170173
require.NoError(t, err)
171174

172-
for _, b := range commitment {
173-
require.NotEqual(t, 0, b)
174-
}
175+
require.NotEqual(t, commitment, cid.Undef)
175176
buf := make([]byte, paddedSize)
176177
_, err = tmpFile.Read(buf)
177178
require.NoError(t, err)
178179
buffer := bytes.NewBuffer(buf)
179-
secondCommitment, err := sectorbuilder.GeneratePieceCommitment(buffer, paddedSize)
180+
secondCommitment, err := sectorbuilder.GeneratePieceCIDFromFile(abi.RegisteredProof_StackedDRG2KiBPoSt, buffer, paddedSize)
180181
require.NoError(t, err)
181-
require.Equal(t, commitment, secondCommitment[:])
182+
require.Equal(t, commitment, secondCommitment)
182183
}
183184

184185
func Test_PieceCommitmentEquivalenceMemoryFile(t *testing.T) {
@@ -222,13 +223,13 @@ func Test_PieceCommitmentEquivalenceMemoryFile(t *testing.T) {
222223
ssb.ExploreIndex(1, ssb.ExploreRecursive(selector.RecursionLimitNone(), ssb.ExploreAll(ssb.ExploreRecursiveEdge()))))
223224
}).Node()
224225

225-
fcommitment, tmpPath, fpaddedSize, ferr := pio.GeneratePieceCommitmentToFile(nd3.Cid(), node)
226+
fcommitment, tmpPath, fpaddedSize, ferr := pio.GeneratePieceCommitmentToFile(abi.RegisteredProof_StackedDRG2KiBPoSt, nd3.Cid(), node)
226227
defer func() {
227228
deferErr := store.Delete(tmpPath)
228229
require.NoError(t, deferErr)
229230
}()
230231

231-
mcommitment, mpaddedSize, merr := pio.GeneratePieceCommitment(nd3.Cid(), node)
232+
mcommitment, mpaddedSize, merr := pio.GeneratePieceCommitment(abi.RegisteredProof_StackedDRG2KiBPoSt, nd3.Cid(), node)
232233
require.Equal(t, fcommitment, mcommitment)
233234
require.Equal(t, fpaddedSize, mpaddedSize)
234235
require.Equal(t, ferr, merr)
@@ -273,7 +274,7 @@ func Test_Failures(t *testing.T) {
273274
fsmock := fsmocks.FileStore{}
274275
fsmock.On("CreateTemp").Return(nil, fmt.Errorf("Failed"))
275276
pio := pieceio.NewPieceIOWithStore(nil, &fsmock, sourceBs)
276-
_, _, _, err := pio.GeneratePieceCommitmentToFile(nd3.Cid(), node)
277+
_, _, _, err := pio.GeneratePieceCommitmentToFile(abi.RegisteredProof_StackedDRG2KiBPoSt, nd3.Cid(), node)
277278
require.Error(t, err)
278279
})
279280
t.Run("write CAR fails", func(t *testing.T) {
@@ -285,7 +286,7 @@ func Test_Failures(t *testing.T) {
285286
any := mock.Anything
286287
ciomock.On("WriteCar", any, any, any, any, any).Return(fmt.Errorf("failed to write car"))
287288
pio := pieceio.NewPieceIOWithStore(&ciomock, store, sourceBs)
288-
_, _, _, err = pio.GeneratePieceCommitmentToFile(nd3.Cid(), node)
289+
_, _, _, err = pio.GeneratePieceCommitmentToFile(abi.RegisteredProof_StackedDRG2KiBPoSt, nd3.Cid(), node)
289290
require.Error(t, err)
290291
})
291292
t.Run("prepare CAR fails", func(t *testing.T) {
@@ -294,7 +295,7 @@ func Test_Failures(t *testing.T) {
294295
any := mock.Anything
295296
ciomock.On("PrepareCar", any, any, any, any).Return(nil, fmt.Errorf("failed to prepare car"))
296297
pio := pieceio.NewPieceIO(&ciomock, sourceBs)
297-
_, _, err := pio.GeneratePieceCommitment(nd3.Cid(), node)
298+
_, _, err := pio.GeneratePieceCommitment(abi.RegisteredProof_StackedDRG2KiBPoSt, nd3.Cid(), node)
298299
require.Error(t, err)
299300
})
300301
t.Run("PreparedCard dump operation fails", func(t *testing.T) {
@@ -305,7 +306,7 @@ func Test_Failures(t *testing.T) {
305306
preparedCarMock.On("Size").Return(uint64(1000))
306307
preparedCarMock.On("Dump", any).Return(fmt.Errorf("failed to write car"))
307308
pio := pieceio.NewPieceIO(&ciomock, sourceBs)
308-
_, _, err := pio.GeneratePieceCommitment(nd3.Cid(), node)
309+
_, _, err := pio.GeneratePieceCommitment(abi.RegisteredProof_StackedDRG2KiBPoSt, nd3.Cid(), node)
309310
require.Error(t, err)
310311
})
311312
t.Run("seek fails", func(t *testing.T) {
@@ -332,7 +333,7 @@ func Test_Failures(t *testing.T) {
332333
mockfile.On("Seek", mock.Anything, mock.Anything).Return(int64(0), fmt.Errorf("seek failed"))
333334

334335
pio := pieceio.NewPieceIOWithStore(cio, &fsmock, sourceBs)
335-
_, _, _, err := pio.GeneratePieceCommitmentToFile(nd3.Cid(), node)
336+
_, _, _, err := pio.GeneratePieceCommitmentToFile(abi.RegisteredProof_StackedDRG2KiBPoSt, nd3.Cid(), node)
336337
require.Error(t, err)
337338
})
338339
}

pieceio/types.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ type ReadStore interface {
2121

2222
// PieceIO converts between payloads and pieces
2323
type PieceIO interface {
24-
GeneratePieceCommitment(payloadCid cid.Cid, selector ipld.Node) ([]byte, abi.UnpaddedPieceSize, error)
24+
GeneratePieceCommitment(rt abi.RegisteredProof, payloadCid cid.Cid, selector ipld.Node) (cid.Cid, abi.UnpaddedPieceSize, error)
2525
ReadPiece(r io.Reader) (cid.Cid, error)
2626
}
2727

2828
type PieceIOWithStore interface {
2929
PieceIO
30-
GeneratePieceCommitmentToFile(payloadCid cid.Cid, selector ipld.Node) ([]byte, filestore.Path, abi.UnpaddedPieceSize, error)
30+
GeneratePieceCommitmentToFile(rt abi.RegisteredProof, payloadCid cid.Cid, selector ipld.Node) (cid.Cid, filestore.Path, abi.UnpaddedPieceSize, error)
3131
}

0 commit comments

Comments
 (0)