From bfcfb199a09321d1893738f4a0243a54539f9abe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Fri, 8 Oct 2021 14:54:02 +0200 Subject: [PATCH] Add storage-id flag to proving check --- cmd/lotus-miner/proving.go | 36 +++++++++++++++++++++++++---- documentation/en/cli-lotus-miner.md | 7 +++--- 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/cmd/lotus-miner/proving.go b/cmd/lotus-miner/proving.go index 5dfe5d4ceda..ee15785fefb 100644 --- a/cmd/lotus-miner/proving.go +++ b/cmd/lotus-miner/proving.go @@ -17,6 +17,7 @@ import ( "github.com/filecoin-project/lotus/chain/store" "github.com/filecoin-project/lotus/chain/types" lcli "github.com/filecoin-project/lotus/cli" + "github.com/filecoin-project/lotus/extern/sector-storage/stores" "github.com/filecoin-project/specs-storage/storage" ) @@ -360,6 +361,10 @@ var provingCheckProvableCmd = &cli.Command{ Name: "slow", Usage: "run slower checks", }, + &cli.StringFlag{ + Name: "storage-id", + Usage: "filter sectors by storage path (path id)", + }, }, Action: func(cctx *cli.Context) error { if cctx.Args().Len() != 1 { @@ -408,6 +413,21 @@ var provingCheckProvableCmd = &cli.Command{ tw := tabwriter.NewWriter(os.Stdout, 2, 4, 2, ' ', 0) _, _ = fmt.Fprintln(tw, "deadline\tpartition\tsector\tstatus") + var filter map[abi.SectorID]struct{} + + if cctx.IsSet("storage-id") { + sl, err := sapi.StorageList(ctx) + if err != nil { + return err + } + decls := sl[stores.ID(cctx.String("storage-id"))] + + filter = map[abi.SectorID]struct{}{} + for _, decl := range decls { + filter[decl.SectorID] = struct{}{} + } + } + for parIdx, par := range partitions { sectors := make(map[abi.SectorNumber]struct{}) @@ -418,13 +438,21 @@ var provingCheckProvableCmd = &cli.Command{ var tocheck []storage.SectorRef for _, info := range sectorInfos { + si := abi.SectorID{ + Miner: abi.ActorID(mid), + Number: info.SectorNumber, + } + + if filter != nil { + if _, found := filter[si]; !found { + continue + } + } + sectors[info.SectorNumber] = struct{}{} tocheck = append(tocheck, storage.SectorRef{ ProofType: info.SealProof, - ID: abi.SectorID{ - Miner: abi.ActorID(mid), - Number: info.SectorNumber, - }, + ID: si, }) } diff --git a/documentation/en/cli-lotus-miner.md b/documentation/en/cli-lotus-miner.md index 5a0888621d7..df1e702d99f 100644 --- a/documentation/en/cli-lotus-miner.md +++ b/documentation/en/cli-lotus-miner.md @@ -1899,9 +1899,10 @@ USAGE: lotus-miner proving check [command options] OPTIONS: - --only-bad print only bad sectors (default: false) - --slow run slower checks (default: false) - --help, -h show help (default: false) + --only-bad print only bad sectors (default: false) + --slow run slower checks (default: false) + --storage-id value filter sectors by storage path (path id) + --help, -h show help (default: false) ```