Merge branch 'master' into feat/fvm
This commit is contained in:
commit
16128a0212
302
CHANGELOG.md
302
CHANGELOG.md
@ -1,5 +1,134 @@
|
|||||||
# Lotus changelog
|
# Lotus changelog
|
||||||
|
|
||||||
|
# 1.15.0 / 2022-03-09
|
||||||
|
|
||||||
|
This is an optional release with retrieval improvements(client side), SP ux with unsealing, snap deals and regular deal making and many other new features, improvements and bug fixes.
|
||||||
|
|
||||||
|
## Highlights
|
||||||
|
- feat:sealing: StartEpochSealingBuffer triggers packing on time([filecoin-project/lotus#7905](https://github.com/filecoin-project/lotus/pull/7905))
|
||||||
|
- use the `StartEpochSealingBuffer` configuration variable as a way to enforce that sectors are packed for sealing / updating no matter how many deals they have if the nearest deal start date is close enough to the present.
|
||||||
|
- feat: #6017 market: retrieval ask CLI command ([filecoin-project/lotus#7814](https://github.com/filecoin-project/lotus/pull/7814))
|
||||||
|
- feat(graphsync): allow setting of per-peer incoming requests for miners ([filecoin-project/lotus#7578](https://github.com/filecoin-project/lotus/pull/7578))
|
||||||
|
- by setting `SimultaneousTransfersForStoragePerClient` in deal making configuration.
|
||||||
|
- Make retrieval even faster ([filecoin-project/lotus#7746](https://github.com/filecoin-project/lotus/pull/7746))
|
||||||
|
- feat: #7747 sealing: Adding conf variable for capping number of concurrent unsealing jobs (#7884) ([filecoin-project/lotus#7884](https://github.com/filecoin-project/lotus/pull/7884))
|
||||||
|
- by setting `MaxConcurrentUnseals` in `DAGStoreConfig`
|
||||||
|
|
||||||
|
## New Features
|
||||||
|
- feat: mpool: Cache state nonces ([filecoin-project/lotus#8005](https://github.com/filecoin-project/lotus/pull/8005))
|
||||||
|
- chore: build: make the OhSnap epoch configurable by an envvar for devnets ([filecoin-project/lotus#7995](https://github.com/filecoin-project/lotus/pull/7995))
|
||||||
|
- Shed: Add a util to send a batch of messages ([filecoin-project/lotus#7667](https://github.com/filecoin-project/lotus/pull/7667))
|
||||||
|
- Add api for transfer diagnostics ([filecoin-project/lotus#7759](https://github.com/filecoin-project/lotus/pull/7759))
|
||||||
|
- Shed: Add a util to list terminated deals ([filecoin-project/lotus#7774](https://github.com/filecoin-project/lotus/pull/7774))
|
||||||
|
- Expose EnableGasTracing as an env_var ([filecoin-project/lotus#7750](https://github.com/filecoin-project/lotus/pull/7750))
|
||||||
|
- Command to list active sector locks ([filecoin-project/lotus#7735](https://github.com/filecoin-project/lotus/pull/7735))
|
||||||
|
- Initial switch to OpenTelemetry ([filecoin-project/lotus#7725](https://github.com/filecoin-project/lotus/pull/7725))
|
||||||
|
|
||||||
|
## Improvements
|
||||||
|
- splitstore sortless compaction ([filecoin-project/lotus#8008](https://github.com/filecoin-project/lotus/pull/8008))
|
||||||
|
- perf: chain: Make drand logs in daemon less noisy (#7955) ([filecoin-project/lotus#7955](https://github.com/filecoin-project/lotus/pull/7955))
|
||||||
|
- chore: shed: storage stats 2.0 ([filecoin-project/lotus#7941](https://github.com/filecoin-project/lotus/pull/7941))
|
||||||
|
- misc: api: Annotate lotus tests according to listed behaviors ([filecoin-project/lotus#7835](https://github.com/filecoin-project/lotus/pull/7835))
|
||||||
|
- some basic splitstore refactors ([filecoin-project/lotus#7999](https://github.com/filecoin-project/lotus/pull/7999))
|
||||||
|
- chore: sealer: quieten a log ([filecoin-project/lotus#7998](https://github.com/filecoin-project/lotus/pull/7998))
|
||||||
|
- tvx: supply network version when extracting messages. ([filecoin-project/lotus#7996](https://github.com/filecoin-project/lotus/pull/7996))
|
||||||
|
- chore: remove inaccurate comment in sealtasks ([filecoin-project/lotus#7977](https://github.com/filecoin-project/lotus/pull/7977))
|
||||||
|
- Refactor: VM: Remove the NetworkVersionGetter ([filecoin-project/lotus#7818](https://github.com/filecoin-project/lotus/pull/7818))
|
||||||
|
- refactor: state: Move randomness versioning out of the VM ([filecoin-project/lotus#7816](https://github.com/filecoin-project/lotus/pull/7816))
|
||||||
|
- updating to new datastore/blockstore code with contexts ([filecoin-project/lotus#7646](https://github.com/filecoin-project/lotus/pull/7646))
|
||||||
|
- Mempool msg selection should respect block message limits ([filecoin-project/lotus#7321](https://github.com/filecoin-project/lotus/pull/7321))
|
||||||
|
- Minor improvement for OpenTelemetry ([filecoin-project/lotus#7760](https://github.com/filecoin-project/lotus/pull/7760))
|
||||||
|
- Sort lotus-miner retrieval-deals by dealId ([filecoin-project/lotus#7749](https://github.com/filecoin-project/lotus/pull/7749))
|
||||||
|
- dagstore pieceReader: Always read full in ReadAt ([filecoin-project/lotus#7737](https://github.com/filecoin-project/lotus/pull/7737))
|
||||||
|
|
||||||
|
## Bug Fixes
|
||||||
|
- fix: sealing: Stop recovery attempts after fault ([filecoin-project/lotus#8014](https://github.com/filecoin-project/lotus/pull/8014))
|
||||||
|
- fix:snap: pay for the collateral difference needed if the miner available balance is insufficient ([filecoin-project/lotus#8234](https://github.com/filecoin-project/lotus/pull/8234))
|
||||||
|
- sealer: fix error message ([filecoin-project/lotus#8136](https://github.com/filecoin-project/lotus/pull/8136))
|
||||||
|
- typo in variable name ([filecoin-project/lotus#8134](https://github.com/filecoin-project/lotus/pull/8134))
|
||||||
|
- fix: sealer: allow enable/disabling ReplicaUpdate tasks ([filecoin-project/lotus#8093](https://github.com/filecoin-project/lotus/pull/8093))
|
||||||
|
- chore: chain: fix log ([filecoin-project/lotus#7993](https://github.com/filecoin-project/lotus/pull/7993))
|
||||||
|
- Fix: chain: create a new VM for each epoch ([filecoin-project/lotus#7966](https://github.com/filecoin-project/lotus/pull/7966))
|
||||||
|
- fix: doc generation struct slice example value ([filecoin-project/lotus#7851](https://github.com/filecoin-project/lotus/pull/7851))
|
||||||
|
- fix: returned error not be accept correctly ([filecoin-project/lotus#7852](https://github.com/filecoin-project/lotus/pull/7852))
|
||||||
|
- fix: #7577 markets: When retrying Add Piece, first seek to start of reader ([filecoin-project/lotus#7812](https://github.com/filecoin-project/lotus/pull/7812))
|
||||||
|
- misc: n/a sealing: Fix grammatical error in a log warning message ([filecoin-project/lotus#7831](https://github.com/filecoin-project/lotus/pull/7831))
|
||||||
|
- sectors update-state checks if sector exists before changing its state ([filecoin-project/lotus#7762](https://github.com/filecoin-project/lotus/pull/7762))
|
||||||
|
- SplitStore: supress compaction near upgrades ([filecoin-project/lotus#7734](https://github.com/filecoin-project/lotus/pull/7734))
|
||||||
|
|
||||||
|
## Dependency Updates
|
||||||
|
- github.com/filecoin-project/go-commp-utils (v0.1.2 -> v0.1.3):
|
||||||
|
- github.com/filecoin-project/dagstore (v0.4.3 -> v0.4.4):
|
||||||
|
- github.com/filecoin-project/go-fil-markets (v1.13.4 -> v1.19.2):
|
||||||
|
- github.com/filecoin-project/go-statestore (v0.1.1 -> v0.2.0):
|
||||||
|
- github.com/filecoin-project/go-storedcounter (v0.0.0-20200421200003-1c99c62e8a5b -> v0.1.0):
|
||||||
|
- github.com/filecoin-project/specs-actors/v2 (v2.3.5 -> v2.3.6):
|
||||||
|
- feat(deps): update markets stack ([filecoin-project/lotus#7959](https://github.com/filecoin-project/lotus/pull/7959))
|
||||||
|
- Use go-libp2p-connmgr v0.3.1 ([filecoin-project/lotus#7957](https://github.com/filecoin-project/lotus/pull/7957))
|
||||||
|
- dep/fix 7701 Dependency: update to ipld-legacy to v0.1.1 ([filecoin-project/lotus#7751](https://github.com/filecoin-project/lotus/pull/7751))
|
||||||
|
|
||||||
|
## Others
|
||||||
|
- chore: backport: release ([filecoin-project/lotus#8245](https://github.com/filecoin-project/lotus/pull/8245))
|
||||||
|
- Lotus release v1.15.0-rc3 ([filecoin-project/lotus#8236](https://github.com/filecoin-project/lotus/pull/8236))
|
||||||
|
- Lotus release v1.15.0-rc2 ([filecoin-project/lotus#8211](https://github.com/filecoin-project/lotus/pull/8211))
|
||||||
|
- Merge branch 'releases' into release/v1.15.0
|
||||||
|
- chore: build: backport releases ([filecoin-project/lotus#8193](https://github.com/filecoin-project/lotus/pull/8193))
|
||||||
|
- Merge branch 'releases' into release/v1.15.0
|
||||||
|
- bump the version to v1.15.0-rc1
|
||||||
|
- chore: build: v1.14.0 -> master ([filecoin-project/lotus#8053](https://github.com/filecoin-project/lotus/pull/8053))
|
||||||
|
- chore: merge release/v1.14.0 PRs into master ([filecoin-project/lotus#7979](https://github.com/filecoin-project/lotus/pull/7979))
|
||||||
|
- chore: update PR template ([filecoin-project/lotus#7918](https://github.com/filecoin-project/lotus/pull/7918))
|
||||||
|
- build: release: bump master version to v1.15.0-dev ([filecoin-project/lotus#7922](https://github.com/filecoin-project/lotus/pull/7922))
|
||||||
|
- misc: docs: remove issue number from the pr title ([filecoin-project/lotus#7902](https://github.com/filecoin-project/lotus/pull/7902))
|
||||||
|
- Snapcraft grade no develgrade ([filecoin-project/lotus#7802](https://github.com/filecoin-project/lotus/pull/7802))
|
||||||
|
- chore: create pull_request_template.md ([filecoin-project/lotus#7726](https://github.com/filecoin-project/lotus/pull/7726))
|
||||||
|
- Disable appimage ([filecoin-project/lotus#7707](https://github.com/filecoin-project/lotus/pull/7707))
|
||||||
|
|
||||||
|
## Contributors
|
||||||
|
| Contributor | Commits | Lines ± | Files Changed |
|
||||||
|
|-------------|---------|---------|---------------|
|
||||||
|
| @arajasek | 73 | +7232/-2778 | 386 |
|
||||||
|
| @zenground0 | 27 | +5604/-1049 | 219 |
|
||||||
|
| @vyzo | 118 | +4356/-1470 | 253 |
|
||||||
|
| @zl | 1 | +3725/-309 | 8 |
|
||||||
|
| @dirkmc | 7 | +1392/-1110 | 61 |
|
||||||
|
| arajasek | 37 | +221/-1329 | 90 |
|
||||||
|
| @magik6k | 33 | +1138/-336 | 101 |
|
||||||
|
| @whyrusleeping | 2 | +483/-585 | 28 |
|
||||||
|
| Darko Brdareski | 14 | +725/-276 | 154 |
|
||||||
|
| @rvagg | 2 | +43/-947 | 10 |
|
||||||
|
| @hannahhoward | 5 | +436/-335 | 31 |
|
||||||
|
| @hannahhoward | 12 | +507/-133 | 37 |
|
||||||
|
| @jennijuju | 27 | +333/-178 | 54 |
|
||||||
|
| @TheMenko | 8 | +237/-179 | 17 |
|
||||||
|
| c r | 2 | +227/-45 | 12 |
|
||||||
|
| @dirkmck | 12 | +188/-40 | 27 |
|
||||||
|
| @ribasushi | 3 | +128/-62 | 3 |
|
||||||
|
| @raulk | 6 | +128/-49 | 9 |
|
||||||
|
| @Whyrusleeping | 1 | +76/-70 | 8 |
|
||||||
|
| @Stebalien | 1 | +55/-37 | 1 |
|
||||||
|
| @jennijuju | 11 | +29/-16 | 11 |
|
||||||
|
| @aarshkshah1992 | 1 | +23/-19 | 5 |
|
||||||
|
| @travisperson | 1 | +0/-18 | 2 |
|
||||||
|
| @gstuart | 3 | +12/-1 | 3 |
|
||||||
|
| @coryschwartz | 4 | +5/-6 | 4 |
|
||||||
|
| @pefish | 1 | +4/-3 | 1 |
|
||||||
|
| @Kubuxu | 1 | +5/-2 | 2 |
|
||||||
|
| Colin Kennedy | 1 | +4/-2 | 1 |
|
||||||
|
| Rob Quist | 1 | +2/-2 | 1 |
|
||||||
|
| @shotcollin | 1 | +1/-1 | 1 |
|
||||||
|
|
||||||
|
|
||||||
|
# 1.14.4 / 2022-03-03
|
||||||
|
|
||||||
|
This is a *highly recommended* optional release for storage providers that are doing snap deals. This fix the bug
|
||||||
|
that causes some snap deal sectors are stuck in `FinalizeReplicaUpdate`. In addition, SPs should be able to force
|
||||||
|
update sectors status without getting blocked by `normal shutdown of state machine`.
|
||||||
|
|
||||||
|
# v1.14.3 / 2022-02-28
|
||||||
|
|
||||||
|
This is an **optional** release, that includes a fix to properly register the `--really-do-it` flag for abort-upgrade.
|
||||||
|
|
||||||
# 1.14.2 / 2022-02-24
|
# 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).
|
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).
|
||||||
@ -326,7 +455,7 @@ This feature release includes the latest functionalities and improvements, like
|
|||||||
- Prep retrieval for selectors: no functional changes ([filecoin-project/lotus#7306](https://github.com/filecoin-project/lotus/pull/7306))
|
- Prep retrieval for selectors: no functional changes ([filecoin-project/lotus#7306](https://github.com/filecoin-project/lotus/pull/7306))
|
||||||
- Seed: improve helptext ([filecoin-project/lotus#7304](https://github.com/filecoin-project/lotus/pull/7304))
|
- Seed: improve helptext ([filecoin-project/lotus#7304](https://github.com/filecoin-project/lotus/pull/7304))
|
||||||
- Mempool: reduce size of sigValCache ([filecoin-project/lotus#7305](https://github.com/filecoin-project/lotus/pull/7305))
|
- Mempool: reduce size of sigValCache ([filecoin-project/lotus#7305](https://github.com/filecoin-project/lotus/pull/7305))
|
||||||
- Stop indirectly depending on deprecated github.com/prometheus/common ([filecoin-project/lotus#7474](https://github.com/filecoin-project/lotus/pull/7474))
|
- Stop indirectly depending on deprecated github.com/prometheus/common ([filecoin-project/lotus#7474](https://github.com/filecoin-project/lotus/pull/7474))
|
||||||
|
|
||||||
## Bug Fixes
|
## Bug Fixes
|
||||||
- StateSearchMsg: Correct usage of the allowReplaced flag ([filecoin-project/lotus#7450](https://github.com/filecoin-project/lotus/pull/7450))
|
- StateSearchMsg: Correct usage of the allowReplaced flag ([filecoin-project/lotus#7450](https://github.com/filecoin-project/lotus/pull/7450))
|
||||||
@ -733,8 +862,8 @@ This is a **highly recommended** but optional Lotus v1.11.1 release that introd
|
|||||||
- You can now preview the the default and updated node config by running `lotus/lotus-miner config default/updated`
|
- You can now preview the the default and updated node config by running `lotus/lotus-miner config default/updated`
|
||||||
|
|
||||||
## New Features
|
## New Features
|
||||||
- ⭐️⭐️⭐️ Support standalone miner-market process ([filecoin-project/lotus#6356](https://github.com/filecoin-project/lotus/pull/6356))
|
- ⭐️⭐️⭐️ Support standalone miner-market process ([filecoin-project/lotus#6356](https://github.com/filecoin-project/lotus/pull/6356))
|
||||||
- **⭐️⭐️ Experimental** [Splitstore]((https://github.com/filecoin-project/lotus/blob/master/blockstore/splitstore/README.md)) (more details coming in v1.11.2! Stay tuned! Join the discussion [here](https://github.com/filecoin-project/lotus/discussions/5788) if you have questions!) :
|
- **⭐️⭐️ Experimental** [Splitstore]((https://github.com/filecoin-project/lotus/blob/master/blockstore/splitstore/README.md)) (more details coming in v1.11.2! Stay tuned! Join the discussion [here](https://github.com/filecoin-project/lotus/discussions/5788) if you have questions!) :
|
||||||
- Improve splitstore warmup ([filecoin-project/lotus#6867](https://github.com/filecoin-project/lotus/pull/6867))
|
- Improve splitstore warmup ([filecoin-project/lotus#6867](https://github.com/filecoin-project/lotus/pull/6867))
|
||||||
- Moving GC for badger ([filecoin-project/lotus#6854](https://github.com/filecoin-project/lotus/pull/6854))
|
- Moving GC for badger ([filecoin-project/lotus#6854](https://github.com/filecoin-project/lotus/pull/6854))
|
||||||
- splitstore shed utils ([filecoin-project/lotus#6811](https://github.com/filecoin-project/lotus/pull/6811))
|
- splitstore shed utils ([filecoin-project/lotus#6811](https://github.com/filecoin-project/lotus/pull/6811))
|
||||||
@ -748,95 +877,95 @@ This is a **highly recommended** but optional Lotus v1.11.1 release that introd
|
|||||||
- Splitstore code reorg ([filecoin-project/lotus#6756](https://github.com/filecoin-project/lotus/pull/6756))
|
- Splitstore code reorg ([filecoin-project/lotus#6756](https://github.com/filecoin-project/lotus/pull/6756))
|
||||||
- Splitstore: Some small fixes ([filecoin-project/lotus#6754](https://github.com/filecoin-project/lotus/pull/6754))
|
- Splitstore: Some small fixes ([filecoin-project/lotus#6754](https://github.com/filecoin-project/lotus/pull/6754))
|
||||||
- Splitstore Enhanchements ([filecoin-project/lotus#6474](https://github.com/filecoin-project/lotus/pull/6474))
|
- Splitstore Enhanchements ([filecoin-project/lotus#6474](https://github.com/filecoin-project/lotus/pull/6474))
|
||||||
- lotus-shed: initial export cmd for markets related metadata ([filecoin-project/lotus#6840](https://github.com/filecoin-project/lotus/pull/6840))
|
- lotus-shed: initial export cmd for markets related metadata ([filecoin-project/lotus#6840](https://github.com/filecoin-project/lotus/pull/6840))
|
||||||
- add a very verbose -vv flag to lotus and lotus-miner. ([filecoin-project/lotus#6888](https://github.com/filecoin-project/lotus/pull/6888))
|
- add a very verbose -vv flag to lotus and lotus-miner. ([filecoin-project/lotus#6888](https://github.com/filecoin-project/lotus/pull/6888))
|
||||||
- Add allocated sectorid vis ([filecoin-project/lotus#4638](https://github.com/filecoin-project/lotus/pull/4638))
|
- Add allocated sectorid vis ([filecoin-project/lotus#4638](https://github.com/filecoin-project/lotus/pull/4638))
|
||||||
- add a command for compacting sector numbers bitfield ([filecoin-project/lotus#4640](https://github.com/filecoin-project/lotus/pull/4640))
|
- add a command for compacting sector numbers bitfield ([filecoin-project/lotus#4640](https://github.com/filecoin-project/lotus/pull/4640))
|
||||||
- Run `lotus-miner actor compact-allocated` to compact sector number allocations to reduce the size of the allocated sector number bitfield.
|
- Run `lotus-miner actor compact-allocated` to compact sector number allocations to reduce the size of the allocated sector number bitfield.
|
||||||
- Add ChainGetMessagesInTipset API ([filecoin-project/lotus#6642](https://github.com/filecoin-project/lotus/pull/6642))
|
- Add ChainGetMessagesInTipset API ([filecoin-project/lotus#6642](https://github.com/filecoin-project/lotus/pull/6642))
|
||||||
- Handle the --color flag via proper global state ([filecoin-project/lotus#6743](https://github.com/filecoin-project/lotus/pull/6743))
|
- Handle the --color flag via proper global state ([filecoin-project/lotus#6743](https://github.com/filecoin-project/lotus/pull/6743))
|
||||||
- Enable color by default only if os.Stdout is a TTY ([filecoin-project/lotus#6696](https://github.com/filecoin-project/lotus/pull/6696))
|
- Enable color by default only if os.Stdout is a TTY ([filecoin-project/lotus#6696](https://github.com/filecoin-project/lotus/pull/6696))
|
||||||
- Stop outputing ANSI color on non-TTY ([filecoin-project/lotus#6694](https://github.com/filecoin-project/lotus/pull/6694))
|
- Stop outputing ANSI color on non-TTY ([filecoin-project/lotus#6694](https://github.com/filecoin-project/lotus/pull/6694))
|
||||||
- Envvar to disable slash filter ([filecoin-project/lotus#6620](https://github.com/filecoin-project/lotus/pull/6620))
|
- Envvar to disable slash filter ([filecoin-project/lotus#6620](https://github.com/filecoin-project/lotus/pull/6620))
|
||||||
- commit batch: AggregateAboveBaseFee config ([filecoin-project/lotus#6650](https://github.com/filecoin-project/lotus/pull/6650))
|
- commit batch: AggregateAboveBaseFee config ([filecoin-project/lotus#6650](https://github.com/filecoin-project/lotus/pull/6650))
|
||||||
- shed tool to estimate aggregate network fees ([filecoin-project/lotus#6631](https://github.com/filecoin-project/lotus/pull/6631))
|
- shed tool to estimate aggregate network fees ([filecoin-project/lotus#6631](https://github.com/filecoin-project/lotus/pull/6631))
|
||||||
|
|
||||||
## Bug Fixes
|
## Bug Fixes
|
||||||
- Fix padding of deals, which only partially shipped in #5988 ([filecoin-project/lotus#6683](https://github.com/filecoin-project/lotus/pull/6683))
|
- Fix padding of deals, which only partially shipped in #5988 ([filecoin-project/lotus#6683](https://github.com/filecoin-project/lotus/pull/6683))
|
||||||
- fix deal concurrency test failures by upgrading graphsync and others ([filecoin-project/lotus#6724](https://github.com/filecoin-project/lotus/pull/6724))
|
- fix deal concurrency test failures by upgrading graphsync and others ([filecoin-project/lotus#6724](https://github.com/filecoin-project/lotus/pull/6724))
|
||||||
- fix: on randomness change, use new rand ([filecoin-project/lotus#6805](https://github.com/filecoin-project/lotus/pull/6805)) - fix: always check if StateSearchMessage returns nil ([filecoin-project/lotus#6802](https://github.com/filecoin-project/lotus/pull/6802))
|
- fix: on randomness change, use new rand ([filecoin-project/lotus#6805](https://github.com/filecoin-project/lotus/pull/6805)) - fix: always check if StateSearchMessage returns nil ([filecoin-project/lotus#6802](https://github.com/filecoin-project/lotus/pull/6802))
|
||||||
- test: fix flaky window post tests ([filecoin-project/lotus#6804](https://github.com/filecoin-project/lotus/pull/6804))
|
- test: fix flaky window post tests ([filecoin-project/lotus#6804](https://github.com/filecoin-project/lotus/pull/6804))
|
||||||
- wrap close(wait) with sync.Once to avoid panic ([filecoin-project/lotus#6800](https://github.com/filecoin-project/lotus/pull/6800))
|
- wrap close(wait) with sync.Once to avoid panic ([filecoin-project/lotus#6800](https://github.com/filecoin-project/lotus/pull/6800))
|
||||||
- fixes #6786 segfault ([filecoin-project/lotus#6787](https://github.com/filecoin-project/lotus/pull/6787))
|
- fixes #6786 segfault ([filecoin-project/lotus#6787](https://github.com/filecoin-project/lotus/pull/6787))
|
||||||
- ClientRetrieve stops on cancel([filecoin-project/lotus#6739](https://github.com/filecoin-project/lotus/pull/6739))
|
- ClientRetrieve stops on cancel([filecoin-project/lotus#6739](https://github.com/filecoin-project/lotus/pull/6739))
|
||||||
- Fix bugs in sectors extend --v1-sectors ([filecoin-project/lotus#6066](https://github.com/filecoin-project/lotus/pull/6066))
|
- Fix bugs in sectors extend --v1-sectors ([filecoin-project/lotus#6066](https://github.com/filecoin-project/lotus/pull/6066))
|
||||||
- fix "lotus-seed genesis car" error "merkledag: not found" ([filecoin-project/lotus#6688](https://github.com/filecoin-project/lotus/pull/6688))
|
- fix "lotus-seed genesis car" error "merkledag: not found" ([filecoin-project/lotus#6688](https://github.com/filecoin-project/lotus/pull/6688))
|
||||||
- Get retrieval pricing input should not error out on a deal state fetch ([filecoin-project/lotus#6679](https://github.com/filecoin-project/lotus/pull/6679))
|
- Get retrieval pricing input should not error out on a deal state fetch ([filecoin-project/lotus#6679](https://github.com/filecoin-project/lotus/pull/6679))
|
||||||
- Fix more CID double-encoding as hex ([filecoin-project/lotus#6680](https://github.com/filecoin-project/lotus/pull/6680))
|
- Fix more CID double-encoding as hex ([filecoin-project/lotus#6680](https://github.com/filecoin-project/lotus/pull/6680))
|
||||||
- storage: Fix FinalizeSector with sectors in stoage paths ([filecoin-project/lotus#6653](https://github.com/filecoin-project/lotus/pull/6653))
|
- storage: Fix FinalizeSector with sectors in stoage paths ([filecoin-project/lotus#6653](https://github.com/filecoin-project/lotus/pull/6653))
|
||||||
- Fix tiny error in check-client-datacap ([filecoin-project/lotus#6664](https://github.com/filecoin-project/lotus/pull/6664))
|
- Fix tiny error in check-client-datacap ([filecoin-project/lotus#6664](https://github.com/filecoin-project/lotus/pull/6664))
|
||||||
- Fix: precommit_batch method used the wrong cfg.CommitBatchWait ([filecoin-project/lotus#6658](https://github.com/filecoin-project/lotus/pull/6658))
|
- Fix: precommit_batch method used the wrong cfg.CommitBatchWait ([filecoin-project/lotus#6658](https://github.com/filecoin-project/lotus/pull/6658))
|
||||||
- fix ticket expiration check ([filecoin-project/lotus#6635](https://github.com/filecoin-project/lotus/pull/6635))
|
- fix ticket expiration check ([filecoin-project/lotus#6635](https://github.com/filecoin-project/lotus/pull/6635))
|
||||||
- remove precommit check in handleCommitFailed ([filecoin-project/lotus#6634](https://github.com/filecoin-project/lotus/pull/6634))
|
- remove precommit check in handleCommitFailed ([filecoin-project/lotus#6634](https://github.com/filecoin-project/lotus/pull/6634))
|
||||||
- fix prove commit aggregate send token amount ([filecoin-project/lotus#6625](https://github.com/filecoin-project/lotus/pull/6625))
|
- fix prove commit aggregate send token amount ([filecoin-project/lotus#6625](https://github.com/filecoin-project/lotus/pull/6625))
|
||||||
|
|
||||||
## Improvements
|
## Improvements
|
||||||
- Eliminate inefficiency in markets logging ([filecoin-project/lotus#6895](https://github.com/filecoin-project/lotus/pull/6895))
|
- Eliminate inefficiency in markets logging ([filecoin-project/lotus#6895](https://github.com/filecoin-project/lotus/pull/6895))
|
||||||
- rename `cmd/lotus{-storage=>}-miner` to match binary. ([filecoin-project/lotus#6886](https://github.com/filecoin-project/lotus/pull/6886))
|
- rename `cmd/lotus{-storage=>}-miner` to match binary. ([filecoin-project/lotus#6886](https://github.com/filecoin-project/lotus/pull/6886))
|
||||||
- fix racy TestSimultanenousTransferLimit. ([filecoin-project/lotus#6862](https://github.com/filecoin-project/lotus/pull/6862))
|
- fix racy TestSimultanenousTransferLimit. ([filecoin-project/lotus#6862](https://github.com/filecoin-project/lotus/pull/6862))
|
||||||
- ValidateBlock: Assert that block header height's are greater than parents ([filecoin-project/lotus#6872](https://github.com/filecoin-project/lotus/pull/6872))
|
- ValidateBlock: Assert that block header height's are greater than parents ([filecoin-project/lotus#6872](https://github.com/filecoin-project/lotus/pull/6872))
|
||||||
- feat: Don't panic when api impl is nil ([filecoin-project/lotus#6857](https://github.com/filecoin-project/lotus/pull/6857))
|
- feat: Don't panic when api impl is nil ([filecoin-project/lotus#6857](https://github.com/filecoin-project/lotus/pull/6857))
|
||||||
- add docker-compose file ([filecoin-project/lotus#6544](https://github.com/filecoin-project/lotus/pull/6544))
|
- add docker-compose file ([filecoin-project/lotus#6544](https://github.com/filecoin-project/lotus/pull/6544))
|
||||||
- easy way to make install app ([filecoin-project/lotus#5183](https://github.com/filecoin-project/lotus/pull/5183))
|
- easy way to make install app ([filecoin-project/lotus#5183](https://github.com/filecoin-project/lotus/pull/5183))
|
||||||
- api: Separate the Net interface from Common ([filecoin-project/lotus#6627](https://github.com/filecoin-project/lotus/pull/6627)) - add StateReadState to gateway api ([filecoin-project/lotus#6818](https://github.com/filecoin-project/lotus/pull/6818))
|
- api: Separate the Net interface from Common ([filecoin-project/lotus#6627](https://github.com/filecoin-project/lotus/pull/6627)) - add StateReadState to gateway api ([filecoin-project/lotus#6818](https://github.com/filecoin-project/lotus/pull/6818))
|
||||||
- add SealProof in SectorBuilder ([filecoin-project/lotus#6815](https://github.com/filecoin-project/lotus/pull/6815))
|
- add SealProof in SectorBuilder ([filecoin-project/lotus#6815](https://github.com/filecoin-project/lotus/pull/6815))
|
||||||
- sealing: Handle preCommitParams errors more correctly ([filecoin-project/lotus#6763](https://github.com/filecoin-project/lotus/pull/6763))
|
- sealing: Handle preCommitParams errors more correctly ([filecoin-project/lotus#6763](https://github.com/filecoin-project/lotus/pull/6763))
|
||||||
- ClientFindData: always fetch peer id from chain ([filecoin-project/lotus#6807](https://github.com/filecoin-project/lotus/pull/6807))
|
- ClientFindData: always fetch peer id from chain ([filecoin-project/lotus#6807](https://github.com/filecoin-project/lotus/pull/6807))
|
||||||
- test: handle null blocks in TestForkRefuseCall ([filecoin-project/lotus#6758](https://github.com/filecoin-project/lotus/pull/6758))
|
- test: handle null blocks in TestForkRefuseCall ([filecoin-project/lotus#6758](https://github.com/filecoin-project/lotus/pull/6758))
|
||||||
- Add more deal details to lotus-miner info ([filecoin-project/lotus#6708](https://github.com/filecoin-project/lotus/pull/6708))
|
- Add more deal details to lotus-miner info ([filecoin-project/lotus#6708](https://github.com/filecoin-project/lotus/pull/6708))
|
||||||
- add election backtest ([filecoin-project/lotus#5950](https://github.com/filecoin-project/lotus/pull/5950))
|
- add election backtest ([filecoin-project/lotus#5950](https://github.com/filecoin-project/lotus/pull/5950))
|
||||||
- add dollar sign ([filecoin-project/lotus#6690](https://github.com/filecoin-project/lotus/pull/6690))
|
- add dollar sign ([filecoin-project/lotus#6690](https://github.com/filecoin-project/lotus/pull/6690))
|
||||||
- get-actor cli spelling fix ([filecoin-project/lotus#6681](https://github.com/filecoin-project/lotus/pull/6681))
|
- get-actor cli spelling fix ([filecoin-project/lotus#6681](https://github.com/filecoin-project/lotus/pull/6681))
|
||||||
- polish(statetree): accept a context in statetree diff for timeouts ([filecoin-project/lotus#6639](https://github.com/filecoin-project/lotus/pull/6639))
|
- polish(statetree): accept a context in statetree diff for timeouts ([filecoin-project/lotus#6639](https://github.com/filecoin-project/lotus/pull/6639))
|
||||||
- Add helptext to lotus chain export ([filecoin-project/lotus#6672](https://github.com/filecoin-project/lotus/pull/6672))
|
- Add helptext to lotus chain export ([filecoin-project/lotus#6672](https://github.com/filecoin-project/lotus/pull/6672))
|
||||||
- add an incremental nonce itest. ([filecoin-project/lotus#6663](https://github.com/filecoin-project/lotus/pull/6663))
|
- add an incremental nonce itest. ([filecoin-project/lotus#6663](https://github.com/filecoin-project/lotus/pull/6663))
|
||||||
- commit batch: Initialize the FailedSectors map ([filecoin-project/lotus#6647](https://github.com/filecoin-project/lotus/pull/6647))
|
- commit batch: Initialize the FailedSectors map ([filecoin-project/lotus#6647](https://github.com/filecoin-project/lotus/pull/6647))
|
||||||
- Fast-path retry submitting commit aggregate if commit is still valid ([filecoin-project/lotus#6638](https://github.com/filecoin-project/lotus/pull/6638))
|
- Fast-path retry submitting commit aggregate if commit is still valid ([filecoin-project/lotus#6638](https://github.com/filecoin-project/lotus/pull/6638))
|
||||||
- Reuse timers in sealing batch logic ([filecoin-project/lotus#6636](https://github.com/filecoin-project/lotus/pull/6636))
|
- Reuse timers in sealing batch logic ([filecoin-project/lotus#6636](https://github.com/filecoin-project/lotus/pull/6636))
|
||||||
|
|
||||||
## Dependency Updates
|
## Dependency Updates
|
||||||
- Update to proof v8.0.3 ([filecoin-project/lotus#6890](https://github.com/filecoin-project/lotus/pull/6890))
|
- Update to proof v8.0.3 ([filecoin-project/lotus#6890](https://github.com/filecoin-project/lotus/pull/6890))
|
||||||
- update to go-fil-market v1.6.0 ([filecoin-project/lotus#6885](https://github.com/filecoin-project/lotus/pull/6885))
|
- update to go-fil-market v1.6.0 ([filecoin-project/lotus#6885](https://github.com/filecoin-project/lotus/pull/6885))
|
||||||
- Bump go-multihash, adjust test for supported version ([filecoin-project/lotus#6674](https://github.com/filecoin-project/lotus/pull/6674))
|
- Bump go-multihash, adjust test for supported version ([filecoin-project/lotus#6674](https://github.com/filecoin-project/lotus/pull/6674))
|
||||||
- github.com/filecoin-project/go-data-transfer (v1.6.0 -> v1.7.2):
|
- github.com/filecoin-project/go-data-transfer (v1.6.0 -> v1.7.2):
|
||||||
- github.com/filecoin-project/go-fil-markets (v1.5.0 -> v1.6.2):
|
- github.com/filecoin-project/go-fil-markets (v1.5.0 -> v1.6.2):
|
||||||
- github.com/filecoin-project/go-padreader (v0.0.0-20200903213702-ed5fae088b20 -> v0.0.0-20210723183308-812a16dc01b1)
|
- github.com/filecoin-project/go-padreader (v0.0.0-20200903213702-ed5fae088b20 -> v0.0.0-20210723183308-812a16dc01b1)
|
||||||
- github.com/filecoin-project/go-state-types (v0.1.1-0.20210506134452-99b279731c48 -> v0.1.1-0.20210810190654-139e0e79e69e)
|
- github.com/filecoin-project/go-state-types (v0.1.1-0.20210506134452-99b279731c48 -> v0.1.1-0.20210810190654-139e0e79e69e)
|
||||||
- github.com/filecoin-project/go-statemachine (v0.0.0-20200925024713-05bd7c71fbfe -> v1.0.1)
|
- github.com/filecoin-project/go-statemachine (v0.0.0-20200925024713-05bd7c71fbfe -> v1.0.1)
|
||||||
- update go-libp2p-pubsub to v0.5.0 ([filecoin-project/lotus#6764](https://github.com/filecoin-project/lotus/pull/6764))
|
- update go-libp2p-pubsub to v0.5.0 ([filecoin-project/lotus#6764](https://github.com/filecoin-project/lotus/pull/6764))
|
||||||
|
|
||||||
## Others
|
## Others
|
||||||
- Master->v1.11.1 ([filecoin-project/lotus#7051](https://github.com/filecoin-project/lotus/pull/7051))
|
- Master->v1.11.1 ([filecoin-project/lotus#7051](https://github.com/filecoin-project/lotus/pull/7051))
|
||||||
- v1.11.1-rc2 ([filecoin-project/lotus#6966](https://github.com/filecoin-project/lotus/pull/6966))
|
- v1.11.1-rc2 ([filecoin-project/lotus#6966](https://github.com/filecoin-project/lotus/pull/6966))
|
||||||
- Backport master -> v1.11.1 ([filecoin-project/lotus#6965](https://github.com/filecoin-project/lotus/pull/6965))
|
- Backport master -> v1.11.1 ([filecoin-project/lotus#6965](https://github.com/filecoin-project/lotus/pull/6965))
|
||||||
- Fixes in master -> release ([filecoin-project/lotus#6933](https://github.com/filecoin-project/lotus/pull/6933))
|
- Fixes in master -> release ([filecoin-project/lotus#6933](https://github.com/filecoin-project/lotus/pull/6933))
|
||||||
- Add changelog for v1.11.1-rc1 and bump the version ([filecoin-project/lotus#6900](https://github.com/filecoin-project/lotus/pull/6900))
|
- Add changelog for v1.11.1-rc1 and bump the version ([filecoin-project/lotus#6900](https://github.com/filecoin-project/lotus/pull/6900))
|
||||||
- Fix merge release -> v1.11.1 ([filecoin-project/lotus#6897](https://github.com/filecoin-project/lotus/pull/6897))
|
- Fix merge release -> v1.11.1 ([filecoin-project/lotus#6897](https://github.com/filecoin-project/lotus/pull/6897))
|
||||||
- Update RELEASE_ISSUE_TEMPLATE.md ([filecoin-project/lotus#6880](https://github.com/filecoin-project/lotus/pull/6880))
|
- Update RELEASE_ISSUE_TEMPLATE.md ([filecoin-project/lotus#6880](https://github.com/filecoin-project/lotus/pull/6880))
|
||||||
- Add github actions for staled pr ([filecoin-project/lotus#6879](https://github.com/filecoin-project/lotus/pull/6879))
|
- Add github actions for staled pr ([filecoin-project/lotus#6879](https://github.com/filecoin-project/lotus/pull/6879))
|
||||||
- Update issue templates and add templates for M1 ([filecoin-project/lotus#6856](https://github.com/filecoin-project/lotus/pull/6856))
|
- Update issue templates and add templates for M1 ([filecoin-project/lotus#6856](https://github.com/filecoin-project/lotus/pull/6856))
|
||||||
- Fix links in issue templates
|
- Fix links in issue templates
|
||||||
- Update issue templates to forms ([filecoin-project/lotus#6798](https://github.com/filecoin-project/lotus/pull/6798)
|
- Update issue templates to forms ([filecoin-project/lotus#6798](https://github.com/filecoin-project/lotus/pull/6798)
|
||||||
- Nerpa v13 upgrade ([filecoin-project/lotus#6837](https://github.com/filecoin-project/lotus/pull/6837))
|
- Nerpa v13 upgrade ([filecoin-project/lotus#6837](https://github.com/filecoin-project/lotus/pull/6837))
|
||||||
- add docker-compose file ([filecoin-project/lotus#6544](https://github.com/filecoin-project/lotus/pull/6544))
|
- add docker-compose file ([filecoin-project/lotus#6544](https://github.com/filecoin-project/lotus/pull/6544))
|
||||||
- release -> master ([filecoin-project/lotus#6828](https://github.com/filecoin-project/lotus/pull/6828))
|
- release -> master ([filecoin-project/lotus#6828](https://github.com/filecoin-project/lotus/pull/6828))
|
||||||
- Resurrect CODEOWNERS, but for maintainers group ([filecoin-project/lotus#6773](https://github.com/filecoin-project/lotus/pull/6773))
|
- Resurrect CODEOWNERS, but for maintainers group ([filecoin-project/lotus#6773](https://github.com/filecoin-project/lotus/pull/6773))
|
||||||
- Master disclaimer ([filecoin-project/lotus#6757](https://github.com/filecoin-project/lotus/pull/6757))
|
- Master disclaimer ([filecoin-project/lotus#6757](https://github.com/filecoin-project/lotus/pull/6757))
|
||||||
- Create stale.yml ([filecoin-project/lotus#6747](https://github.com/filecoin-project/lotus/pull/6747))
|
- Create stale.yml ([filecoin-project/lotus#6747](https://github.com/filecoin-project/lotus/pull/6747))
|
||||||
- Release template: Update all testnet infra at once ([filecoin-project/lotus#6710](https://github.com/filecoin-project/lotus/pull/6710))
|
- Release template: Update all testnet infra at once ([filecoin-project/lotus#6710](https://github.com/filecoin-project/lotus/pull/6710))
|
||||||
- Release Template: remove binary validation step ([filecoin-project/lotus#6709](https://github.com/filecoin-project/lotus/pull/6709))
|
- Release Template: remove binary validation step ([filecoin-project/lotus#6709](https://github.com/filecoin-project/lotus/pull/6709))
|
||||||
- Reset of the interop network ([filecoin-project/lotus#6689](https://github.com/filecoin-project/lotus/pull/6689))
|
- Reset of the interop network ([filecoin-project/lotus#6689](https://github.com/filecoin-project/lotus/pull/6689))
|
||||||
- Update version.go to 1.11.1 ([filecoin-project/lotus#6621](https://github.com/filecoin-project/lotus/pull/6621))
|
- Update version.go to 1.11.1 ([filecoin-project/lotus#6621](https://github.com/filecoin-project/lotus/pull/6621))
|
||||||
|
|
||||||
## Contributors
|
## Contributors
|
||||||
|
|
||||||
@ -878,7 +1007,7 @@ This is a **highly recommended** but optional Lotus v1.11.1 release that introd
|
|||||||
| dependabot[bot] | 1 | +3/-3 | 1 |
|
| dependabot[bot] | 1 | +3/-3 | 1 |
|
||||||
| zhoutian527 | 1 | +2/-2 | 1 |
|
| zhoutian527 | 1 | +2/-2 | 1 |
|
||||||
| xloem | 1 | +4/-0 | 1 |
|
| xloem | 1 | +4/-0 | 1 |
|
||||||
| @travisperson| 2 | +2/-2 | 3 |
|
| | 2 | +2/-2 | 3 |
|
||||||
| Liviu Damian | 2 | +2/-2 | 2 |
|
| Liviu Damian | 2 | +2/-2 | 2 |
|
||||||
| @jimpick | 2 | +2/-2 | 2 |
|
| @jimpick | 2 | +2/-2 | 2 |
|
||||||
| Frank | 1 | +3/-0 | 1 |
|
| Frank | 1 | +3/-0 | 1 |
|
||||||
@ -890,6 +1019,7 @@ This is a **highly recommended** but optional Lotus v1.11.1 release that introd
|
|||||||
This is a **highly recommended** release of Lotus that have many bug fixes, improvements and new features.
|
This is a **highly recommended** release of Lotus that have many bug fixes, improvements and new features.
|
||||||
|
|
||||||
## Highlights
|
## Highlights
|
||||||
|
- Miner SimultaneousTransfers config ([filecoin-project/lotus#6612](https://github.com/filecoin-project/lotus/pull/6612))
|
||||||
- Miner SimultaneousTransfers config ([filecoin-project/lotus#6612](https://github.com/filecoin-project/lotus/pull/6612))
|
- Miner SimultaneousTransfers config ([filecoin-project/lotus#6612](https://github.com/filecoin-project/lotus/pull/6612))
|
||||||
- Set `SimultaneousTransfers` in lotus miner config to configure the maximum number of parallel online data transfers, including both storage and retrieval deals.
|
- Set `SimultaneousTransfers` in lotus miner config to configure the maximum number of parallel online data transfers, including both storage and retrieval deals.
|
||||||
- Dynamic Retrieval pricing ([filecoin-project/lotus#6175](https://github.com/filecoin-project/lotus/pull/6175))
|
- Dynamic Retrieval pricing ([filecoin-project/lotus#6175](https://github.com/filecoin-project/lotus/pull/6175))
|
||||||
@ -1044,7 +1174,7 @@ This is a **highly recommended** release of Lotus that have many bug fixes, impr
|
|||||||
| @Stebalien | 106 | +7653/-2718 | 273 |
|
| @Stebalien | 106 | +7653/-2718 | 273 |
|
||||||
| dirkmc | 11 | +2580/-1371 | 77 |
|
| dirkmc | 11 | +2580/-1371 | 77 |
|
||||||
| @dirkmc | 39 | +1865/-1194 | 79 |
|
| @dirkmc | 39 | +1865/-1194 | 79 |
|
||||||
| @Kubuxu | 19 | +1973/-485 | 81 |
|
| | 19 | +1973/-485 | 81 |
|
||||||
| @vyzo | 4 | +1748/-330 | 50 |
|
| @vyzo | 4 | +1748/-330 | 50 |
|
||||||
| @aarshkshah1992 | 5 | +1462/-213 | 27 |
|
| @aarshkshah1992 | 5 | +1462/-213 | 27 |
|
||||||
| @coryschwartz | 35 | +568/-206 | 59 |
|
| @coryschwartz | 35 | +568/-206 | 59 |
|
||||||
@ -1159,9 +1289,9 @@ FIPs [0008](https://github.com/filecoin-project/FIPs/blob/master/FIPS/fip-0008.m
|
|||||||
**Check out the documentation [here](https://docs.filecoin.io/mine/lotus/miner-configuration/#precommitsectorsbatch) for details on the new Lotus miner sealing config options, [here](https://docs.filecoin.io/mine/lotus/miner-configuration/#fees-section) for fee config options, and explanations of the new features.**
|
**Check out the documentation [here](https://docs.filecoin.io/mine/lotus/miner-configuration/#precommitsectorsbatch) for details on the new Lotus miner sealing config options, [here](https://docs.filecoin.io/mine/lotus/miner-configuration/#fees-section) for fee config options, and explanations of the new features.**
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
- We recommend to keep `PreCommitSectorsBatch` as 1.
|
- We recommend to keep `PreCommitSectorsBatch` as 1.
|
||||||
- We recommend miners to set `PreCommitBatchWait` lower than 30 hours.
|
- We recommend miners to set `PreCommitBatchWait` lower than 30 hours.
|
||||||
- We recommend miners to set a longer `CommitBatchSlack` and `PreCommitBatchSlack` to prevent message failures
|
- We recommend miners to set a longer `CommitBatchSlack` and `PreCommitBatchSlack` to prevent message failures
|
||||||
due to expirations.
|
due to expirations.
|
||||||
|
|
||||||
### Projected state tree growth
|
### Projected state tree growth
|
||||||
|
@ -53,8 +53,9 @@ COPY --from=builder /usr/lib/x86_64-linux-gnu/libnuma.so.1 /lib/
|
|||||||
COPY --from=builder /usr/lib/x86_64-linux-gnu/libhwloc.so.5 /lib/
|
COPY --from=builder /usr/lib/x86_64-linux-gnu/libhwloc.so.5 /lib/
|
||||||
COPY --from=builder /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /lib/
|
COPY --from=builder /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /lib/
|
||||||
|
|
||||||
RUN useradd -r -u 532 -U fc
|
RUN useradd -r -u 532 -U fc \
|
||||||
|
&& mkdir -p /etc/OpenCL/vendors \
|
||||||
|
&& echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd
|
||||||
|
|
||||||
###
|
###
|
||||||
FROM base AS lotus
|
FROM base AS lotus
|
||||||
|
@ -93,6 +93,7 @@ type StorageMiner interface {
|
|||||||
// SectorRemove removes the sector from storage. It doesn't terminate it on-chain, which can
|
// SectorRemove removes the sector from storage. It doesn't terminate it on-chain, which can
|
||||||
// be done with SectorTerminate. Removing and not terminating live sectors will cause additional penalties.
|
// be done with SectorTerminate. Removing and not terminating live sectors will cause additional penalties.
|
||||||
SectorRemove(context.Context, abi.SectorNumber) error //perm:admin
|
SectorRemove(context.Context, abi.SectorNumber) error //perm:admin
|
||||||
|
SectorMarkForUpgrade(ctx context.Context, id abi.SectorNumber, snap bool) error //perm:admin
|
||||||
// SectorTerminate terminates the sector on-chain (adding it to a termination batch first), then
|
// SectorTerminate terminates the sector on-chain (adding it to a termination batch first), then
|
||||||
// automatically removes it from storage
|
// automatically removes it from storage
|
||||||
SectorTerminate(context.Context, abi.SectorNumber) error //perm:admin
|
SectorTerminate(context.Context, abi.SectorNumber) error //perm:admin
|
||||||
@ -101,7 +102,6 @@ type StorageMiner interface {
|
|||||||
SectorTerminateFlush(ctx context.Context) (*cid.Cid, error) //perm:admin
|
SectorTerminateFlush(ctx context.Context) (*cid.Cid, error) //perm:admin
|
||||||
// SectorTerminatePending returns a list of pending sector terminations to be sent in the next batch message
|
// SectorTerminatePending returns a list of pending sector terminations to be sent in the next batch message
|
||||||
SectorTerminatePending(ctx context.Context) ([]abi.SectorID, error) //perm:admin
|
SectorTerminatePending(ctx context.Context) ([]abi.SectorID, error) //perm:admin
|
||||||
SectorMarkForUpgrade(ctx context.Context, id abi.SectorNumber, snap bool) error //perm:admin
|
|
||||||
// SectorPreCommitFlush immediately sends a PreCommit message with sectors batched for PreCommit.
|
// SectorPreCommitFlush immediately sends a PreCommit message with sectors batched for PreCommit.
|
||||||
// Returns null if message wasn't sent
|
// Returns null if message wasn't sent
|
||||||
SectorPreCommitFlush(ctx context.Context) ([]sealiface.PreCommitBatchRes, error) //perm:admin
|
SectorPreCommitFlush(ctx context.Context) ([]sealiface.PreCommitBatchRes, error) //perm:admin
|
||||||
|
15
api/types.go
15
api/types.go
@ -5,6 +5,8 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/libp2p/go-libp2p-core/network"
|
||||||
|
|
||||||
datatransfer "github.com/filecoin-project/go-data-transfer"
|
datatransfer "github.com/filecoin-project/go-data-transfer"
|
||||||
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
"github.com/filecoin-project/go-fil-markets/retrievalmarket"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
@ -12,7 +14,6 @@ import (
|
|||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
"github.com/ipfs/go-graphsync"
|
"github.com/ipfs/go-graphsync"
|
||||||
|
|
||||||
"github.com/libp2p/go-libp2p-core/network"
|
|
||||||
"github.com/libp2p/go-libp2p-core/peer"
|
"github.com/libp2p/go-libp2p-core/peer"
|
||||||
pubsub "github.com/libp2p/go-libp2p-pubsub"
|
pubsub "github.com/libp2p/go-libp2p-pubsub"
|
||||||
ma "github.com/multiformats/go-multiaddr"
|
ma "github.com/multiformats/go-multiaddr"
|
||||||
@ -124,12 +125,6 @@ func NewDataTransferChannel(hostID peer.ID, channelState datatransfer.ChannelSta
|
|||||||
return channel
|
return channel
|
||||||
}
|
}
|
||||||
|
|
||||||
type NetBlockList struct {
|
|
||||||
Peers []peer.ID
|
|
||||||
IPAddrs []string
|
|
||||||
IPSubnets []string
|
|
||||||
}
|
|
||||||
|
|
||||||
type NetStat struct {
|
type NetStat struct {
|
||||||
System *network.ScopeStat `json:",omitempty"`
|
System *network.ScopeStat `json:",omitempty"`
|
||||||
Transient *network.ScopeStat `json:",omitempty"`
|
Transient *network.ScopeStat `json:",omitempty"`
|
||||||
@ -152,6 +147,12 @@ type NetLimit struct {
|
|||||||
FD int
|
FD int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NetBlockList struct {
|
||||||
|
Peers []peer.ID
|
||||||
|
IPAddrs []string
|
||||||
|
IPSubnets []string
|
||||||
|
}
|
||||||
|
|
||||||
type ExtendedPeerInfo struct {
|
type ExtendedPeerInfo struct {
|
||||||
ID peer.ID
|
ID peer.ID
|
||||||
Agent string
|
Agent string
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -37,7 +37,7 @@ func BuildTypeString() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// BuildVersion is the local build version
|
// BuildVersion is the local build version
|
||||||
const BuildVersion = "1.15.1-dev"
|
const BuildVersion = "1.15.2-dev"
|
||||||
|
|
||||||
func UserVersion() string {
|
func UserVersion() string {
|
||||||
if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" {
|
if os.Getenv("LOTUS_VERSION_IGNORE_COMMIT") == "1" {
|
||||||
|
@ -11,9 +11,6 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/build"
|
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin"
|
|
||||||
|
|
||||||
"github.com/docker/go-units"
|
"github.com/docker/go-units"
|
||||||
"github.com/fatih/color"
|
"github.com/fatih/color"
|
||||||
cbor "github.com/ipfs/go-ipld-cbor"
|
cbor "github.com/ipfs/go-ipld-cbor"
|
||||||
@ -56,7 +53,6 @@ var sectorsCmd = &cli.Command{
|
|||||||
sectorsRemoveCmd,
|
sectorsRemoveCmd,
|
||||||
sectorsSnapUpCmd,
|
sectorsSnapUpCmd,
|
||||||
sectorsSnapAbortCmd,
|
sectorsSnapAbortCmd,
|
||||||
sectorsMarkForUpgradeCmd,
|
|
||||||
sectorsStartSealCmd,
|
sectorsStartSealCmd,
|
||||||
sectorsSealDelayCmd,
|
sectorsSealDelayCmd,
|
||||||
sectorsCapacityCollateralCmd,
|
sectorsCapacityCollateralCmd,
|
||||||
@ -1568,57 +1564,6 @@ var sectorsSnapAbortCmd = &cli.Command{
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
var sectorsMarkForUpgradeCmd = &cli.Command{
|
|
||||||
Name: "mark-for-upgrade",
|
|
||||||
Usage: "Mark a committed capacity sector for replacement by a sector with deals",
|
|
||||||
ArgsUsage: "<sectorNum>",
|
|
||||||
Action: func(cctx *cli.Context) error {
|
|
||||||
if cctx.Args().Len() != 1 {
|
|
||||||
return lcli.ShowHelp(cctx, xerrors.Errorf("must pass sector number"))
|
|
||||||
}
|
|
||||||
|
|
||||||
nodeApi, closer, err := lcli.GetStorageMinerAPI(cctx)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer closer()
|
|
||||||
|
|
||||||
api, nCloser, err := lcli.GetFullNodeAPI(cctx)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer nCloser()
|
|
||||||
ctx := lcli.ReqContext(cctx)
|
|
||||||
|
|
||||||
nv, err := api.StateNetworkVersion(ctx, types.EmptyTSK)
|
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("failed to get network version: %w", err)
|
|
||||||
}
|
|
||||||
if nv >= network.Version15 {
|
|
||||||
return xerrors.Errorf("classic cc upgrades disabled v15 and beyond, use `snap-up`")
|
|
||||||
}
|
|
||||||
|
|
||||||
// disable mark for upgrade two days before the ntwk v15 upgrade
|
|
||||||
// TODO: remove the following block in v1.15.1
|
|
||||||
head, err := api.ChainHead(ctx)
|
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("failed to get chain head: %w", err)
|
|
||||||
}
|
|
||||||
twoDays := abi.ChainEpoch(2 * builtin.EpochsInDay)
|
|
||||||
if head.Height() > (build.UpgradeOhSnapHeight - twoDays) {
|
|
||||||
return xerrors.Errorf("OhSnap is coming soon, " +
|
|
||||||
"please use `snap-up` to upgrade your cc sectors after the network v15 upgrade!")
|
|
||||||
}
|
|
||||||
|
|
||||||
id, err := strconv.ParseUint(cctx.Args().Get(0), 10, 64)
|
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("could not parse sector number: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nodeApi.SectorMarkForUpgrade(ctx, abi.SectorNumber(id), false)
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
var sectorsStartSealCmd = &cli.Command{
|
var sectorsStartSealCmd = &cli.Command{
|
||||||
Name: "seal",
|
Name: "seal",
|
||||||
Usage: "Manually start sealing a sector (filling any unused space with junk)",
|
Usage: "Manually start sealing a sector (filling any unused space with junk)",
|
||||||
|
@ -598,7 +598,7 @@ var storageListSectorsCmd = &cli.Command{
|
|||||||
ft storiface.SectorFileType
|
ft storiface.SectorFileType
|
||||||
urls string
|
urls string
|
||||||
|
|
||||||
primary, seal, store bool
|
primary, copy, main, seal, store bool
|
||||||
|
|
||||||
state api.SectorState
|
state api.SectorState
|
||||||
}
|
}
|
||||||
@ -626,6 +626,9 @@ var storageListSectorsCmd = &cli.Command{
|
|||||||
urls: strings.Join(info.URLs, ";"),
|
urls: strings.Join(info.URLs, ";"),
|
||||||
|
|
||||||
primary: info.Primary,
|
primary: info.Primary,
|
||||||
|
copy: !info.Primary && len(si) > 1,
|
||||||
|
main: !info.Primary && len(si) == 1, // only copy, but not primary
|
||||||
|
|
||||||
seal: info.CanSeal,
|
seal: info.CanSeal,
|
||||||
store: info.CanStore,
|
store: info.CanStore,
|
||||||
|
|
||||||
@ -680,7 +683,7 @@ var storageListSectorsCmd = &cli.Command{
|
|||||||
"Sector": e.id,
|
"Sector": e.id,
|
||||||
"Type": e.ft.String(),
|
"Type": e.ft.String(),
|
||||||
"State": color.New(stateOrder[sealing.SectorState(e.state)].col).Sprint(e.state),
|
"State": color.New(stateOrder[sealing.SectorState(e.state)].col).Sprint(e.state),
|
||||||
"Primary": maybeStr(e.seal, color.FgGreen, "primary"),
|
"Primary": maybeStr(e.primary, color.FgGreen, "primary") + maybeStr(e.copy, color.FgBlue, "copy") + maybeStr(e.main, color.FgRed, "main"),
|
||||||
"Path use": maybeStr(e.seal, color.FgMagenta, "seal ") + maybeStr(e.store, color.FgCyan, "store"),
|
"Path use": maybeStr(e.seal, color.FgMagenta, "seal ") + maybeStr(e.store, color.FgCyan, "store"),
|
||||||
"URLs": e.urls,
|
"URLs": e.urls,
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ USAGE:
|
|||||||
lotus-miner [global options] command [command options] [arguments...]
|
lotus-miner [global options] command [command options] [arguments...]
|
||||||
|
|
||||||
VERSION:
|
VERSION:
|
||||||
1.15.1-dev
|
1.15.2-dev
|
||||||
|
|
||||||
COMMANDS:
|
COMMANDS:
|
||||||
init Initialize a lotus miner repo
|
init Initialize a lotus miner repo
|
||||||
@ -1664,7 +1664,6 @@ COMMANDS:
|
|||||||
remove Forcefully remove a sector (WARNING: This means losing power and collateral for the removed sector (use 'terminate' for lower penalty))
|
remove Forcefully remove a sector (WARNING: This means losing power and collateral for the removed sector (use 'terminate' for lower penalty))
|
||||||
snap-up Mark a committed capacity sector to be filled with deals
|
snap-up Mark a committed capacity sector to be filled with deals
|
||||||
abort-upgrade Abort the attempted (SnapDeals) upgrade of a CC sector, reverting it to as before
|
abort-upgrade Abort the attempted (SnapDeals) upgrade of a CC sector, reverting it to as before
|
||||||
mark-for-upgrade Mark a committed capacity sector for replacement by a sector with deals
|
|
||||||
seal Manually start sealing a sector (filling any unused space with junk)
|
seal Manually start sealing a sector (filling any unused space with junk)
|
||||||
set-seal-delay Set the time, in minutes, that a new sector waits for deals before sealing starts
|
set-seal-delay Set the time, in minutes, that a new sector waits for deals before sealing starts
|
||||||
get-cc-collateral Get the collateral required to pledge a committed capacity sector
|
get-cc-collateral Get the collateral required to pledge a committed capacity sector
|
||||||
@ -1912,19 +1911,6 @@ OPTIONS:
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### lotus-miner sectors mark-for-upgrade
|
|
||||||
```
|
|
||||||
NAME:
|
|
||||||
lotus-miner sectors mark-for-upgrade - Mark a committed capacity sector for replacement by a sector with deals
|
|
||||||
|
|
||||||
USAGE:
|
|
||||||
lotus-miner sectors mark-for-upgrade [command options] <sectorNum>
|
|
||||||
|
|
||||||
OPTIONS:
|
|
||||||
--help, -h show help (default: false)
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
### lotus-miner sectors seal
|
### lotus-miner sectors seal
|
||||||
```
|
```
|
||||||
NAME:
|
NAME:
|
||||||
|
@ -7,7 +7,7 @@ USAGE:
|
|||||||
lotus-worker [global options] command [command options] [arguments...]
|
lotus-worker [global options] command [command options] [arguments...]
|
||||||
|
|
||||||
VERSION:
|
VERSION:
|
||||||
1.15.1-dev
|
1.15.2-dev
|
||||||
|
|
||||||
COMMANDS:
|
COMMANDS:
|
||||||
run Start lotus worker
|
run Start lotus worker
|
||||||
|
@ -7,7 +7,7 @@ USAGE:
|
|||||||
lotus [global options] command [command options] [arguments...]
|
lotus [global options] command [command options] [arguments...]
|
||||||
|
|
||||||
VERSION:
|
VERSION:
|
||||||
1.15.1-dev
|
1.15.2-dev
|
||||||
|
|
||||||
COMMANDS:
|
COMMANDS:
|
||||||
daemon Start a lotus daemon process
|
daemon Start a lotus daemon process
|
||||||
|
4
extern/storage-sealing/sealing.go
vendored
4
extern/storage-sealing/sealing.go
vendored
@ -106,9 +106,6 @@ type Sealing struct {
|
|||||||
assignedPieces map[abi.SectorID][]cid.Cid
|
assignedPieces map[abi.SectorID][]cid.Cid
|
||||||
creating *abi.SectorNumber // used to prevent a race where we could create a new sector more than once
|
creating *abi.SectorNumber // used to prevent a race where we could create a new sector more than once
|
||||||
|
|
||||||
upgradeLk sync.Mutex
|
|
||||||
toUpgrade map[abi.SectorNumber]struct{}
|
|
||||||
|
|
||||||
notifee SectorStateNotifee
|
notifee SectorStateNotifee
|
||||||
addrSel AddrSel
|
addrSel AddrSel
|
||||||
|
|
||||||
@ -177,7 +174,6 @@ func New(mctx context.Context, api SealingAPI, fc config.MinerFeeConfig, events
|
|||||||
sectorTimers: map[abi.SectorID]*time.Timer{},
|
sectorTimers: map[abi.SectorID]*time.Timer{},
|
||||||
pendingPieces: map[cid.Cid]*pendingPiece{},
|
pendingPieces: map[cid.Cid]*pendingPiece{},
|
||||||
assignedPieces: map[abi.SectorID][]cid.Cid{},
|
assignedPieces: map[abi.SectorID][]cid.Cid{},
|
||||||
toUpgrade: map[abi.SectorNumber]struct{}{},
|
|
||||||
|
|
||||||
notifee: notifee,
|
notifee: notifee,
|
||||||
addrSel: as,
|
addrSel: as,
|
||||||
|
17
extern/storage-sealing/states_sealing.go
vendored
17
extern/storage-sealing/states_sealing.go
vendored
@ -279,14 +279,6 @@ func (m *Sealing) handlePreCommit2(ctx statemachine.Context, sector SectorInfo)
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: We should probably invoke this method in most (if not all) state transition failures after handlePreCommitting
|
|
||||||
func (m *Sealing) remarkForUpgrade(ctx context.Context, sid abi.SectorNumber) {
|
|
||||||
err := m.MarkForUpgrade(ctx, sid)
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("error re-marking sector %d as for upgrade: %+v", sid, err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Sealing) preCommitParams(ctx statemachine.Context, sector SectorInfo) (*miner.SectorPreCommitInfo, big.Int, TipSetToken, error) {
|
func (m *Sealing) preCommitParams(ctx statemachine.Context, sector SectorInfo) (*miner.SectorPreCommitInfo, big.Int, TipSetToken, error) {
|
||||||
tok, height, err := m.Api.ChainHead(ctx.Context())
|
tok, height, err := m.Api.ChainHead(ctx.Context())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -360,16 +352,12 @@ func (m *Sealing) preCommitParams(ctx statemachine.Context, sector SectorInfo) (
|
|||||||
DealIDs: sector.dealIDs(),
|
DealIDs: sector.dealIDs(),
|
||||||
}
|
}
|
||||||
|
|
||||||
depositMinimum := m.tryUpgradeSector(ctx.Context(), params)
|
|
||||||
|
|
||||||
collateral, err := m.Api.StateMinerPreCommitDepositForPower(ctx.Context(), m.maddr, *params, tok)
|
collateral, err := m.Api.StateMinerPreCommitDepositForPower(ctx.Context(), m.maddr, *params, tok)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, big.Zero(), nil, xerrors.Errorf("getting initial pledge collateral: %w", err)
|
return nil, big.Zero(), nil, xerrors.Errorf("getting initial pledge collateral: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
deposit := big.Max(depositMinimum, collateral)
|
return params, collateral, tok, nil
|
||||||
|
|
||||||
return params, deposit, tok, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Sealing) handlePreCommitting(ctx statemachine.Context, sector SectorInfo) error {
|
func (m *Sealing) handlePreCommitting(ctx statemachine.Context, sector SectorInfo) error {
|
||||||
@ -423,9 +411,6 @@ func (m *Sealing) handlePreCommitting(ctx statemachine.Context, sector SectorInf
|
|||||||
log.Infof("submitting precommit for sector %d (deposit: %s): ", sector.SectorNumber, deposit)
|
log.Infof("submitting precommit for sector %d (deposit: %s): ", sector.SectorNumber, deposit)
|
||||||
mcid, err := m.Api.SendMsg(ctx.Context(), from, m.maddr, miner.Methods.PreCommitSector, deposit, big.Int(m.feeCfg.MaxPreCommitGasFee), enc.Bytes())
|
mcid, err := m.Api.SendMsg(ctx.Context(), from, m.maddr, miner.Methods.PreCommitSector, deposit, big.Int(m.feeCfg.MaxPreCommitGasFee), enc.Bytes())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if params.ReplaceCapacity {
|
|
||||||
m.remarkForUpgrade(ctx.Context(), params.ReplaceSectorNumber)
|
|
||||||
}
|
|
||||||
return ctx.Send(SectorChainPreCommitFailed{xerrors.Errorf("pushing message to mpool: %w", err)})
|
return ctx.Send(SectorChainPreCommitFailed{xerrors.Errorf("pushing message to mpool: %w", err)})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
95
extern/storage-sealing/upgrade_queue.go
vendored
95
extern/storage-sealing/upgrade_queue.go
vendored
@ -4,51 +4,13 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/filecoin-project/go-address"
|
"github.com/filecoin-project/go-address"
|
||||||
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
|
||||||
market7 "github.com/filecoin-project/specs-actors/v7/actors/builtin/market"
|
market7 "github.com/filecoin-project/specs-actors/v7/actors/builtin/market"
|
||||||
|
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
|
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/go-state-types/big"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func (m *Sealing) IsMarkedForUpgrade(id abi.SectorNumber) bool {
|
|
||||||
m.upgradeLk.Lock()
|
|
||||||
_, found := m.toUpgrade[id]
|
|
||||||
m.upgradeLk.Unlock()
|
|
||||||
return found
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Sealing) MarkForUpgrade(ctx context.Context, id abi.SectorNumber) error {
|
|
||||||
|
|
||||||
m.upgradeLk.Lock()
|
|
||||||
defer m.upgradeLk.Unlock()
|
|
||||||
|
|
||||||
_, found := m.toUpgrade[id]
|
|
||||||
if found {
|
|
||||||
return xerrors.Errorf("sector %d already marked for upgrade", id)
|
|
||||||
}
|
|
||||||
|
|
||||||
si, err := m.GetSectorInfo(id)
|
|
||||||
if err != nil {
|
|
||||||
return xerrors.Errorf("getting sector info: %w", err)
|
|
||||||
}
|
|
||||||
if si.State != Proving {
|
|
||||||
return xerrors.Errorf("can't mark sectors not in the 'Proving' state for upgrade")
|
|
||||||
}
|
|
||||||
if len(si.Pieces) != 1 {
|
|
||||||
return xerrors.Errorf("not a committed-capacity sector, expected 1 piece")
|
|
||||||
}
|
|
||||||
if si.Pieces[0].DealInfo != nil {
|
|
||||||
return xerrors.Errorf("not a committed-capacity sector, has deals")
|
|
||||||
}
|
|
||||||
|
|
||||||
m.toUpgrade[id] = struct{}{}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Sealing) MarkForSnapUpgrade(ctx context.Context, id abi.SectorNumber) error {
|
func (m *Sealing) MarkForSnapUpgrade(ctx context.Context, id abi.SectorNumber) error {
|
||||||
cfg, err := m.getConfig()
|
cfg, err := m.getConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -119,60 +81,3 @@ func sectorActive(ctx context.Context, api SealingAPI, maddr address.Address, to
|
|||||||
}
|
}
|
||||||
return found, nil
|
return found, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Sealing) tryUpgradeSector(ctx context.Context, params *miner.SectorPreCommitInfo) big.Int {
|
|
||||||
if len(params.DealIDs) == 0 {
|
|
||||||
return big.Zero()
|
|
||||||
}
|
|
||||||
replace := m.maybeUpgradableSector()
|
|
||||||
if replace != nil {
|
|
||||||
loc, err := m.Api.StateSectorPartition(ctx, m.maddr, *replace, nil)
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("error calling StateSectorPartition for replaced sector: %+v", err)
|
|
||||||
return big.Zero()
|
|
||||||
}
|
|
||||||
|
|
||||||
params.ReplaceCapacity = true
|
|
||||||
params.ReplaceSectorNumber = *replace
|
|
||||||
params.ReplaceSectorDeadline = loc.Deadline
|
|
||||||
params.ReplaceSectorPartition = loc.Partition
|
|
||||||
|
|
||||||
log.Infof("replacing sector %d with %d", *replace, params.SectorNumber)
|
|
||||||
|
|
||||||
ri, err := m.Api.StateSectorGetInfo(ctx, m.maddr, *replace, nil)
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("error calling StateSectorGetInfo for replaced sector: %+v", err)
|
|
||||||
return big.Zero()
|
|
||||||
}
|
|
||||||
if ri == nil {
|
|
||||||
log.Errorf("couldn't find sector info for sector to replace: %+v", replace)
|
|
||||||
return big.Zero()
|
|
||||||
}
|
|
||||||
|
|
||||||
if params.Expiration < ri.Expiration {
|
|
||||||
// TODO: Some limit on this
|
|
||||||
params.Expiration = ri.Expiration
|
|
||||||
}
|
|
||||||
|
|
||||||
return ri.InitialPledge
|
|
||||||
}
|
|
||||||
|
|
||||||
return big.Zero()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Sealing) maybeUpgradableSector() *abi.SectorNumber {
|
|
||||||
m.upgradeLk.Lock()
|
|
||||||
defer m.upgradeLk.Unlock()
|
|
||||||
for number := range m.toUpgrade {
|
|
||||||
// TODO: checks to match actor constraints
|
|
||||||
|
|
||||||
// this one looks good
|
|
||||||
/*if checks */
|
|
||||||
{
|
|
||||||
delete(m.toUpgrade, number)
|
|
||||||
return &number
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
2
go.mod
2
go.mod
@ -113,7 +113,7 @@ require (
|
|||||||
github.com/libp2p/go-buffer-pool v0.0.2
|
github.com/libp2p/go-buffer-pool v0.0.2
|
||||||
github.com/libp2p/go-eventbus v0.2.1
|
github.com/libp2p/go-eventbus v0.2.1
|
||||||
github.com/libp2p/go-libp2p v0.18.0-rc6
|
github.com/libp2p/go-libp2p v0.18.0-rc6
|
||||||
github.com/libp2p/go-libp2p-connmgr v0.3.1 // indirect
|
github.com/libp2p/go-libp2p-connmgr v0.3.1
|
||||||
github.com/libp2p/go-libp2p-core v0.14.0
|
github.com/libp2p/go-libp2p-core v0.14.0
|
||||||
github.com/libp2p/go-libp2p-discovery v0.6.0
|
github.com/libp2p/go-libp2p-discovery v0.6.0
|
||||||
github.com/libp2p/go-libp2p-kad-dht v0.15.0
|
github.com/libp2p/go-libp2p-kad-dht v0.15.0
|
||||||
|
@ -40,6 +40,7 @@ func DataTransferLogger(event datatransfer.Event, state datatransfer.ChannelStat
|
|||||||
"sent", state.Sent(),
|
"sent", state.Sent(),
|
||||||
"received", state.Received(),
|
"received", state.Received(),
|
||||||
"queued", state.Queued(),
|
"queued", state.Queued(),
|
||||||
|
"received count", state.ReceivedCidsTotal(),
|
||||||
"total size", state.TotalSize(),
|
"total size", state.TotalSize(),
|
||||||
"remote peer", state.OtherPeer(),
|
"remote peer", state.OtherPeer(),
|
||||||
"event message", event.Message,
|
"event message", event.Message,
|
||||||
|
@ -222,7 +222,7 @@ var LibP2P = Options(
|
|||||||
Override(ConnGaterKey, lp2p.ConnGaterOption),
|
Override(ConnGaterKey, lp2p.ConnGaterOption),
|
||||||
|
|
||||||
// Services (resource management)
|
// Services (resource management)
|
||||||
Override(new(network.ResourceManager), lp2p.ResourceManager),
|
Override(new(network.ResourceManager), lp2p.ResourceManager(200)),
|
||||||
Override(ResourceManagerKey, lp2p.ResourceManagerOption),
|
Override(ResourceManagerKey, lp2p.ResourceManagerOption),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -282,6 +282,7 @@ func ConfigCommon(cfg *config.Common, enableLibp2pNode bool) Option {
|
|||||||
cfg.Libp2p.ConnMgrHigh,
|
cfg.Libp2p.ConnMgrHigh,
|
||||||
time.Duration(cfg.Libp2p.ConnMgrGrace),
|
time.Duration(cfg.Libp2p.ConnMgrGrace),
|
||||||
cfg.Libp2p.ProtectedPeers)),
|
cfg.Libp2p.ProtectedPeers)),
|
||||||
|
Override(new(network.ResourceManager), lp2p.ResourceManager(cfg.Libp2p.ConnMgrHigh)),
|
||||||
Override(new(*pubsub.PubSub), lp2p.GossipSub),
|
Override(new(*pubsub.PubSub), lp2p.GossipSub),
|
||||||
Override(new(*config.Pubsub), &cfg.Pubsub),
|
Override(new(*config.Pubsub), &cfg.Pubsub),
|
||||||
|
|
||||||
|
@ -10,10 +10,10 @@ import (
|
|||||||
|
|
||||||
logging "github.com/ipfs/go-log/v2"
|
logging "github.com/ipfs/go-log/v2"
|
||||||
"github.com/libp2p/go-libp2p"
|
"github.com/libp2p/go-libp2p"
|
||||||
|
connmgr "github.com/libp2p/go-libp2p-connmgr"
|
||||||
"github.com/libp2p/go-libp2p-core/crypto"
|
"github.com/libp2p/go-libp2p-core/crypto"
|
||||||
"github.com/libp2p/go-libp2p-core/peer"
|
"github.com/libp2p/go-libp2p-core/peer"
|
||||||
"github.com/libp2p/go-libp2p-core/peerstore"
|
"github.com/libp2p/go-libp2p-core/peerstore"
|
||||||
"github.com/libp2p/go-libp2p/p2p/net/connmgr"
|
|
||||||
"go.uber.org/fx"
|
"go.uber.org/fx"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"math/bits"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
@ -15,6 +16,8 @@ import (
|
|||||||
"github.com/libp2p/go-libp2p-core/protocol"
|
"github.com/libp2p/go-libp2p-core/protocol"
|
||||||
rcmgr "github.com/libp2p/go-libp2p-resource-manager"
|
rcmgr "github.com/libp2p/go-libp2p-resource-manager"
|
||||||
|
|
||||||
|
logging "github.com/ipfs/go-log/v2"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/metrics"
|
"github.com/filecoin-project/lotus/metrics"
|
||||||
"github.com/filecoin-project/lotus/node/repo"
|
"github.com/filecoin-project/lotus/node/repo"
|
||||||
|
|
||||||
@ -22,7 +25,50 @@ import (
|
|||||||
"go.opencensus.io/tag"
|
"go.opencensus.io/tag"
|
||||||
)
|
)
|
||||||
|
|
||||||
func ResourceManager(lc fx.Lifecycle, repo repo.LockedRepo) (network.ResourceManager, error) {
|
func ResourceManager(connMgrHi uint) func(lc fx.Lifecycle, repo repo.LockedRepo) (network.ResourceManager, error) {
|
||||||
|
return func(lc fx.Lifecycle, repo repo.LockedRepo) (network.ResourceManager, error) {
|
||||||
|
envvar := os.Getenv("LOTUS_RCMGR")
|
||||||
|
if envvar == "" || envvar == "0" {
|
||||||
|
// TODO opt-in for now -- flip this to enabled by default once we are comfortable with testing
|
||||||
|
log.Info("libp2p resource manager is disabled")
|
||||||
|
return network.NullResourceManager, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Info("libp2p resource manager is enabled")
|
||||||
|
// enable debug logs for rcmgr
|
||||||
|
logging.SetLogLevel("rcmgr", "debug")
|
||||||
|
|
||||||
|
// Adjust default limits
|
||||||
|
// - give it more memory, up to 4G, min of 1G
|
||||||
|
// - if maxconns are too high, adjust Conn/FD/Stream limits
|
||||||
|
defaultLimits := rcmgr.DefaultLimits.WithSystemMemory(.125, 1<<30, 4<<30)
|
||||||
|
maxconns := int(connMgrHi)
|
||||||
|
if 2*maxconns > defaultLimits.SystemBaseLimit.ConnsInbound {
|
||||||
|
// adjust conns to 2x to allow for two conns per peer (TCP+QUIC)
|
||||||
|
defaultLimits.SystemBaseLimit.ConnsInbound = logScale(2 * maxconns)
|
||||||
|
defaultLimits.SystemBaseLimit.ConnsOutbound = logScale(2 * maxconns)
|
||||||
|
defaultLimits.SystemBaseLimit.Conns = logScale(4 * maxconns)
|
||||||
|
|
||||||
|
defaultLimits.SystemBaseLimit.StreamsInbound = logScale(16 * maxconns)
|
||||||
|
defaultLimits.SystemBaseLimit.StreamsOutbound = logScale(64 * maxconns)
|
||||||
|
defaultLimits.SystemBaseLimit.Streams = logScale(64 * maxconns)
|
||||||
|
|
||||||
|
if 2*maxconns > defaultLimits.SystemBaseLimit.FD {
|
||||||
|
defaultLimits.SystemBaseLimit.FD = logScale(2 * maxconns)
|
||||||
|
}
|
||||||
|
|
||||||
|
defaultLimits.ServiceBaseLimit.StreamsInbound = logScale(8 * maxconns)
|
||||||
|
defaultLimits.ServiceBaseLimit.StreamsOutbound = logScale(32 * maxconns)
|
||||||
|
defaultLimits.ServiceBaseLimit.Streams = logScale(32 * maxconns)
|
||||||
|
|
||||||
|
defaultLimits.ProtocolBaseLimit.StreamsInbound = logScale(8 * maxconns)
|
||||||
|
defaultLimits.ProtocolBaseLimit.StreamsOutbound = logScale(32 * maxconns)
|
||||||
|
defaultLimits.ProtocolBaseLimit.Streams = logScale(32 * maxconns)
|
||||||
|
|
||||||
|
log.Info("adjusted default resource manager limits")
|
||||||
|
}
|
||||||
|
|
||||||
|
// initialize
|
||||||
var limiter *rcmgr.BasicLimiter
|
var limiter *rcmgr.BasicLimiter
|
||||||
var opts []rcmgr.Option
|
var opts []rcmgr.Option
|
||||||
|
|
||||||
@ -34,13 +80,13 @@ func ResourceManager(lc fx.Lifecycle, repo repo.LockedRepo) (network.ResourceMan
|
|||||||
switch {
|
switch {
|
||||||
case err == nil:
|
case err == nil:
|
||||||
defer limitsIn.Close() //nolint:errcheck
|
defer limitsIn.Close() //nolint:errcheck
|
||||||
limiter, err = rcmgr.NewDefaultLimiterFromJSON(limitsIn)
|
limiter, err = rcmgr.NewLimiterFromJSON(limitsIn, defaultLimits)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error parsing limit file: %w", err)
|
return nil, fmt.Errorf("error parsing limit file: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
case errors.Is(err, os.ErrNotExist):
|
case errors.Is(err, os.ErrNotExist):
|
||||||
limiter = rcmgr.NewDefaultLimiter()
|
limiter = rcmgr.NewStaticLimiter(defaultLimits)
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -71,6 +117,12 @@ func ResourceManager(lc fx.Lifecycle, repo repo.LockedRepo) (network.ResourceMan
|
|||||||
}})
|
}})
|
||||||
|
|
||||||
return mgr, nil
|
return mgr, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func logScale(val int) int {
|
||||||
|
bitlen := bits.Len(uint(val))
|
||||||
|
return 1 << bitlen
|
||||||
}
|
}
|
||||||
|
|
||||||
func ResourceManagerOption(mgr network.ResourceManager) Libp2pOpts {
|
func ResourceManagerOption(mgr network.ResourceManager) Libp2pOpts {
|
||||||
|
@ -79,11 +79,7 @@ func (m *Miner) MarkForUpgrade(ctx context.Context, id abi.SectorNumber, snap bo
|
|||||||
if snap {
|
if snap {
|
||||||
return m.sealing.MarkForSnapUpgrade(ctx, id)
|
return m.sealing.MarkForSnapUpgrade(ctx, id)
|
||||||
}
|
}
|
||||||
return m.sealing.MarkForUpgrade(ctx, id)
|
return xerrors.Errorf("Old CC upgrade deprecated, use snap deals CC upgrade")
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Miner) IsMarkedForUpgrade(id abi.SectorNumber) bool {
|
|
||||||
return m.sealing.IsMarkedForUpgrade(id)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *Miner) SectorAbortUpgrade(sectorNum abi.SectorNumber) error {
|
func (m *Miner) SectorAbortUpgrade(sectorNum abi.SectorNumber) error {
|
||||||
@ -147,7 +143,7 @@ func (m *Miner) SectorsStatus(ctx context.Context, sid abi.SectorNumber, showOnC
|
|||||||
PreCommitMsg: info.PreCommitMessage,
|
PreCommitMsg: info.PreCommitMessage,
|
||||||
CommitMsg: info.CommitMessage,
|
CommitMsg: info.CommitMessage,
|
||||||
Retries: info.InvalidProofs,
|
Retries: info.InvalidProofs,
|
||||||
ToUpgrade: m.IsMarkedForUpgrade(sid),
|
ToUpgrade: false,
|
||||||
|
|
||||||
LastErr: info.LastErr,
|
LastErr: info.LastErr,
|
||||||
Log: log,
|
Log: log,
|
||||||
|
Loading…
Reference in New Issue
Block a user