This is a highly recommended feature release of Lotus. This optional release supports the Filecoin network version 21 upgrade, codenamed Watermelon 🍉, in addition to the numerous improvements and enhancements for node operators, ETH RPC-providers and storage providers.
The Filecoin network upgrade v21, codenamed Watermelon 🍉, is at epoch 3469380 - 2023-12-12T13:30:00Z
The full list of protocol improvements delivered in the network upgrade can be found here.
☢️ Upgrade Warnings ☢️
- Read through the changelog of the mandatory v1.24.0 release. Especially the
Migration
andv12 Builtin Actor Bundle
sections. - Please remove and clone a new Lotus repo (
git clone https://github.com/filecoin-project/lotus.git
) when upgrading to this release. - This feature release requires a minimum Go version of v1.20.7 or higher to successfully build Lotus. Go version 1.21.x is not supported yet.
- EthRPC providers, please check out the new tracing API to Lotus RPC
⭐️ Highlights ⭐️
Unsealing bugfixes and enhancements
This feature release introduces significant improvements and bugfixes with regards to unsealing, and ensures that unsealing operates as one would expect. Consequently, unsealing of all sector types (deal sectors, snap-sectors without sector keys, and snap-sectors with sector keys) now all function seamlessly.
Some additional unsealing improvements are:
- Unsealing on workers with only sealing paths works. 🎉
- Transferring unsealed files to long-term storage upon successful unsealing. ➡️
- Ensuring no residual files in sealing paths post a successful unsealing operation. 🧹
SupraSeal C2
Lotus-workers can now be built to leverage the SupraSeal C2 sealing optimizations in your sealing pipeline. The code optimizations are currently behind the FFI_USE_CUDA_SUPRASEAL
feature flag. We advice users to test this feature on a test-network, before trying to use it on the mainnet. Users can test out the feature by building their lotus-workers by exporting the FFI_USE_CUDA_SUPRASEAL=1
enviroment variable, and building from source. For questions about the SupraSeal C2 sealing optimizations, reach out in the #fil-proofs or the #dsa-sealing slack channel.
New features
- feat: add Eip155ChainID to StateGetNetworkParams (filecoin-project/lotus#10987)
- feat: profiling: state summary and visualization (filecoin-project/lotus#11012)
- feat: snapshot: remove existing chain (filecoin-project/lotus#11032)
- feat: Add a metric to display pruning of the node's peer (filecoin-project/lotus#11058)
- feat:shed:gather partition metadata (filecoin-project/lotus#11078)
- feat: vm: allow raw "cbor" in state and use the new go-multicodec (filecoin-project/lotus#11081)
- Add new lotus-shed command for backfillling actor events (filecoin-project/lotus#11088)
- feat: Add new tracing API (filecoin-project/lotus#11100)
- feat: FVM: do not error on unsuccessful implicit messages (filecoin-project/lotus#11120)
- feat: chain node: Move consensus slasher to internal service (filecoin-project/lotus#11126)
- feat: miner: implement FRC-0051 (filecoin-project/lotus#11157)
- feat: chainstore: FRC-0051: Remove all equivocated blocks from tipsets (filecoin-project/lotus#11104)
- feat: miner: 2 minor refactors (filecoin-project/lotus#11158)
- feat: refactor: return randomness base to FVM without hashing (filecoin-project/lotus#11167)
- feat: Lotus Gateway: add allocation and claim related GET APIs to gateway (filecoin-project/lotus#11183)
- feat: shed: Add exec traces to
lotus-shed msg
(filecoin-project/lotus#11188) - feat: miner: defensive check for equivocation (filecoin-project/lotus#11328)
Improvements
- feat: daemon: improvemens to the consensus slasher (filecoin-project/lotus#10979)
- fix: Snapdeals unsealing fixes (filecoin-project/lotus#11011)
- refactor: Make all validation error actions explicit (filecoin-project/lotus#11016)
- feat: shed: command for decoding block headers (filecoin-project/lotus#11031)
- fix: stores: Tune down StorageDeclareSector` log-lvl (filecoin-project/lotus#11045)
- feat: types: apply a max length when decoding events (filecoin-project/lotus#11054)
- feat: slasher: improve UX (filecoin-project/lotus#11060)
- feat: daemon: improvemens to the consensus slasher (filecoin-project/lotus#11063)
- fix: events: Improve performance of event migration from V1 to V2 (filecoin-project/lotus#11064)
- feat:lotus-bench:AMT benchmarking (filecoin-project/lotus#11075)
- fix: DecodeRLP can panic (filecoin-project/lotus#11079)
- fix: daemon: set real beacon schedule when importing chain (filecoin-project/lotus#11080)
- fix: ethtypes: handle length overflow case (filecoin-project/lotus#11082)
- chore: stmgr: migrations: do not log noisily on cache misses (filecoin-project/lotus#11083)
- feat: daemon: import: only setup stmgr if validating chain (#11084) (filecoin-project/lotus#11084)
- fix: sealing pipeline: Fix PC1 retry loop (filecoin-project/lotus#11087)
- chore: legacy syscalls: Cleanup ComputeUnsealedSectorCID (filecoin-project/lotus#11119)
- sector import: fix evaluating randomness when importing a sector (filecoin-project/lotus#11123)
- fix: cli: Only display
warning
if behind sync (filecoin-project/lotus#11140) - fix: worker: Support IPv6 formatted API-keys (filecoin-project/lotus#11141)
- fix: sealing: Switch to calling PreCommitSectorBatch2 (filecoin-project/lotus#11142)
- fix: downgrade harmless warning to debug (filecoin-project/lotus#11145)
- fix: sealing: Fix RetryCommitWait loop when sector cron activation fails (filecoin-project/lotus#11046)
- fix: gateway: return an error when an Eth filter is not found (filecoin-project/lotus#11152)
- fix: chainstore: do not get stuck in unhappy equivocation cases (filecoin-project/lotus#11159)
- fix: sealing: Run unsealing in the background for better ux (filecoin-project/lotus#11177)
- fix: build: Allow lotus-wallet to be built independently (filecoin-project/lotus#11187)
- fix: wallet: Make import handle SIGINT/SIGTERM (filecoin-project/lotus#11190)
- fix: markets/dagstore: remove trace goroutine for dagstore wrapper (filecoin-project/lotus#11191)
- fix: chain: Do not update message info cache until after message validation (filecoin-project/lotus#11202)
- fix: chain: cancel long operations upon ctx cancelation (filecoin-project/lotus#11206)
- fix(client): single-root error message (filecoin-project/lotus#11214)
- fix: worker: Convert
DC_[SectorSize]_[ResourceRestriction]
if set (filecoin-project/lotus#11224) - chore: backport #11338 onto release/v1.25.0 (filecoin-project/lotus#11350)
Dependencies
- deps: update go-libp2p to v0.28.1 (filecoin-project/lotus#10998)
- deps: update go-libp2p to v0.29.2 (filecoin-project/lotus#11164)
- deps: update go-libp2p to v0.30.0 (filecoin-project/lotus#11189)
- fix: build: use tagged releases (filecoin-project/lotus#11194)
- chore: test-vectors: update (filecoin-project/lotus#11196)
- chore: backport #11365 to release/v1.25.0 (filecoin-project/lotus#11369)
- chore: deps: update to go-state-types v0.12.8 (filecoin-project/lotus#11339)
- chore: deps: update to final actors (filecoin-project/lotus#11330)
- github.com/filecoin-project/go-amt-ipld/v4 (v4.0.0 -> v4.2.0)
- github.com/filecoin-project/test-vectors/schema (v0.0.5 -> v0.0.7)
Others
- chore: Extract stable release and post release portion outside of RC testing in template (filecoin-project/lotus#11000)
- fix: docs: include FFI steps in lotus RELEASE_ISSUE_TEMPLATE (filecoin-project/lotus#11047)
- chore: build: update to v1.23.4-dev (filecoin-project/lotus#11049)
- fix: deflake: Use MockProofs (filecoin-project/lotus#11059)
- fix: failing test: Tweak TestWindowPostV1P1NV20 test condition (filecoin-project/lotus#11121)
- fix: CI: make test-unit-rest actually be the rest of the tests (filecoin-project/lotus#11147)
- chore: merge releases into master (filecoin-project/lotus#11154)
- tests: deflake: TestGetBlockByNumber (filecoin-project/lotus#11155)
- tests: mac seal test (filecoin-project/lotus#11180)
- tests: Take Download out of Sealer time (filecoin-project/lotus#11182)
- feat: test: Test that verified clients can directly transfer datacap, creating allocations (filecoin-project/lotus#11169)
- chore: merge feat/nv21 into master (filecoin-project/lotus#11201)
- ci: Use larger executor for cli tests (filecoin-project/lotus#11212)
- fix: dockerfile: Bump to Go 1.20.7 image (filecoin-project/lotus#11221)
- docs: Update PR template to callout remembering to update CHANGELOG (filecoin-project/lotus#11232)
- chore: release: 1.23.4rc1 prep (filecoin-project/lotus#11248)
- chore: backport #11262 (#11265) (filecoin-project/lotus#11265)
- chore: backport #11294 into
release/v1.23.4
(filecoin-project/lotus#11295) - chore: release: V1.25 rebase (filecoin-project/lotus#11342)
- backport: tests: add SynthPorep layers to cachefiles (filecoin-project/lotus#11344)
- chore: backport #11408 to release/v1.25.0 (filecoin-project/lotus#11414)
- chore: backport calibnet lightweight patch (filecoin-project/lotus#11422)
- chore: update bootstrap nodes (filecoin-project/lotus#11288)
- chore: add bootstrap node on calibration (filecoin-project/lotus#11175)