feat: deals - show data transfer %

This commit is contained in:
Dirk McCormick
2021-02-10 09:56:23 +01:00
parent 0afe7325f6
commit b6c9ddccff
8 changed files with 41 additions and 24 deletions
+13 -2
View File
@@ -755,7 +755,13 @@ func (a *API) ClientDealPieceCID(ctx context.Context, root cid.Cid) (api.DataCID
w := &writer.Writer{}
bw := bufio.NewWriterSize(w, int(writer.CommPBuf))
err := car.WriteCar(ctx, dag, []cid.Cid{root}, w)
// Calculate the raw block size so we can figure out the transfer percentage
// (the raw block size is the denominator)
var rawBlockSize uint64
err := car.WriteCarWithWalker(ctx, dag, []cid.Cid{root}, w, func(nd ipld.Node) ([]*ipld.Link, error) {
rawBlockSize += uint64(len(nd.RawData()))
return nd.Links(), nil
})
if err != nil {
return api.DataCIDSize{}, err
}
@@ -765,7 +771,12 @@ func (a *API) ClientDealPieceCID(ctx context.Context, root cid.Cid) (api.DataCID
}
dataCIDSize, err := w.Sum()
return api.DataCIDSize(dataCIDSize), err
return api.DataCIDSize{
RawBlockSize: rawBlockSize,
PayloadSize: dataCIDSize.PayloadSize,
PieceSize: dataCIDSize.PieceSize,
PieceCID: dataCIDSize.PieceCID,
}, err
}
func (a *API) ClientGenCar(ctx context.Context, ref api.FileRef, outputPath string) error {