github filecoin-project/lotus v1.27.0

5 months ago

This is an optional feature release of Lotus. Lotus v1.27.0 includes numerous improvements, bugfixes and enhancements for node operators, RPC- and ETH RPC-providers. This feature release also introduces Curio in a Beta release. Check out the Curio Beta release section for how you can get started with Curio.

☢️ Upgrade Warnings ☢️

  • Event Database: Two sequential migrations will adjust indexes without altering data or columns, ensuring minimal invasiveness when upgrading to this release. However, these migrations may be time-consuming for nodes with extensive event databases.
  • This feature release drops the Raft cluster code experiment from the codebase. This Raft cluster never graduated beyond an experiment, had poor UX (e.g. no way to manage a running cluster, so it didn't provide High Availability), and pulled in a lot of heavy dependencies. We keep the multi-node RPC feature, it is not perfect, but it is useful.

Indexers, RPC- and ETH RPC-providers improvements

This release includes a lot of improvements and fixes for indexers, RPC- and ETH RPC-providers. Specifically these PRs:

⭐️ Curio Beta Release ⭐️

Curio, the next generation of Lotus-Miner, also referred to as MinerV2! This release officially transitions Curio into beta and introduces a suite of powerful features designed to enhance your storage operations.

Highlights

  • Curio as MinerV2: Embrace the revolutionary upgrade from Lotus-Miner to Curio. This transition is not just a rebranding—it's an upgrade to a more robust, scalable, and user-friendly version.
  • High Availability: Curio is designed for high availability. You can run multiple instances of Curio nodes to handle similar type of tasks. The distributed scheduler and greedy worker design will ensure that tasks are completed on time despite most partial outages. You can safely update one of your Curio machines without disrupting the operation of the others.
  • Node Heartbeat: Each Curio node in a cluster must post a heartbeat message every 10 minutes in HarmonyDB updating its status. If a heartbeat is missed, the node is considered lost and all tasks can now be scheduled on remaining nodes.
  • Task Retry: Each task in Curio has a limit on how many times it should be tried before being declared lost. This ensures that Curio does not keep retrying bad tasks indefinitely. This safeguards against lost computation time and storage.
  • Polling: Curio avoids overloading nodes with a polling system. Nodes check for tasks they can handle, prioritizing idle nodes for even workload distribution.
  • Simple Configuration Management: The configuration is stored in the database in the forms of layers. These layers can be stacked on top of each other to create a final configuration. Users can reuse these layers to control the behavior of multiple machines without needing to maintain the configuration of each node. Start the binary with the appropriate flags to connect with YugabyteDB and specify which configuration layers to use to get desired behaviour.

Checkout this Github Dicsussion thread for testing Curio in developer network: #11991

New features

Improvements

Dependencies

Others

Contributors

Contributor Commits Lines ± Files Changed
Rod Vagg 20 +55315/-204 58
Łukasz Magiera 201 +16244/-6541 647
Andrew Jackson (Ajax) 53 +15293/-6764 394
Phi-rjan 6 +12669/-4521 221
LexLuthr 20 +5972/-2815 120
Steven Allen 22 +1626/-1264 77
Piotr Galar 9 +790/-412 33
Aayush Rajasekaran 4 +642/-509 12
Lee 1 +601/-533 9
qwdsds 3 +617/-510 11
Phi 11 +551/-83 32
Jiaying Wang 5 +433/-20 13
Masih H. Derkani 4 +350/-101 18
Aayush 4 +143/-76 17
Aarsh Shah 3 +63/-11 5
jennijuju 3 +22/-22 12
hunjixin 1 +21/-14 4
beck 2 +17/-17 2
tom123222 2 +28/-4 2
Ian Norden 1 +21/-1 1
ZenGround0 1 +3/-15 1
shuangcui 1 +7/-7 6
Vid Bregar 1 +7/-4 2
writegr 1 +5/-5 5
Nagaprasad V R 1 +9/-0 1
forcedebug 1 +4/-4 4
parthshah1 2 +6/-1 2
fuyangpengqi 1 +3/-3 3
Samuel Arogbonlo 1 +6/-0 2
GlacierWalrus 1 +0/-6 1
Aloxaf 1 +6/-0 2
Rob Quist 2 +2/-3 3
wersfeds 1 +2/-2 1
Jon 1 +2/-0 1
0x5459 1 +1/-0 1

Don't miss a new lotus release

NewReleases is sending notifications on new releases.