Update sector-storage with ReadPiece impl
This commit is contained in:
		
							parent
							
								
									f06369166e
								
							
						
					
					
						commit
						e5c24ff32b
					
				| @ -2,6 +2,9 @@ package api | |||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
|  | 	"io" | ||||||
|  | 
 | ||||||
|  | 	"github.com/ipfs/go-cid" | ||||||
| 
 | 
 | ||||||
| 	"github.com/filecoin-project/sector-storage/sealtasks" | 	"github.com/filecoin-project/sector-storage/sealtasks" | ||||||
| 	"github.com/filecoin-project/sector-storage/stores" | 	"github.com/filecoin-project/sector-storage/stores" | ||||||
| @ -21,7 +24,11 @@ type WorkerApi interface { | |||||||
| 	Info(context.Context) (storiface.WorkerInfo, error) | 	Info(context.Context) (storiface.WorkerInfo, error) | ||||||
| 
 | 
 | ||||||
| 	storage.Sealer | 	storage.Sealer | ||||||
| 	Fetch(context.Context, abi.SectorID, stores.SectorFileType, bool) error | 
 | ||||||
|  | 	UnsealPiece(context.Context, abi.SectorID, storiface.UnpaddedByteIndex, abi.UnpaddedPieceSize, abi.SealRandomness, cid.Cid) error | ||||||
|  | 	ReadPiece(context.Context, io.Writer, abi.SectorID, storiface.UnpaddedByteIndex, abi.UnpaddedPieceSize) error | ||||||
|  | 
 | ||||||
|  | 	Fetch(context.Context, abi.SectorID, stores.SectorFileType, bool, stores.AcquireMode) error | ||||||
| 
 | 
 | ||||||
| 	Closing(context.Context) (<-chan struct{}, error) | 	Closing(context.Context) (<-chan struct{}, error) | ||||||
| } | } | ||||||
|  | |||||||
| @ -2,6 +2,7 @@ package apistruct | |||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
|  | 	"io" | ||||||
| 
 | 
 | ||||||
