From 62146b7bb370084c62e3db3a1dbf2a1113eb5634 Mon Sep 17 00:00:00 2001 From: Travis Person Date: Tue, 4 Feb 2020 22:56:56 +0000 Subject: [PATCH 1/3] Add pre-sealed-metadata flag to miner init Metadata for presealed sectors now must be specified --- cmd/lotus-storage-miner/init.go | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/cmd/lotus-storage-miner/init.go b/cmd/lotus-storage-miner/init.go index 5c888aa2e..e70eb042c 100644 --- a/cmd/lotus-storage-miner/init.go +++ b/cmd/lotus-storage-miner/init.go @@ -77,6 +77,10 @@ var initCmd = &cli.Command{ Name: "pre-sealed-sectors", Usage: "specify set of presealed sectors for starting as a genesis miner", }, + &cli.StringFlag{ + Name: "pre-sealed-metadata", + Usage: "specify the metadata file for the presealed sectors", + }, &cli.BoolFlag{ Name: "nosync", Usage: "don't check full-node sync status", @@ -220,13 +224,13 @@ var initCmd = &cli.Command{ }, } -func migratePreSealMeta(ctx context.Context, api lapi.FullNode, presealDir string, maddr address.Address, mds dtypes.MetadataDS) error { - presealDir, err := homedir.Expand(presealDir) +func migratePreSealMeta(ctx context.Context, api lapi.FullNode, metadata string, maddr address.Address, mds dtypes.MetadataDS) error { + metadata, err := homedir.Expand(metadata) if err != nil { return xerrors.Errorf("expanding preseal dir: %w", err) } - b, err := ioutil.ReadFile(filepath.Join(presealDir, "pre-seal-"+maddr.String()+".json")) + b, err := ioutil.ReadFile(metadata) if err != nil { return xerrors.Errorf("reading preseal metadata: %w", err) } @@ -396,20 +400,20 @@ func storageMinerInit(ctx context.Context, cctx *cli.Context, api lapi.FullNode, } } - if pssb := cctx.String("pre-sealed-sectors"); pssb != "" { - pssb, err := homedir.Expand(pssb) - if err != nil { - return err - } + return nil + } - 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) - } + if pssb := cctx.String("pre-sealed-metadata"); pssb != "" { + pssb, err := homedir.Expand(pssb) + if err != nil { + return err } - return nil + 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) + } } if err := configureStorageMiner(ctx, api, a, peerid); err != nil { From cf8e90fa3ea61fddacd1d78c70308423c64268e5 Mon Sep 17 00:00:00 2001 From: Travis Person Date: Tue, 4 Feb 2020 22:57:51 +0000 Subject: [PATCH 2/3] Load sectorbuilder config during storage miner init --- cmd/lotus-storage-miner/init.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/cmd/lotus-storage-miner/init.go b/cmd/lotus-storage-miner/init.go index e70eb042c..975f906bb 100644 --- a/cmd/lotus-storage-miner/init.go +++ b/cmd/lotus-storage-miner/init.go @@ -34,6 +34,7 @@ import ( "github.com/filecoin-project/lotus/genesis" "github.com/filecoin-project/lotus/markets/utils" "github.com/filecoin-project/lotus/miner" + "github.com/filecoin-project/lotus/node/config" "github.com/filecoin-project/lotus/node/modules" "github.com/filecoin-project/lotus/node/modules/dtypes" "github.com/filecoin-project/lotus/node/repo" @@ -373,7 +374,22 @@ func storageMinerInit(ctx context.Context, cctx *cli.Context, api lapi.FullNode, return err } - sbcfg, err := modules.SectorBuilderConfig(sectorbuilder.SimplePath(lr.Path()), 2, false, false)(mds, api) + c, err := lr.Config() + if err != nil { + return err + } + + cfg, ok := c.(*config.StorageMiner) + if !ok { + return xerrors.Errorf("invalid config from repo, got: %T", c) + } + + scfg := sectorbuilder.SimplePath(lr.Path()) + if len(cfg.SectorBuilder.Storage) > 0 { + scfg = cfg.SectorBuilder.Storage + } + + sbcfg, err := modules.SectorBuilderConfig(scfg, 2, false, false)(mds, api) if err != nil { return xerrors.Errorf("getting genesis miner sector builder config: %w", err) } From e9470d873e2639254dd1101146fab857fdf6e543 Mon Sep 17 00:00:00 2001 From: Travis Person Date: Tue, 4 Feb 2020 23:06:18 +0000 Subject: [PATCH 3/3] Update usage --- documentation/en/local-dev-net.md | 2 +- lotuspond/spawn.go | 3 ++- scripts/dev/sminer-init | 2 +- scripts/init-network.sh | 6 +++--- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/documentation/en/local-dev-net.md b/documentation/en/local-dev-net.md index ac9608822..4418daaf6 100644 --- a/documentation/en/local-dev-net.md +++ b/documentation/en/local-dev-net.md @@ -26,7 +26,7 @@ Create the genesis block and start up the first node: Set up the genesis miner: ```sh -./lotus-storage-miner init --genesis-miner --actor=t0101 --sector-size=1024 --pre-sealed-sectors=~/.genesis-sectors --nosync +./lotus-storage-miner init --genesis-miner --actor=t0101 --sector-size=1024 --pre-sealed-sectors=~/.genesis-sectors --pre-sealed-metadata=~/.genesis-sectors/pre-seal-t0101.json --nosync ``` Now, finally, start up the miner: diff --git a/lotuspond/spawn.go b/lotuspond/spawn.go index bc0602fa6..fd30fec02 100644 --- a/lotuspond/spawn.go +++ b/lotuspond/spawn.go @@ -142,7 +142,8 @@ func (api *api) SpawnStorage(fullNodeRepo string) (nodeInfo, error) { initArgs := []string{"init", "--nosync"} if fullNodeRepo == api.running[1].meta.Repo { - initArgs = []string{"init", "--actor=t0101", "--genesis-miner", "--pre-sealed-sectors=" + filepath.Join(fullNodeRepo, "preseal")} + presealPrefix := filepath.Join(fullNodeRepo, "preseal") + initArgs = []string{"init", "--actor=t0101", "--genesis-miner", "--pre-sealed-sectors=" + presealPrefix, "--pre-sealed-metadata=" + filepath.Join(presealPrefix, "pre-seal-t0101.json")} } id := atomic.AddInt32(&api.cmds, 1) diff --git a/scripts/dev/sminer-init b/scripts/dev/sminer-init index b14e6e14b..ce38d5ba2 100755 --- a/scripts/dev/sminer-init +++ b/scripts/dev/sminer-init @@ -4,4 +4,4 @@ set -o xtrace export TRUST_PARAMS=1 -go run -tags=debug ./cmd/lotus-storage-miner init --actor=t0101 --genesis-miner --pre-sealed-sectors=~/.genesis-sectors +go run -tags=debug ./cmd/lotus-storage-miner init --actor=t0101 --genesis-miner --pre-sealed-sectors=~/.genesis-sectors --pre-sealed-metadata=~/.genesis-sectors/pre-seal-t0101.json diff --git a/scripts/init-network.sh b/scripts/init-network.sh index 873417f7f..0d8c0536b 100755 --- a/scripts/init-network.sh +++ b/scripts/init-network.sh @@ -86,12 +86,12 @@ mdt0111=$(mktemp -d) mdt0222=$(mktemp -d) mdt0333=$(mktemp -d) -env LOTUS_PATH="${ldt0111}" LOTUS_STORAGE_PATH="${mdt0111}" ./lotus-storage-miner init --genesis-miner --actor=t0111 --pre-sealed-sectors="${sdt0111}" --nosync=true --sector-size="${SECTOR_SIZE}" || true +env LOTUS_PATH="${ldt0111}" LOTUS_STORAGE_PATH="${mdt0111}" ./lotus-storage-miner init --genesis-miner --actor=t0111 --pre-sealed-sectors="${sdt0111}" --pre-sealed-metadata="${sdt0111}/pre-seal-t0111.json" --nosync=true --sector-size="${SECTOR_SIZE}" || true env LOTUS_PATH="${ldt0111}" LOTUS_STORAGE_PATH="${mdt0111}" ./lotus-storage-miner run --nosync & mpid=$! -env LOTUS_PATH="${ldt0222}" LOTUS_STORAGE_PATH="${mdt0222}" ./lotus-storage-miner init --actor=t0222 --pre-sealed-sectors="${sdt0222}" --nosync=true --sector-size="${SECTOR_SIZE}" || true -env LOTUS_PATH="${ldt0333}" LOTUS_STORAGE_PATH="${mdt0333}" ./lotus-storage-miner init --actor=t0333 --pre-sealed-sectors="${sdt0333}" --nosync=true --sector-size="${SECTOR_SIZE}" || true +env LOTUS_PATH="${ldt0222}" LOTUS_STORAGE_PATH="${mdt0222}" ./lotus-storage-miner init --actor=t0222 --pre-sealed-sectors="${sdt0222}" --pre-sealed-metadata="${sdt0222}/pre-seal-t0222.json" --nosync=true --sector-size="${SECTOR_SIZE}" || true +env LOTUS_PATH="${ldt0333}" LOTUS_STORAGE_PATH="${mdt0333}" ./lotus-storage-miner init --actor=t0333 --pre-sealed-sectors="${sdt0333}" --pre-sealed-metadata="${sdt0333}/pre-seal-t0333.json" --nosync=true --sector-size="${SECTOR_SIZE}" || true kill $mpid wait $mpid