diff --git a/cmd/lotus-storage-miner/init.go b/cmd/lotus-storage-miner/init.go index 145487d58..94c8ee0c5 100644 --- a/cmd/lotus-storage-miner/init.go +++ b/cmd/lotus-storage-miner/init.go @@ -174,7 +174,7 @@ var initCmd = &cli.Command{ var localPaths []config.LocalPath if pssb := cctx.StringSlice("pre-sealed-sectors"); len(pssb) != 0 { - log.Infof("Setting up storage config with presealed sector: %v", pssb) + log.Infof("Setting up storage config with presealed sectors: %v", pssb) for _, psp := range pssb { psp, err := homedir.Expand(psp) @@ -249,11 +249,16 @@ func migratePreSealMeta(ctx context.Context, api lapi.FullNode, metadata string, return xerrors.Errorf("reading preseal metadata: %w", err) } - meta := genesis.Miner{} - if err := json.Unmarshal(b, &meta); err != nil { + psm := map[string]genesis.Miner{} + if err := json.Unmarshal(b, &psm); err != nil { return xerrors.Errorf("unmarshaling preseal metadata: %w", err) } + meta, ok := psm[maddr.String()] + if !ok { + return xerrors.Errorf("preseal file didn't contain metadata for miner %s", maddr) + } + maxSectorID := abi.SectorNumber(0) for _, sector := range meta.Sectors { sectorKey := datastore.NewKey(sealing.SectorStorePrefix).ChildString(fmt.Sprint(sector.SectorID)) @@ -327,6 +332,8 @@ func migratePreSealMeta(ctx context.Context, api lapi.FullNode, metadata string, }*/ } + log.Infof("Setting next sector ID to %d", maxSectorID+1) + buf := make([]byte, binary.MaxVarintLen64) size := binary.PutUvarint(buf, uint64(maxSectorID+1)) return mds.Put(datastore.NewKey("/storage/nextid"), buf[:size]) @@ -412,17 +419,30 @@ func storageMinerInit(ctx context.Context, cctx *cli.Context, api lapi.FullNode, return xerrors.Errorf("failed to start up genesis miner: %w", err) } - defer func() { - if err := m.Unregister(ctx, a); err != nil { - log.Error("failed to shut down storage miner: ", err) - } - }() + cerr := configureStorageMiner(ctx, api, a, peerid) - if err := configureStorageMiner(ctx, api, a, peerid); err != nil { + if err := m.Unregister(ctx, a); err != nil { + log.Error("failed to shut down storage miner: ", err) + } + + if cerr != nil { return xerrors.Errorf("failed to configure storage miner: %w", err) } } + if pssb := cctx.String("pre-sealed-metadata"); pssb != "" { + pssb, err := homedir.Expand(pssb) + if err != nil { + return err + } + + log.Infof("Importing pre-sealed sector metadata for %s", a) + + if err := migratePreSealMeta(ctx, api, pssb, a, mds); err != nil { + return xerrors.Errorf("migrating presealed sector metadata: %w", err) + } + } + return nil } diff --git a/cmd/lotus-storage-miner/storage.go b/cmd/lotus-storage-miner/storage.go index d022e3929..15de84b7f 100644 --- a/cmd/lotus-storage-miner/storage.go +++ b/cmd/lotus-storage-miner/storage.go @@ -3,7 +3,6 @@ package main import ( "encoding/json" "fmt" - "github.com/filecoin-project/specs-actors/actors/abi" "io/ioutil" "os" "path/filepath" @@ -16,6 +15,7 @@ import ( "github.com/filecoin-project/go-address" "github.com/filecoin-project/go-sectorbuilder" + "github.com/filecoin-project/specs-actors/actors/abi" lcli "github.com/filecoin-project/lotus/cli" "github.com/filecoin-project/lotus/storage/sealmgr/stores" @@ -264,7 +264,9 @@ var storageFindCmd = &cli.Command{ fmt.Printf("In %s (Unsealed: %t; Sealed: %t; Cache: %t)\n", id, info.unsealed, info.sealed, info.cache) fmt.Printf("\tSealing: %t; Storage: %t\n", info.store.CanSeal, info.store.CanSeal) if localPath, ok := local[id]; ok { - fmt.Printf("\tLocal: %s\n", localPath) + fmt.Printf("\tLocal (%s)\n", localPath) + } else { + fmt.Printf("\tRemote\n") } for _, l := range info.store.URLs { fmt.Printf("\tURL: %s\n", l) diff --git a/storage/sealing/fsm.go b/storage/sealing/fsm.go index 7bfb0c340..bd3031aca 100644 --- a/storage/sealing/fsm.go +++ b/storage/sealing/fsm.go @@ -85,7 +85,7 @@ func (m *Sealing) plan(events []statemachine.Event, state *SectorInfo) (func(sta for _, event := range events { l := Log{ Timestamp: uint64(time.Now().Unix()), - Message: fmt.Sprintf("%+v", event), + Message: fmt.Sprintf("%s", event), Kind: fmt.Sprintf("event;%T", event.User), } diff --git a/storage/sealmgr/stores/index.go b/storage/sealmgr/stores/index.go index 054bb9533..5c8fa9dfd 100644 --- a/storage/sealmgr/stores/index.go +++ b/storage/sealmgr/stores/index.go @@ -148,7 +148,7 @@ func (i *Index) StorageFindSector(ctx context.Context, s abi.SectorID, ft sector continue } - for _, id := range i.sectors[Decl{s, ft}] { + for _, id := range i.sectors[Decl{s, pathType}] { storageIDs[id]++ } }