v1.23.1 / 2023-06-20
This is an optional feature release of Lotus. This feature release includes numerous improvements and enhancements for node operators, ETH RPC-providers and storage providers.
☢️ Upgrade Warnings ☢️
If you are upgrading to this release candidate from Lotus v1.22.1, please make sure to read the upgrade warnings section in the v1.23.0 release first.
- Storage providers: The Lotus-Miner legacy-markets has been disbled by default in this feature release and will be removed in the near term future. Users are adviced to migrate to Boost or other SP markets systems.
Highlights
🛣 Execution Lanes 🛣
This feature release introduces VM Execution Lanes! Execution lanes efficiently divide the workload between system processes (chainsync) and RPC requests. This way syncing the chain will not be at the mercy of responding to users' requests and RPC providers nodes should have less problems catching up.
To take advantage of VM Execution Lanes, you need to set up two environment variables:
LOTUS_FVM_CONCURRENCY
- read more about how this value should be set to hereLOTUS_FVM_CONCURRENCY_RESERVED = 4
🧱 Aggregation / Batching fixes 🔨
Numerous aggregation and batching fixes has been included in the feature release. Large ProveCommitAggregate
and PreCommitBatching
messages that exceeds the block limit will now automatically be split into smaller messages when sent to the chain.
Additionally we have added a new feature that staggers the amount of ProveCommit messages sent simulatanously to the chain if a storage provider has been aggregating many sectors in ProveCommitAggregate message, but at the time of publishing the BaseFee is below the aggregation threshold. This stagger feature prevents issues where some of the ProveCommit messages fail with the SysErrorOutOfGas message. You can tweak how many messages will be staggered per epoch by changing MaxSectorProveCommitsSubmittedPerEpoch
in the sealing section of the config.toml file.
NB: While these fixes are great for the reliability of aggregation and batching on the Lotus side, it has been uncovered that aggregating ProveCommit messages for sectors containing verified deals are currently more expensive then single messages due to an issue on the actors side. We therefore do not reccomend our users to aggregate ProveCommit messages when doing verified deals until that issue has been resolved. You can follow the discussion on resolving the issue on the actors side here.
Unsealing CLI/API
This feature release adds a dedicated lotus-miner sectors unseal
command and API, allowing you to unseal specific sealed sectors easily.
New features
- feat: VM Execution Lanes (filecoin-project/lotus#10551)
- Adds VM exections lanes, efficiently dividing the workload between system processes and RPC-requests.
- Add API and CLI to unseal sector (#10626) (filecoin-project/lotus#10626)
- Adds
lotus-miner sectors unseal
cmd, and a API-method to unseal a sector.
- Adds
- feat: sealing: Split PCA/PCB batches if gas used exceeds block limit (filecoin-project/lotus#10647)
- Splits ProveCommitAggregate and PreCommitBatch messages into multiple messages if the message exceeds the block limit.
- Add feature to stagger sector prove commit submission (#10543) (filecoin-project/lotus#10543)
- Staggers the amount of ProveCommit messages sent simultanously if a storage provider has been aggregating many message, but at the moment of publishing the BaseFee is below the threshold for aggregation to prevent unwanted SysErrorOutOfGas issues.
- Set default for MaxSectorProveCommitsSubmittedPerEpoch (filecoin-project/lotus#10728)
- Sets the default amount of ProveCommits submitted per epoch to 20.
- feat: worker: Ensure tempdir exists (#10433) (filecoin-project/lotus#10433)
- Ensures that a temporary directory exists on start of a lotus-worker with a custom TMPDIR set.
- feat: sync: harden chain sync (#10756) (filecoin-project/lotus#10756)
- feat: populate the index on snapshot import (filecoin-project/lotus#10556)
- feat:chain: Message Index (HIGHLY EXPERIMENTAL) (filecoin-project/lotus#10452)
- MVP of a message index that allows us to accelrate StateSearchMessage and related functionality, and eventually accelerate critical chain calls (follow up).
- feat: Add small cache to execution traces (filecoin-project/lotus#10517)
- feat: shed: incoming block-sub chainwatch tool (filecoin-project/lotus#10513)
Improvements
- feat: daemon: Auto-resume interrupted snapshot imports (filecoin-project/lotus#10636)
- Auto-resumes interrupted snapshot imports when using an URL.
- fix: storage: Remove temp fetching files after failed fetch (filecoin-project/lotus#10661)
- Clean up partially fetched failed after a failed fetch on a lotus-worker.
- feat: chainstore: batch writes of tipsets (filecoin-project/lotus#10800)
- Reduces the time to persist all headers from 4-5 minutes, to < 15 seconds.
- Check if epoch is negative in GetTipsetByHeight
- fix: sched: Address GET_32G_MAX_CONCURRENT regression
- fix: cli: Hide legacy markets cmds
- Hides the lotus-miner legacy markets commands from the lotus-miner CLI.
- fix: ci: Debugging m1 build
- Disable lotus markets by default (#10809) (filecoin-project/lotus#10809)
- Disables lotus-miner legacy markets [EOL] by default.
- perf: mempool: lower priority optimizations (#10693) (filecoin-project/lotus#10693)
- perf: message pool: change locks to RWMutexes for performance (filecoin-project/lotus#10561)
- perf: eth: gas estimate set applyTsMessages false (#10546) (filecoin-project/lotus#10546)
- Change args check (filecoin-project/lotus#10812)
- fix: sealing: Make lotus-worker report GPU usage to miner during ReplicaUpdate task (#10806) (filecoin-project/lotus#10806)
- fix:splitstore:Don't block when potentially holding txnLk as writer (filecoin-project/lotus#10811)
- fix: prover: Propagate skipped sectors in local PoSt
- fix: unseal: check if sealed/update sector exists (filecoin-project/lotus#10639)
- fix: sealing pipeline: Allow nil message in TerminateWait (filecoin-project/lotus#10696)
- fix: cli: Check if the sectorID exists before removing (filecoin-project/lotus#10611)
- feat:splitstore:limit moving gc threads (filecoin-project/lotus#10621)
- fix: cli: Make
net connect
to miner address work (filecoin-project/lotus#10599) - fix: log: Stop logging
file does not exists
(filecoin-project/lotus#10588) - Update config default value (#10605) (filecoin-project/lotus#10605)
- fix: cap the message gas limit at the block gas limit (#10637) (filecoin-project/lotus#10637)
- fix: miner: correctly count sector extensions (filecoin-project/lotus#10544)
- fix:mpool: prune excess messages before selection (filecoin-project/lotus#10648)
- fix: proving: Initialize slice with with same length as partition (filecoin-project/lotus#10569)
- perf: Address performance of EthGetTransactionCount (filecoin-project/lotus#10700)
- fix: sync: reduce log from error to info (filecoin-project/lotus#10759)
- fix: state: lotus-miner info should show deals info without admin permission (filecoin-project/lotus#10323)
- fix: tvx: make extract-multiple support the FVM (filecoin-project/lotus#10714)
- feat: badger: add a has check before writing to reduce duplicates (filecoin-project/lotus#10680)
- fix: chain: record heaviest tipset before notifying (#10694) (filecoin-project/lotus#10694)
- fix: Eth JSON-RPC api: handle messages with gasFeeCap less than baseFee (#10614) (filecoin-project/lotus#10614)
- feat: chainstore: optimize BlockMsgsForTipset (filecoin-project/lotus#10552)
- refactor: stop using deprecated io/ioutil (filecoin-project/lotus#10596)
- feat: shed: refactor market cron-state command (filecoin-project/lotus#10746)
- fix: events: don't set GC confidence to 1 (filecoin-project/lotus#10713)
- feat: sync: validate (early) that blocks fall within range (#10691) (filecoin-project/lotus#10691)
- chainstore: Fix raw blocks getting scanned for links during snapshots (#10684) (filecoin-project/lotus#10684)
- fix: remove pointless panic (filecoin-project/lotus#10690)
- fix: check for nil bcastDict (#10646) (filecoin-project/lotus#10646)
- fix: make state compute --html work with unknown methods (filecoin-project/lotus#10619)
- shed: get balances of evm accounts (filecoin-project/lotus#10489)
- feat: Use MessageIndex in WaitForMessage (filecoin-project/lotus#10587)
- fix: searchForIndexedMsg always returns an error (filecoin-project/lotus#10586)
- Fix: export-range: Ignore ipld Blocks not found in Receipts. (filecoin-project/lotus#10535)
- feat: stmgr: speed up calculation of genesis circ supply (filecoin-project/lotus#10553)
- fix: gas estimation: don't special case paych collects (filecoin-project/lotus#10549)
- fix: tracer: emit raw peer ids for compatibility with libp2p tracer (filecoin-project/lotus#10271)
- Merge branch 'feat/new-gw-methods'
Dependencies
- chore: deps: update to go-libp2p 0.27.5
- devs: update libp2p #10937
- chore: deps: update to FVM 3.3.1 (filecoin-project/lotus#10786)
- chore: boxo: migrate from go-libipfs to boxo (filecoin-project/lotus#10562)
- chore: deps: update to go-state-types v0.11.0-alpha-3 (filecoin-project/lotus#10606)
- chore: bump go-libipfs (filecoin-project/lotus#10531)
Others
- feat:networking: (Synchronous) Consistent Broadcast for Filecoin EC (filecoin-project/lotus#9858)
- Revert #9858 (consistent broadcast changes) (filecoin-project/lotus#10777)
- Update build version for release/v1.23.1
- chore: drop flaky TestBatchDealInput subcase (filecoin-project/lotus#10810)
- chore: changelog clean up (filecoin-project/lotus#10744)
- chore: refactor: drop unused IsTicketWinner (#10801) (filecoin-project/lotus#10801)
- chore: build: bump matser version to v1.23.1-dev (filecoin-project/lotus#10709)
- fix: deflake: use 2 miners for flaky tests (filecoin-project/lotus#10764)
- test: eth: deflake multiblock lookup test (#10769) (filecoin-project/lotus#10769)
- shed: migrations: add reminder about continuity testing tool (filecoin-project/lotus#10762)
- chore: merge releases into master (filecoin-project/lotus#10742)
- test: events: fix race when recording tipsets (#10665) (filecoin-project/lotus#10665)
- fix: build: add CBDeliveryDelay to testground (filecoin-project/lotus#10613)
- fix: build: Fixed incorrect words that could not be compiled (filecoin-project/lotus#10610)
- build: docker: Update GO-version (filecoin-project/lotus#10581)
- fix: itests: Don't call t.Error in MineBlocks goroutine (filecoin-project/lotus#10572)
- docs: api: clarify MpoolClear params (filecoin-project/lotus#10550)
Contributors
Contributor | Commits | Lines ± | Files Changed |
---|---|---|---|
vyzo | 70 | +1990/-429 | 135 |
Alfonso de la Rocha | 25 | +814/-299 | 56 |
Steven Allen | 14 | +125/-539 | 28 |
Shrenuj Bansal | 13 | +482/-138 | 52 |
Aayush | 17 | +317/-301 | 90 |
Łukasz Magiera | 13 | +564/-26 | 16 |
Jennifer Wang | 7 | +401/-140 | 10 |
Fridrik Asmundsson | 14 | +315/-84 | 20 |
Jorropo | 2 | +139/-137 | 74 |
Mikers | 6 | +114/-43 | 14 |
Hector Sanjuan | 5 | +92/-44 | 5 |
Ales Dumikau | 1 | +117/-0 | 10 |
Mike Seiler | 4 | +51/-51 | 6 |
zenground0 | 6 | +33/-25 | 8 |
Phi | 8 | +32/-10 | 10 |
Aayush Rajasekaran | 1 | +1/-32 | 2 |
Ian Davis | 2 | +7/-10 | 3 |
Marcel Telka | 1 | +5/-7 | 1 |
ychiao | 1 | +8/-3 | 2 |
jennijuju | 1 | +4/-4 | 8 |
adlrocha | 2 | +2/-2 | 2 |
Jiaying Wang | 1 | +0/-4 | 1 |
ZenGround0 | 1 | +2/-1 | 2 |
Zeng Li | 1 | +1/-1 | 1 |