github filecoin-project/lotus v1.19.0

latest releases: v1.29.1, v1.28.3, miner/v1.28.2...
21 months ago

This is an optional feature release of Lotus. This feature release includes the SplitStore beta, the experimental Lotus node cluster feature, as well as numerous enhancements and bug fixes.

Highlights

🟢 SplitStore v2(Beta) 🟢

Splitstore aims to reduce the node performance impact that's caused by the Filecoin's very large, and continuously growing chain datastore by having a hot and cold blockstore. You can find more about the Splitstore implementation here.
Splitstore has three basic modes for node operators to configure according to your needs:

  • discard: hotstore only, automatically archive out-of-scope objects that are beyond 4 finalities(3600 epochs).
  • universal: stores all chain data that's beyond 4 finalities into coldstore.
  • messages: only stores on-chain messages into coldstore.

The EnableColdStoreAutoPrune= configuration is being deprecated in this release, as there is only ever one compaction running. We welcome all node operators to try the new feature and let us know here if you have any feedback!
There are more configuration one may set, you can read the full documentation about the SplitStoreV2 here: https://lotus.filecoin.io/lotus/configure/splitstore/.

🧪 Node Cluster (EXPERIMENTAL.) 🧪

The Lotus HA node cluster feature allows you to run multiple Lotus daemons for the same lotus-miner increasing resiliency. We welcome all Lotus users to join the early testing for this feature and provide your feedback. Please note that this feature is targeted towards more enterprise users of Lotus and requires at least 3 lotus nodes to be set up in a cluster.
Check out the documentation here: https://lotus.filecoin.io/lotus/configure/clusters/

⭐️ SnapDeals Enhancements ⭐️

Numerous SnapDeals related improvements and fixes made it into this release before the code freeze. Some the highlights of the issues that has been fixed in this feature release are:

  • Unable to snap-up a sector again if something went wrong. - This has now been fixed ✅
  • Error messages on loop during an open deadline. - This has now been fixed ✅

