Releases: filecoin-project/lotus
v1.25.1
This is a highly recommended PATCH RELEASE. The patch release fixes the issue were node operators trying to catch up sync were unable to sync large message blocks/epochs due to an increased number of messages on the network.
This patch release allows for up to 10k messages per block. Additionally, it introduces a limit on the amount of data that can be read at once, ensuring the system can handle worst-case scenarios.
Improvements
- fix: exchange: allow up to 10k messages per block (filecoin-project/lotus#11506)
v1.24.1
This is a highly recommended PATCH RELEASE. The patch release fixes the issue were node operators trying to catch up sync were unable to sync large message blocks/epochs due to an increased number of messages on the network.
This patch release allows for up to 10k messages per block. Additionally, it introduces a limit on the amount of data that can be read at once, ensuring the system can handle worst-case scenarios.
Improvements
- fix: exchange: allow up to 10k messages per block (filecoin-project/lotus#11506)
v1.25.1-rc1
This is the first release candidate of the upcoming optional release of Lotus v1.25.1. This feature release includes numerous improvements and enhancements for node operators, ETH RPC-providers and storage providers.
☢️ Upgrade Warnings ☢️
There are no upgrade warnings as of this first release candidate.
⭐️ Highlights ⭐️
Lotus-Provider
The feature release ships the alpha release of the new Lotus-Provider binary, together with its initial features - High Availability of WindowPoSt and WinningPoSt.
Over the next couple of days, we will build up a catalogue of documentation for how you can test out Lotus-Provider
. Once out, they will be linked in this section here, and sent as an update in the relevant Slack channels. If you are interested in testing out Lotus-Provider in your setup on the Calibration network feel free to reach out to us in the #fil-lotus-dev
channel.
So what is so exciting about Lotus-Provider:
High Availability
- You can run as many
Lotus-Provider
instances as you want for both WindowPoSt and WinningPOSt. - You can connect them to as many clustered Yugabyte instances as you want to. This allows for an NxN configuration where all instances can communicate with all others.
- You have the option to connect different instances to different chain daemons.
Simplicity
- Once the configuration is in the database, setting up a new machine with Lotus-Provider is straightforward. Simply start the binary with the correct flags to find YugabyteDB and specify which configuration layers it should use.
Durability
Lotus-Provider
is designed with robustness in mind. Updates to the system are handled seamlessly, ensuring that performance and stability are maintained when taking down machines in your cluster for updates.
External PC2-binaries
In this release candidate, storage providers have the ability to call external PC2-binaries during the sealing process. This allows storage providers to leverage the SupraSeal PC2 binary, which has been shown to improve sealing speed in the PC2-phase. For instance, our current benchmarks show that an NVIDIA RTX A5000 card was able to complete PC2 in approximately 2.5 minutes.
We have verified that SupraSeal PC2 functions properly with Committed Capacity (CC) sectors that are non-Synthetic, and with SyntheticPoReps that is introduced in the upcoming nv21-version.
However, we have encountered errors when using SupraSeal PC2 with deal sectors. As a result, we advise against using SupraSeal PC2 through the lotus-worker
with deal sectors in the sealing pipeline, except in testing environments. We plan to update this guideline in future release candidates, once we have a fix for deal sectors.
For more information on how to use SupraSeal PC2 with your lotus-worker
, as well as how to perform benchmarks using this feature, please refer to the documentation.
New features
- feat: sturdypost work branch (filecoin-project/lotus#11405)
- Adds the
Lotus-Provider
binary, and the HarmonyDB framework.
- Adds the
- feat: worker: Support delegating precommit2 to external binary (filecoin-project/lotus#11185)
- Allows for delegating PreCommit2 to an exteranl binary.
- feat: build: Add SupraSeal-PC2 binary script (filecoin-project/lotus#11430)
- Adds a script for building the SupraSeal-PC2 binary easily.
- Feat: daemon: Auto remove existing chain if importing chain file or snapshot (filecoin-project/lotus#11277)
- Auto removes the existing chain when importing a snapshot.
- feat: Add ETA to lotus sync wait (#11211) (filecoin-project/lotus#11211)
- Adds a ETA indicator to
lotus sync wait
, so you can get an estimate for how long until sync is completed.
- Adds a ETA indicator to
- feat: mpool/wdpost: Maximize feecap config (filecoin-project/lotus#9746)
- Adds a Maximixe FeeCap Config
- feat: Add lotus-bench cli option to stress test any binary (filecoin-project/lotus#11270)
- Enables the
Lotus-Bench
to run any binary and analyze their latency and histogram distribution, track most common errors, perform stress testing under different concurrency levels and see how it works under different QPS.
- Enables the
- feat: chain import: don't walk to genesis - 2-3x faster snapshot import (#11446) (filecoin-project/lotus#11446)
- Improves Snapshot import speed, by not walking back to genesis on import.
- feat: metric: export Mpool message count (filecoin-project/lotus#11361)
- Adds the mpool count as a prometheus metric.
- feat: bench: flag to output GenerateWinningPoStWithVanilla params (filecoin-project/lotus#11460)
Improvements
- feat: bootstrap: add glif bootstrap node on calibration (filecoin-project/lotus#11175)
- fix: bench: Set ticket and seed to a non-all zero value (filecoin-project/lotus#11429)
- fix: alert: Check UDPbuffer-size (filecoin-project/lotus#11360)
- feat: cli: sort actor CIDs alphabetically before printing (#11345) (filecoin-project/lotus#11345)
- fix: worker: Connect when --listen is not set (filecoin-project/lotus#11294)
- fix: miner info: Show correct sector state counts (filecoin-project/lotus#11456)
- feat: miner: defensive check for equivocation (filecoin-project/lotus#11321)
- feat: Instructions for setting up Grafana/Prometheus for monitoring local lotus node (filecoin-project/lotus#11276)
- fix: cli: Wrap error in wallet sign (filecoin-project/lotus#11273)
- fix: Add time slicing to splitstore purging to reduce lock congestion (filecoin-project/lotus#11269)
- feat: sealing: load SectorsSummary from sealing SectorStats instead of calling API each time (filecoin-project/lotus#11353)
- fix: shed: additional metrics in
mpool miner-select-messages
(filecoin-project/lotus#11253) - storage: Return soft err when sector alloc fails in acquire (filecoin-project/lotus#11338)
- feat: miner: log detailed timing breakdown when mining takes longer than the block's timestamp (filecoin-project/lotus#11228)
- fix: shed: make invariants checker work with splitstore (filecoin-project/lotus#11391)
- feat: eth: encode eth tx input as solidity ABI (#11402) (filecoin-project/lotus#11402)
- fix: eth: use the correct state-tree when resolving addresses (#11387) (filecoin-project/lotus#11387)
- fix: eth: remove trace sanity check (#11385) (filecoin-project/lotus#11385)
- fix: chain: make failure to load the chain state fatal (#11426) (filecoin-project/lotus#11426)
- fix: build: an epoch is near an upgrade iff the upgrade is enabled (#11401) (filecoin-project/lotus#11401)
- fix: eth: handle unresolvable addresses (#11433) (filecoin-project/lotus#11433)
- fix: eth: correctly encode and simplify native input/output encoding (#11382) (filecoin-project/lotus#11382)
- fix: worker: listen for interrupt signals in GetStorageMinerAPI loop (#11309) (filecoin-project/lotus#11309)
- fix: sync: iterate over returned messages directly (#11373) (filecoin-project/lotus#11373)
- fix: miner: correct duration logs in mineOne (filecoin-project/lotus#11241)
- fix: cli: Add print to unseal cmd (filecoin-project/lotus#11271)
- fix: networking: avoid dialing when trying to handshake peers (filecoin-project/lotus#11262)
- metric milliseconds computation with golang original method (#11403) (filecoin-project/lotus#11403)
- feat: shed: fix blockstore prune (#11197) (filecoin-project/lotus#11197)
- refactor:ffi: replace ClearLayerData with ClearCache (#11352) (filecoin-project/lotus#11352)
- fix: api: compute gasUsedRatio based on max gas in the tipset (#11354) (filecoin-project/lotus#11354)
- fix: api: compute the effective gas cost with the correct base-fee (#11357) ([fileco...
v1.25.0
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 ([#11164](https://github.com/filecoin-project/lotus/...
v1.24.0
This is the stable release for the upcoming MANDATORY Filecoin network upgrade v21, codenamed Watermelon 🍉, at epoch 3469380 - 2023-12-12T13:30:00Z.
The Filecoin network version 21 delivers the following FIPs:
- FIP0052: Increase Max Sector Commitment to 3.5 years
- FIP0059: Synthetic PoRep
- FIP0071: Deterministic State Access (IPLD Reachability)
- FIP0072: Improved event syscall API
- FIP0073: Remove beneficiary from the self_destruct syscall
- FIP0075: Improvements to FVM randomness syscalls
Full list of the other protocol improvements we are delivering can be found here.
☢️ Upgrade Warnings ☢️
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.
v12 Builtin Actor Bundles
Builtin actor v12.0.0 is used for supporting this upgrade.
Make sure that your lotus actor bundle matches the v12 actors manifest by running the following cli after upgrading:
./lotus state actor-cids --network-version 21
Network Version: 21
Actor Version: 12
Manifest CID: bafy2bzaceapkgfggvxyllnmuogtwasmsv5qi2qzhc2aybockd6kag2g5lzaio
Actor CID
datacap bafk2bzacebpiwb2ml4qbnnaayxumtk43ryhc63exdgnhivy3hwgmzemawsmpq
paymentchannel bafk2bzacectv4cm47bnhga5febf3lo3fq47g72kmmp2xd5s6tcxz7hiqdywa4
storagemarket bafk2bzacedylkg5am446lcuih4voyzdn4yjeqfsxfzh5b6mcuhx4mok5ph5c4
storagepower bafk2bzacecsij5tpfzjpfuckxvccv2p3bdqjklkrfyyoei6lx5dyj5j4fvjm6
cron bafk2bzacechxjkfe2cehx4s7skj3wzfpzf7zolds64khrrrs66bhazsemktls
eam bafk2bzaceb3elj4hfbbjp7g5bptc7su7mptszl4nlqfedilxvstjo5ungm6oe
ethaccount bafk2bzaceb4gkau2vgsijcxpfuq33bd7w3efr2rrhxrwiacjmns2ntdiamswq
reward bafk2bzacealqnxn5lwzwexd6reav4dppypquklx2ujlnvaxiqk2tzstyvkp5u
verifiedregistry bafk2bzacedudgflxc75c77c6zkmfyq4u2xuk7k6xw6dfdccarjrvxx453b77q
evm bafk2bzacecmnyfiwb52tkbwmm2dsd7ysi3nvuxl3lmspy7pl26wxj4zj7w4wi
placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro
storageminer bafk2bzacedo75pabe4i2l3hvhtsjmijrcytd2y76xwe573uku25fi7sugqld6
system bafk2bzacebfqrja2hip7esf4eafxjmu6xcogoqu5xxtgdg7xa5szgvvdguchu
account bafk2bzaceboftg75mdiba7xbo2i3uvgtca4brhnr3u5ptihonixgpnrvhpxoa
init bafk2bzacebllyegx5r6lggf6ymyetbp7amacwpuxakhtjvjtvoy2bfkzk3vms
Migration
We are expecting a heavier than normal state migration for this upgrade due to the amount of state changes introduced for miner sector info. (This is a similar migration as the Shark upgrade, however, we have introduced a couple of migration performance optimizations since then for a smoother upgrade experience.)
All node operators, including storage providers, should be aware that ONE pre-migration is being scheduled 180 epochs before the upgrade, around 2023-12-12T12:00:00Z. It will take around 20-30 minutes for the pre-migration and less than 30 seconds for the final migration, depending on the amount of historical state in the node blockstore and the hardware specs the node is running on. During this time, expect slower block validation times, increased CPU and memory usage, and longer delays for API queries (during our testing, it topped out about 20% RAM(htop) on a 1TiB box).
We recommend node operators (who haven't enabled splitstore discard
mode) that do not care about historical chain states, to prune the chain blockstore by syncing from a snapshot 1-2 days before the upgrade.
Note to full archival node operators: you may expect it takes some time for the node to complete the final migration, during this period your node will fall out of sync and your chain service may have some disruption. However, you can expect the node to catch up soon after the migration completes. You can test out the migration by running the following on your node in offline mode:
lotus chain head | head -n1
- Stop Lotus daemon
./lotus-shed migrate-state --repo=[path-to-your-lotus-repo] 21 [output-of-step-1]
You can check out the tutorial for benchmarking the network migration here.
BREAKING CHANGE
There is a new protocol limit on how many partition could be submited in one PoSt - if you have any customized tooling for batching PoSts, please update accordingly.
- feat: limit PoSted partitions to 3 (filecoin-project/lotus#11327)
New features
- Implement and support FIP0052: Increase Max Sector Commitment to 3.5 years
- fix: docs: Update SectorLifetime to be in line with FIP-0052 (filecoin-project/lotus#11314)
- Implement and support FIP0059: Synthetic PoRep - Check out the Lotus documentation for Synthetic PoRep.
- feat: implement Synthetic PoRep (filecoin-project/lotus#11258)
- chore: config: Update todo in UseSyntheticPoRep (filecoin-project/lotus#11297)
Improvements
- Backport: feat: sealing: Switch to calling PreCommitSectorBatch2 (filecoin-project/lotus#11215)
- updated the boostrap nodes
Dependencies
- github.com/filecoin-project/go-amt-ipld/v4 (v4.0.0 -> v4.2.0)
- chore: deps: update FFI, FVM, and actors (filecoin-project/lotus#11310)
- chore: deps: update to final actors (filecoin-project/lotus#11330)
- chore: deps: update to go-state-types v0.12.8 (filecoin-project/lotus#11339)
- chore: deps: update libp2p to v0.30.0 #11434
Snapshots
The Forest team at Chainsafe has launched a brand new lightweight snapshot service that is backed up by forest nodes! This is a great alternative service along with the fil-infra one, and it is compatible with lotus! We recommend lotus users to check it out here!
v1.25.0-rc5
This is the fifth release candidate of the upcoming OPTIONAL release Lotus v1.25.0. This optional release also 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.
❗ Mainnet Upgrade Date Update
Mainnet upgrade date has been adjusted due to the rescope of nv21 & retesting on test network, as well as giving the community enough time to upgrade their infrastructure.
The new date and epoch for the Mainnet nv21 upgrade has therefore been set to epoch 3469380 - 2023-12-12T13:30:00Z.
FIP0070 descoped for nv21
FIP0070: Allow SPs to move partitions between deadlines was originally scoped for network version 21. However, during the testing on calibrationnet testing, this FIP has proven to be quite error prune to implement due to the complexity of the protocol and a couple bugs were discovered.
As the path to resolving this bug is not yet clear, core devs have decided to descope FIP-0070 from the upcoming nv21 upgrade ensure the security and stability of the network post upgrade.
Calibration WatermelonFix2
For the calibration network, the descoping of FIP0070 means that we will need to do another CodeCID migration to drop FIP0070 from nv21, and to get the test network into a state which will be similar to when the mainnet upgrades to nv21.
This migration will happen at epoch 1108174 - 2023-11-21T13:00:00Z.
Make sure to upgrade you calibration network nodes and storage providers to v1.24.0-rcx & ^ before this epoch.
☢️ Upgrade Warnings ☢️
- Please remove and clone a new Lotus repo (
git clone https://github.com/filecoin-project/lotus.git
) when upgrading to this version. - 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 i...
v1.24.0-rc6
This is the 6th release candidate of the upcoming MANDATORY Lotus v1.24.0 release, which will deliver the Filecoin network version 21, codenamed Watermelon 🍉.
❗ Mainnet Upgrade Date Update
Mainnet upgrade date has been adjusted due to the rescope of nv21 & retesting on test network, as well as giving the community enough time to upgrade their infrastructure.
The new date and epoch for the Mainnet nv21 upgrade has therefore been set to epoch 3469380 - 2023-12-12T13:30:00Z.
The Filecoin network version 21 delivers the following FIPs:
- FIP0052: Increase Max Sector Commitment to 3.5 years
- FIP0059: Synthetic PoRep
- FIP0071: Deterministic State Access (IPLD Reachability)
- FIP0072: Improved event syscall API
- FIP0073: Remove beneficiary from the self_destruct syscall
- FIP0075: Improvements to FVM randomness syscalls
FIP0070 descoped for nv21
FIP0070: Allow SPs to move partitions between deadlines was originally scoped for network version 21. However, during the testing on calibrationnet testing, this FIP has proven to be quite error prune to implement due to the complexity of the protocol and a couple bugs were discovered.
As the path to resolving this bug is not yet clear, core devs have decided to descope FIP-0070 from the upcoming nv21 upgrade ensure the security and stability of the network post upgrade.
Calibration WatermelonFix2
For the calibration network, the descoping of FIP0070 means that we will need to do another CodeCID migration to drop FIP0070 from nv21, and to get the test network into a state which will be similar to when the mainnet upgrades to nv21.
This migration will happen at epoch 1108174 - 2023-11-21T13:00:00Z.
Make sure to upgrade you calibration network nodes and storage providers to this release candidate before this epoch.
v12 Builtin Actor Bundles
The actor bundles for the calibration network can be checked as follows:
lotus state actor-cids --network-version=21
Network Version: 21
Actor Version: 12
Manifest CID: bafy2bzacednzb3pkrfnbfhmoqtb3bc6dgvxszpqklf3qcc7qzcage4ewzxsca
Actor CID
verifiedregistry bafk2bzaceavldupmf7bimeeacs67z5xdfdlfca6p7sn6bev3mt5ggepfqvhqo
cron bafk2bzacec4gdxxkqwxqqodsv6ug5dmdbqdfqwyqfek3yhxc2wweh5psxaeq6
placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro
storagepower bafk2bzacedd3ka44k7d46ckbinjhv3diyuu2epgbyvhqqyjkc64qlrg3wlgzi
system bafk2bzacecioupndtcnyw6iq2hbrxag3aufvczlv5nobnfbkbywqzcyfaa376
evm bafk2bzaced4sozr7m6rzcgpobzeiupghthfw6afumysu3oz6bxxirv74uo3vw
init bafk2bzaceaewh7b6zl2egclm7fqzx2lsqr57i75lb6cj43ndoa4mal3k5ld3m
storagemarket bafk2bzacea7g46y7xxu2zjq2h75x6mmx3utz2uxnlvnwi6tzpsvulna3bmiva
account bafk2bzacechwwxdqvggkdylm37zldjsra2ivkdzwp7fee56bzxbzs544wv6u6
datacap bafk2bzacecq5ppfskxgv3iea3jarsix6jdduuhwsn4fbvngtbmzelzmlygorm
eam bafk2bzacecb6cnwftvavpph4p34zs4psuy5xvbrhf7vszkva4npw6mw3c42xe
reward bafk2bzacedra77pcglf7vdca2itcaa4vd6xrxynxmgfgdjdxqxfwqyhtoxehy
ethaccount bafk2bzaceajmc3y3sedsqymfla3dzzqzmbu5kmr2iskm26ga2u34ll5fpztfw
multisig bafk2bzacednkwcpw5yzxjceoaliajgupzj6iqxe7ks2ll3unspbprbo5f2now
paymentchannel bafk2bzacebaxhk4itfiuvbftg7kz5zxugqnvdgerobitjq4vl6q4orcwk6wqg
storageminer bafk2bzaceb7qzqsi5uyxe4o5iuasi47l2hnznvmqr2eu4pl3qscvarjqlnuxo
New features
- Implement and support FIP0052: Increase Max Sector Commitment to 3.5 years
- fix: docs: Update SectorLifetime to be in line with FIP-0052 (filecoin-project/lotus#11314)
- Implement and support FIP0059: Synthetic PoRep - Check out the Lotus documentation for Synthetic PoRep.
- feat: implement Synthetic PoRep (filecoin-project/lotus#11258)
- chore: config: Update todo in UseSyntheticPoRep (filecoin-project/lotus#11297)
- Implement and support FIP0070: Allow SPs to move partitions between deadlines - Check out the Lotus documentation for Moving Partitions
- Feat: Lotus cli: actor: Support move partition command to move partitions' deadline (filecoin-project/lotus#11301)
- feat: limit PoSted partitions to 3 (filecoin-project/lotus#11327)
Improvements
- Backport: feat: sealing: Switch to calling PreCommitSectorBatch2 (filecoin-project/lotus#11215)
Dependencies
- github.com/filecoin-project/go-amt-ipld/v4 (v4.0.0 -> v4.2.0)
- chore: deps: update bulitin-actors, FVM, and go-state-types (filecoin-project/lotus#11291)
- chore: deps: update FFI, FVM, and actors (filecoin-project/lotus#11310)
- chore: deps: update to latest actors and FFI (filecoin-project/lotus#11330)
- chore: deps: update to go-state-types v0.12.5 (filecoin-project/lotus#11339)
- chore: backport calibnet lightweight patch (filecoin-project/lotus#11423)
Others
- chore: nv-skeleton for feat/nv21-branch (filecoin-project/lotus#11176)
- chore: chain/actors: Use type proxies instead of versioned GST imports (filecoin-project/lotus#11216)
- chore: butterfly: Add preliminary nv21 assets (filecoin-project/lotus#11293)
- chore: butterfly: Update Butterfly Assets (filecoin-project/lotus#11312)
- chore: release: Set calibration upgrade height (filecoin-project/lotus#11331)
- chore: build: bump version to 1.24.0-rc1 (filecoin-project/lotus#11332)
- chore: backport #11365 to release/v1.24.0 (filecoin-project/lotus#11368)
- chore: backport #11395 to release/v1.24.0 (filecoin-project/lotus#11395)
- chore: backport #11408 to release/v1.24.0 (filecoin-project/lotus#11408)
v1.25.0-rc4
This is the fourth release candidate of the upcoming OPTIONAL release Lotus v1.25.0. This optional release also 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.
Calibration Testnet WatermelonFix Upgrade Recovery
The Calibration Testnet halted 60 epochs after the WatermelonFix upgrade, we believe the cause is the new fixed miner actor CID isn't registered in the system actor state. Fortunately, this could be fixedby winding back the time prior to the upgrade, and reperform the migration with new miner actor CID registered in the system actor state. We would like to ask all calibrationnet node operators to run the following:
- Upgrade your nodes and miners to v1.25.0-rc4
- Shut down your daemon and restart it (miners too if applicable)
Please reach out to us in #fil-net-calibration-discuss if you have any questions!
Make sure to check out the release log for Lotus v1.24.0-rc5 to see the FIPs delivered in the network version 21 upgrade, v12 Builtin Actor Bundles, features and improvements.
☢️ Upgrade Warnings ☢️
- Please remove and clone a new Lotus repo (
git clone https://github.com/filecoin-project/lotus.git
) when upgrading to this version. - 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...
v1.24.0-rc5
This is the 5th release candidate of the upcoming MANDATORY Lotus v1.24.0 release, which will deliver the Filecoin network version 21, codenamed Watermelon 🍉.
Calibration Testnet WatermelonFix Upgrade Recovery
The Calibration Testnet halted 60 epochs after the WatermelonFix upgrade, we believe the cause is the new fixed miner actor CID isn't registered in the system actor state. Fortunately, this could be fixedby winding back the time prior to the upgrade, and reperform the migration with new miner actor CID registered in the system actor state. We would like to ask all calibrationnet node operators to run the following:
- Upgrade your nodes and miners to v1.24.0-rc5
- Shut down your daemon and restart it (miners too if applicable)
Please reach out to us in #fil-net-calibration-discuss if you have any questions!
This release candidate also sets an upgrade epoch for mainnet at 3431940
2023-11-29T13:30:00Z.
The Filecoin network version 21 delivers the following FIPs:
- FIP0052: Increase Max Sector Commitment to 3.5 years
- FIP0059: Synthetic PoRep
- FIP0070: Allow SPs to move partitions between deadlines
- FIP0071: Deterministic State Access (IPLD Reachability)
- FIP0072: Improved event syscall API
- FIP0073: Remove beneficiary from the self_destruct syscall
- FIP0075: Improvements to FVM randomness syscalls
v12 Builtin Actor Bundles
The actor bundles for the calibration network can be checked as follows:
before 1070494
lotus state actor-cids --network-version=21
Network Version: 21
Actor Version: 12
Manifest CID: bafy2bzacedrunxfqta5skb7q7x32lnp4efz2oq7fn226ffm7fu5iqs62jkmvs
Actor CID
paymentchannel bafk2bzacebaxhk4itfiuvbftg7kz5zxugqnvdgerobitjq4vl6q4orcwk6wqg
placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro
ethaccount bafk2bzaceajmc3y3sedsqymfla3dzzqzmbu5kmr2iskm26ga2u34ll5fpztfw
evm bafk2bzaced4sozr7m6rzcgpobzeiupghthfw6afumysu3oz6bxxirv74uo3vw
system bafk2bzacecioupndtcnyw6iq2hbrxag3aufvczlv5nobnfbkbywqzcyfaa376
init bafk2bzaceaewh7b6zl2egclm7fqzx2lsqr57i75lb6cj43ndoa4mal3k5ld3m
multisig bafk2bzacednkwcpw5yzxjceoaliajgupzj6iqxe7ks2ll3unspbprbo5f2now
eam bafk2bzacecb6cnwftvavpph4p34zs4psuy5xvbrhf7vszkva4npw6mw3c42xe
reward bafk2bzacedra77pcglf7vdca2itcaa4vd6xrxynxmgfgdjdxqxfwqyhtoxehy
storagemarket bafk2bzacea7g46y7xxu2zjq2h75x6mmx3utz2uxnlvnwi6tzpsvulna3bmiva
storageminer bafk2bzacecnh2ouohmonvebq7uughh4h3ppmg4cjsk74dzxlbbtlcij4xbzxq
storagepower bafk2bzacedd3ka44k7d46ckbinjhv3diyuu2epgbyvhqqyjkc64qlrg3wlgzi
verifiedregistry bafk2bzaceavldupmf7bimeeacs67z5xdfdlfca6p7sn6bev3mt5ggepfqvhqo
account bafk2bzacechwwxdqvggkdylm37zldjsra2ivkdzwp7fee56bzxbzs544wv6u6
cron bafk2bzacec4gdxxkqwxqqodsv6ug5dmdbqdfqwyqfek3yhxc2wweh5psxaeq6
datacap bafk2bzacecq5ppfskxgv3iea3jarsix6jdduuhwsn4fbvngtbmzelzmlygorm
after 1070494
lotus state actor-cids --network-version=21
Network Version: 21
Actor Version: 12
Manifest CID: bafy2bzacebl4w5ptfvuw6746w7ev562idkbf5ppq72e6zub22435ws2rukzru
Actor CID
paymentchannel bafk2bzacebaxhk4itfiuvbftg7kz5zxugqnvdgerobitjq4vl6q4orcwk6wqg
placeholder bafk2bzacedfvut2myeleyq67fljcrw4kkmn5pb5dpyozovj7jpoez5irnc3ro
ethaccount bafk2bzaceajmc3y3sedsqymfla3dzzqzmbu5kmr2iskm26ga2u34ll5fpztfw
evm bafk2bzaced4sozr7m6rzcgpobzeiupghthfw6afumysu3oz6bxxirv74uo3vw
system bafk2bzacecioupndtcnyw6iq2hbrxag3aufvczlv5nobnfbkbywqzcyfaa376
init bafk2bzaceaewh7b6zl2egclm7fqzx2lsqr57i75lb6cj43ndoa4mal3k5ld3m
multisig bafk2bzacednkwcpw5yzxjceoaliajgupzj6iqxe7ks2ll3unspbprbo5f2now
eam bafk2bzacecb6cnwftvavpph4p34zs4psuy5xvbrhf7vszkva4npw6mw3c42xe
reward bafk2bzacedra77pcglf7vdca2itcaa4vd6xrxynxmgfgdjdxqxfwqyhtoxehy
storagemarket bafk2bzacea7g46y7xxu2zjq2h75x6mmx3utz2uxnlvnwi6tzpsvulna3bmiva
storageminer bafk2bzaced7emkbbnrewv5uvrokxpf5tlm4jslu2jsv77ofw2yqdglg657uie
storagepower bafk2bzacedd3ka44k7d46ckbinjhv3diyuu2epgbyvhqqyjkc64qlrg3wlgzi
verifiedregistry bafk2bzaceavldupmf7bimeeacs67z5xdfdlfca6p7sn6bev3mt5ggepfqvhqo
account bafk2bzacechwwxdqvggkdylm37zldjsra2ivkdzwp7fee56bzxbzs544wv6u6
cron bafk2bzacec4gdxxkqwxqqodsv6ug5dmdbqdfqwyqfek3yhxc2wweh5psxaeq6
datacap bafk2bzacecq5ppfskxgv3iea3jarsix6jdduuhwsn4fbvngtbmzelzmlygorm
New features
- Implement and support FIP0052: Increase Max Sector Commitment to 3.5 years
- fix: docs: Update SectorLifetime to be in line with FIP-0052 (filecoin-project/lotus#11314)
- Implement and support FIP0059: Synthetic PoRep - Check out the Lotus documentation for Synthetic PoRep.
- feat: implement Synthetic PoRep (filecoin-project/lotus#11258)
- chore: config: Update todo in UseSyntheticPoRep (filecoin-project/lotus#11297)
- Implement and support FIP0070: Allow SPs to move partitions between deadlines - Check out the Lotus documentation for Moving Partitions
- Feat: Lotus cli: actor: Support move partition command to move partitions' deadline (filecoin-project/lotus#11301)
- feat: limit PoSted partitions to 3 (filecoin-project/lotus#11327)
Improvements
- Backport: feat: sealing: Switch to calling PreCommitSectorBatch2 (filecoin-project/lotus#11215)
Dependencies
- github.com/filecoin-project/go-amt-ipld/v4 (v4.0.0 -> v4.2.0)
- chore: deps: update bulitin-actors, FVM, and go-state-types (filecoin-project/lotus#11291)
- chore: deps: update FFI, FVM, and actors (filecoin-project/lotus#11310)
- chore: deps: update to latest actors and FFI (filecoin-project/lotus#11330)
- chore: deps: update to go-state-types v0.12.5 (filecoin-project/lotus#11339)
Others
- chore: nv-skeleton for feat/nv21-branch (filecoin-project/lotus#11176)
- chore: chain/actors: Use type proxies instead of versioned GST imports (filecoin-project/lotus#11216)
- chore: butterfly: Add preliminary nv21 assets (filecoin-project/lotus#11293)
- chore: butterfly: Update Butterfly Assets (filecoin-project/lotus#11312)
- chore: release: Set calibration upgrade height (filecoin-project/lotus#11331)
- chore: build: bump version to 1.24.0-rc1 (filecoin-project/lotus#11332)
- chore: backport #11365 to release/v1.24.0 (filecoin-project/lotus#11368)
v1.25.0-rc3
This is the third release candidate of the upcoming OPTIONAL release Lotus v1.25.0. This optional release also 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.
This release candidate also sets an upgrade epoch for mainnet at 3431940 2023-11-29T13:30:00Z.
It includes a patch for the calibration testnet to fix an issue where partitions with expired sectors had to be compacted before they could be moved. Unfortunately, this bug impacts consensus and necessitates a coordinated upgrade on the Calibration network to deploy the new code. The calibration network is scheduled to upgrade all miner actors to the new, fixed miner actor CID at epoch 1070494, which is expected to occur at 2023-11-07T13:00:00Z.
Make sure to check out the release log for Lotus v1.24.0-rc4 to see the FIPs delivered in the network version 21 upgrade, v12 Builtin Actor Bundles, features and improvements.
☢️ Upgrade Warnings ☢️
- Please remove and clone a new Lotus repo (
git clone https://github.com/filecoin-project/lotus.git
) when upgrading to this version. - 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/v...