| 	"github.com/ipfs/go-cid" | 	"github.com/ipfs/go-cid" | ||||||
| 	"github.com/libp2p/go-libp2p-core/network" | 	"github.com/libp2p/go-libp2p-core/network" | ||||||
| @ -201,16 +202,16 @@ type StorageMinerStruct struct { | |||||||
| 		WorkerConnect func(context.Context, string) error                             `perm:"admin"` // TODO: worker perm
 | 		WorkerConnect func(context.Context, string) error                             `perm:"admin"` // TODO: worker perm
 | ||||||
| 		WorkerStats   func(context.Context) (map[uint64]storiface.WorkerStats, error) `perm:"admin"` | 		WorkerStats   func(context.Context) (map[uint64]storiface.WorkerStats, error) `perm:"admin"` | ||||||
| 
 | 
 | ||||||
| 		StorageList          func(context.Context) (map[stores.ID][]stores.Decl, error)                                                                     `perm:"admin"` | 		StorageList          func(context.Context) (map[stores.ID][]stores.Decl, error)                                                                                `perm:"admin"` | ||||||
| 		StorageLocal         func(context.Context) (map[stores.ID]string, error)                                                                            `perm:"admin"` | 		StorageLocal         func(context.Context) (map[stores.ID]string, error)                                                                                       `perm:"admin"` | ||||||
| 		StorageStat          func(context.Context, stores.ID) (stores.FsStat, error)                                                                        `perm:"admin"` | 		StorageStat          func(context.Context, stores.ID) (stores.FsStat, error)                                                                                   `perm:"admin"` | ||||||
| 		StorageAttach        func(context.Context, stores.StorageInfo, stores.FsStat) error                                                                 `perm:"admin"` | 		StorageAttach        func(context.Context, stores.StorageInfo, stores.FsStat) error                                                                            `perm:"admin"` | ||||||
| 		StorageDeclareSector func(context.Context, stores.ID, abi.SectorID, stores.SectorFileType) error                                                    `perm:"admin"` | 		StorageDeclareSector func(context.Context, stores.ID, abi.SectorID, stores.SectorFileType, bool) error                                                         `perm:"admin"` | ||||||
| 		StorageDropSector    func(context.Context, stores.ID, abi.SectorID, stores.SectorFileType) error                                                    `perm:"admin"` | 		StorageDropSector    func(context.Context, stores.ID, abi.SectorID, stores.SectorFileType) error                                                               `perm:"admin"` | ||||||
| 		StorageFindSector    func(context.Context, abi.SectorID, stores.SectorFileType, bool) ([]stores.StorageInfo, error)                                 `perm:"admin"` | 		StorageFindSector    func(context.Context, abi.SectorID, stores.SectorFileType, bool) ([]stores.SectorStorageInfo, error)                                      `perm:"admin"` | ||||||
| 		StorageInfo          func(context.Context, stores.ID) (stores.StorageInfo, error)                                                                   `perm:"admin"` | 		StorageInfo          func(context.Context, stores.ID) (stores.StorageInfo, error)                                                                              `perm:"admin"` | ||||||
| 		StorageBestAlloc     func(ctx context.Context, allocate stores.SectorFileType, spt abi.RegisteredProof, sealing bool) ([]stores.StorageInfo, error) `perm:"admin"` | 		StorageBestAlloc     func(ctx context.Context, allocate stores.SectorFileType, spt abi.RegisteredProof, sealing stores.PathType) ([]stores.StorageInfo, error) `perm:"admin"` | ||||||
| 		StorageReportHealth  func(ctx context.Context, id stores.ID, report stores.HealthReport) error                                                      `perm:"admin"` | 		StorageReportHealth  func(ctx context.Context, id stores.ID, report stores.HealthReport) error                                                                 `perm:"admin"` | ||||||
| 
 | 
 | ||||||
| 		DealsImportData func(ctx context.Context, dealPropCid cid.Cid, file string) error `perm:"write"` | 		DealsImportData func(ctx context.Context, dealPropCid cid.Cid, file string) error `perm:"write"` | ||||||
| 		DealsList       func(ctx context.Context) ([]storagemarket.StorageDeal, error)    `perm:"read"` | 		DealsList       func(ctx context.Context) ([]storagemarket.StorageDeal, error)    `perm:"read"` | ||||||
| @ -235,7 +236,10 @@ type WorkerStruct struct { | |||||||
| 		SealCommit2    func(context.Context, abi.SectorID, storage.Commit1Out) (storage.Proof, error)                                                                                                             `perm:"admin"` | 		SealCommit2    func(context.Context, abi.SectorID, storage.Commit1Out) (storage.Proof, error)                                                                                                             `perm:"admin"` | ||||||
| 		FinalizeSector func(context.Context, abi.SectorID) error                                                                                                                                                  `perm:"admin"` | 		FinalizeSector func(context.Context, abi.SectorID) error                                                                                                                                                  `perm:"admin"` | ||||||
| 
 | 
 | ||||||
| 		Fetch func(context.Context, abi.SectorID, stores.SectorFileType, bool) error `perm:"admin"` | 		UnsealPiece func(context.Context, abi.SectorID, storiface.UnpaddedByteIndex, abi.UnpaddedPieceSize, abi.SealRandomness, cid.Cid) error `perm:"admin"` | ||||||
|  | 		ReadPiece   func(context.Context, io.Writer, abi.SectorID, storiface.UnpaddedByteIndex, abi.UnpaddedPieceSize) error                   `perm:"admin"` | ||||||
|  | 
 | ||||||
|  | 		Fetch func(context.Context, abi.SectorID, stores.SectorFileType, bool, stores.AcquireMode) error `perm:"admin"` | ||||||
| 
 | 
 | ||||||
| 		Closing func(context.Context) (<-chan struct{}, error) `perm:"admin"` | 		Closing func(context.Context) (<-chan struct{}, error) `perm:"admin"` | ||||||
| 	} | 	} | ||||||
| @ -757,15 +761,15 @@ func (c *StorageMinerStruct) StorageAttach(ctx context.Context, si stores.Storag | |||||||
| 	return c.Internal.StorageAttach(ctx, si, st) | 	return c.Internal.StorageAttach(ctx, si, st) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *StorageMinerStruct) StorageDeclareSector(ctx context.Context, storageId stores.ID, s abi.SectorID, ft stores.SectorFileType) error { | func (c *StorageMinerStruct) StorageDeclareSector(ctx context.Context, storageId stores.ID, s abi.SectorID, ft stores.SectorFileType, primary bool) error { | ||||||
| 	return c.Internal.StorageDeclareSector(ctx, storageId, s, ft) | 	return c.Internal.StorageDeclareSector(ctx, storageId, s, ft, primary) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *StorageMinerStruct) StorageDropSector(ctx context.Context, storageId stores.ID, s abi.SectorID, ft stores.SectorFileType) error { | func (c *StorageMinerStruct) StorageDropSector(ctx context.Context, storageId stores.ID, s abi.SectorID, ft stores.SectorFileType) error { | ||||||
| 	return c.Internal.StorageDropSector(ctx, storageId, s, ft) | 	return c.Internal.StorageDropSector(ctx, storageId, s, ft) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *StorageMinerStruct) StorageFindSector(ctx context.Context, si abi.SectorID, types stores.SectorFileType, allowFetch bool) ([]stores.StorageInfo, error) { | func (c *StorageMinerStruct) StorageFindSector(ctx context.Context, si abi.SectorID, types stores.SectorFileType, allowFetch bool) ([]stores.SectorStorageInfo, error) { | ||||||
| 	return c.Internal.StorageFindSector(ctx, si, types, allowFetch) | 	return c.Internal.StorageFindSector(ctx, si, types, allowFetch) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -785,8 +789,8 @@ func (c *StorageMinerStruct) StorageInfo(ctx context.Context, id stores.ID) (sto | |||||||
| 	return c.Internal.StorageInfo(ctx, id) | 	return c.Internal.StorageInfo(ctx, id) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *StorageMinerStruct) StorageBestAlloc(ctx context.Context, allocate stores.SectorFileType, spt abi.RegisteredProof, sealing bool) ([]stores.StorageInfo, error) { | func (c *StorageMinerStruct) StorageBestAlloc(ctx context.Context, allocate stores.SectorFileType, spt abi.RegisteredProof, pt stores.PathType) ([]stores.StorageInfo, error) { | ||||||
| 	return c.Internal.StorageBestAlloc(ctx, allocate, spt, sealing) | 	return c.Internal.StorageBestAlloc(ctx, allocate, spt, pt) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (c *StorageMinerStruct) StorageReportHealth(ctx context.Context, id stores.ID, report stores.HealthReport) error { | func (c *StorageMinerStruct) StorageReportHealth(ctx context.Context, id stores.ID, report stores.HealthReport) error { | ||||||
| @ -859,8 +863,16 @@ func (w *WorkerStruct) FinalizeSector(ctx context.Context, sector abi.SectorID) | |||||||
| 	return w.Internal.FinalizeSector(ctx, sector) | 	return w.Internal.FinalizeSector(ctx, sector) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (w *WorkerStruct) Fetch(ctx context.Context, id abi.SectorID, fileType stores.SectorFileType, b bool) error { | func (w *WorkerStruct) UnsealPiece(ctx context.Context, id abi.SectorID, index storiface.UnpaddedByteIndex, size abi.UnpaddedPieceSize, randomness abi.SealRandomness, c cid.Cid) error { | ||||||
| 	return w.Internal.Fetch(ctx, id, fileType, b) | 	return w.Internal.UnsealPiece(ctx, id, index, size, randomness, c) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (w *WorkerStruct) ReadPiece(ctx context.Context, writer io.Writer, id abi.SectorID, index storiface.UnpaddedByteIndex, size abi.UnpaddedPieceSize) error { | ||||||
|  | 	return w.Internal.ReadPiece(ctx, writer, id, index, size) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (w *WorkerStruct) Fetch(ctx context.Context, id abi.SectorID, fileType stores.SectorFileType, b bool, am stores.AcquireMode) error { | ||||||
|  | 	return w.Internal.Fetch(ctx, id, fileType, b, am) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (w *WorkerStruct) Closing(ctx context.Context) (<-chan struct{}, error) { | func (w *WorkerStruct) Closing(ctx context.Context) (<-chan struct{}, error) { | ||||||
|  | |||||||
| @ -562,15 +562,10 @@ func runSeals(sb *ffiwrapper.Sealer, sbfs *basicfs.Provider, numSectors int, mid | |||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			// TODO: RM unsealed sector first
 | 			err := sb.UnsealPiece(context.TODO(), abi.SectorID{Miner: mid, Number: 1}, 0, abi.UnpaddedPieceSize(sectorSize), ticket, cids.Unsealed) | ||||||
| 			rc, err := sb.ReadPieceFromSealedSector(context.TODO(), abi.SectorID{Miner: mid, Number: 1}, 0, abi.UnpaddedPieceSize(sectorSize), ticket, cids.Unsealed) |  | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				return nil, nil, err | 				return nil, nil, err | ||||||
| 			} | 			} | ||||||
| 
 |  | ||||||
| 			if err := rc.Close(); err != nil { |  | ||||||
| 				return nil, nil, err |  | ||||||
| 			} |  | ||||||
| 		} | 		} | ||||||
| 		unseal := time.Now() | 		unseal := time.Now() | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -436,7 +436,7 @@ func storageMinerInit(ctx context.Context, cctx *cli.Context, api lapi.FullNode, | |||||||
| 
 | 
 | ||||||
| 			smgr, err := sectorstorage.New(ctx, lr, stores.NewIndex(), &ffiwrapper.Config{ | 			smgr, err := sectorstorage.New(ctx, lr, stores.NewIndex(), &ffiwrapper.Config{ | ||||||
| 				SealProofType: spt, | 				SealProofType: spt, | ||||||
| 			}, sectorstorage.SealerConfig{true, true, true}, nil, sa) | 			}, sectorstorage.SealerConfig{true, true, true, true}, nil, sa) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				return err | 				return err | ||||||
| 			} | 			} | ||||||
|  | |||||||
| @ -249,7 +249,7 @@ var storageListCmd = &cli.Command{ | |||||||
| 
 | 
 | ||||||
| type storedSector struct { | type storedSector struct { | ||||||
| 	id    stores.ID | 	id    stores.ID | ||||||
| 	store stores.StorageInfo | 	store stores.SectorStorageInfo | ||||||
| 
 | 
 | ||||||
| 	unsealed, sealed, cache bool | 	unsealed, sealed, cache bool | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										6
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								go.mod
									
									
									
									
									
								
							| @ -18,7 +18,7 @@ require ( | |||||||
| 	github.com/filecoin-project/filecoin-ffi v0.26.1-0.20200508175440-05b30afeb00d | 	github.com/filecoin-project/filecoin-ffi v0.26.1-0.20200508175440-05b30afeb00d | ||||||
| 	github.com/filecoin-project/go-address v0.0.2-0.20200504173055-8b6f2fb2b3ef | 	github.com/filecoin-project/go-address v0.0.2-0.20200504173055-8b6f2fb2b3ef | ||||||
| 	github.com/filecoin-project/go-amt-ipld/v2 v2.0.1-0.20200424220931-6263827e49f2 | 	github.com/filecoin-project/go-amt-ipld/v2 v2.0.1-0.20200424220931-6263827e49f2 | ||||||
| 	github.com/filecoin-project/go-bitfield v0.0.1 | 	github.com/filecoin-project/go-bitfield v0.0.2-0.20200518150651-562fdb554b6e | ||||||
| 	github.com/filecoin-project/go-cbor-util v0.0.0-20191219014500-08c40a1e63a2 | 	github.com/filecoin-project/go-cbor-util v0.0.0-20191219014500-08c40a1e63a2 | ||||||
| 	github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03 | 	github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03 | ||||||
| 	github.com/filecoin-project/go-data-transfer v0.3.0 | 	github.com/filecoin-project/go-data-transfer v0.3.0 | ||||||
| @ -29,7 +29,7 @@ require ( | |||||||
| 	github.com/filecoin-project/go-paramfetch v0.0.2-0.20200505180321-973f8949ea8e | 	github.com/filecoin-project/go-paramfetch v0.0.2-0.20200505180321-973f8949ea8e | ||||||
| 	github.com/filecoin-project/go-statestore v0.1.0 | 	github.com/filecoin-project/go-statestore v0.1.0 | ||||||
| 	github.com/filecoin-project/go-storedcounter v0.0.0-20200421200003-1c99c62e8a5b | 	github.com/filecoin-project/go-storedcounter v0.0.0-20200421200003-1c99c62e8a5b | ||||||
| 	github.com/filecoin-project/sector-storage v0.0.0-20200522011946-a59ca7536a95 | 	github.com/filecoin-project/sector-storage v0.0.0-20200529175241-9df0cdf19326 | ||||||
| 	github.com/filecoin-project/specs-actors v0.5.4 | 	github.com/filecoin-project/specs-actors v0.5.4 | ||||||
| 	github.com/filecoin-project/specs-storage v0.0.0-20200417134612-61b2d91a6102 | 	github.com/filecoin-project/specs-storage v0.0.0-20200417134612-61b2d91a6102 | ||||||
| 	github.com/filecoin-project/storage-fsm v0.0.0-20200528050623-cdada6e88960 | 	github.com/filecoin-project/storage-fsm v0.0.0-20200528050623-cdada6e88960 | ||||||
| @ -67,7 +67,7 @@ require ( | |||||||
| 	github.com/ipfs/go-path v0.0.7 | 	github.com/ipfs/go-path v0.0.7 | ||||||
| 	github.com/ipfs/go-unixfs v0.2.4 | 	github.com/ipfs/go-unixfs v0.2.4 | ||||||
| 	github.com/ipfs/interface-go-ipfs-core v0.2.3 | 	github.com/ipfs/interface-go-ipfs-core v0.2.3 | ||||||
| 	github.com/ipld/go-car v0.1.1-0.20200430185908-8ff2e52a4c88 | 	github.com/ipld/go-car v0.1.1-0.20200526133713-1c7508d55aae | ||||||
| 	github.com/ipld/go-ipld-prime v0.0.2-0.20200428162820-8b59dc292b8e | 	github.com/ipld/go-ipld-prime v0.0.2-0.20200428162820-8b59dc292b8e | ||||||
| 	github.com/kelseyhightower/envconfig v1.4.0 | 	github.com/kelseyhightower/envconfig v1.4.0 | ||||||
| 	github.com/lib/pq v1.2.0 | 	github.com/lib/pq v1.2.0 | ||||||
|  | |||||||
							
								
								
									
										16
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								go.sum
									
									
									
									
									
								
							| @ -10,6 +10,7 @@ github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ | |||||||
| github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= | github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= | ||||||
| github.com/DataDog/zstd v1.4.1 h1:3oxKN3wbHibqx897utPC2LTQU4J+IHWWJO+glkAkpFM= | github.com/DataDog/zstd v1.4.1 h1:3oxKN3wbHibqx897utPC2LTQU4J+IHWWJO+glkAkpFM= | ||||||
| github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= | github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= | ||||||
|  | github.com/GeertJohan/go.incremental v1.0.0 h1:7AH+pY1XUgQE4Y1HcXYaMqAI0m9yrFqo/jt0CW30vsg= | ||||||
| github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= | github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0= | ||||||
| github.com/GeertJohan/go.rice v1.0.0 h1:KkI6O9uMaQU3VEKaj01ulavtF7o1fWT7+pk/4voiMLQ= | github.com/GeertJohan/go.rice v1.0.0 h1:KkI6O9uMaQU3VEKaj01ulavtF7o1fWT7+pk/4voiMLQ= | ||||||
| github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0= | github.com/GeertJohan/go.rice v1.0.0/go.mod h1:eH6gbSOAUv07dQuZVnBmoDP8mgsM1rtixis4Tib9if0= | ||||||
| @ -118,6 +119,8 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs | |||||||
| github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018/go.mod h1:rQYf4tfk5sSwFsnDg3qYaBxSjsD9S8+59vW0dKUgme4= | github.com/davidlazar/go-crypto v0.0.0-20170701192655-dcfb0a7ac018/go.mod h1:rQYf4tfk5sSwFsnDg3qYaBxSjsD9S8+59vW0dKUgme4= | ||||||
| github.com/davidlazar/go-crypto v0.0.0-20190912175916-7055855a373f h1:BOaYiTvg8p9vBUXpklC22XSK/mifLF7lG9jtmYYi3Tc= | github.com/davidlazar/go-crypto v0.0.0-20190912175916-7055855a373f h1:BOaYiTvg8p9vBUXpklC22XSK/mifLF7lG9jtmYYi3Tc= | ||||||
| github.com/davidlazar/go-crypto v0.0.0-20190912175916-7055855a373f/go.mod h1:rQYf4tfk5sSwFsnDg3qYaBxSjsD9S8+59vW0dKUgme4= | github.com/davidlazar/go-crypto v0.0.0-20190912175916-7055855a373f/go.mod h1:rQYf4tfk5sSwFsnDg3qYaBxSjsD9S8+59vW0dKUgme4= | ||||||
|  | github.com/detailyang/go-fallocate v0.0.0-20180908115635-432fa640bd2e h1:lj77EKYUpYXTd8CD/+QMIf8b6OIOTsfEBSXiAzuEHTU= | ||||||
|  | github.com/detailyang/go-fallocate v0.0.0-20180908115635-432fa640bd2e/go.mod h1:3ZQK6DMPSz/QZ73jlWxBtUhNA8xZx7LzUFSq/OfP8vk= | ||||||
| github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= | github.com/dgraph-io/badger v1.5.5-0.20190226225317-8115aed38f8f/go.mod h1:VZxzAIRPHRVNRKRo6AXrX9BJegn6il06VMTZVJYCIjQ= | ||||||
| github.com/dgraph-io/badger v1.6.0-rc1/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= | github.com/dgraph-io/badger v1.6.0-rc1/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= | ||||||
| github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= | github.com/dgraph-io/badger v1.6.0/go.mod h1:zwt7syl517jmP8s94KqSxTlM6IMsdhYy6psNgSztDR4= | ||||||
| @ -177,6 +180,8 @@ github.com/filecoin-project/go-bitfield v0.0.0-20200309034705-8c7ac40bd550/go.mo | |||||||
| github.com/filecoin-project/go-bitfield v0.0.0-20200416002808-b3ee67ec9060/go.mod h1:iodsLxOFZnqKtjj2zkgqzoGNrv6vUqj69AT/J8DKXEw= | github.com/filecoin-project/go-bitfield v0.0.0-20200416002808-b3ee67ec9060/go.mod h1:iodsLxOFZnqKtjj2zkgqzoGNrv6vUqj69AT/J8DKXEw= | ||||||
| github.com/filecoin-project/go-bitfield v0.0.1 h1:Xg/JnrqqE77aJVKdbEyR04n9FZQWhwrN+buDgQCVpZU= | github.com/filecoin-project/go-bitfield v0.0.1 h1:Xg/JnrqqE77aJVKdbEyR04n9FZQWhwrN+buDgQCVpZU= | ||||||
| github.com/filecoin-project/go-bitfield v0.0.1/go.mod h1:Ry9/iUlWSyjPUzlAvdnfy4Gtvrq4kWmWDztCU1yEgJY= | github.com/filecoin-project/go-bitfield v0.0.1/go.mod h1:Ry9/iUlWSyjPUzlAvdnfy4Gtvrq4kWmWDztCU1yEgJY= | ||||||
|  | github.com/filecoin-project/go-bitfield v0.0.2-0.20200518150651-562fdb554b6e h1:gkG/7G+iKy4He+IiQNeQn+nndFznb/vCoOR8iRQsm60= | ||||||
|  | github.com/filecoin-project/go-bitfield v0.0.2-0.20200518150651-562fdb554b6e/go.mod h1:Ry9/iUlWSyjPUzlAvdnfy4Gtvrq4kWmWDztCU1yEgJY= | ||||||
| github.com/filecoin-project/go-cbor-util v0.0.0-20191219014500-08c40a1e63a2 h1:av5fw6wmm58FYMgJeoB/lK9XXrgdugYiTqkdxjTy9k8= | github.com/filecoin-project/go-cbor-util v0.0.0-20191219014500-08c40a1e63a2 h1:av5fw6wmm58FYMgJeoB/lK9XXrgdugYiTqkdxjTy9k8= | ||||||
| github.com/filecoin-project/go-cbor-util v0.0.0-20191219014500-08c40a1e63a2/go.mod h1:pqTiPHobNkOVM5thSRsHYjyQfq7O5QSCMhvuu9JoDlg= | github.com/filecoin-project/go-cbor-util v0.0.0-20191219014500-08c40a1e63a2/go.mod h1:pqTiPHobNkOVM5thSRsHYjyQfq7O5QSCMhvuu9JoDlg= | ||||||
| github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03 h1:2pMXdBnCiXjfCYx/hLqFxccPoqsSveQFxVLvNxy9bus= | github.com/filecoin-project/go-crypto v0.0.0-20191218222705-effae4ea9f03 h1:2pMXdBnCiXjfCYx/hLqFxccPoqsSveQFxVLvNxy9bus= | ||||||
| @ -202,8 +207,8 @@ github.com/filecoin-project/go-statestore v0.1.0/go.mod h1:LFc9hD+fRxPqiHiaqUEZO | |||||||
| github.com/filecoin-project/go-storedcounter v0.0.0-20200421200003-1c99c62e8a5b h1:fkRZSPrYpk42PV3/lIXiL0LHetxde7vyYYvSsttQtfg= | github.com/filecoin-project/go-storedcounter v0.0.0-20200421200003-1c99c62e8a5b h1:fkRZSPrYpk42PV3/lIXiL0LHetxde7vyYYvSsttQtfg= | ||||||
| github.com/filecoin-project/go-storedcounter v0.0.0-20200421200003-1c99c62e8a5b/go.mod h1:Q0GQOBtKf1oE10eSXSlhN45kDBdGvEcVOqMiffqX+N8= | github.com/filecoin-project/go-storedcounter v0.0.0-20200421200003-1c99c62e8a5b/go.mod h1:Q0GQOBtKf1oE10eSXSlhN45kDBdGvEcVOqMiffqX+N8= | ||||||
| github.com/filecoin-project/sector-storage v0.0.0-20200508203401-a74812ba12f3/go.mod h1:B+xzopr/oWZJz2hBL5Ekb7Obcum5ntmfbaAUlaaho28= | github.com/filecoin-project/sector-storage v0.0.0-20200508203401-a74812ba12f3/go.mod h1:B+xzopr/oWZJz2hBL5Ekb7Obcum5ntmfbaAUlaaho28= | ||||||
| github.com/filecoin-project/sector-storage v0.0.0-20200522011946-a59ca7536a95 h1:wNpbsUY11P7+3yBfHOXsH+tAyferf1BVSe5S+HRm+7s= | github.com/filecoin-project/sector-storage v0.0.0-20200529175241-9df0cdf19326 h1:WIIvOzK9KaWMFXhvivUxeg4cdMzQ/5/MW+bNpYj43wU= | ||||||
| github.com/filecoin-project/sector-storage v0.0.0-20200522011946-a59ca7536a95/go.mod h1:1UpuWCUC7XNfgyufyQQq+/40JSzhfGdgcwauK55C8gk= | github.com/filecoin-project/sector-storage v0.0.0-20200529175241-9df0cdf19326/go.mod h1:hUQo3z/5B8t8Yl+XgIxBqgNfYtIcCYzKjWWY27dHBCk= | ||||||
| github.com/filecoin-project/specs-actors v0.0.0-20200210130641-2d1fbd8672cf/go.mod h1:xtDZUB6pe4Pksa/bAJbJ693OilaC5Wbot9jMhLm3cZA= | github.com/filecoin-project/specs-actors v0.0.0-20200210130641-2d1fbd8672cf/go.mod h1:xtDZUB6pe4Pksa/bAJbJ693OilaC5Wbot9jMhLm3cZA= | ||||||
| github.com/filecoin-project/specs-actors v0.0.0-20200409043918-e569f4a2f504/go.mod h1:mdJraXq5vMy0+/FqVQIrnNlpQ/Em6zeu06G/ltQ0/lA= | github.com/filecoin-project/specs-actors v0.0.0-20200409043918-e569f4a2f504/go.mod h1:mdJraXq5vMy0+/FqVQIrnNlpQ/Em6zeu06G/ltQ0/lA= | ||||||
| github.com/filecoin-project/specs-actors v0.3.0/go.mod h1:nQYnFbQ7Y0bHZyq6HDEuVlCPR+U3z5Q3wMOQ+2aiV+Y= | github.com/filecoin-project/specs-actors v0.3.0/go.mod h1:nQYnFbQ7Y0bHZyq6HDEuVlCPR+U3z5Q3wMOQ+2aiV+Y= | ||||||
| @ -510,8 +515,8 @@ github.com/ipfs/iptb v1.4.0/go.mod h1:1rzHpCYtNp87/+hTxG5TfCVn/yMY3dKnLn8tBiMfdm | |||||||
| github.com/ipfs/iptb-plugins v0.2.1 h1:au4HWn9/pRPbkxA08pDx2oRAs4cnbgQWgV0teYXuuGA= | github.com/ipfs/iptb-plugins v0.2.1 h1:au4HWn9/pRPbkxA08pDx2oRAs4cnbgQWgV0teYXuuGA= | ||||||
| github.com/ipfs/iptb-plugins v0.2.1/go.mod h1:QXMbtIWZ+jRsW8a4h13qAKU7jcM7qaittO8wOsTP0Rs= | github.com/ipfs/iptb-plugins v0.2.1/go.mod h1:QXMbtIWZ+jRsW8a4h13qAKU7jcM7qaittO8wOsTP0Rs= | ||||||
| github.com/ipld/go-car v0.1.1-0.20200429200904-c222d793c339/go.mod h1:eajxljm6I8o3LitnFeVEmucwZmz7+yLSiKce9yYMefg= | github.com/ipld/go-car v0.1.1-0.20200429200904-c222d793c339/go.mod h1:eajxljm6I8o3LitnFeVEmucwZmz7+yLSiKce9yYMefg= | ||||||
| github.com/ipld/go-car v0.1.1-0.20200430185908-8ff2e52a4c88 h1:kjpIMwbJk/OEKM8hexj+HAVZsOgVr4byKML3s++s1b0= | github.com/ipld/go-car v0.1.1-0.20200526133713-1c7508d55aae h1:OV9dxl8iPMCOD8Vi/hvFwRh3JWPXqmkYSVxWr9JnEzM= | ||||||
| github.com/ipld/go-car v0.1.1-0.20200430185908-8ff2e52a4c88/go.mod h1:2mvxpu4dKRnuH3mj5u6KW/tmRSCcXvy/KYiJ4nC6h4c= | github.com/ipld/go-car v0.1.1-0.20200526133713-1c7508d55aae/go.mod h1:2mvxpu4dKRnuH3mj5u6KW/tmRSCcXvy/KYiJ4nC6h4c= | ||||||
| github.com/ipld/go-ipld-prime v0.0.2-0.20200428162820-8b59dc292b8e h1:ZISbJlM0urTANR9KRfRaqlBmyOj5uUtxs2r4Up9IXsA= | github.com/ipld/go-ipld-prime v0.0.2-0.20200428162820-8b59dc292b8e h1:ZISbJlM0urTANR9KRfRaqlBmyOj5uUtxs2r4Up9IXsA= | ||||||
| github.com/ipld/go-ipld-prime v0.0.2-0.20200428162820-8b59dc292b8e/go.mod h1:uVIwe/u0H4VdKv3kaN1ck7uCb6yD9cFLS9/ELyXbsw8= | github.com/ipld/go-ipld-prime v0.0.2-0.20200428162820-8b59dc292b8e/go.mod h1:uVIwe/u0H4VdKv3kaN1ck7uCb6yD9cFLS9/ELyXbsw8= | ||||||
| github.com/ipld/go-ipld-prime-proto v0.0.0-20200428191222-c1ffdadc01e1 h1:K1Ysr7kgIlo7YQkPqdkA6H7BVdIugvuAz7OQUTJxLdE= | github.com/ipld/go-ipld-prime-proto v0.0.0-20200428191222-c1ffdadc01e1 h1:K1Ysr7kgIlo7YQkPqdkA6H7BVdIugvuAz7OQUTJxLdE= | ||||||
| @ -536,6 +541,7 @@ github.com/jbenet/goprocess v0.1.3/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZl | |||||||
| github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0o= | github.com/jbenet/goprocess v0.1.4 h1:DRGOFReOMqqDNXwW70QkacFW0YN9QnwLV0Vqk+3oU0o= | ||||||
| github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= | github.com/jbenet/goprocess v0.1.4/go.mod h1:5yspPrukOVuOLORacaBi858NqyClJPQxYZlqdZVfqY4= | ||||||
| github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= | github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= | ||||||
|  | github.com/jessevdk/go-flags v1.4.0 h1:4IU2WS7AumrZ/40jfhf4QVDMsQwqA7VEHozFRrGARJA= | ||||||
| github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= | github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= | ||||||
| github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= | github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= | ||||||
| github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8l6qbCUTSiRLG/iKnW3K3/QfPPuSsBt4= | github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8l6qbCUTSiRLG/iKnW3K3/QfPPuSsBt4= | ||||||
| @ -1130,7 +1136,9 @@ github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtX | |||||||
| github.com/urfave/cli/v2 v2.0.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= | github.com/urfave/cli/v2 v2.0.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= | ||||||
| github.com/urfave/cli/v2 v2.2.0 h1:JTTnM6wKzdA0Jqodd966MVj4vWbbquZykeX1sKbe2C4= | github.com/urfave/cli/v2 v2.2.0 h1:JTTnM6wKzdA0Jqodd966MVj4vWbbquZykeX1sKbe2C4= | ||||||
| github.com/urfave/cli/v2 v2.2.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= | github.com/urfave/cli/v2 v2.2.0/go.mod h1:SE9GqnLQmjVa0iPEY0f1w3ygNIYcIJ0OKPMoW2caLfQ= | ||||||
|  | github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= | ||||||
| github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= | github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= | ||||||
|  | github.com/valyala/fasttemplate v1.0.1 h1:tY9CJiPnMXf1ERmG2EyK7gNUd+c6RKGD0IfU8WdUSz8= | ||||||
| github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= | github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= | ||||||
| github.com/wangjia184/sortedset v0.0.0-20160527075905-f5d03557ba30/go.mod h1:YkocrP2K2tcw938x9gCOmT5G5eCD6jsTz0SZuyAqwIE= | github.com/wangjia184/sortedset v0.0.0-20160527075905-f5d03557ba30/go.mod h1:YkocrP2K2tcw938x9gCOmT5G5eCD6jsTz0SZuyAqwIE= | ||||||
| github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= | github.com/warpfork/go-wish v0.0.0-20180510122957-5ad1f5abf436/go.mod h1:x6AKhvSSexNrVSrViXSHUEbICjmGXhtgABaHIySUSGw= | ||||||
|  | |||||||
| @ -2,13 +2,13 @@ package retrievaladapter | |||||||
| 
 | 
 | ||||||
| import ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
|  | 	"github.com/filecoin-project/sector-storage/storiface" | ||||||
| 	"io" | 	"io" | ||||||
| 
 | 
 | ||||||
| 	"github.com/filecoin-project/go-address" | 	"github.com/filecoin-project/go-address" | ||||||
| 	"github.com/filecoin-project/go-fil-markets/retrievalmarket" | 	"github.com/filecoin-project/go-fil-markets/retrievalmarket" | ||||||
| 	"github.com/filecoin-project/go-fil-markets/shared" | 	"github.com/filecoin-project/go-fil-markets/shared" | ||||||
| 	sectorstorage "github.com/filecoin-project/sector-storage" | 	sectorstorage "github.com/filecoin-project/sector-storage" | ||||||
| 	"github.com/filecoin-project/sector-storage/ffiwrapper" |  | ||||||
| 	"github.com/filecoin-project/specs-actors/actors/abi" | 	"github.com/filecoin-project/specs-actors/actors/abi" | ||||||
| 	"github.com/filecoin-project/specs-actors/actors/builtin/paych" | 	"github.com/filecoin-project/specs-actors/actors/builtin/paych" | ||||||
| 
 | 
 | ||||||
| @ -54,7 +54,14 @@ func (rpn *retrievalProviderNode) UnsealSector(ctx context.Context, sectorID uin | |||||||
| 		Miner:  abi.ActorID(mid), | 		Miner:  abi.ActorID(mid), | ||||||
| 		Number: abi.SectorNumber(sectorID), | 		Number: abi.SectorNumber(sectorID), | ||||||
| 	} | 	} | ||||||
| 	return rpn.sealer.ReadPieceFromSealedSector(ctx, sid, ffiwrapper.UnpaddedByteIndex(offset), abi.UnpaddedPieceSize(length), si.TicketValue, *si.CommD) | 
 | ||||||
|  | 	r, w := io.Pipe() | ||||||
|  | 	go func() { | ||||||
|  | 		err := rpn.sealer.ReadPiece(ctx, w, sid, storiface.UnpaddedByteIndex(offset), abi.UnpaddedPieceSize(length), si.TicketValue, *si.CommD) | ||||||
|  | 		_ = w.CloseWithError(err) | ||||||
|  | 	}() | ||||||
|  | 
 | ||||||
|  | 	return r, nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func (rpn *retrievalProviderNode) SavePaymentVoucher(ctx context.Context, paymentChannel address.Address, voucher *paych.SignedVoucher, proof []byte, expectedAmount abi.TokenAmount, tok shared.TipSetToken) (abi.TokenAmount, error) { | func (rpn *retrievalProviderNode) SavePaymentVoucher(ctx context.Context, paymentChannel address.Address, voucher *paych.SignedVoucher, proof []byte, expectedAmount abi.TokenAmount, tok shared.TipSetToken) (abi.TokenAmount, error) { | ||||||
|  | |||||||
| @ -107,6 +107,7 @@ func DefaultStorageMiner() *StorageMiner { | |||||||
| 			AllowPreCommit1: true, | 			AllowPreCommit1: true, | ||||||
| 			AllowPreCommit2: true, | 			AllowPreCommit2: true, | ||||||
| 			AllowCommit:     true, | 			AllowCommit:     true, | ||||||
|  | 			AllowUnseal:     true, | ||||||
| 		}, | 		}, | ||||||
| 	} | 	} | ||||||
| 	cfg.Common.API.ListenAddress = "/ip4/127.0.0.1/tcp/2345/http" | 	cfg.Common.API.ListenAddress = "/ip4/127.0.0.1/tcp/2345/http" | ||||||
|  | |||||||
| @ -319,6 +319,10 @@ func (fsr *fsLockedRepo) SetStorage(c func(*stores.StorageConfig)) error { | |||||||
| 	return config.WriteStorageFile(fsr.join(fsStorageConfig), sc) | 	return config.WriteStorageFile(fsr.join(fsStorageConfig), sc) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func (fsr *fsLockedRepo) Stat(path string) (stores.FsStat, error) { | ||||||
|  | 	return stores.Stat(path) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func (fsr *fsLockedRepo) SetAPIEndpoint(ma multiaddr.Multiaddr) error { | func (fsr *fsLockedRepo) SetAPIEndpoint(ma multiaddr.Multiaddr) error { | ||||||
| 	if err := fsr.stillValid(); err != nil { | 	if err := fsr.stillValid(); err != nil { | ||||||
| 		return err | 		return err | ||||||
|  | |||||||
| @ -40,6 +40,7 @@ type LockedRepo interface { | |||||||
| 
 | 
 | ||||||
| 	GetStorage() (stores.StorageConfig, error) | 	GetStorage() (stores.StorageConfig, error) | ||||||
| 	SetStorage(func(*stores.StorageConfig)) error | 	SetStorage(func(*stores.StorageConfig)) error | ||||||
|  | 	Stat(path string) (stores.FsStat, error) | ||||||
| 
 | 
 | ||||||
| 	// SetAPIEndpoint sets the endpoint of the current API
 | 	// SetAPIEndpoint sets the endpoint of the current API
 | ||||||
| 	// so it can be read by API clients
 | 	// so it can be read by API clients
 | ||||||
|  | |||||||
| @ -61,6 +61,10 @@ func (lmem *lockedMemRepo) SetStorage(c func(*stores.StorageConfig)) error { | |||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func (lmem *lockedMemRepo) Stat(path string) (stores.FsStat, error) { | ||||||
|  | 	return stores.Stat(path) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func (lmem *lockedMemRepo) Path() string { | func (lmem *lockedMemRepo) Path() string { | ||||||
| 	lmem.Lock() | 	lmem.Lock() | ||||||
| 	defer lmem.Unlock() | 	defer lmem.Unlock() | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user