can we store it? YES WE CAN

This commit is contained in:
whyrusleeping
2019-07-29 12:08:47 -07:00
parent f1432826d5
commit 4fb4835b35
7 changed files with 74 additions and 19 deletions
-1
View File
@@ -249,7 +249,6 @@ func Config(cfg *config.Root) Option {
),
ApplyIf(func(s *Settings) bool { return s.nodeType == nodeStorageMiner },
Override(new(*sectorbuilder.SectorBuilderConfig), modules.SectorBuilderConfig),
Override(new(*sectorbuilder.SectorBuilder), sectorbuilder.New),
),
)
+23
View File
@@ -1,6 +1,9 @@
package impl
import (
"context"
"io/ioutil"
"github.com/filecoin-project/go-lotus/api"
"github.com/filecoin-project/go-lotus/lib/sectorbuilder"
)
@@ -11,4 +14,24 @@ type StorageMinerAPI struct {
SectorBuilder *sectorbuilder.SectorBuilder
}
func (sm *StorageMinerAPI) StoreGarbageData(ctx context.Context) (uint64, error) {
data := make([]byte, 1024)
fi, err := ioutil.TempFile("", "lotus-garbage")
if err != nil {
return 0, err
}
if _, err := fi.Write(data); err != nil {
return 0, err
}
fi.Close()
sectorId, err := sm.SectorBuilder.AddPiece("foo", 1024, fi.Name())
if err != nil {
return 0, err
}
return sectorId, err
}
var _ api.StorageMiner = &StorageMinerAPI{}
+18 -16
View File
@@ -219,22 +219,24 @@ func LoadGenesis(genBytes []byte) func(blockstore.Blockstore) Genesis {
}
}
func SectorBuilderConfig(storagePath string) (*sectorbuilder.SectorBuilderConfig, error) {
metadata := filepath.Join(storagePath, "meta")
sealed := filepath.Join(storagePath, "sealed")
staging := filepath.Join(storagePath, "staging")
func SectorBuilderConfig(storagePath string) func() (*sectorbuilder.SectorBuilderConfig, error) {
return func() (*sectorbuilder.SectorBuilderConfig, error) {
metadata := filepath.Join(storagePath, "meta")
sealed := filepath.Join(storagePath, "sealed")
staging := filepath.Join(storagePath, "staging")
// TODO: get the address of the miner actor
minerAddr, err := address.NewIDAddress(42)
if err != nil {
return nil, err
// TODO: get the address of the miner actor
minerAddr, err := address.NewIDAddress(42)
if err != nil {
return nil, err
}
return &sectorbuilder.SectorBuilderConfig{
Miner: minerAddr,
SectorSize: 1024,
MetadataDir: metadata,
SealedDir: sealed,
StagedDir: staging,
}, nil
}
return &sectorbuilder.SectorBuilderConfig{
Miner: minerAddr,
SectorSize: 1024,
MetadataDir: metadata,
SealedDir: sealed,
StagedDir: staging,
}, nil
}