From 6907797783e929fca06728822ffe0fe1e7b067bc Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Wed, 8 Sep 2021 01:31:23 -0400 Subject: [PATCH 01/20] version bump v1.11.3-rc1 --- build/openrpc/full.json.gz | Bin 25416 -> 25416 bytes build/openrpc/miner.json.gz | Bin 10424 -> 10424 bytes build/openrpc/worker.json.gz | Bin 2710 -> 2710 bytes build/version.go | 2 +- documentation/en/cli-lotus-miner.md | 2 +- documentation/en/cli-lotus-worker.md | 4 ++-- documentation/en/cli-lotus.md | 2 +- 7 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index 610a0591a8706d1b00af4e488208b8522eee0011..c6066ded86f40f514f444d4ca14ca3af55e81b5a 100644 GIT binary patch delta 25290 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 delta 22 ecmdlHxFc{v8 Date: Wed, 8 Sep 2021 01:35:36 -0400 Subject: [PATCH 02/20] init v1.11.3 changelog --- CHANGELOG.md | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 72584e87ad5..30054e004fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,116 @@ # Lotus changelog +# v1.11.3-rc1 / 2021-09-08 + +This is the first release candidate for lotus v1.11.3. Changelog will be updated later. + +## Changelog + +- github.com/filecoin-project/lotus: + - version bump v1.11.3-rc1 + - update to proof v0.9.2 ([filecoin-project/lotus#7297](https://github.com/filecoin-project/lotus/pull/7297)) + - Show deal sizes is sealing sectors ([filecoin-project/lotus#7261](https://github.com/filecoin-project/lotus/pull/7261)) + - docker entrypoint.sh missing variable escape character ([filecoin-project/lotus#7291](https://github.com/filecoin-project/lotus/pull/7291)) + - Update go-graphsync v0.9.1 ([filecoin-project/lotus#7294](https://github.com/filecoin-project/lotus/pull/7294)) + - itests: remove cid equality comparison ([filecoin-project/lotus#7292](https://github.com/filecoin-project/lotus/pull/7292)) + - v1.11.2 -> master ([filecoin-project/lotus#7288](https://github.com/filecoin-project/lotus/pull/7288)) + - fix index out of range ([filecoin-project/lotus#7273](https://github.com/filecoin-project/lotus/pull/7273)) + - dealpublisher: Fully validate deals before publishing ([filecoin-project/lotus#7234](https://github.com/filecoin-project/lotus/pull/7234)) + - introduce MaxStagingDealsBytes - reject new deals if our staging deals area is full ([filecoin-project/lotus#7276](https://github.com/filecoin-project/lotus/pull/7276)) + - Update to unified go-graphsync v0.9.0 ([filecoin-project/lotus#7197](https://github.com/filecoin-project/lotus/pull/7197)) + - Increase threshold from 0.5% to 1% ([filecoin-project/lotus#7262](https://github.com/filecoin-project/lotus/pull/7262)) + - integrate the proof patch: tag proofs-v9-revert-deps-hotfix ([filecoin-project/lotus#7260](https://github.com/filecoin-project/lotus/pull/7260)) + - update to go-fil-markets v1.11.0 ([filecoin-project/lotus#7253](https://github.com/filecoin-project/lotus/pull/7253)) + - Add partition info to the 'sectors status' command ([filecoin-project/lotus#7246](https://github.com/filecoin-project/lotus/pull/7246)) + - sealing: Fix sector state accounting with FinalizeEarly ([filecoin-project/lotus#7256](https://github.com/filecoin-project/lotus/pull/7256)) + - chain: Cleanup consensus logic ([filecoin-project/lotus#7255](https://github.com/filecoin-project/lotus/pull/7255)) + - builder: Handle chainstore config in ConfigFullNode ([filecoin-project/lotus#7232](https://github.com/filecoin-project/lotus/pull/7232)) + - sealing: Fix retry loop in SubmitCommitAggregate ([filecoin-project/lotus#7245](https://github.com/filecoin-project/lotus/pull/7245)) + - fix: correctly handle null blocks when detecting an expensive fork ([filecoin-project/lotus#7210](https://github.com/filecoin-project/lotus/pull/7210)) + - sectors expired: Handle precomitted and unproven sectors correctly ([filecoin-project/lotus#7236](https://github.com/filecoin-project/lotus/pull/7236)) + - stores: Fix reserved disk usage log spam ([filecoin-project/lotus#7233](https://github.com/filecoin-project/lotus/pull/7233)) + - gateway: check tipsets in ChainGetPath ([filecoin-project/lotus#7230](https://github.com/filecoin-project/lotus/pull/7230)) + - Refactor events subsystem ([filecoin-project/lotus#7000](https://github.com/filecoin-project/lotus/pull/7000)) + - test: re-enable disabled tests ([filecoin-project/lotus#7211](https://github.com/filecoin-project/lotus/pull/7211)) + - fix: make lotus soup use the correct dependencies ([filecoin-project/lotus#7221](https://github.com/filecoin-project/lotus/pull/7221)) + - upgrade go-data-transfer; propagate deal cancellations. ([filecoin-project/lotus#7208](https://github.com/filecoin-project/lotus/pull/7208)) + - revert changes to OnDealExpiredOrChanged in #5431 #7201 ([filecoin-project/lotus#7220](https://github.com/filecoin-project/lotus/pull/7220)) + - Reduce lotus-miner startup spam ([filecoin-project/lotus#7205](https://github.com/filecoin-project/lotus/pull/7205)) + - config for disabling NAT port mapping ([filecoin-project/lotus#7204](https://github.com/filecoin-project/lotus/pull/7204)) + - Add optional mined block list to miner info ([filecoin-project/lotus#7202](https://github.com/filecoin-project/lotus/pull/7202)) + - ([filecoin-project/lotus#7201](https://github.com/filecoin-project/lotus/pull/7201)) + - fix: init restore adds empty storage.json ([filecoin-project/lotus#7025](https://github.com/filecoin-project/lotus/pull/7025)) + - Insert miner and network power data as gibibytes to avoid int64 overflows ([filecoin-project/lotus#7194](https://github.com/filecoin-project/lotus/pull/7194)) + - sealing: Check piece CIDs after AddPiece ([filecoin-project/lotus#7185](https://github.com/filecoin-project/lotus/pull/7185)) + - markets: OnDealExpiredOrSlashed - get deal by proposal instead of deal ID ([filecoin-project/lotus#5431](https://github.com/filecoin-project/lotus/pull/5431)) + - Revert "Merge pull request #7187 from filecoin-project/test/disable-broken-testground" ([filecoin-project/lotus#7191](https://github.com/filecoin-project/lotus/pull/7191)) + - ci: exclude cruft from code coverage ([filecoin-project/lotus#7189](https://github.com/filecoin-project/lotus/pull/7189)) + - fix: disable broken testground integration test ([filecoin-project/lotus#7187](https://github.com/filecoin-project/lotus/pull/7187)) + - Incoming: improve a log message ([filecoin-project/lotus#7181](https://github.com/filecoin-project/lotus/pull/7181)) + - Simple alert system; FD limit alerts ([filecoin-project/lotus#7108](https://github.com/filecoin-project/lotus/pull/7108)) + - journal: make current log file have a fixed named (#7112) ([filecoin-project/lotus#7112](https://github.com/filecoin-project/lotus/pull/7112)) + - call string.Repeat always with positive int ([filecoin-project/lotus#7104](https://github.com/filecoin-project/lotus/pull/7104)) + - Bump version to v1.11.3-dev ([filecoin-project/lotus#7180](https://github.com/filecoin-project/lotus/pull/7180)) + - Fix throttling bug ([filecoin-project/lotus#7177](https://github.com/filecoin-project/lotus/pull/7177)) + - fix: make TestTimedCacheBlockstoreSimple pass reliably ([filecoin-project/lotus#7174](https://github.com/filecoin-project/lotus/pull/7174)) + - Shed: Create a verifreg command for when VRK isn't a multisig ([filecoin-project/lotus#7099](https://github.com/filecoin-project/lotus/pull/7099)) + - fix TestDealPublisher ([filecoin-project/lotus#7173](https://github.com/filecoin-project/lotus/pull/7173)) + - test: disable flaky TestBatchDealInput ([filecoin-project/lotus#7176](https://github.com/filecoin-project/lotus/pull/7176)) + - itests: support larger sector sizes; add large deal test. ([filecoin-project/lotus#7148](https://github.com/filecoin-project/lotus/pull/7148)) + - Turn off patch ([filecoin-project/lotus#7172](https://github.com/filecoin-project/lotus/pull/7172)) + - miner: Command to list/remove expired sectors ([filecoin-project/lotus#7140](https://github.com/filecoin-project/lotus/pull/7140)) + - Ignore nil throttler ([filecoin-project/lotus#7169](https://github.com/filecoin-project/lotus/pull/7169)) + - test: disable flaky TestSimultaneousTransferLimit ([filecoin-project/lotus#7153](https://github.com/filecoin-project/lotus/pull/7153)) +- github.com/filecoin-project/go-data-transfer (v1.7.8 -> v1.10.1): + - docs(CHANGELOG): update for 1.10.1 + - Fix parallel transfers between same two peers (#254) ([filecoin-project/go-data-transfer#254](https://github.com/filecoin-project/go-data-transfer/pull/254)) + - release: v1.10.0 ([filecoin-project/go-data-transfer#253](https://github.com/filecoin-project/go-data-transfer/pull/253)) + - feat: integrate graphsync-v0.9.0 (#252) ([filecoin-project/go-data-transfer#252](https://github.com/filecoin-project/go-data-transfer/pull/252)) + - release: v1.9.0 ([filecoin-project/go-data-transfer#251](https://github.com/filecoin-project/go-data-transfer/pull/251)) + - fix: ensure graphsync transport only closes complete channel once (#250) ([filecoin-project/go-data-transfer#250](https://github.com/filecoin-project/go-data-transfer/pull/250)) + - revert: integration of graphsync-v0.9.0 until we are ready to test the whole stack with it (#249) ([filecoin-project/go-data-transfer#249](https://github.com/filecoin-project/go-data-transfer/pull/249)) + - v1.8.0 release ([filecoin-project/go-data-transfer#247](https://github.com/filecoin-project/go-data-transfer/pull/247)) + - Update to unified go graphsync v0.9.0 (#246) ([filecoin-project/go-data-transfer#246](https://github.com/filecoin-project/go-data-transfer/pull/246)) +- github.com/filecoin-project/go-fil-markets (v1.8.1 -> v1.12.0): + - release: v1.12.0 + - Update to unified graphsync v0.9.0 (#627) ([filecoin-project/go-fil-markets#627](https://github.com/filecoin-project/go-fil-markets/pull/627)) + - release: v1.11.0 ([filecoin-project/go-fil-markets#626](https://github.com/filecoin-project/go-fil-markets/pull/626)) + - feat: upgrade to go-data-transfer v1.9.0 (#625) ([filecoin-project/go-fil-markets#625](https://github.com/filecoin-project/go-fil-markets/pull/625)) + - Revert "Update to unified graphsync v0.9.0 (#615)" (#624) ([filecoin-project/go-fil-markets#624](https://github.com/filecoin-project/go-fil-markets/pull/624)) + - Update to unified graphsync v0.9.0 (#615) ([filecoin-project/go-fil-markets#615](https://github.com/filecoin-project/go-fil-markets/pull/615)) + - fix: TestCancelDataTransfer (#622) ([filecoin-project/go-fil-markets#622](https://github.com/filecoin-project/go-fil-markets/pull/622)) + - rm go-multistore dependency. (#619) ([filecoin-project/go-fil-markets#619](https://github.com/filecoin-project/go-fil-markets/pull/619)) + - revert: OnDealExpiredOrSlashed changes (#620) ([filecoin-project/go-fil-markets#620](https://github.com/filecoin-project/go-fil-markets/pull/620)) + - fix(ci): include node in circle orb to fix docsgen (#618) ([filecoin-project/go-fil-markets#618](https://github.com/filecoin-project/go-fil-markets/pull/618)) + - release: v1.9.0 ([filecoin-project/go-fil-markets#617](https://github.com/filecoin-project/go-fil-markets/pull/617)) + - refactor: pass deal proposal instead of deal ID to OnDealExpiredOrSlashed (#616) ([filecoin-project/go-fil-markets#616](https://github.com/filecoin-project/go-fil-markets/pull/616)) + - fix: reject storage deals where the end epoch is too far in the future (#612) ([filecoin-project/go-fil-markets#612](https://github.com/filecoin-project/go-fil-markets/pull/612)) + +Contributors + +| Contributor | Commits | Lines ± | Files Changed | +|-------------|---------|---------|---------------| +| Łukasz Magiera | 38 | +3306/-1825 | 178 | +| Steven Allen | 23 | +1935/-1417 | 84 | +| dirkmc | 12 | +921/-732 | 111 | +| Dirk McCormick | 12 | +663/-790 | 30 | +| Hannah Howard | 3 | +482/-275 | 46 | +| Travis Person | 1 | +317/-65 | 5 | +| hannahhoward | 5 | +251/-50 | 12 | +| Anton Evangelatov | 7 | +198/-37 | 17 | +| Raúl Kripalani | 4 | +127/-36 | 13 | +| raulk | 1 | +43/-60 | 15 | +| Aayush Rajasekaran | 4 | +74/-8 | 10 | +| Frank | 2 | +68/-8 | 3 | +| Adrian Lanzafame | 1 | +16/-2 | 1 | +| Aarsh Shah | 2 | +11/-6 | 2 | +| Jennifer Wang | 3 | +7/-7 | 9 | +| ZenGround0 | 2 | +7/-6 | 2 | +| KAYUII | 2 | +4/-4 | 2 | +| lanzafame | 1 | +6/-0 | 1 | +| Jacob Heun | 1 | +3/-3 | 1 | +| frank | 1 | +4/-0 | 1 | + # v1.11.2 / 2021-09-06 lotus v1.11.2 is a feature release that's **highly recommended ALL lotus users to upgrade**, including node operators, From daf0b57528ef1cb4352978a0ec3c5cef85922dab Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Wed, 8 Sep 2021 01:42:51 -0400 Subject: [PATCH 03/20] make gen --- documentation/en/cli-lotus-worker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/en/cli-lotus-worker.md b/documentation/en/cli-lotus-worker.md index 1dd80439adf..7b8ac441699 100644 --- a/documentation/en/cli-lotus-worker.md +++ b/documentation/en/cli-lotus-worker.md @@ -20,7 +20,7 @@ COMMANDS: GLOBAL OPTIONS: --worker-repo value, --workerrepo value Specify worker repo path. flag workerrepo and env WORKER_PATH are DEPRECATION, will REMOVE SOON (default: "~/.lotusworker") [$LOTUS_WORKER_PATH, $WORKER_PATH] - --miner-repo value, --storagerepo value Specify miner repo path. flag storagerepo and env LOTUS_STORAGE_PATH are DEPRECATION, will REMOVE SOON (default: "~.lotusminer") [$LOTUS_MINER_PATH, $LOTUS_STORAGE_PATH] + --miner-repo value, --storagerepo value Specify miner repo path. flag storagerepo and env LOTUS_STORAGE_PATH are DEPRECATION, will REMOVE SOON (default: "~/.lotusminer") [$LOTUS_MINER_PATH, $LOTUS_STORAGE_PATH] --enable-gpu-proving enable use of GPU for mining operations (default: true) --help, -h show help (default: false) --version, -v print the version (default: false) From d8a5812f76e990367b35b13b7adbf8194d7f129f Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Wed, 8 Sep 2021 01:57:33 -0400 Subject: [PATCH 04/20] increase miner codecov threshold from 1% to 1.5% --- .codecov.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.codecov.yml b/.codecov.yml index c266bc3ea06..01070e23086 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -40,7 +40,7 @@ coverage: - "paychmgr" miner: target: auto - threshold: 1% + threshold: 1.5% informational: false paths: - "miner" From 143b6d7a37a3bd9264c6fa2abcb8425b13264213 Mon Sep 17 00:00:00 2001 From: ognots Date: Thu, 9 Sep 2021 17:38:50 -0400 Subject: [PATCH 05/20] remove job to install jq jq is already installed now in either a newer version of CircleCI's MacOS VMs or in a previous CI step. I ran a failing macos job with ssh enabled, and inspected '/usr/local/bin' and found found the following output lrwxr-xr-x 1 distiller admin 23 Jun 22 14:50 jq -> ../Cellar/jq/1.6/bin/jq the existing symlink causes the 'Install jq' job to fail. removing this job should resolve the issue --- .circleci/config.yml | 5 ----- .circleci/template.yml | 5 ----- 2 files changed, 10 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 200792130cd..7b85006d11e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -367,11 +367,6 @@ jobs: name: Install Rust command: | curl https://sh.rustup.rs -sSf | sh -s -- -y - - run: - name: Install jq - command: | - curl --location https://github.com/stedolan/jq/releases/download/jq-1.6/jq-osx-amd64 --output /usr/local/bin/jq - chmod +x /usr/local/bin/jq - run: name: Install hwloc command: | diff --git a/.circleci/template.yml b/.circleci/template.yml index 27036ab26bd..f1d0680c474 100644 --- a/.circleci/template.yml +++ b/.circleci/template.yml @@ -367,11 +367,6 @@ jobs: name: Install Rust command: | curl https://sh.rustup.rs -sSf | sh -s -- -y - - run: - name: Install jq - command: | - curl --location https://github.com/stedolan/jq/releases/download/jq-1.6/jq-osx-amd64 --output /usr/local/bin/jq - chmod +x /usr/local/bin/jq - run: name: Install hwloc command: | From cd08788792ba247f0094898bed177b21d044b976 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Thu, 9 Sep 2021 16:45:02 -0400 Subject: [PATCH 06/20] Bump the xcode version for ci and run build macos jobs more --- .circleci/config.yml | 11 ++--------- .circleci/template.yml | 11 ++--------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7b85006d11e..cdc81979319 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -348,7 +348,7 @@ jobs: build-macos: description: build darwin lotus binary macos: - xcode: "10.0.0" + xcode: "12.5.0" working_directory: ~/go/src/github.com/filecoin-project/lotus steps: - prepare: @@ -983,14 +983,7 @@ workflows: only: - /^v\d+\.\d+\.\d+(-rc\d+)?$/ - build-lotus-soup - - build-macos: - filters: - branches: - ignore: - - /.*/ - tags: - only: - - /^v\d+\.\d+\.\d+(-rc\d+)?$/ + - build-macos - build-appimage: filters: branches: diff --git a/.circleci/template.yml b/.circleci/template.yml index f1d0680c474..70f7ea51afe 100644 --- a/.circleci/template.yml +++ b/.circleci/template.yml @@ -348,7 +348,7 @@ jobs: build-macos: description: build darwin lotus binary macos: - xcode: "10.0.0" + xcode: "12.5.0" working_directory: ~/go/src/github.com/filecoin-project/lotus steps: - prepare: @@ -838,14 +838,7 @@ workflows: only: - /^v\d+\.\d+\.\d+(-rc\d+)?$/ - build-lotus-soup - - build-macos: - filters: - branches: - ignore: - - /.*/ - tags: - only: - - /^v\d+\.\d+\.\d+(-rc\d+)?$/ + - build-macos - build-appimage: filters: branches: From 90827afa475824107e6c7a9aea31eaf7fc765c3d Mon Sep 17 00:00:00 2001 From: Mike Greenberg Date: Tue, 14 Sep 2021 19:31:28 -0400 Subject: [PATCH 07/20] feat(ci): include version/cli checks in tagged releases --- .circleci/config.yml | 6 ++++++ .circleci/template.yml | 6 ++++++ scripts/version-check.sh | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100755 scripts/version-check.sh diff --git a/.circleci/config.yml b/.circleci/config.yml index cdc81979319..81bc59cf46f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -92,6 +92,9 @@ jobs: - run: sudo apt-get install npm - run: command: make buildall + - run: + name: check tag and version output match + command: ./scripts/version-check.sh ./lotus - store_artifacts: path: lotus - store_artifacts: @@ -383,6 +386,9 @@ jobs: - run: command: make build no_output_timeout: 30m + - run: + name: check tag and version output match + command: ./scripts/version-check.sh ./lotus - store_artifacts: path: lotus - store_artifacts: diff --git a/.circleci/template.yml b/.circleci/template.yml index 70f7ea51afe..a7bbf8d0a55 100644 --- a/.circleci/template.yml +++ b/.circleci/template.yml @@ -92,6 +92,9 @@ jobs: - run: sudo apt-get install npm - run: command: make buildall + - run: + name: check tag and version output match + command: ./scripts/version-check.sh ./lotus - store_artifacts: path: lotus - store_artifacts: @@ -383,6 +386,9 @@ jobs: - run: command: make build no_output_timeout: 30m + - run: + name: check tag and version output match + command: ./scripts/version-check.sh ./lotus - store_artifacts: path: lotus - store_artifacts: diff --git a/scripts/version-check.sh b/scripts/version-check.sh new file mode 100755 index 00000000000..ee4cce686d3 --- /dev/null +++ b/scripts/version-check.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +set -ex + +# Validate lotus version matches the current tag +# $1 - lotus path to execute +# $2 - lotus git tag for this release +function validate_lotus_version_matches_tag(){ + # sanity checks + if [[ $# != 2 ]]; then + echo "expected 2 args for validate_lotus_version, got ${$#}" + exit 100 + fi + + # extract version from `lotus --version` response + lotus_path=$1 + # get version + lotus_raw_version=`${lotus_path} --version` + # grep for version string + lotus_actual_version=`echo ${lotus_raw_version} | grep -oE '[0-9]+.[0-9]+.[0-9]+'` + + # trim leading 'v' + tag=${2#v} + # trim possible -rc[0-9] + expected_version=${tag%-*} + + # check the versions are consistent + if [[ ${expected_version} != ${lotus_actual_version} ]]; then + echo "lotus version does not match build tag" + exit 101 + fi +} + +_lotus_path=$1 + +if [[ ! -z "${CIRCLE_TAG}" ]]; then + validate_lotus_version_matches_tag "${_lotus_path}" "${CIRCLE_TAG}" +else + echo "No CI tag found. Skipping version check." +fi From 438d5ce78e401b36c84dde5662c01268c45f65eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Wed, 15 Sep 2021 18:13:01 +0200 Subject: [PATCH 08/20] fix a panic in HandleRecoverDealIDs --- extern/storage-sealing/states_failed.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/extern/storage-sealing/states_failed.go b/extern/storage-sealing/states_failed.go index f1fd092b644..68b5950e926 100644 --- a/extern/storage-sealing/states_failed.go +++ b/extern/storage-sealing/states_failed.go @@ -394,6 +394,11 @@ func (m *Sealing) HandleRecoverDealIDs(ctx Context, sector SectorInfo) error { failed[i] = xerrors.Errorf("getting current deal info for piece %d: %w", i, err) } + if res.MarketDeal == nil { + failed[i] = xerrors.Errorf("nil market deal (%d,%d,%d,%s)", i, sector.SectorNumber, p.DealInfo.DealID, p.Piece.PieceCID) + continue + } + if res.MarketDeal.Proposal.PieceCID != p.Piece.PieceCID { failed[i] = xerrors.Errorf("recovered piece (%d) deal in sector %d (dealid %d) has different PieceCID %s != %s", i, sector.SectorNumber, p.DealInfo.DealID, p.Piece.PieceCID, res.MarketDeal.Proposal.PieceCID) continue From 3a1fc8e7da85e9bcfff1291c2257cc4ae447ffd0 Mon Sep 17 00:00:00 2001 From: ldoublewood Date: Thu, 16 Sep 2021 09:25:02 +0800 Subject: [PATCH 09/20] fix bug for CommittedCapacitySectorLifetime --- node/config/def.go | 2 +- node/modules/storageminer.go | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/node/config/def.go b/node/config/def.go index b75831eefef..a1a4856a907 100644 --- a/node/config/def.go +++ b/node/config/def.go @@ -101,7 +101,7 @@ func DefaultStorageMiner() *StorageMiner { PreCommitBatchWait: Duration(24 * time.Hour), // this should be less than 31.5 hours, which is the expiration of a precommit ticket PreCommitBatchSlack: Duration(3 * time.Hour), // time buffer for forceful batch submission before sectors/deals in batch would start expiring, higher value will lower the chances for message fail due to expiration - CommittedCapacitySectorLifetime: Duration(builtin.EpochDurationSeconds * policy.GetMaxSectorExpirationExtension()), + CommittedCapacitySectorLifetime: Duration(builtin.EpochDurationSeconds * uint64(policy.GetMaxSectorExpirationExtension()) * uint64(time.Second)), AggregateCommits: true, MinCommitBatch: miner5.MinAggregatedSectors, // per FIP13, we must have at least four proofs to aggregate, where 4 is the cross over point where aggregation wins out on single provecommit gas costs diff --git a/node/modules/storageminer.go b/node/modules/storageminer.go index b59a1143b7a..db122c1163a 100644 --- a/node/modules/storageminer.go +++ b/node/modules/storageminer.go @@ -869,6 +869,7 @@ func NewSetSealConfigFunc(r repo.LockedRepo) (dtypes.SetSealingConfigFunc, error MaxWaitDealsSectors: cfg.MaxWaitDealsSectors, MaxSealingSectors: cfg.MaxSealingSectors, MaxSealingSectorsForDeals: cfg.MaxSealingSectorsForDeals, + CommittedCapacitySectorLifetime: config.Duration(cfg.CommittedCapacitySectorLifetime), WaitDealsDelay: config.Duration(cfg.WaitDealsDelay), AlwaysKeepUnsealedCopy: cfg.AlwaysKeepUnsealedCopy, FinalizeEarly: cfg.FinalizeEarly, @@ -903,6 +904,7 @@ func ToSealingConfig(cfg *config.StorageMiner) sealiface.Config { MaxWaitDealsSectors: cfg.Sealing.MaxWaitDealsSectors, MaxSealingSectors: cfg.Sealing.MaxSealingSectors, MaxSealingSectorsForDeals: cfg.Sealing.MaxSealingSectorsForDeals, + CommittedCapacitySectorLifetime: time.Duration(cfg.Sealing.CommittedCapacitySectorLifetime), WaitDealsDelay: time.Duration(cfg.Sealing.WaitDealsDelay), AlwaysKeepUnsealedCopy: cfg.Sealing.AlwaysKeepUnsealedCopy, FinalizeEarly: cfg.Sealing.FinalizeEarly, From eb2bbfebe3f28c4b5bb98b917e03037939c9c512 Mon Sep 17 00:00:00 2001 From: ldoublewood Date: Fri, 17 Sep 2021 00:20:24 +0800 Subject: [PATCH 10/20] format code by make gen --- node/modules/storageminer.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/node/modules/storageminer.go b/node/modules/storageminer.go index db122c1163a..a461ee5ec81 100644 --- a/node/modules/storageminer.go +++ b/node/modules/storageminer.go @@ -866,13 +866,13 @@ func NewSetSealConfigFunc(r repo.LockedRepo) (dtypes.SetSealingConfigFunc, error return func(cfg sealiface.Config) (err error) { err = mutateCfg(r, func(c *config.StorageMiner) { c.Sealing = config.SealingConfig{ - MaxWaitDealsSectors: cfg.MaxWaitDealsSectors, - MaxSealingSectors: cfg.MaxSealingSectors, - MaxSealingSectorsForDeals: cfg.MaxSealingSectorsForDeals, + MaxWaitDealsSectors: cfg.MaxWaitDealsSectors, + MaxSealingSectors: cfg.MaxSealingSectors, + MaxSealingSectorsForDeals: cfg.MaxSealingSectorsForDeals, CommittedCapacitySectorLifetime: config.Duration(cfg.CommittedCapacitySectorLifetime), - WaitDealsDelay: config.Duration(cfg.WaitDealsDelay), - AlwaysKeepUnsealedCopy: cfg.AlwaysKeepUnsealedCopy, - FinalizeEarly: cfg.FinalizeEarly, + WaitDealsDelay: config.Duration(cfg.WaitDealsDelay), + AlwaysKeepUnsealedCopy: cfg.AlwaysKeepUnsealedCopy, + FinalizeEarly: cfg.FinalizeEarly, CollateralFromMinerBalance: cfg.CollateralFromMinerBalance, AvailableBalanceBuffer: types.FIL(cfg.AvailableBalanceBuffer), @@ -901,13 +901,13 @@ func NewSetSealConfigFunc(r repo.LockedRepo) (dtypes.SetSealingConfigFunc, error func ToSealingConfig(cfg *config.StorageMiner) sealiface.Config { return sealiface.Config{ - MaxWaitDealsSectors: cfg.Sealing.MaxWaitDealsSectors, - MaxSealingSectors: cfg.Sealing.MaxSealingSectors, - MaxSealingSectorsForDeals: cfg.Sealing.MaxSealingSectorsForDeals, + MaxWaitDealsSectors: cfg.Sealing.MaxWaitDealsSectors, + MaxSealingSectors: cfg.Sealing.MaxSealingSectors, + MaxSealingSectorsForDeals: cfg.Sealing.MaxSealingSectorsForDeals, CommittedCapacitySectorLifetime: time.Duration(cfg.Sealing.CommittedCapacitySectorLifetime), - WaitDealsDelay: time.Duration(cfg.Sealing.WaitDealsDelay), - AlwaysKeepUnsealedCopy: cfg.Sealing.AlwaysKeepUnsealedCopy, - FinalizeEarly: cfg.Sealing.FinalizeEarly, + WaitDealsDelay: time.Duration(cfg.Sealing.WaitDealsDelay), + AlwaysKeepUnsealedCopy: cfg.Sealing.AlwaysKeepUnsealedCopy, + FinalizeEarly: cfg.Sealing.FinalizeEarly, CollateralFromMinerBalance: cfg.Sealing.CollateralFromMinerBalance, AvailableBalanceBuffer: types.BigInt(cfg.Sealing.AvailableBalanceBuffer), From e996c27619e40e38732bdd6a4b19a4c2393577a6 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Tue, 21 Sep 2021 17:43:27 -0400 Subject: [PATCH 11/20] update to ffi to update-bellperson-proofs-v9-0-2 --- extern/filecoin-ffi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extern/filecoin-ffi b/extern/filecoin-ffi index 957547f15ac..dc585c4860a 160000 --- a/extern/filecoin-ffi +++ b/extern/filecoin-ffi @@ -1 +1 @@ -Subproject commit 957547f15acc332a5d30b23a08f5c9dd3e58396b +Subproject commit dc585c4860a56158202161b05610d54b18b3b54a From bf9d0bca40b5f829277e29f00f911f15fb7f373f Mon Sep 17 00:00:00 2001 From: Anton Evangelatov Date: Fri, 17 Sep 2021 14:55:56 +0200 Subject: [PATCH 12/20] GetCurrentDealInfo err: handle correctly err case --- extern/storage-sealing/states_failed.go | 1 + 1 file changed, 1 insertion(+) diff --git a/extern/storage-sealing/states_failed.go b/extern/storage-sealing/states_failed.go index 68b5950e926..0c88cc38452 100644 --- a/extern/storage-sealing/states_failed.go +++ b/extern/storage-sealing/states_failed.go @@ -392,6 +392,7 @@ func (m *Sealing) HandleRecoverDealIDs(ctx Context, sector SectorInfo) error { res, err := m.DealInfo.GetCurrentDealInfo(ctx.Context(), tok, dp, *p.DealInfo.PublishCid) if err != nil { failed[i] = xerrors.Errorf("getting current deal info for piece %d: %w", i, err) + continue } if res.MarketDeal == nil { From 0c1e29390a0e67b27bd8d812913ddc759332475b Mon Sep 17 00:00:00 2001 From: Anton Evangelatov Date: Fri, 17 Sep 2021 15:14:53 +0200 Subject: [PATCH 13/20] unit test where StateMarketStorageDeal return nil, err --- extern/storage-sealing/states_failed_test.go | 59 ++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/extern/storage-sealing/states_failed_test.go b/extern/storage-sealing/states_failed_test.go index d73c597dcd9..8613269b3f0 100644 --- a/extern/storage-sealing/states_failed_test.go +++ b/extern/storage-sealing/states_failed_test.go @@ -3,6 +3,7 @@ package sealing_test import ( "bytes" "context" + "errors" "testing" "github.com/golang/mock/gomock" @@ -20,6 +21,64 @@ import ( "github.com/filecoin-project/lotus/extern/storage-sealing/mocks" ) +func TestStateRecoverDealIDsErredDealInfo(t *testing.T) { + mockCtrl := gomock.NewController(t) + defer mockCtrl.Finish() + + ctx := context.Background() + + api := mocks.NewMockSealingAPI(mockCtrl) + + fakeSealing := &sealing.Sealing{ + Api: api, + DealInfo: &sealing.CurrentDealInfoManager{CDAPI: api}, + } + + sctx := mocks.NewMockContext(mockCtrl) + sctx.EXPECT().Context().AnyTimes().Return(ctx) + + api.EXPECT().ChainHead(ctx).Times(1).Return(nil, abi.ChainEpoch(10), nil) + + var dealId abi.DealID = 12 + dealProposal := market.DealProposal{ + PieceCID: idCid("newPieceCID"), + } + + api.EXPECT().StateMarketStorageDealProposal(ctx, dealId, nil).Return(dealProposal, nil) + + pc := idCid("publishCID") + + // expect GetCurrentDealInfo + { + api.EXPECT().StateSearchMsg(ctx, pc).Return(&sealing.MsgLookup{ + Receipt: sealing.MessageReceipt{ + ExitCode: exitcode.Ok, + Return: cborRet(&market.PublishStorageDealsReturn{ + IDs: []abi.DealID{dealId}, + }), + }, + }, nil) + api.EXPECT().StateMarketStorageDeal(ctx, dealId, nil).Return(nil, errors.New("deal may not have completed sealing or slashed")) + } + + sctx.EXPECT().Send(sealing.SectorRemove{}).Return(nil) + + err := fakeSealing.HandleRecoverDealIDs(sctx, sealing.SectorInfo{ + Pieces: []sealing.Piece{ + { + DealInfo: &api2.PieceDealInfo{ + DealID: dealId, + PublishCid: &pc, + }, + Piece: abi.PieceInfo{ + PieceCID: idCid("oldPieceCID"), + }, + }, + }, + }) + require.NoError(t, err) +} + func TestStateRecoverDealIDs(t *testing.T) { mockCtrl := gomock.NewController(t) defer mockCtrl.Finish() From 490f70f0716890053c9e69b8b0b96c0729c8636b Mon Sep 17 00:00:00 2001 From: hannahhoward Date: Mon, 20 Sep 2021 16:12:58 -0700 Subject: [PATCH 14/20] feat(deps): update go-graphsync v0.9.2 --- go.mod | 2 +- go.sum | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 45cbc17c962..c1c16e8c64a 100644 --- a/go.mod +++ b/go.mod @@ -77,7 +77,7 @@ require ( github.com/ipfs/go-ds-pebble v0.0.2-0.20200921225637-ce220f8ac459 github.com/ipfs/go-filestore v1.0.0 github.com/ipfs/go-fs-lock v0.0.6 - github.com/ipfs/go-graphsync v0.9.1 + github.com/ipfs/go-graphsync v0.9.2 github.com/ipfs/go-ipfs-blockstore v1.0.4 github.com/ipfs/go-ipfs-blocksutil v0.0.1 github.com/ipfs/go-ipfs-chunker v0.0.5 diff --git a/go.sum b/go.sum index 05de56ed2eb..0b3cc0f0fcb 100644 --- a/go.sum +++ b/go.sum @@ -651,8 +651,9 @@ github.com/ipfs/go-graphsync v0.1.0/go.mod h1:jMXfqIEDFukLPZHqDPp8tJMbHO9Rmeb9CE github.com/ipfs/go-graphsync v0.4.2/go.mod h1:/VmbZTUdUMTbNkgzAiCEucIIAU3BkLE2cZrDCVUhyi0= github.com/ipfs/go-graphsync v0.4.3/go.mod h1:mPOwDYv128gf8gxPFgXnz4fNrSYPsWyqisJ7ych+XDY= github.com/ipfs/go-graphsync v0.9.0/go.mod h1:J62ahWT9JbPsFL2UWsUM5rOu0lZJ0LOIH1chHdxGGcw= -github.com/ipfs/go-graphsync v0.9.1 h1:jo7ZaAZ3lal89RhKxKoRkPzIO8lmOY6KUWA1mDRZ2+U= github.com/ipfs/go-graphsync v0.9.1/go.mod h1:J62ahWT9JbPsFL2UWsUM5rOu0lZJ0LOIH1chHdxGGcw= +github.com/ipfs/go-graphsync v0.9.2 h1:COioIHmQmhfjGQav1q0UQSg5EADvZCvhY/Iq/2rda3I= +github.com/ipfs/go-graphsync v0.9.2/go.mod h1:J62ahWT9JbPsFL2UWsUM5rOu0lZJ0LOIH1chHdxGGcw= github.com/ipfs/go-hamt-ipld v0.1.1/go.mod h1:1EZCr2v0jlCnhpa+aZ0JZYp8Tt2w16+JJOAVz17YcDk= github.com/ipfs/go-ipfs-blockstore v0.0.1/go.mod h1:d3WClOmRQKFnJ0Jz/jj/zmksX0ma1gROTlovZKBmN08= github.com/ipfs/go-ipfs-blockstore v0.1.0/go.mod h1:5aD0AvHPi7mZc6Ci1WCAhiBQu2IsfTduLl+422H6Rqw= From f77dc42ef0c88c85b9f080620903bcf1dbce5b54 Mon Sep 17 00:00:00 2001 From: hannahhoward Date: Tue, 21 Sep 2021 04:25:03 -0700 Subject: [PATCH 15/20] fix(deps): use go-graphsync v0.9.3 with hotfix --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c1c16e8c64a..ce859e20da0 100644 --- a/go.mod +++ b/go.mod @@ -77,7 +77,7 @@ require ( github.com/ipfs/go-ds-pebble v0.0.2-0.20200921225637-ce220f8ac459 github.com/ipfs/go-filestore v1.0.0 github.com/ipfs/go-fs-lock v0.0.6 - github.com/ipfs/go-graphsync v0.9.2 + github.com/ipfs/go-graphsync v0.9.3 github.com/ipfs/go-ipfs-blockstore v1.0.4 github.com/ipfs/go-ipfs-blocksutil v0.0.1 github.com/ipfs/go-ipfs-chunker v0.0.5 diff --git a/go.sum b/go.sum index 0b3cc0f0fcb..2b9be83ae38 100644 --- a/go.sum +++ b/go.sum @@ -652,8 +652,8 @@ github.com/ipfs/go-graphsync v0.4.2/go.mod h1:/VmbZTUdUMTbNkgzAiCEucIIAU3BkLE2cZ github.com/ipfs/go-graphsync v0.4.3/go.mod h1:mPOwDYv128gf8gxPFgXnz4fNrSYPsWyqisJ7ych+XDY= github.com/ipfs/go-graphsync v0.9.0/go.mod h1:J62ahWT9JbPsFL2UWsUM5rOu0lZJ0LOIH1chHdxGGcw= github.com/ipfs/go-graphsync v0.9.1/go.mod h1:J62ahWT9JbPsFL2UWsUM5rOu0lZJ0LOIH1chHdxGGcw= -github.com/ipfs/go-graphsync v0.9.2 h1:COioIHmQmhfjGQav1q0UQSg5EADvZCvhY/Iq/2rda3I= -github.com/ipfs/go-graphsync v0.9.2/go.mod h1:J62ahWT9JbPsFL2UWsUM5rOu0lZJ0LOIH1chHdxGGcw= +github.com/ipfs/go-graphsync v0.9.3 h1:oWqUuN3OYqLwu669fxYbgymBrIodB0fD7vFZfF//X7Y= +github.com/ipfs/go-graphsync v0.9.3/go.mod h1:J62ahWT9JbPsFL2UWsUM5rOu0lZJ0LOIH1chHdxGGcw= github.com/ipfs/go-hamt-ipld v0.1.1/go.mod h1:1EZCr2v0jlCnhpa+aZ0JZYp8Tt2w16+JJOAVz17YcDk= github.com/ipfs/go-ipfs-blockstore v0.0.1/go.mod h1:d3WClOmRQKFnJ0Jz/jj/zmksX0ma1gROTlovZKBmN08= github.com/ipfs/go-ipfs-blockstore v0.1.0/go.mod h1:5aD0AvHPi7mZc6Ci1WCAhiBQu2IsfTduLl+422H6Rqw= From 153470c3d2473bb48ed41331d1304e3df9263492 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Tue, 21 Sep 2021 22:48:56 -0400 Subject: [PATCH 16/20] bump lotus version to v1.11.3-rc2 --- build/openrpc/full.json.gz | Bin 25416 -> 25416 bytes build/openrpc/miner.json.gz | Bin 10424 -> 10424 bytes build/openrpc/worker.json.gz | Bin 2710 -> 2710 bytes build/version.go | 2 +- documentation/en/cli-lotus-miner.md | 2 +- documentation/en/cli-lotus-worker.md | 4 ++-- documentation/en/cli-lotus.md | 2 +- 7 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index c6066ded86f40f514f444d4ca14ca3af55e81b5a..becafecf6bf590e5c93020911c72dba50726ddb1 100644 GIT binary patch delta 23 fcmX?cjPb-V#tFTQw>S1}O5(V>cZ2!Q?<@=elQRq8 delta 23 fcmX?cjPb-V#tFTQ(Hr|VC2{=NGjaCM?<@=ej(!Wr diff --git a/build/openrpc/miner.json.gz b/build/openrpc/miner.json.gz index cf61819521d766a8c4c90f6395212fb89778575b..4894e7ed99c5d3ff623490959e24ebb197e50174 100644 GIT binary patch delta 22 ecmdlHxFc{vJ5zPS#!ht&j^E-sul#Q_G5`Q?Y6$B9 delta 22 ecmdlHxFc{vJJas`jh*Tm9F1CAp84NqWB>qj%?Vck diff --git a/build/openrpc/worker.json.gz b/build/openrpc/worker.json.gz index 8176c12daa33af64eea871f664b6dfd2c1d06c21..1801396c39bdf6b1d0674060f53a224293a2972f 100644 GIT binary patch delta 21 ccmbOxI!$y!Go$s!7A`K1^<8)DBC8k}08(KG9RL6T delta 21 dcmbOxI!$y!Gvn=zEnHk2sb8nOjjUo|003Qi2t@z@ diff --git a/build/version.go b/build/version.go index 4a35cce8dba..bcb82395a61 100644 --- a/build/version.go +++ b/build/version.go @@ -40,7 +40,7 @@ func buildType() string { } // BuildVersion is the local build version -const BuildVersion = "1.11.3-rc1" +const BuildVersion = "1.11.3-rc2" 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 4796e28ec50..29a72ed452a 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.11.3-rc1 + 1.11.3-rc2 COMMANDS: init Initialize a lotus miner repo diff --git a/documentation/en/cli-lotus-worker.md b/documentation/en/cli-lotus-worker.md index 7b8ac441699..c0436e69bae 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.11.3-rc1 + 1.11.3-rc2 COMMANDS: run Start lotus worker @@ -20,7 +20,7 @@ COMMANDS: GLOBAL OPTIONS: --worker-repo value, --workerrepo value Specify worker repo path. flag workerrepo and env WORKER_PATH are DEPRECATION, will REMOVE SOON (default: "~/.lotusworker") [$LOTUS_WORKER_PATH, $WORKER_PATH] - --miner-repo value, --storagerepo value Specify miner repo path. flag storagerepo and env LOTUS_STORAGE_PATH are DEPRECATION, will REMOVE SOON (default: "~/.lotusminer") [$LOTUS_MINER_PATH, $LOTUS_STORAGE_PATH] + --miner-repo value, --storagerepo value Specify miner repo path. flag storagerepo and env LOTUS_STORAGE_PATH are DEPRECATION, will REMOVE SOON (default: "~.lotusminer") [$LOTUS_MINER_PATH, $LOTUS_STORAGE_PATH] --enable-gpu-proving enable use of GPU for mining operations (default: true) --help, -h show help (default: false) --version, -v print the version (default: false) diff --git a/documentation/en/cli-lotus.md b/documentation/en/cli-lotus.md index 446c83f6dbf..39bacda1975 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.11.3-rc1 + 1.11.3-rc2 COMMANDS: daemon Start a lotus daemon process From 6b9aeca71d2a7383ed737f3f235a013b12280878 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Tue, 21 Sep 2021 22:51:01 -0400 Subject: [PATCH 17/20] update the changelog --- CHANGELOG.md | 184 +++++++++++++++++++++++++-------------------------- 1 file changed, 92 insertions(+), 92 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 30054e004fe..705ad4c72dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,115 +1,115 @@ # Lotus changelog -# v1.11.3-rc1 / 2021-09-08 +# v1.11.3-rc2 / 2021-09-21 -This is the first release candidate for lotus v1.11.3. Changelog will be updated later. +This is the second release candidate for lotus v1.11.3. Detailed changelog will be updated upon final release. ## Changelog - github.com/filecoin-project/lotus: - - version bump v1.11.3-rc1 - - update to proof v0.9.2 ([filecoin-project/lotus#7297](https://github.com/filecoin-project/lotus/pull/7297)) - - Show deal sizes is sealing sectors ([filecoin-project/lotus#7261](https://github.com/filecoin-project/lotus/pull/7261)) - - docker entrypoint.sh missing variable escape character ([filecoin-project/lotus#7291](https://github.com/filecoin-project/lotus/pull/7291)) - - Update go-graphsync v0.9.1 ([filecoin-project/lotus#7294](https://github.com/filecoin-project/lotus/pull/7294)) - - itests: remove cid equality comparison ([filecoin-project/lotus#7292](https://github.com/filecoin-project/lotus/pull/7292)) - - v1.11.2 -> master ([filecoin-project/lotus#7288](https://github.com/filecoin-project/lotus/pull/7288)) - - fix index out of range ([filecoin-project/lotus#7273](https://github.com/filecoin-project/lotus/pull/7273)) - - dealpublisher: Fully validate deals before publishing ([filecoin-project/lotus#7234](https://github.com/filecoin-project/lotus/pull/7234)) - - introduce MaxStagingDealsBytes - reject new deals if our staging deals area is full ([filecoin-project/lotus#7276](https://github.com/filecoin-project/lotus/pull/7276)) - - Update to unified go-graphsync v0.9.0 ([filecoin-project/lotus#7197](https://github.com/filecoin-project/lotus/pull/7197)) - - Increase threshold from 0.5% to 1% ([filecoin-project/lotus#7262](https://github.com/filecoin-project/lotus/pull/7262)) - - integrate the proof patch: tag proofs-v9-revert-deps-hotfix ([filecoin-project/lotus#7260](https://github.com/filecoin-project/lotus/pull/7260)) - - update to go-fil-markets v1.11.0 ([filecoin-project/lotus#7253](https://github.com/filecoin-project/lotus/pull/7253)) - - Add partition info to the 'sectors status' command ([filecoin-project/lotus#7246](https://github.com/filecoin-project/lotus/pull/7246)) - - sealing: Fix sector state accounting with FinalizeEarly ([filecoin-project/lotus#7256](https://github.com/filecoin-project/lotus/pull/7256)) - - chain: Cleanup consensus logic ([filecoin-project/lotus#7255](https://github.com/filecoin-project/lotus/pull/7255)) - - builder: Handle chainstore config in ConfigFullNode ([filecoin-project/lotus#7232](https://github.com/filecoin-project/lotus/pull/7232)) - - sealing: Fix retry loop in SubmitCommitAggregate ([filecoin-project/lotus#7245](https://github.com/filecoin-project/lotus/pull/7245)) - - fix: correctly handle null blocks when detecting an expensive fork ([filecoin-project/lotus#7210](https://github.com/filecoin-project/lotus/pull/7210)) - - sectors expired: Handle precomitted and unproven sectors correctly ([filecoin-project/lotus#7236](https://github.com/filecoin-project/lotus/pull/7236)) - - stores: Fix reserved disk usage log spam ([filecoin-project/lotus#7233](https://github.com/filecoin-project/lotus/pull/7233)) - - gateway: check tipsets in ChainGetPath ([filecoin-project/lotus#7230](https://github.com/filecoin-project/lotus/pull/7230)) - - Refactor events subsystem ([filecoin-project/lotus#7000](https://github.com/filecoin-project/lotus/pull/7000)) - - test: re-enable disabled tests ([filecoin-project/lotus#7211](https://github.com/filecoin-project/lotus/pull/7211)) - - fix: make lotus soup use the correct dependencies ([filecoin-project/lotus#7221](https://github.com/filecoin-project/lotus/pull/7221)) - - upgrade go-data-transfer; propagate deal cancellations. ([filecoin-project/lotus#7208](https://github.com/filecoin-project/lotus/pull/7208)) - - revert changes to OnDealExpiredOrChanged in #5431 #7201 ([filecoin-project/lotus#7220](https://github.com/filecoin-project/lotus/pull/7220)) - - Reduce lotus-miner startup spam ([filecoin-project/lotus#7205](https://github.com/filecoin-project/lotus/pull/7205)) - - config for disabling NAT port mapping ([filecoin-project/lotus#7204](https://github.com/filecoin-project/lotus/pull/7204)) - - Add optional mined block list to miner info ([filecoin-project/lotus#7202](https://github.com/filecoin-project/lotus/pull/7202)) - - ([filecoin-project/lotus#7201](https://github.com/filecoin-project/lotus/pull/7201)) - - fix: init restore adds empty storage.json ([filecoin-project/lotus#7025](https://github.com/filecoin-project/lotus/pull/7025)) - - Insert miner and network power data as gibibytes to avoid int64 overflows ([filecoin-project/lotus#7194](https://github.com/filecoin-project/lotus/pull/7194)) - - sealing: Check piece CIDs after AddPiece ([filecoin-project/lotus#7185](https://github.com/filecoin-project/lotus/pull/7185)) - - markets: OnDealExpiredOrSlashed - get deal by proposal instead of deal ID ([filecoin-project/lotus#5431](https://github.com/filecoin-project/lotus/pull/5431)) - - Revert "Merge pull request #7187 from filecoin-project/test/disable-broken-testground" ([filecoin-project/lotus#7191](https://github.com/filecoin-project/lotus/pull/7191)) - - ci: exclude cruft from code coverage ([filecoin-project/lotus#7189](https://github.com/filecoin-project/lotus/pull/7189)) - - fix: disable broken testground integration test ([filecoin-project/lotus#7187](https://github.com/filecoin-project/lotus/pull/7187)) - - Incoming: improve a log message ([filecoin-project/lotus#7181](https://github.com/filecoin-project/lotus/pull/7181)) - - Simple alert system; FD limit alerts ([filecoin-project/lotus#7108](https://github.com/filecoin-project/lotus/pull/7108)) - - journal: make current log file have a fixed named (#7112) ([filecoin-project/lotus#7112](https://github.com/filecoin-project/lotus/pull/7112)) - - call string.Repeat always with positive int ([filecoin-project/lotus#7104](https://github.com/filecoin-project/lotus/pull/7104)) - - Bump version to v1.11.3-dev ([filecoin-project/lotus#7180](https://github.com/filecoin-project/lotus/pull/7180)) - - Fix throttling bug ([filecoin-project/lotus#7177](https://github.com/filecoin-project/lotus/pull/7177)) - - fix: make TestTimedCacheBlockstoreSimple pass reliably ([filecoin-project/lotus#7174](https://github.com/filecoin-project/lotus/pull/7174)) - - Shed: Create a verifreg command for when VRK isn't a multisig ([filecoin-project/lotus#7099](https://github.com/filecoin-project/lotus/pull/7099)) - - fix TestDealPublisher ([filecoin-project/lotus#7173](https://github.com/filecoin-project/lotus/pull/7173)) - - test: disable flaky TestBatchDealInput ([filecoin-project/lotus#7176](https://github.com/filecoin-project/lotus/pull/7176)) - - itests: support larger sector sizes; add large deal test. ([filecoin-project/lotus#7148](https://github.com/filecoin-project/lotus/pull/7148)) - - Turn off patch ([filecoin-project/lotus#7172](https://github.com/filecoin-project/lotus/pull/7172)) - - miner: Command to list/remove expired sectors ([filecoin-project/lotus#7140](https://github.com/filecoin-project/lotus/pull/7140)) - - Ignore nil throttler ([filecoin-project/lotus#7169](https://github.com/filecoin-project/lotus/pull/7169)) - - test: disable flaky TestSimultaneousTransferLimit ([filecoin-project/lotus#7153](https://github.com/filecoin-project/lotus/pull/7153)) + - bump lotus version to v1.11.3-rc2 + - fix(deps): use go-graphsync v0.9.3 with hotfix + - feat(deps): update go-graphsync v0.9.2 + - unit test where StateMarketStorageDeal return nil, err + - GetCurrentDealInfo err: handle correctly err case + - update to ffi to update-bellperson-proofs-v9-0-2 ([filecoin-project/lotus#7369](https://github.com/filecoin-project/lotus/pull/7369)) + - fix bug for CommittedCapacitySectorLifetime ([filecoin-project/lotus#7337](https://github.com/filecoin-project/lotus/pull/7337)) + - feat(ci): include version/cli checks in tagged releases ([filecoin-project/lotus#7331](https://github.com/filecoin-project/lotus/pull/7331)) + - fix a panic in HandleRecoverDealIDs ([filecoin-project/lotus#7336](https://github.com/filecoin-project/lotus/pull/7336)) + - build macOS CI ([filecoin-project/lotus#7307](https://github.com/filecoin-project/lotus/pull/7307)) + - remove job to install jq + - v1.11.3-rc1 ([filecoin-project/lotus#7299](https://github.com/filecoin-project/lotus/pull/7299)) + - update to proof v0.9.2 ([filecoin-project/lotus#7297](https://github.com/filecoin-project/lotus/pull/7297)) + - Show deal sizes is sealing sectors ([filecoin-project/lotus#7261](https://github.com/filecoin-project/lotus/pull/7261)) + - docker entrypoint.sh missing variable escape character ([filecoin-project/lotus#7291](https://github.com/filecoin-project/lotus/pull/7291)) + - Update go-graphsync v0.9.1 ([filecoin-project/lotus#7294](https://github.com/filecoin-project/lotus/pull/7294)) + - itests: remove cid equality comparison ([filecoin-project/lotus#7292](https://github.com/filecoin-project/lotus/pull/7292)) + - v1.11.2 -> master ([filecoin-project/lotus#7288](https://github.com/filecoin-project/lotus/pull/7288)) + - fix index out of range ([filecoin-project/lotus#7273](https://github.com/filecoin-project/lotus/pull/7273)) + - dealpublisher: Fully validate deals before publishing ([filecoin-project/lotus#7234](https://github.com/filecoin-project/lotus/pull/7234)) + - introduce MaxStagingDealsBytes - reject new deals if our staging deals area is full ([filecoin-project/lotus#7276](https://github.com/filecoin-project/lotus/pull/7276)) + - Update to unified go-graphsync v0.9.0 ([filecoin-project/lotus#7197](https://github.com/filecoin-project/lotus/pull/7197)) + - Increase threshold from 0.5% to 1% ([filecoin-project/lotus#7262](https://github.com/filecoin-project/lotus/pull/7262)) + - integrate the proof patch: tag proofs-v9-revert-deps-hotfix ([filecoin-project/lotus#7260](https://github.com/filecoin-project/lotus/pull/7260)) + - update to go-fil-markets v1.11.0 ([filecoin-project/lotus#7253](https://github.com/filecoin-project/lotus/pull/7253)) + - Add partition info to the 'sectors status' command ([filecoin-project/lotus#7246](https://github.com/filecoin-project/lotus/pull/7246)) + - sealing: Fix sector state accounting with FinalizeEarly ([filecoin-project/lotus#7256](https://github.com/filecoin-project/lotus/pull/7256)) + - chain: Cleanup consensus logic ([filecoin-project/lotus#7255](https://github.com/filecoin-project/lotus/pull/7255)) + - builder: Handle chainstore config in ConfigFullNode ([filecoin-project/lotus#7232](https://github.com/filecoin-project/lotus/pull/7232)) + - sealing: Fix retry loop in SubmitCommitAggregate ([filecoin-project/lotus#7245](https://github.com/filecoin-project/lotus/pull/7245)) + - fix: correctly handle null blocks when detecting an expensive fork ([filecoin-project/lotus#7210](https://github.com/filecoin-project/lotus/pull/7210)) + - sectors expired: Handle precomitted and unproven sectors correctly ([filecoin-project/lotus#7236](https://github.com/filecoin-project/lotus/pull/7236)) + - stores: Fix reserved disk usage log spam ([filecoin-project/lotus#7233](https://github.com/filecoin-project/lotus/pull/7233)) + - gateway: check tipsets in ChainGetPath ([filecoin-project/lotus#7230](https://github.com/filecoin-project/lotus/pull/7230)) + - Refactor events subsystem ([filecoin-project/lotus#7000](https://github.com/filecoin-project/lotus/pull/7000)) + - test: re-enable disabled tests ([filecoin-project/lotus#7211](https://github.com/filecoin-project/lotus/pull/7211)) + - fix: make lotus soup use the correct dependencies ([filecoin-project/lotus#7221](https://github.com/filecoin-project/lotus/pull/7221)) + - upgrade go-data-transfer; propagate deal cancellations. ([filecoin-project/lotus#7208](https://github.com/filecoin-project/lotus/pull/7208)) + - revert changes to OnDealExpiredOrChanged in #5431 #7201 ([filecoin-project/lotus#7220](https://github.com/filecoin-project/lotus/pull/7220)) + - Reduce lotus-miner startup spam ([filecoin-project/lotus#7205](https://github.com/filecoin-project/lotus/pull/7205)) + - config for disabling NAT port mapping ([filecoin-project/lotus#7204](https://github.com/filecoin-project/lotus/pull/7204)) + - Add optional mined block list to miner info ([filecoin-project/lotus#7202](https://github.com/filecoin-project/lotus/pull/7202)) + - ([filecoin-project/lotus#7201](https://github.com/filecoin-project/lotus/pull/7201)) + - fix: init restore adds empty storage.json ([filecoin-project/lotus#7025](https://github.com/filecoin-project/lotus/pull/7025)) + - Insert miner and network power data as gibibytes to avoid int64 overflows ([filecoin-project/lotus#7194](https://github.com/filecoin-project/lotus/pull/7194)) + - sealing: Check piece CIDs after AddPiece ([filecoin-project/lotus#7185](https://github.com/filecoin-project/lotus/pull/7185)) + - markets: OnDealExpiredOrSlashed - get deal by proposal instead of deal ID ([filecoin-project/lotus#5431](https://github.com/filecoin-project/lotus/pull/5431)) + - Revert "Merge pull request #7187 from filecoin-project/test/disable-broken-testground" ([filecoin-project/lotus#7191](https://github.com/filecoin-project/lotus/pull/7191)) + - ci: exclude cruft from code coverage ([filecoin-project/lotus#7189](https://github.com/filecoin-project/lotus/pull/7189)) + - fix: disable broken testground integration test ([filecoin-project/lotus#7187](https://github.com/filecoin-project/lotus/pull/7187)) + - Incoming: improve a log message ([filecoin-project/lotus#7181](https://github.com/filecoin-project/lotus/pull/7181)) + - Simple alert system; FD limit alerts ([filecoin-project/lotus#7108](https://github.com/filecoin-project/lotus/pull/7108)) + - journal: make current log file have a fixed named (#7112) ([filecoin-project/lotus#7112](https://github.com/filecoin-project/lotus/pull/7112)) + - call string.Repeat always with positive int ([filecoin-project/lotus#7104](https://github.com/filecoin-project/lotus/pull/7104)) + - Bump version to v1.11.3-dev ([filecoin-project/lotus#7180](https://github.com/filecoin-project/lotus/pull/7180)) + - Fix throttling bug ([filecoin-project/lotus#7177](https://github.com/filecoin-project/lotus/pull/7177)) + - fix: make TestTimedCacheBlockstoreSimple pass reliably ([filecoin-project/lotus#7174](https://github.com/filecoin-project/lotus/pull/7174)) + - Shed: Create a verifreg command for when VRK isn't a multisig ([filecoin-project/lotus#7099](https://github.com/filecoin-project/lotus/pull/7099)) + - fix TestDealPublisher ([filecoin-project/lotus#7173](https://github.com/filecoin-project/lotus/pull/7173)) + - test: disable flaky TestBatchDealInput ([filecoin-project/lotus#7176](https://github.com/filecoin-project/lotus/pull/7176)) + - itests: support larger sector sizes; add large deal test. ([filecoin-project/lotus#7148](https://github.com/filecoin-project/lotus/pull/7148)) + - Turn off patch ([filecoin-project/lotus#7172](https://github.com/filecoin-project/lotus/pull/7172)) + - miner: Command to list/remove expired sectors ([filecoin-project/lotus#7140](https://github.com/filecoin-project/lotus/pull/7140)) + - Ignore nil throttler ([filecoin-project/lotus#7169](https://github.com/filecoin-project/lotus/pull/7169)) + - test: disable flaky TestSimultaneousTransferLimit ([filecoin-project/lotus#7153](https://github.com/filecoin-project/lotus/pull/7153)) - github.com/filecoin-project/go-data-transfer (v1.7.8 -> v1.10.1): - - docs(CHANGELOG): update for 1.10.1 - - Fix parallel transfers between same two peers (#254) ([filecoin-project/go-data-transfer#254](https://github.com/filecoin-project/go-data-transfer/pull/254)) - - release: v1.10.0 ([filecoin-project/go-data-transfer#253](https://github.com/filecoin-project/go-data-transfer/pull/253)) - - feat: integrate graphsync-v0.9.0 (#252) ([filecoin-project/go-data-transfer#252](https://github.com/filecoin-project/go-data-transfer/pull/252)) - - release: v1.9.0 ([filecoin-project/go-data-transfer#251](https://github.com/filecoin-project/go-data-transfer/pull/251)) - - fix: ensure graphsync transport only closes complete channel once (#250) ([filecoin-project/go-data-transfer#250](https://github.com/filecoin-project/go-data-transfer/pull/250)) - - revert: integration of graphsync-v0.9.0 until we are ready to test the whole stack with it (#249) ([filecoin-project/go-data-transfer#249](https://github.com/filecoin-project/go-data-transfer/pull/249)) - - v1.8.0 release ([filecoin-project/go-data-transfer#247](https://github.com/filecoin-project/go-data-transfer/pull/247)) - - Update to unified go graphsync v0.9.0 (#246) ([filecoin-project/go-data-transfer#246](https://github.com/filecoin-project/go-data-transfer/pull/246)) + - docs(CHANGELOG): update for 1.10.1 + - Fix parallel transfers between same two peers (#254) ([filecoin-project/go-data-transfer#254](https://github.com/filecoin-project/go-data-transfer/pull/254)) + - release: v1.10.0 ([filecoin-project/go-data-transfer#253](https://github.com/filecoin-project/go-data-transfer/pull/253)) + - feat: integrate graphsync-v0.9.0 (#252) ([filecoin-project/go-data-transfer#252](https://github.com/filecoin-project/go-data-transfer/pull/252)) + - release: v1.9.0 ([filecoin-project/go-data-transfer#251](https://github.com/filecoin-project/go-data-transfer/pull/251)) + - fix: ensure graphsync transport only closes complete channel once (#250) ([filecoin-project/go-data-transfer#250](https://github.com/filecoin-project/go-data-transfer/pull/250)) + - revert: integration of graphsync-v0.9.0 until we are ready to test the whole stack with it (#249) ([filecoin-project/go-data-transfer#249](https://github.com/filecoin-project/go-data-transfer/pull/249)) + - v1.8.0 release ([filecoin-project/go-data-transfer#247](https://github.com/filecoin-project/go-data-transfer/pull/247)) + - Update to unified go graphsync v0.9.0 (#246) ([filecoin-project/go-data-transfer#246](https://github.com/filecoin-project/go-data-transfer/pull/246)) - github.com/filecoin-project/go-fil-markets (v1.8.1 -> v1.12.0): - - release: v1.12.0 - - Update to unified graphsync v0.9.0 (#627) ([filecoin-project/go-fil-markets#627](https://github.com/filecoin-project/go-fil-markets/pull/627)) - - release: v1.11.0 ([filecoin-project/go-fil-markets#626](https://github.com/filecoin-project/go-fil-markets/pull/626)) - - feat: upgrade to go-data-transfer v1.9.0 (#625) ([filecoin-project/go-fil-markets#625](https://github.com/filecoin-project/go-fil-markets/pull/625)) - - Revert "Update to unified graphsync v0.9.0 (#615)" (#624) ([filecoin-project/go-fil-markets#624](https://github.com/filecoin-project/go-fil-markets/pull/624)) - - Update to unified graphsync v0.9.0 (#615) ([filecoin-project/go-fil-markets#615](https://github.com/filecoin-project/go-fil-markets/pull/615)) - - fix: TestCancelDataTransfer (#622) ([filecoin-project/go-fil-markets#622](https://github.com/filecoin-project/go-fil-markets/pull/622)) - - rm go-multistore dependency. (#619) ([filecoin-project/go-fil-markets#619](https://github.com/filecoin-project/go-fil-markets/pull/619)) - - revert: OnDealExpiredOrSlashed changes (#620) ([filecoin-project/go-fil-markets#620](https://github.com/filecoin-project/go-fil-markets/pull/620)) - - fix(ci): include node in circle orb to fix docsgen (#618) ([filecoin-project/go-fil-markets#618](https://github.com/filecoin-project/go-fil-markets/pull/618)) - - release: v1.9.0 ([filecoin-project/go-fil-markets#617](https://github.com/filecoin-project/go-fil-markets/pull/617)) - - refactor: pass deal proposal instead of deal ID to OnDealExpiredOrSlashed (#616) ([filecoin-project/go-fil-markets#616](https://github.com/filecoin-project/go-fil-markets/pull/616)) - - fix: reject storage deals where the end epoch is too far in the future (#612) ([filecoin-project/go-fil-markets#612](https://github.com/filecoin-project/go-fil-markets/pull/612)) + - release: v1.12.0 + - Update to unified graphsync v0.9.0 (#627) ([filecoin-project/go-fil-markets#627](https://github.com/filecoin-project/go-fil-markets/pull/627)) + - release: v1.11.0 ([filecoin-project/go-fil-markets#626](https://github.com/filecoin-project/go-fil-markets/pull/626)) + - feat: upgrade to go-data-transfer v1.9.0 (#625) ([filecoin-project/go-fil-markets#625](https://github.com/filecoin-project/go-fil-markets/pull/625)) + - Revert "Update to unified graphsync v0.9.0 (#615)" (#624) ([filecoin-project/go-fil-markets#624](https://github.com/filecoin-project/go-fil-markets/pull/624)) + - Update to unified graphsync v0.9.0 (#615) ([filecoin-project/go-fil-markets#615](https://github.com/filecoin-project/go-fil-markets/pull/615)) + - fix: TestCancelDataTransfer (#622) ([filecoin-project/go-fil-markets#622](https://github.com/filecoin-project/go-fil-markets/pull/622)) + - rm go-multistore dependency. (#619) ([filecoin-project/go-fil-markets#619](https://github.com/filecoin-project/go-fil-markets/pull/619)) + - revert: OnDealExpiredOrSlashed changes (#620) ([filecoin-project/go-fil-markets#620](https://github.com/filecoin-project/go-fil-markets/pull/620)) + - fix(ci): include node in circle orb to fix docsgen (#618) ([filecoin-project/go-fil-markets#618](https://github.com/filecoin-project/go-fil-markets/pull/618)) + - release: v1.9.0 ([filecoin-project/go-fil-markets#617](https://github.com/filecoin-project/go-fil-markets/pull/617)) + - refactor: pass deal proposal instead of deal ID to OnDealExpiredOrSlashed (#616) ([filecoin-project/go-fil-markets#616](https://github.com/filecoin-project/go-fil-markets/pull/616)) + - fix: reject storage deals where the end epoch is too far in the future (#612) ([filecoin-project/go-fil-markets#612](https://github.com/filecoin-project/go-fil-markets/pull/612)) Contributors | Contributor | Commits | Lines ± | Files Changed | |-------------|---------|---------|---------------| -| Łukasz Magiera | 38 | +3306/-1825 | 178 | +| Łukasz Magiera | 39 | +3311/-1825 | 179 | | Steven Allen | 23 | +1935/-1417 | 84 | | dirkmc | 12 | +921/-732 | 111 | | Dirk McCormick | 12 | +663/-790 | 30 | | Hannah Howard | 3 | +482/-275 | 46 | | Travis Person | 1 | +317/-65 | 5 | -| hannahhoward | 5 | +251/-50 | 12 | -| Anton Evangelatov | 7 | +198/-37 | 17 | +| hannahhoward | 7 | +257/-55 | 16 | +| Anton Evangelatov | 9 | +258/-37 | 19 | | Raúl Kripalani | 4 | +127/-36 | 13 | -| raulk | 1 | +43/-60 | 15 | -| Aayush Rajasekaran | 4 | +74/-8 | 10 | -| Frank | 2 | +68/-8 | 3 | -| Adrian Lanzafame | 1 | +16/-2 | 1 | -| Aarsh Shah | 2 | +11/-6 | 2 | -| Jennifer Wang | 3 | +7/-7 | 9 | -| ZenGround0 | 2 | +7/-6 | 2 | -| KAYUII | 2 | +4/-4 | 2 | -| lanzafame | 1 | +6/-0 | 1 | -| Jacob Heun | 1 | +3/-3 | 1 | -| frank | 1 | +4/-0 | 1 | # v1.11.2 / 2021-09-06 From 08cec487cfe1eb6bc14a0803ca3a7331dc684453 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Tue, 21 Sep 2021 23:01:43 -0400 Subject: [PATCH 18/20] make gen --- documentation/en/cli-lotus-worker.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/en/cli-lotus-worker.md b/documentation/en/cli-lotus-worker.md index c0436e69bae..88112bc8aa8 100644 --- a/documentation/en/cli-lotus-worker.md +++ b/documentation/en/cli-lotus-worker.md @@ -20,7 +20,7 @@ COMMANDS: GLOBAL OPTIONS: --worker-repo value, --workerrepo value Specify worker repo path. flag workerrepo and env WORKER_PATH are DEPRECATION, will REMOVE SOON (default: "~/.lotusworker") [$LOTUS_WORKER_PATH, $WORKER_PATH] - --miner-repo value, --storagerepo value Specify miner repo path. flag storagerepo and env LOTUS_STORAGE_PATH are DEPRECATION, will REMOVE SOON (default: "~.lotusminer") [$LOTUS_MINER_PATH, $LOTUS_STORAGE_PATH] + --miner-repo value, --storagerepo value Specify miner repo path. flag storagerepo and env LOTUS_STORAGE_PATH are DEPRECATION, will REMOVE SOON (default: "~/.lotusminer") [$LOTUS_MINER_PATH, $LOTUS_STORAGE_PATH] --enable-gpu-proving enable use of GPU for mining operations (default: true) --help, -h show help (default: false) --version, -v print the version (default: false) From 67864334a389f63e097364b21d86e7d9c06fa0f1 Mon Sep 17 00:00:00 2001 From: Mike Greenberg Date: Wed, 22 Sep 2021 15:00:59 -0400 Subject: [PATCH 19/20] fix: escape periods to match actual periods in version --- scripts/version-check.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/version-check.sh b/scripts/version-check.sh index ee4cce686d3..4f424ca0cab 100755 --- a/scripts/version-check.sh +++ b/scripts/version-check.sh @@ -16,7 +16,7 @@ function validate_lotus_version_matches_tag(){ # get version lotus_raw_version=`${lotus_path} --version` # grep for version string - lotus_actual_version=`echo ${lotus_raw_version} | grep -oE '[0-9]+.[0-9]+.[0-9]+'` + lotus_actual_version=`echo ${lotus_raw_version} | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'` # trim leading 'v' tag=${2#v} From 7c015840a6c4f208fe1d51a49d60130c070192e6 Mon Sep 17 00:00:00 2001 From: Jennifer Wang Date: Wed, 29 Sep 2021 02:42:38 -0400 Subject: [PATCH 20/20] v1.11.3 release prep --- CHANGELOG.md | 209 ++++++++++++++------------- build/openrpc/full.json.gz | Bin 25416 -> 25413 bytes build/openrpc/miner.json.gz | Bin 10424 -> 10421 bytes build/openrpc/worker.json.gz | Bin 2710 -> 2707 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 +- 8 files changed, 111 insertions(+), 106 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 705ad4c72dc..bcedad7c2c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,115 +1,120 @@ # Lotus changelog -# v1.11.3-rc2 / 2021-09-21 +# v1.11.3 / 2021-09-29 -This is the second release candidate for lotus v1.11.3. Detailed changelog will be updated upon final release. +lotus v1.11.3 is a feature release that's **highly recommended to ALL lotus users to upgrade**, including node +operators, storage providers and clients. It includes many improvements and bug fixes that result in perf +improvements in different area, like deal making, sealing and so on. -## Changelog +## Highlights + +- 🌟🌟Introduce `MaxStagingDealsBytes - reject new deals if our staging deals area is full ([filecoin-project/lotus#7276](https://github.com/filecoin-project/lotus/pull/7276)) + - Set `MaxStagingDealsBytes` under the [Dealmaking] section of the markets' subsystem's `config.toml` to reject new incoming deals when the `deal-staging` directory of market subsystem's repo gets too large. +- 🌟🌟miner: Command to list/remove expired sectors locally ([filecoin-project/lotus#7140](https://github.com/filecoin-project/lotus/pull/7140)) + - run `./lotus-miner sectors expired -h` for more details. +- 🚀update to ffi to update-bellperson-proofs-v9-0-2 ([filecoin-project/lotus#7369](https://github.com/filecoin-project/lotus/pull/7369)) + - MinerX fellows(early testers of lotus releases) have reported faster WindowPoSt computation! +- 🌟dealpublisher: Fully validate deals before publishing ([filecoin-project/lotus#7234](https://github.com/filecoin-project/lotus/pull/7234)) + - This excludes the expired deals before sending out a PSD message which reduces the chances of PSD message failure due to invalid deals. +- 🌟Simple alert system; FD limit alerts ([filecoin-project/lotus#7108](https://github.com/filecoin-project/lotus/pull/7108)) + +## New Features + +- feat(ci): include version/cli checks in tagged releases ([filecoin-project/lotus#7331](https://github.com/filecoin-project/lotus/pull/7331)) +- Show deal sizes is sealing sectors ([filecoin-project/lotus#7261](https://github.com/filecoin-project/lotus/pull/7261)) +- config for disabling NAT port mapping ([filecoin-project/lotus#7204](https://github.com/filecoin-project/lotus/pull/7204)) +- Add optional mined block list to miner info ([filecoin-project/lotus#7202](https://github.com/filecoin-project/lotus/pull/7202)) +- Shed: Create a verifreg command for when VRK isn't a multisig ([filecoin-project/lotus#7099](https://github.com/filecoin-project/lotus/pull/7099)) + +## Improvements + +- build macOS CI ([filecoin-project/lotus#7307](https://github.com/filecoin-project/lotus/pull/7307)) +- itests: remove cid equality comparison ([filecoin-project/lotus#7292](https://github.com/filecoin-project/lotus/pull/7292)) +- Add partition info to the 'sectors status' command ([filecoin-project/lotus#7246](https://github.com/filecoin-project/lotus/pull/7246)) +- chain: Cleanup consensus logic ([filecoin-project/lotus#7255](https://github.com/filecoin-project/lotus/pull/7255)) +- builder: Handle chainstore config in ConfigFullNode ([filecoin-project/lotus#7232](https://github.com/filecoin-project/lotus/pull/7232)) +- gateway: check tipsets in ChainGetPath ([filecoin-project/lotus#7230](https://github.com/filecoin-project/lotus/pull/7230)) +- Refactor events subsystem ([filecoin-project/lotus#7000](https://github.com/filecoin-project/lotus/pull/7000)) +- test: re-enable disabled tests ([filecoin-project/lotus#7211](https://github.com/filecoin-project/lotus/pull/7211)) +- Reduce lotus-miner startup spam ([filecoin-project/lotus#7205](https://github.com/filecoin-project/lotus/pull/7205)) +- Catch deal slashed because sector was terminated ([filecoin-project/lotus#7201](https://github.com/filecoin-project/lotus/pull/7201)) +- Insert miner and network power data as gibibytes to avoid int64 overflows ([filecoin-project/lotus#7194](https://github.com/filecoin-project/lotus/pull/7194)) +- sealing: Check piece CIDs after AddPiece ([filecoin-project/lotus#7185](https://github.com/filecoin-project/lotus/pull/7185)) +- markets: OnDealExpiredOrSlashed - get deal by proposal instead of deal ID ([filecoin-project/lotus#5431](https://github.com/filecoin-project/lotus/pull/5431)) +- Incoming: improve a log message ([filecoin-project/lotus#7181](https://github.com/filecoin-project/lotus/pull/7181)) +- journal: make current log file have a fixed named (#7112) ([filecoin-project/lotus#7112](https://github.com/filecoin-project/lotus/pull/7112)) +- call string.Repeat always with positive int ([filecoin-project/lotus#7104](https://github. com/filecoin-project/lotus/pull/7104)) +- itests: support larger sector sizes; add large deal test. ([filecoin-project/lotus#7148](https://github.com/filecoin-project/lotus/pull/7148)) +- Ignore nil throttler ([filecoin-project/lotus#7169](https://github.com/filecoin-project/lotus/pull/7169)) + +## Bug Fixes + +- fix: escape periods to match actual periods in version +- fix bug for CommittedCapacitySectorLifetime ([filecoin-project/lotus#7337](https://github.com/filecoin-project/lotus/pull/7337)) +- fix a panic in HandleRecoverDealIDs ([filecoin-project/lotus#7336](https://github.com/filecoin-project/lotus/pull/7336)) +- fix index out of range ([filecoin-project/lotus#7273](https://github.com/filecoin-project/lotus/pull/7273)) +- fix: correctly handle null blocks when detecting an expensive fork ([filecoin-project/lotus#7210](https://github.com/filecoin-project/lotus/pull/7210)) +- fix: make lotus soup use the correct dependencies ([filecoin-project/lotus#7221](https://github.com/filecoin-project/lotus/pull/7221)) +- fix: init restore adds empty storage.json ([filecoin-project/lotus#7025](https://github.com/filecoin-project/lotus/pull/7025)) +- fix: disable broken testground integration test ([filecoin-project/lotus#7187](https://github.com/filecoin-project/lotus/pull/7187)) +- fix TestDealPublisher ([filecoin-project/lotus#7173](https://github.com/filecoin-project/lotus/pull/7173)) +- fix: make TestTimedCacheBlockstoreSimple pass reliably ([filecoin-project/lotus#7174](https://github.com/filecoin-project/lotus/pull/7174)) +- Fix throttling bug ([filecoin-project/lotus#7177](https://github.com/filecoin-project/lotus/pull/7177)) +- sealing: Fix sector state accounting with FinalizeEarly ([filecoin-project/lotus#7256](https://github.com/filecoin-project/lotus/pull/7256)) +- docker entrypoint.sh missing variable escape character ([filecoin-project/lotus#7291](https://github.com/filecoin-project/lotus/pull/7291)) +- sealing: Fix retry loop in SubmitCommitAggregate ([filecoin-project/lotus#7245](https://github.com/filecoin-project/lotus/pull/7245)) +- sectors expired: Handle precomitted and unproven sectors correctly ([filecoin-project/lotus#7236](https://github.com/filecoin-project/lotus/pull/7236)) +- stores: Fix reserved disk usage log spam ([filecoin-project/lotus#7233](https://github.com/filecoin-project/lotus/pull/7233)) + + +## Dependency Updates -- github.com/filecoin-project/lotus: - - bump lotus version to v1.11.3-rc2 - - fix(deps): use go-graphsync v0.9.3 with hotfix - - feat(deps): update go-graphsync v0.9.2 - - unit test where StateMarketStorageDeal return nil, err - - GetCurrentDealInfo err: handle correctly err case - - update to ffi to update-bellperson-proofs-v9-0-2 ([filecoin-project/lotus#7369](https://github.com/filecoin-project/lotus/pull/7369)) - - fix bug for CommittedCapacitySectorLifetime ([filecoin-project/lotus#7337](https://github.com/filecoin-project/lotus/pull/7337)) - - feat(ci): include version/cli checks in tagged releases ([filecoin-project/lotus#7331](https://github.com/filecoin-project/lotus/pull/7331)) - - fix a panic in HandleRecoverDealIDs ([filecoin-project/lotus#7336](https://github.com/filecoin-project/lotus/pull/7336)) - - build macOS CI ([filecoin-project/lotus#7307](https://github.com/filecoin-project/lotus/pull/7307)) - - remove job to install jq - - v1.11.3-rc1 ([filecoin-project/lotus#7299](https://github.com/filecoin-project/lotus/pull/7299)) - - update to proof v0.9.2 ([filecoin-project/lotus#7297](https://github.com/filecoin-project/lotus/pull/7297)) - - Show deal sizes is sealing sectors ([filecoin-project/lotus#7261](https://github.com/filecoin-project/lotus/pull/7261)) - - docker entrypoint.sh missing variable escape character ([filecoin-project/lotus#7291](https://github.com/filecoin-project/lotus/pull/7291)) - - Update go-graphsync v0.9.1 ([filecoin-project/lotus#7294](https://github.com/filecoin-project/lotus/pull/7294)) - - itests: remove cid equality comparison ([filecoin-project/lotus#7292](https://github.com/filecoin-project/lotus/pull/7292)) - - v1.11.2 -> master ([filecoin-project/lotus#7288](https://github.com/filecoin-project/lotus/pull/7288)) - - fix index out of range ([filecoin-project/lotus#7273](https://github.com/filecoin-project/lotus/pull/7273)) - - dealpublisher: Fully validate deals before publishing ([filecoin-project/lotus#7234](https://github.com/filecoin-project/lotus/pull/7234)) - - introduce MaxStagingDealsBytes - reject new deals if our staging deals area is full ([filecoin-project/lotus#7276](https://github.com/filecoin-project/lotus/pull/7276)) - - Update to unified go-graphsync v0.9.0 ([filecoin-project/lotus#7197](https://github.com/filecoin-project/lotus/pull/7197)) - - Increase threshold from 0.5% to 1% ([filecoin-project/lotus#7262](https://github.com/filecoin-project/lotus/pull/7262)) - - integrate the proof patch: tag proofs-v9-revert-deps-hotfix ([filecoin-project/lotus#7260](https://github.com/filecoin-project/lotus/pull/7260)) - - update to go-fil-markets v1.11.0 ([filecoin-project/lotus#7253](https://github.com/filecoin-project/lotus/pull/7253)) - - Add partition info to the 'sectors status' command ([filecoin-project/lotus#7246](https://github.com/filecoin-project/lotus/pull/7246)) - - sealing: Fix sector state accounting with FinalizeEarly ([filecoin-project/lotus#7256](https://github.com/filecoin-project/lotus/pull/7256)) - - chain: Cleanup consensus logic ([filecoin-project/lotus#7255](https://github.com/filecoin-project/lotus/pull/7255)) - - builder: Handle chainstore config in ConfigFullNode ([filecoin-project/lotus#7232](https://github.com/filecoin-project/lotus/pull/7232)) - - sealing: Fix retry loop in SubmitCommitAggregate ([filecoin-project/lotus#7245](https://github.com/filecoin-project/lotus/pull/7245)) - - fix: correctly handle null blocks when detecting an expensive fork ([filecoin-project/lotus#7210](https://github.com/filecoin-project/lotus/pull/7210)) - - sectors expired: Handle precomitted and unproven sectors correctly ([filecoin-project/lotus#7236](https://github.com/filecoin-project/lotus/pull/7236)) - - stores: Fix reserved disk usage log spam ([filecoin-project/lotus#7233](https://github.com/filecoin-project/lotus/pull/7233)) - - gateway: check tipsets in ChainGetPath ([filecoin-project/lotus#7230](https://github.com/filecoin-project/lotus/pull/7230)) - - Refactor events subsystem ([filecoin-project/lotus#7000](https://github.com/filecoin-project/lotus/pull/7000)) - - test: re-enable disabled tests ([filecoin-project/lotus#7211](https://github.com/filecoin-project/lotus/pull/7211)) - - fix: make lotus soup use the correct dependencies ([filecoin-project/lotus#7221](https://github.com/filecoin-project/lotus/pull/7221)) - - upgrade go-data-transfer; propagate deal cancellations. ([filecoin-project/lotus#7208](https://github.com/filecoin-project/lotus/pull/7208)) - - revert changes to OnDealExpiredOrChanged in #5431 #7201 ([filecoin-project/lotus#7220](https://github.com/filecoin-project/lotus/pull/7220)) - - Reduce lotus-miner startup spam ([filecoin-project/lotus#7205](https://github.com/filecoin-project/lotus/pull/7205)) - - config for disabling NAT port mapping ([filecoin-project/lotus#7204](https://github.com/filecoin-project/lotus/pull/7204)) - - Add optional mined block list to miner info ([filecoin-project/lotus#7202](https://github.com/filecoin-project/lotus/pull/7202)) - - ([filecoin-project/lotus#7201](https://github.com/filecoin-project/lotus/pull/7201)) - - fix: init restore adds empty storage.json ([filecoin-project/lotus#7025](https://github.com/filecoin-project/lotus/pull/7025)) - - Insert miner and network power data as gibibytes to avoid int64 overflows ([filecoin-project/lotus#7194](https://github.com/filecoin-project/lotus/pull/7194)) - - sealing: Check piece CIDs after AddPiece ([filecoin-project/lotus#7185](https://github.com/filecoin-project/lotus/pull/7185)) - - markets: OnDealExpiredOrSlashed - get deal by proposal instead of deal ID ([filecoin-project/lotus#5431](https://github.com/filecoin-project/lotus/pull/5431)) - - Revert "Merge pull request #7187 from filecoin-project/test/disable-broken-testground" ([filecoin-project/lotus#7191](https://github.com/filecoin-project/lotus/pull/7191)) - - ci: exclude cruft from code coverage ([filecoin-project/lotus#7189](https://github.com/filecoin-project/lotus/pull/7189)) - - fix: disable broken testground integration test ([filecoin-project/lotus#7187](https://github.com/filecoin-project/lotus/pull/7187)) - - Incoming: improve a log message ([filecoin-project/lotus#7181](https://github.com/filecoin-project/lotus/pull/7181)) - - Simple alert system; FD limit alerts ([filecoin-project/lotus#7108](https://github.com/filecoin-project/lotus/pull/7108)) - - journal: make current log file have a fixed named (#7112) ([filecoin-project/lotus#7112](https://github.com/filecoin-project/lotus/pull/7112)) - - call string.Repeat always with positive int ([filecoin-project/lotus#7104](https://github.com/filecoin-project/lotus/pull/7104)) - - Bump version to v1.11.3-dev ([filecoin-project/lotus#7180](https://github.com/filecoin-project/lotus/pull/7180)) - - Fix throttling bug ([filecoin-project/lotus#7177](https://github.com/filecoin-project/lotus/pull/7177)) - - fix: make TestTimedCacheBlockstoreSimple pass reliably ([filecoin-project/lotus#7174](https://github.com/filecoin-project/lotus/pull/7174)) - - Shed: Create a verifreg command for when VRK isn't a multisig ([filecoin-project/lotus#7099](https://github.com/filecoin-project/lotus/pull/7099)) - - fix TestDealPublisher ([filecoin-project/lotus#7173](https://github.com/filecoin-project/lotus/pull/7173)) - - test: disable flaky TestBatchDealInput ([filecoin-project/lotus#7176](https://github.com/filecoin-project/lotus/pull/7176)) - - itests: support larger sector sizes; add large deal test. ([filecoin-project/lotus#7148](https://github.com/filecoin-project/lotus/pull/7148)) - - Turn off patch ([filecoin-project/lotus#7172](https://github.com/filecoin-project/lotus/pull/7172)) - - miner: Command to list/remove expired sectors ([filecoin-project/lotus#7140](https://github.com/filecoin-project/lotus/pull/7140)) - - Ignore nil throttler ([filecoin-project/lotus#7169](https://github.com/filecoin-project/lotus/pull/7169)) - - test: disable flaky TestSimultaneousTransferLimit ([filecoin-project/lotus#7153](https://github.com/filecoin-project/lotus/pull/7153)) -- github.com/filecoin-project/go-data-transfer (v1.7.8 -> v1.10.1): - - docs(CHANGELOG): update for 1.10.1 - - Fix parallel transfers between same two peers (#254) ([filecoin-project/go-data-transfer#254](https://github.com/filecoin-project/go-data-transfer/pull/254)) - - release: v1.10.0 ([filecoin-project/go-data-transfer#253](https://github.com/filecoin-project/go-data-transfer/pull/253)) - - feat: integrate graphsync-v0.9.0 (#252) ([filecoin-project/go-data-transfer#252](https://github.com/filecoin-project/go-data-transfer/pull/252)) - - release: v1.9.0 ([filecoin-project/go-data-transfer#251](https://github.com/filecoin-project/go-data-transfer/pull/251)) - - fix: ensure graphsync transport only closes complete channel once (#250) ([filecoin-project/go-data-transfer#250](https://github.com/filecoin-project/go-data-transfer/pull/250)) - - revert: integration of graphsync-v0.9.0 until we are ready to test the whole stack with it (#249) ([filecoin-project/go-data-transfer#249](https://github.com/filecoin-project/go-data-transfer/pull/249)) - - v1.8.0 release ([filecoin-project/go-data-transfer#247](https://github.com/filecoin-project/go-data-transfer/pull/247)) - - Update to unified go graphsync v0.9.0 (#246) ([filecoin-project/go-data-transfer#246](https://github.com/filecoin-project/go-data-transfer/pull/246)) - github.com/filecoin-project/go-fil-markets (v1.8.1 -> v1.12.0): - - release: v1.12.0 - - Update to unified graphsync v0.9.0 (#627) ([filecoin-project/go-fil-markets#627](https://github.com/filecoin-project/go-fil-markets/pull/627)) - - release: v1.11.0 ([filecoin-project/go-fil-markets#626](https://github.com/filecoin-project/go-fil-markets/pull/626)) - - feat: upgrade to go-data-transfer v1.9.0 (#625) ([filecoin-project/go-fil-markets#625](https://github.com/filecoin-project/go-fil-markets/pull/625)) - - Revert "Update to unified graphsync v0.9.0 (#615)" (#624) ([filecoin-project/go-fil-markets#624](https://github.com/filecoin-project/go-fil-markets/pull/624)) - - Update to unified graphsync v0.9.0 (#615) ([filecoin-project/go-fil-markets#615](https://github.com/filecoin-project/go-fil-markets/pull/615)) - - fix: TestCancelDataTransfer (#622) ([filecoin-project/go-fil-markets#622](https://github.com/filecoin-project/go-fil-markets/pull/622)) - - rm go-multistore dependency. (#619) ([filecoin-project/go-fil-markets#619](https://github.com/filecoin-project/go-fil-markets/pull/619)) - - revert: OnDealExpiredOrSlashed changes (#620) ([filecoin-project/go-fil-markets#620](https://github.com/filecoin-project/go-fil-markets/pull/620)) - - fix(ci): include node in circle orb to fix docsgen (#618) ([filecoin-project/go-fil-markets#618](https://github.com/filecoin-project/go-fil-markets/pull/618)) - - release: v1.9.0 ([filecoin-project/go-fil-markets#617](https://github.com/filecoin-project/go-fil-markets/pull/617)) - - refactor: pass deal proposal instead of deal ID to OnDealExpiredOrSlashed (#616) ([filecoin-project/go-fil-markets#616](https://github.com/filecoin-project/go-fil-markets/pull/616)) - - fix: reject storage deals where the end epoch is too far in the future (#612) ([filecoin-project/go-fil-markets#612](https://github.com/filecoin-project/go-fil-markets/pull/612)) +- github.com/filecoin-project/go-data-transfer (v1.7.8 -> v1.10.1): +- update to ffi to update-bellperson-proofs-v9-0-2 ([filecoin-project/lotus#7369](https://github.com/filecoin-project/lotus/pull/7369)) +- fix(deps): use go-graphsync v0.9.3 with hotfix +- Update to unified go-graphsync v0.9.0 ([filecoin-project/lotus#7197](https://github.com/filecoin-project/lotus/pull/7197)) -Contributors +## Others + +- v1.11.3-rc2 ([filecoin-project/lotus#7371](https://github.com/filecoin-project/lotus/pull/7371)) +- v1.11.3-rc1 ([filecoin-project/lotus#7299](https://github.com/filecoin-project/lotus/pull/7299)) +- Increase threshold from 0.5% to 1% ([filecoin-project/lotus#7262](https://github.com/filecoin-project/lotus/pull/7262)) +- ci: exclude cruft from code coverage ([filecoin-project/lotus#7189](https://github.com/filecoin-project/lotus/pull/7189)) +- Bump version to v1.11.3-dev ([filecoin-project/lotus#7180](https://github.com/filecoin-project/lotus/pull/7180)) +- test: disable flaky TestBatchDealInput ([filecoin-project/lotus#7176](https://github.com/filecoin-project/lotus/pull/7176)) +- Turn off patch ([filecoin-project/lotus#7172](https://github.com/filecoin-project/lotus/pull/7172)) +- test: disable flaky TestSimultaneousTransferLimit ([filecoin-project/lotus#7153](https://github.com/filecoin-project/lotus/pull/7153)) + + +## Contributors | Contributor | Commits | Lines ± | Files Changed | |-------------|---------|---------|---------------| -| Łukasz Magiera | 39 | +3311/-1825 | 179 | -| Steven Allen | 23 | +1935/-1417 | 84 | -| dirkmc | 12 | +921/-732 | 111 | -| Dirk McCormick | 12 | +663/-790 | 30 | -| Hannah Howard | 3 | +482/-275 | 46 | -| Travis Person | 1 | +317/-65 | 5 | -| hannahhoward | 7 | +257/-55 | 16 | -| Anton Evangelatov | 9 | +258/-37 | 19 | -| Raúl Kripalani | 4 | +127/-36 | 13 | +| @magik6k | 39 | +3311/-1825 | 179 | +| @Stebalien | 23 | +1935/-1417 | 84 | +| @dirkmc | 12 | +921/-732 | 111 | +| @dirkmc | 12 | +663/-790 | 30 | +| @hannahhoward | 3 | +482/-275 | 46 | +| @travisperson | 1 | +317/-65 | 5 | +| @jennijuju | 11 | +223/-126 | 24 | +| @hannahhoward | 7 | +257/-55 | 16 | +| @nonsense| 9 | +258/-37 | 19 | +| @raulk | 4 | +127/-36 | 13 | +| @raulk | 1 | +43/-60 | 15 | +| @arajasek | 4 | +74/-8 | 10 | +| @Frank | 2 | +68/-8 | 3 | +| @placer14| 2 | +52/-1 | 4 | +| @ldoublewood | 2 | +15/-13 | 3 | +| @lanzafame | 1 | +16/-2 | 1 | +| @aarshkshah1992 | 2 | +11/-6 | 2 | +| @ZenGround0 | 2 | +7/-6 | 2 | +| @ognots | 1 | +0/-10 | 2 | +| @KAYUII | 2 | +4/-4 | 2 | +| @lanzafame | 1 | +6/-0 | 1 | +| @jacobheun | 1 | +3/-3 | 1 | +| @frank | 1 | +4/-0 | 1 | + # v1.11.2 / 2021-09-06 diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index becafecf6bf590e5c93020911c72dba50726ddb1..1bb364685273192b65cc8c7ecf93ce20173e06a5 100644 GIT binary patch literal 25413 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�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 delta 10379 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 diff --git a/build/openrpc/worker.json.gz b/build/openrpc/worker.json.gz index 1801396c39bdf6b1d0674060f53a224293a2972f..d9e4cd049a654174c6e4cba3ac3d4698c623eda5 100644 GIT binary patch delta 2606 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 delta 2609 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 Tchmm`00960uZrA0S$Y5fSyBO| diff --git a/build/version.go b/build/version.go index bcb82395a61..6938bb8eec3 100644 --- a/build/version.go +++ b/build/version.go @@ -40,7 +40,7 @@ func buildType() string { } // BuildVersion is the local build version -const BuildVersion = "1.11.3-rc2" +const BuildVersion = "1.11.3" 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 29a72ed452a..2721fc4211a 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.11.3-rc2 + 1.11.3 COMMANDS: init Initialize a lotus miner repo diff --git a/documentation/en/cli-lotus-worker.md b/documentation/en/cli-lotus-worker.md index 88112bc8aa8..bac57568f37 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.11.3-rc2 + 1.11.3 COMMANDS: run Start lotus worker diff --git a/documentation/en/cli-lotus.md b/documentation/en/cli-lotus.md index 39bacda1975..dec689d2507 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.11.3-rc2 + 1.11.3 COMMANDS: daemon Start a lotus daemon process