New features

  • feat:splitstore:single compaction that can handle prune aka two marksets one compaction (#9571) (filecoin-project/lotus#9571)
    • Introduces a new SplitStore-mode, messages, which will only store on-chain messages. Fixes previously issues with regards to AutoPrune not compacting the coldstore. Link to documentation
  • feat: Raft consensus for lotus nodes in a cluster (filecoin-project/lotus#9294)
    • Adds the experimental node cluster feature.
  • feat: storage: Force exit GenerateSingleVanillaProof on cancelled context (filecoin-project/lotus#9613)
    • GenerateSingleVanillaProof now respects context, which means that it will skip slow to read sectors 🐌 and return a context error. Instead of being blocked forever if storage reads where blocked (e.g disconnected NFS).
  • feat: wdpost: Configurable pre-check timeouts (filecoin-project/lotus#9680)
    • Adds configuration knobs for setting custom amount of time a proving pre-check can take before a sector and partition will be skipped. Link to documentation
  • feat: chain: future proof the from & to address protocols (filecoin-project/lotus#9515)
    • This lets us add new address protocols to go-address without implicitly accepting them in messages on the network.
  • feat: Retrieval into remote blockstores (filecoin-project/lotus#9565)
    • Makes it possible to point retrievals at a network-backed blockstore.
  • feat: Add node uptime rpc / output in info command (filecoin-project/lotus#9436)
    • Adds node uptime stats to the lotus-miner info and lotus info commands
  • feat: wdpost: Add ability to only have single partition per msg for partitions with… (filecoin-project/lotus#9413)
    • Adds a configuration option to have a single partition per PoSt Message for partitions containing recovering sectors.
  • feat: miner paramfetch: Don't fetch param files when not needed (filecoin-project/lotus#9391)
    • A Lotus-Miner processes that has disabled local PoSt / C2 / PR2 does not need the param-files. This makes node startup much faster, reducing downtime by a lot when restarts are needed.
  • feat: client: Add retrieval deal ID and bytes transferred to retrieval output (filecoin-project/lotus#9398)
    • Appends retrieval deal ID and bytes transferred to the retrieval output.
  • feat: dealpublisher: check for duplicate deals before adding (filecoin-project/lotus#9365)
  • feat: Drop active retrieval check (#764) (filecoin-project/go-fil-markets#764)
  • feat(retrievalmarkets): expose GetDynamicAsk (#748) (filecoin-project/go-fil-markets#748)
  • feat: handle retrieval queries for unindexed identity payload CIDs (#747) (filecoin-project/go-fil-markets#747)
  • feat: add a method for validating an address for a network version (#115) (filecoin-project/go-state-types#115)

Improvements

  • fix: miner-cli: Fix lotus-miner proving check (filecoin-project/lotus#9643)
    • Fixes the issue where the lotus-miner proving check command always outputted Error: rg is nil
  • fix: sealing pipeline: Clear CreationTime when starting sector upgrade (filecoin-project/lotus#9642)
    • Fixes the issue where an aborted SnapDeal upgrade could no longer be retried with SnapDeals.
  • fix:sealing-fsm:wait mutable fsm state for immutable sector upgrade error (filecoin-project/lotus#9598)
    • Creating a new WaitMutable state - now if the deadline is open and the sectors are trying finalize they will wait on the worker until the deadline has closed. Important to note that they will not finalize as soon as the deadline closes, they will wait 1h before continuing. Fixes the previous issue where upgraded Snap-sectors for an open deadline cause a lot of error-messages and p_aux issues
  • fix: cli: add beneficiary info to lotus-miner actor control list (filecoin-project/lotus#9632)
    • Adds the beneficiary address to the lotus-miner actor control list output.
  • fix: sealing pipeine: Release assigned deals on snapdeals abort (filecoin-project/lotus#9601)
  • fix: docker: make compatible with arm platform (filecoin-project/lotus#9363)
    • Makes the Dockerfile.lotus compatible with ARM-platforms (e.g Mac M1).
  • fix: post worker sched: Don't check worker session in a busy loop (filecoin-project/lotus#9495)
    • Fixes a looping pattern which could result in a flood of requests between lotus-miner<->lotus-worker, potentially exhausting resources needed to make http requests, that lead to all sorts of random RPC-related issues.
  • fix: miner: init miner's with 32GiB sectors by default (filecoin-project/lotus#9364)
    • Makes the lotus-miner init defualt to 32GiB sectors.
  • fix: store identity CIDs in CARs for online deals (#749) (filecoin-project/go-fil-markets#749)
  • fix: cliutil: Fix URL-based API endpoint parsing

Dependencies

Others

lotus-market EOL notice

As mentioned in lotus v1.17.0 release notes, markets related features, enhancements and fixes is now lower priority for Lotus. We recommend our users to migrate to other deal making focused software, like boost as soon as possible. That being said, the lotus maintainers will be:

  • Lotus maintainers will stop supporting lotus-market subcomponent/storage deal making related issues or enhancements on Jan 31, 2023.
  • In Q2 2023, we will be deprecating/removing lotus-market related code from this repository.

If you have any questions or concerns, please raise them in Lotus discussion!

Contributors

Contributor Commits Lines ± Files Changed
Geoff Stuart 69 +4745/-19478 405
Shrenuj Bansal 39 +5257/-2183 243
Łukasz Magiera 32 +2763/-730 169
Aayush 47 +1439/-1138 157
Ian Davis 21 +556/-1065 41
Rod Vagg 5 +657/-320 18
jennijuju 4 +632/-317 6
Aayush Rajasekaran 13 +700/-135 18
Jennifer Wang 14 +740/-54 25
ZenGround0 1 +193/-195 14
Hannah Howard 4 +138/-122 52
Steven Allen 4 +105/-24 11
zenground0 9 +109/-16 14
Peter Rabbitson 1 +27/-23 3
hannahhoward 2 +49/-0 2
Airenas Vaičiūnas 2 +31/-16 2
simlecode 6 +19/-10 12
Phi 5 +16/-10 7
sectrgt 2 +18/-0 2
Jiaying Wang 2 +4/-4 3
Rob Quist 1 +3/-1 1
Jakub Sztandera 1 +1/-1 1

Don't miss a new lotus release

NewReleases is sending notifications on new releases.