From f9641d70afd37ca4db9aca946f688e329da352c4 Mon Sep 17 00:00:00 2001 From: Jiaying Wang <42981373+jennijuju@users.noreply.github.com> Date: Thu, 24 Feb 2022 16:27:24 -0500 Subject: [PATCH 1/9] fix: sealing: missing file type --- extern/sector-storage/stores/http_handler.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/extern/sector-storage/stores/http_handler.go b/extern/sector-storage/stores/http_handler.go index 771a9a3a1..80fa87408 100644 --- a/extern/sector-storage/stores/http_handler.go +++ b/extern/sector-storage/stores/http_handler.go @@ -294,6 +294,10 @@ func ftFromString(t string) (storiface.SectorFileType, error) { return storiface.FTSealed, nil case storiface.FTCache.String(): return storiface.FTCache, nil + case storiface.FTUpdate.String(): + return storiface.FTUpdate, nil + case storiface.FTUpdateCache.String(): + return storiface.FTUpdateCache, nil default: return 0, xerrors.Errorf("unknown sector file type: '%s'", t) } From e5de2379903aa84865cb6ad4c080156adc3f27ef Mon Sep 17 00:00:00 2001 From: zenground0 Date: Wed, 23 Feb 2022 09:56:47 -0700 Subject: [PATCH 2/9] Fix fault tracker to handle snap deals --- api/api_storage.go | 2 +- api/proxy_gen.go | 8 +- api/version.go | 2 +- build/openrpc/miner.json.gz | Bin 11745 -> 11768 bytes cmd/lotus-miner/proving.go | 4 +- documentation/en/api-v0-methods-miner.md | 1 + extern/sector-storage/faults.go | 96 ++++++++++++----------- extern/sector-storage/mock/mock.go | 2 +- node/impl/storminer.go | 4 +- storage/wdpost_run.go | 4 +- storage/wdpost_run_test.go | 2 +- 11 files changed, 67 insertions(+), 58 deletions(-) diff --git a/api/api_storage.go b/api/api_storage.go index 398921e40..762b18b37 100644 --- a/api/api_storage.go +++ b/api/api_storage.go @@ -253,7 +253,7 @@ type StorageMiner interface { // the path specified when calling CreateBackup is within the base path CreateBackup(ctx context.Context, fpath string) error //perm:admin - CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, sectors []storage.SectorRef, expensive bool) (map[abi.SectorNumber]string, error) //perm:admin + CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, sectors []storage.SectorRef, update []bool, expensive bool) (map[abi.SectorNumber]string, error) //perm:admin ComputeProof(ctx context.Context, ssi []builtin.ExtendedSectorInfo, rand abi.PoStRandomness, poStEpoch abi.ChainEpoch, nv abinetwork.Version) ([]builtin.PoStProof, error) //perm:read } diff --git a/api/proxy_gen.go b/api/proxy_gen.go index 0eecb27b9..4353da5fe 100644 --- a/api/proxy_gen.go +++ b/api/proxy_gen.go @@ -619,7 +619,7 @@ type StorageMinerStruct struct { ActorSectorSize func(p0 context.Context, p1 address.Address) (abi.SectorSize, error) `perm:"read"` - CheckProvable func(p0 context.Context, p1 abi.RegisteredPoStProof, p2 []storage.SectorRef, p3 bool) (map[abi.SectorNumber]string, error) `perm:"admin"` + CheckProvable func(p0 context.Context, p1 abi.RegisteredPoStProof, p2 []storage.SectorRef, p3 []bool, p4 bool) (map[abi.SectorNumber]string, error) `perm:"admin"` ComputeProof func(p0 context.Context, p1 []builtin.ExtendedSectorInfo, p2 abi.PoStRandomness, p3 abi.ChainEpoch, p4 abinetwork.Version) ([]builtin.PoStProof, error) `perm:"read"` @@ -3704,14 +3704,14 @@ func (s *StorageMinerStub) ActorSectorSize(p0 context.Context, p1 address.Addres return *new(abi.SectorSize), ErrNotSupported } -func (s *StorageMinerStruct) CheckProvable(p0 context.Context, p1 abi.RegisteredPoStProof, p2 []storage.SectorRef, p3 bool) (map[abi.SectorNumber]string, error) { +func (s *StorageMinerStruct) CheckProvable(p0 context.Context, p1 abi.RegisteredPoStProof, p2 []storage.SectorRef, p3 []bool, p4 bool) (map[abi.SectorNumber]string, error) { if s.Internal.CheckProvable == nil { return *new(map[abi.SectorNumber]string), ErrNotSupported } - return s.Internal.CheckProvable(p0, p1, p2, p3) + return s.Internal.CheckProvable(p0, p1, p2, p3, p4) } -func (s *StorageMinerStub) CheckProvable(p0 context.Context, p1 abi.RegisteredPoStProof, p2 []storage.SectorRef, p3 bool) (map[abi.SectorNumber]string, error) { +func (s *StorageMinerStub) CheckProvable(p0 context.Context, p1 abi.RegisteredPoStProof, p2 []storage.SectorRef, p3 []bool, p4 bool) (map[abi.SectorNumber]string, error) { return *new(map[abi.SectorNumber]string), ErrNotSupported } diff --git a/api/version.go b/api/version.go index 228dcbd10..9f4f73513 100644 --- a/api/version.go +++ b/api/version.go @@ -57,7 +57,7 @@ var ( FullAPIVersion0 = newVer(1, 5, 0) FullAPIVersion1 = newVer(2, 2, 0) - MinerAPIVersion0 = newVer(1, 3, 0) + MinerAPIVersion0 = newVer(1, 4, 0) WorkerAPIVersion0 = newVer(1, 5, 0) ) diff --git a/build/openrpc/miner.json.gz b/build/openrpc/miner.json.gz index e4cd5c9b827614c3e277177091a8fa58f50b23a2..2120341d7f19c16dc00be611c070fd72dc2d5ccc 100644 GIT binary patch delta 10025 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 delta 9985 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

PlB3d;NjA|f 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

(l=a00960 LUd>|=E=K|YSdc&B diff --git a/cmd/lotus-miner/proving.go b/cmd/lotus-miner/proving.go index ee15785fe..f8c23a1c9 100644 --- a/cmd/lotus-miner/proving.go +++ b/cmd/lotus-miner/proving.go @@ -437,6 +437,7 @@ var provingCheckProvableCmd = &cli.Command{ } var tocheck []storage.SectorRef + var update []bool for _, info := range sectorInfos { si := abi.SectorID{ Miner: abi.ActorID(mid), @@ -454,9 +455,10 @@ var provingCheckProvableCmd = &cli.Command{ ProofType: info.SealProof, ID: si, }) + update = append(update, info.SectorKeyCID != nil) } - bad, err := sapi.CheckProvable(ctx, info.WindowPoStProofType, tocheck, cctx.Bool("slow")) + bad, err := sapi.CheckProvable(ctx, info.WindowPoStProofType, tocheck, update, cctx.Bool("slow")) if err != nil { return err } diff --git a/documentation/en/api-v0-methods-miner.md b/documentation/en/api-v0-methods-miner.md index f9982d697..5837ab039 100644 --- a/documentation/en/api-v0-methods-miner.md +++ b/documentation/en/api-v0-methods-miner.md @@ -310,6 +310,7 @@ Inputs: [ 8, null, + null, true ] ``` diff --git a/extern/sector-storage/faults.go b/extern/sector-storage/faults.go index f7a764e50..5c542055b 100644 --- a/extern/sector-storage/faults.go +++ b/extern/sector-storage/faults.go @@ -19,11 +19,11 @@ import ( // FaultTracker TODO: Track things more actively type FaultTracker interface { - CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, sectors []storage.SectorRef, rg storiface.RGetter) (map[abi.SectorID]string, error) + CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, sectors []storage.SectorRef, update []bool, rg storiface.RGetter) (map[abi.SectorID]string, error) } // CheckProvable returns unprovable sectors -func (m *Manager) CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, sectors []storage.SectorRef, rg storiface.RGetter) (map[abi.SectorID]string, error) { +func (m *Manager) CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, sectors []storage.SectorRef, update []bool, rg storiface.RGetter) (map[abi.SectorID]string, error) { var bad = make(map[abi.SectorID]string) ssize, err := pp.SectorSize() @@ -32,72 +32,76 @@ func (m *Manager) CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, } // TODO: More better checks - for _, sector := range sectors { + for i, sector := range sectors { err := func() error { ctx, cancel := context.WithCancel(ctx) defer cancel() + var fReplica string + var fCache string - locked, err := m.index.StorageTryLock(ctx, sector.ID, storiface.FTSealed|storiface.FTCache, storiface.FTNone) - if err != nil { - return xerrors.Errorf("acquiring sector lock: %w", err) - } - - if !locked { - log.Warnw("CheckProvable Sector FAULT: can't acquire read lock", "sector", sector) - bad[sector.ID] = fmt.Sprint("can't acquire read lock") - return nil - } - - lp, _, err := m.localStore.AcquireSector(ctx, sector, storiface.FTSealed|storiface.FTCache, storiface.FTNone, storiface.PathStorage, storiface.AcquireMove) - if err != nil { - log.Warnw("CheckProvable Sector FAULT: acquire sector in checkProvable", "sector", sector, "error", err) - bad[sector.ID] = fmt.Sprintf("acquire sector failed: %s", err) - return nil - } - - // temporary hack to make the check work with snapdeals - // will go away in https://github.com/filecoin-project/lotus/pull/7971 - if lp.Sealed == "" || lp.Cache == "" { - // maybe it's update + if update[i] { lockedUpdate, err := m.index.StorageTryLock(ctx, sector.ID, storiface.FTUpdate|storiface.FTUpdateCache, storiface.FTNone) if err != nil { return xerrors.Errorf("acquiring sector lock: %w", err) } - if lockedUpdate { - lp, _, err = m.localStore.AcquireSector(ctx, sector, storiface.FTUpdate|storiface.FTUpdateCache, storiface.FTNone, storiface.PathStorage, storiface.AcquireMove) - if err != nil { - log.Warnw("CheckProvable Sector FAULT: acquire sector in checkProvable", "sector", sector, "error", err) - bad[sector.ID] = fmt.Sprintf("acquire sector failed: %s", err) - return nil - } - lp.Sealed, lp.Cache = lp.Update, lp.UpdateCache + if !lockedUpdate { + log.Warnw("CheckProvable Sector FAULT: can't acquire read lock on update replica", "sector", sector) + bad[sector.ID] = fmt.Sprint("can't acquire read lock") + return nil } + lp, _, err := m.localStore.AcquireSector(ctx, sector, storiface.FTUpdate|storiface.FTUpdateCache, storiface.FTNone, storiface.PathStorage, storiface.AcquireMove) + if err != nil { + log.Warnw("CheckProvable Sector FAULT: acquire sector update replica in checkProvable", "sector", sector, "error", err) + bad[sector.ID] = fmt.Sprintf("acquire sector failed: %s", err) + return nil + } + fReplica, fCache = lp.Update, lp.UpdateCache + } else { + locked, err := m.index.StorageTryLock(ctx, sector.ID, storiface.FTSealed|storiface.FTCache, storiface.FTNone) + if err != nil { + return xerrors.Errorf("acquiring sector lock: %w", err) + } + + if !locked { + log.Warnw("CheckProvable Sector FAULT: can't acquire read lock", "sector", sector) + bad[sector.ID] = fmt.Sprint("can't acquire read lock") + return nil + } + + lp, _, err := m.localStore.AcquireSector(ctx, sector, storiface.FTSealed|storiface.FTCache, storiface.FTNone, storiface.PathStorage, storiface.AcquireMove) + if err != nil { + log.Warnw("CheckProvable Sector FAULT: acquire sector in checkProvable", "sector", sector, "error", err) + bad[sector.ID] = fmt.Sprintf("acquire sector failed: %s", err) + return nil + } + fReplica, fCache = lp.Sealed, lp.Cache + } - if lp.Sealed == "" || lp.Cache == "" { - log.Warnw("CheckProvable Sector FAULT: cache and/or sealed paths not found", "sector", sector, "sealed", lp.Sealed, "cache", lp.Cache) - bad[sector.ID] = fmt.Sprintf("cache and/or sealed paths not found, cache %q, sealed %q", lp.Cache, lp.Sealed) + if fReplica == "" || fCache == "" { + log.Warnw("CheckProvable Sector FAULT: cache and/or sealed paths not found", "sector", sector, "sealed", fReplica, "cache", fCache) + bad[sector.ID] = fmt.Sprintf("cache and/or sealed paths not found, cache %q, sealed %q", fCache, fReplica) return nil } toCheck := map[string]int64{ - lp.Sealed: 1, - filepath.Join(lp.Cache, "p_aux"): 0, + fReplica: 1, + filepath.Join(fCache, "p_aux"): 0, } - addCachePathsForSectorSize(toCheck, lp.Cache, ssize) + addCachePathsForSectorSize(toCheck, fCache, ssize) for p, sz := range toCheck { st, err := os.Stat(p) if err != nil { - log.Warnw("CheckProvable Sector FAULT: sector file stat error", "sector", sector, "sealed", lp.Sealed, "cache", lp.Cache, "file", p, "err", err) + log.Warnw("CheckProvable Sector FAULT: sector file stat error", "sector", sector, "sealed", fReplica, "cache", fCache, "file", p, "err", err) bad[sector.ID] = fmt.Sprintf("%s", err) return nil } if sz != 0 { if st.Size() != int64(ssize)*sz { - log.Warnw("CheckProvable Sector FAULT: sector file is wrong size", "sector", sector, "sealed", lp.Sealed, "cache", lp.Cache, "file", p, "size", st.Size(), "expectSize", int64(ssize)*sz) + log.Warnw("CheckProvable Sector FAULT: sector file is wrong size", "sector", sector, "sealed", fReplica, "cache", fCache, "file", p, "size", st.Size(), "expectSize", int64(ssize)*sz) bad[sector.ID] = fmt.Sprintf("%s is wrong size (got %d, expect %d)", p, st.Size(), int64(ssize)*sz) return nil } @@ -118,14 +122,14 @@ func (m *Manager) CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, sector.ID.Number, }) if err != nil { - log.Warnw("CheckProvable Sector FAULT: generating challenges", "sector", sector, "sealed", lp.Sealed, "cache", lp.Cache, "err", err) + log.Warnw("CheckProvable Sector FAULT: generating challenges", "sector", sector, "sealed", fReplica, "cache", fCache, "err", err) bad[sector.ID] = fmt.Sprintf("generating fallback challenges: %s", err) return nil } commr, err := rg(ctx, sector.ID) if err != nil { - log.Warnw("CheckProvable Sector FAULT: getting commR", "sector", sector, "sealed", lp.Sealed, "cache", lp.Cache, "err", err) + log.Warnw("CheckProvable Sector FAULT: getting commR", "sector", sector, "sealed", fReplica, "cache", fCache, "err", err) bad[sector.ID] = fmt.Sprintf("getting commR: %s", err) return nil } @@ -136,12 +140,12 @@ func (m *Manager) CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, SectorNumber: sector.ID.Number, SealedCID: commr, }, - CacheDirPath: lp.Cache, + CacheDirPath: fCache, PoStProofType: wpp, - SealedSectorPath: lp.Sealed, + SealedSectorPath: fReplica, }, ch.Challenges[sector.ID.Number]) if err != nil { - log.Warnw("CheckProvable Sector FAULT: generating vanilla proof", "sector", sector, "sealed", lp.Sealed, "cache", lp.Cache, "err", err) + log.Warnw("CheckProvable Sector FAULT: generating vanilla proof", "sector", sector, "sealed", fReplica, "cache", fCache, "err", err) bad[sector.ID] = fmt.Sprintf("generating vanilla proof: %s", err) return nil } diff --git a/extern/sector-storage/mock/mock.go b/extern/sector-storage/mock/mock.go index 771265176..20abad309 100644 --- a/extern/sector-storage/mock/mock.go +++ b/extern/sector-storage/mock/mock.go @@ -505,7 +505,7 @@ func (mgr *SectorMgr) Remove(ctx context.Context, sector storage.SectorRef) erro return nil } -func (mgr *SectorMgr) CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, ids []storage.SectorRef, rg storiface.RGetter) (map[abi.SectorID]string, error) { +func (mgr *SectorMgr) CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, ids []storage.SectorRef, update []bool, rg storiface.RGetter) (map[abi.SectorID]string, error) { bad := map[abi.SectorID]string{} for _, sid := range ids { diff --git a/node/impl/storminer.go b/node/impl/storminer.go index e99003a18..3ea2f115f 100644 --- a/node/impl/storminer.go +++ b/node/impl/storminer.go @@ -960,7 +960,7 @@ func (sm *StorageMinerAPI) CreateBackup(ctx context.Context, fpath string) error return backup(sm.DS, fpath) } -func (sm *StorageMinerAPI) CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, sectors []sto.SectorRef, expensive bool) (map[abi.SectorNumber]string, error) { +func (sm *StorageMinerAPI) CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, sectors []sto.SectorRef, update []bool, expensive bool) (map[abi.SectorNumber]string, error) { var rg storiface.RGetter if expensive { rg = func(ctx context.Context, id abi.SectorID) (cid.Cid, error) { @@ -976,7 +976,7 @@ func (sm *StorageMinerAPI) CheckProvable(ctx context.Context, pp abi.RegisteredP } } - bad, err := sm.StorageMgr.CheckProvable(ctx, pp, sectors, rg) + bad, err := sm.StorageMgr.CheckProvable(ctx, pp, sectors, update, rg) if err != nil { return nil, err } diff --git a/storage/wdpost_run.go b/storage/wdpost_run.go index 0ba7b21e1..f0d557d12 100644 --- a/storage/wdpost_run.go +++ b/storage/wdpost_run.go @@ -205,6 +205,7 @@ func (s *WindowPoStScheduler) checkSectors(ctx context.Context, check bitfield.B sectors := make(map[abi.SectorNumber]struct{}) var tocheck []storage.SectorRef + var update []bool for _, info := range sectorInfos { sectors[info.SectorNumber] = struct{}{} tocheck = append(tocheck, storage.SectorRef{ @@ -214,9 +215,10 @@ func (s *WindowPoStScheduler) checkSectors(ctx context.Context, check bitfield.B Number: info.SectorNumber, }, }) + update = append(update, info.SectorKeyCID != nil) } - bad, err := s.faultTracker.CheckProvable(ctx, s.proofType, tocheck, nil) + bad, err := s.faultTracker.CheckProvable(ctx, s.proofType, tocheck, update, nil) if err != nil { return bitfield.BitField{}, xerrors.Errorf("checking provable sectors: %w", err) } diff --git a/storage/wdpost_run_test.go b/storage/wdpost_run_test.go index f3ea5836b..41ce5a2e9 100644 --- a/storage/wdpost_run_test.go +++ b/storage/wdpost_run_test.go @@ -168,7 +168,7 @@ func (m mockVerif) GenerateWinningPoStSectorChallenge(context.Context, abi.Regis type mockFaultTracker struct { } -func (m mockFaultTracker) CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, sectors []storage.SectorRef, rg storiface.RGetter) (map[abi.SectorID]string, error) { +func (m mockFaultTracker) CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, sectors []storage.SectorRef, update []bool, rg storiface.RGetter) (map[abi.SectorID]string, error) { // Returns "bad" sectors so just return empty map meaning all sectors are good return map[abi.SectorID]string{}, nil } From 6862015929fafd7b8be7fa6803fccd89731d5954 Mon Sep 17 00:00:00 2001 From: zenground0 Date: Thu, 24 Feb 2022 15:20:21 -0700 Subject: [PATCH 3/9] add rdi flag for abort upgrade --- cmd/lotus-miner/sectors.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cmd/lotus-miner/sectors.go b/cmd/lotus-miner/sectors.go index 9c4a5d0d8..a5ab14c82 100644 --- a/cmd/lotus-miner/sectors.go +++ b/cmd/lotus-miner/sectors.go @@ -1530,6 +1530,12 @@ var sectorsSnapAbortCmd = &cli.Command{ return lcli.ShowHelp(cctx, xerrors.Errorf("must pass sector number")) } + really := cctx.Bool("really-do-it") + if !really { + //nolint:golint + return fmt.Errorf("--really-do-it must be specified for this action to have an effect; you have been warned") + } + nodeApi, closer, err := lcli.GetStorageMinerAPI(cctx) if err != nil { return err From be3462eb761a22c4651182b1987287160de27890 Mon Sep 17 00:00:00 2001 From: "eben.xie" Date: Wed, 23 Feb 2022 10:49:53 +0800 Subject: [PATCH 4/9] [Describe]: when excute cmd "lotus-bench sealing" without "benchmark-existing-sectorbuilder", panic will occur [BugFix]: [FeatureAdd]: [CodeReview]: [ModifyDesc]: [Author]: [BugID]: --- cmd/lotus-bench/main.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cmd/lotus-bench/main.go b/cmd/lotus-bench/main.go index b0e71b90e..c6fdd5e32 100644 --- a/cmd/lotus-bench/main.go +++ b/cmd/lotus-bench/main.go @@ -276,6 +276,13 @@ var sealBenchCmd = &cli.Command{ if err != nil { return xerrors.Errorf("failed to run seals: %w", err) } + for _, s := range extendedSealedSectors { + sealedSectors = append(sealedSectors, proof.SectorInfo{ + SealedCID: s.SealedCID, + SectorNumber: s.SectorNumber, + SealProof: s.SealProof, + }) + } } else { // TODO: implement sbfs.List() and use that for all cases (preexisting sectorbuilder or not) From 3c366160bb60453443f262b45dee530128bbfc37 Mon Sep 17 00:00:00 2001 From: Peter Rabbitson Date: Sat, 19 Feb 2022 16:25:18 +0100 Subject: [PATCH 5/9] Retract force-pushed v1.14.0 to work around stale gomod caches --- go.mod | 2 ++ 1 file changed, 2 insertions(+) diff --git a/go.mod b/go.mod index 9edf85a52..25f0665ad 100644 --- a/go.mod +++ b/go.mod @@ -2,6 +2,8 @@ module github.com/filecoin-project/lotus go 1.16 +retract v1.14.0 // Accidentally force-pushed tag, use v1.14.1+ instead. + require ( contrib.go.opencensus.io/exporter/jaeger v0.2.1 contrib.go.opencensus.io/exporter/prometheus v0.4.0 From 51fc965bebd7796a57b19901ea3113ec50c2eb60 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Thu, 24 Feb 2022 18:12:36 -0500 Subject: [PATCH 6/9] ayyush sucks at math with time --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6098a615..7a69ef900 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,7 +22,8 @@ It is recommended that storage providers download the new params before updating - run `./lotus-shed fetch-params` with the appropriate `proving-params` flag - Upgrade the Lotus daemon and miner **when the previous step is complete** -All node operators, including storage providers, should be aware that a pre-migration will begin at 2022-03-01T13:30:00Z (150 minutes before the real upgrade). The pre-migration will take between 20 and 50 minutes, depending on hardware specs. During this time, expect slower block validation times, increased CPU and memory usage, and longer delays for API queries. +All node operators, including storage providers, should be aware that a pre-migration will begin at 2022-03-01T13:30:00Z (90 minutes before the real upgrade). The pre-migration will take between 20 and 50 minutes, +depending on hardware specs. During this time, expect slower block validation times, increased CPU and memory usage, and longer delays for API queries. ## New Features and Changes - Integrate actor v7-rc1: From a567a745b29f90b6a54c1a1911006ba1e19905a8 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Thu, 24 Feb 2022 18:30:31 -0500 Subject: [PATCH 7/9] bump the version to v1.14.2 --- build/openrpc/full.json.gz | Bin 25706 -> 25706 bytes build/openrpc/miner.json.gz | Bin 11768 -> 11768 bytes build/openrpc/worker.json.gz | Bin 3846 -> 3845 bytes build/version.go | 2 +- documentation/en/cli-lotus-miner.md | 2 +- documentation/en/cli-lotus-worker.md | 2 +- documentation/en/cli-lotus.md | 2 +- 7 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index af980b822822ac72d5957b3d032716c8f83d8b9b..d6f1437743b300f25103a5f74057caeaff6a4d93 100644 GIT binary patch delta 22 ecmaELg7MV}#tB`F-!^vNNMq>VVG1(< delta 22 ecmaELg7MV}#tB`FUp98%NM`?@ER@B~$^Za|T?yI% diff --git a/build/openrpc/miner.json.gz b/build/openrpc/miner.json.gz index 2120341d7f19c16dc00be611c070fd72dc2d5ccc..676bd4d72b0ab84c251f62902faa5fc1061b4748 100644 GIT binary patch delta 21 dcmewn{Udrp3**9#t=YO9S59gCx$n-z004V83LO9d delta 21 dcmewn{Udrp3uEKP)@)r4cFEb7?z=NF003|p2*>~c diff --git a/build/openrpc/worker.json.gz b/build/openrpc/worker.json.gz index 34d68c8b325a588c9bbf20ecbe934fefde29f04b..84c7626f7b0f83752db042c59e80910a3214a92e 100644 GIT binary patch delta 3753 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 delta 3754 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 UeYgI900030{|lEULIvai0GM@IcK`qY diff --git a/build/version.go b/build/version.go index fd790a795..0b7822e30 100644 --- a/build/version.go +++ b/build/version.go @@ -37,7 +37,7 @@ func BuildTypeString() string { } // BuildVersion is the local build version -const BuildVersion = "1.14.1" +const BuildVersion = "1.14.2" func UserVersion() string { if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" { diff --git a/documentation/en/cli-lotus-miner.md b/documentation/en/cli-lotus-miner.md index dc7ba1bea..bb9589401 100644 --- a/documentation/en/cli-lotus-miner.md +++ b/documentation/en/cli-lotus-miner.md @@ -7,7 +7,7 @@ USAGE: lotus-miner [global options] command [command options] [arguments...] VERSION: - 1.14.1 + 1.14.2 COMMANDS: init Initialize a lotus miner repo diff --git a/documentation/en/cli-lotus-worker.md b/documentation/en/cli-lotus-worker.md index 09cd157e9..6c5886d4c 100644 --- a/documentation/en/cli-lotus-worker.md +++ b/documentation/en/cli-lotus-worker.md @@ -7,7 +7,7 @@ USAGE: lotus-worker [global options] command [command options] [arguments...] VERSION: - 1.14.1 + 1.14.2 COMMANDS: run Start lotus worker diff --git a/documentation/en/cli-lotus.md b/documentation/en/cli-lotus.md index f2a0542d6..ed885bd6e 100644 --- a/documentation/en/cli-lotus.md +++ b/documentation/en/cli-lotus.md @@ -7,7 +7,7 @@ USAGE: lotus [global options] command [command options] [arguments...] VERSION: - 1.14.1 + 1.14.2 COMMANDS: daemon Start a lotus daemon process From 5cfe8f315f41e726984035ffdb49a9e183cf0dbe Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Thu, 24 Feb 2022 18:30:52 -0500 Subject: [PATCH 8/9] add changelog --- CHANGELOG.md | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a69ef900..f0e90b7c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,32 @@ # Lotus changelog +# 1.14.2 / 2022-02-24 + +This is an **optional** release of lotus, that's had a couple more improvements w.r.t Snap experience for storage providers in preparation of the[upcoming OhSnap upgrade](https://github.com/filecoin-project/community/discussions/74?sort=new#discussioncomment-1922550). + +Wanna know how to Snap your deal? Check [this](https://github.com/filecoin-project/lotus/discussions/8141) out! + +## Bug Fixes +- fix lotus-bench for sealing jobs (#8173) +- fix:sealing:really-do-it flag for abort upgrade (#8181) +- fix:proving:post check sector handles snap deals replica faults (#8177) +- fix: sealing: missing file type (#8180) + +## Others +- Retract force-pushed v1.14.0 to work around stale gomod caches (#8159): We originally tagged v1.14.0 off the wrong + commit and fixed that by a force push, in which is a really bad practise since it messes up the go mod. Therefore, + we want to retract it and users may use v1.14.1&^. + +## Contributors + +| Contributor | Commits | Lines ± | Files Changed | +|-------------|---------|---------|---------------| +| @zenground0 | 2 | +73/-58 | 12 | +| @eben.xie | 1 | +7/-0 | 1 | +| @jennijuju | 1 | +4/-0 | 1 | +| @jennijuju | 1 | +2/-1 | 1 | +| @ribasushi | 1 | +2/-0 | 1 | + # 1.14.1 / 2022-02-18 This is an **optional** release of lotus, that fixes the incorrect *comment* of network v15 OhSnap upgrade **date**. Note the actual upgrade epoch in [v1.14.0](https://github.com/filecoin-project/lotus/releases/tag/v1.14.0) was correct. @@ -22,8 +49,7 @@ It is recommended that storage providers download the new params before updating - run `./lotus-shed fetch-params` with the appropriate `proving-params` flag - Upgrade the Lotus daemon and miner **when the previous step is complete** -All node operators, including storage providers, should be aware that a pre-migration will begin at 2022-03-01T13:30:00Z (90 minutes before the real upgrade). The pre-migration will take between 20 and 50 minutes, -depending on hardware specs. During this time, expect slower block validation times, increased CPU and memory usage, and longer delays for API queries. +All node operators, including storage providers, should be aware that a pre-migration will begin at 2022-03-01T13:30:00Z (90 minutes before the real upgrade). The pre-migration will take between 20 and 50 minutes, depending on hardware specs. During this time, expect slower block validation times, increased CPU and memory usage, and longer delays for API queries. ## New Features and Changes - Integrate actor v7-rc1: From 37b857a0b261124f44fa5055f5258d4c6f5ed98c Mon Sep 17 00:00:00 2001 From: Aayush Rajasekaran Date: Thu, 24 Feb 2022 19:17:33 -0500 Subject: [PATCH 9/9] Update CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f0e90b7c8..629635c1e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ This is an **optional** release of lotus, that's had a couple more improvements w.r.t Snap experience for storage providers in preparation of the[upcoming OhSnap upgrade](https://github.com/filecoin-project/community/discussions/74?sort=new#discussioncomment-1922550). +Note that the network is STILL scheduled to upgrade to v15 on March 1st at 2022-03-01T15:00:00Z. All node operators, including storage providers, must upgrade to at least Lotus v1.14.0 before that time. Storage providers must update their daemons, miners, and worker(s). + Wanna know how to Snap your deal? Check [this](https://github.com/filecoin-project/lotus/discussions/8141) out! ## Bug Fixes