v1.22.0
Overview
We are excited to announce the initial General Availability (GA) release of Curio, our innovative solution to enhance the efficiency and reliability of Filecoin data onborading. This first release lays the groundwork for Curio, providing a stable and robust platform with high availability, efficient task management, and seamless configuration capabilities. 🚀
Key Features
-
High Availability:
- Curio is designed for high availability, allowing multiple instances of Curio nodes to handle similar tasks.
- The distributed scheduler and greedy worker design ensure task completion despite partial outages.
- You can update one Curio machine without disrupting the operation of others.
-
Node Heartbeat:
- Each Curio node in a cluster posts a heartbeat message every 10 minutes in HarmonyDB, updating its status.
- If a heartbeat is missed, the node is considered lost, and all tasks are rescheduled on remaining nodes.
-
Task Retry:
- Each task in Curio has a retry limit before being declared lost, preventing indefinite retries of bad tasks.
- This feature safeguards against lost computation time and storage.
-
Polling System:
- Curio uses a polling system to avoid overloading nodes, with nodes checking for tasks they can handle.
- Idle nodes are prioritized to ensure even workload distribution.
-
Simple Configuration Management:
- Configuration is stored in the database as layers that can be stacked to create a final configuration.
- Users can reuse these layers to control multiple machines' behavior without maintaining each node's configuration.
- Start the binary with the appropriate flags to connect with YugabyteDB and specify configuration layers.
-
Running Curio with Multiple GPUs:
- Curio can handle multiple GPUs simultaneously without running multiple instances of the Curio process.
- Curio can be managed as a single systemd service without concerns about GPU allocations.
Curio vs. Lotus Miner:
Feature | Curio | Lotus-Miner |
---|---|---|
Scheduling | Collaborative (Prioritized Greedy) | Single point of failure |
High Availability | Available | Single control process |
Redundant Post | Available | Not Available |
Task Retry Control | Task retry with a cutoff limit (per task) | Unlimited retry leading to resource exhaustion |
Multiple Miner IDs | Curio cluster supports multiple Miner IDs | Single Miner ID per Lotus-Miner |
Shared Task Nodes | Curio nodes handle tasks for multiple Miner IDs | Attached workers handle tasks for a single Miner ID |
Distributed Configuration Management | Configuration stored in highly-available Yugabyte Database | All configuration in a single file |
Getting Started: 📄
To begin your journey with Curio, please visit our official documentation for detailed guides, tutorials, and support resources. For more information on this release, check out our release page on GitHub.
Thank you for choosing Curio. We look forward to supporting your storage needs and hearing your feedback!
--- Curio Team ❤️
What's Changed
- Get things to build by @magik6k in #3
- Move packages out of curiosrc by @magik6k in #4
- Port license from lotus and setup basic readme by @magik6k in #5
- Bring in harmondb here by @magik6k in #6
- feat: add node name by @LexLuthr in #10
- fix: port over debian from Lotus by @LexLuthr in #11
- fix: add node name to systemd by @LexLuthr in #12
- Fix harmonydb metrics by @magik6k in #13
- fix node name in UI by @LexLuthr in #16
- Fix stop cli by @magik6k in #18
- Async paramfetch by @magik6k in #19
- UI: Display active task history, retry sector button by @magik6k in #20
- fix WdPost through ffiselect by @magik6k in #25
- UI: Add task deatails page by @magik6k in #24
- fix: set listen address when supplied by @LexLuthr in #22
- add circleCI file by @LexLuthr in #17
- Set more accurate SDR memory use by @magik6k in #30
- Fix wdpost skip / race issues by @magik6k in #31
- fix: piece park complete by @LexLuthr in #34
- fix: happy path itests by @LexLuthr in #33
- Fix occasional lmrpc SectorStatus panic by @magik6k in #35
- fix:remove layers flag from market seal by @LexLuthr in #36
- feat: add docsgen by @LexLuthr in #37
- Paramfetch with aria2 support by @magik6k in #32
- Simplify ffiselect, fix winningPoSt by @magik6k in #40
- fix: terminate only if required by @LexLuthr in #23
- Migration DB env by @snadrus in #14
- fix: update dependencies by @LexLuthr in #39
- inhouse config and its generators by @snadrus in #41
- fix: wait seed count in porep summary by @LexLuthr in #46
- SDR Pipeline and storage GC by @magik6k in #38
- Debian build steps by @snadrus in #15
- Fix winning PoSt, track inclusion, display in webui by @magik6k in #47
- Fix WinningPoSt with remote sectors by @magik6k in #48
- fix: sector size in guided-setup by @LexLuthr in #50
- feat: api gen and docsgen by @snadrus in #45
- fix: filler calculation by @LexLuthr in #53
- chore: update circle and debs script by @LexLuthr in #54
- fix: update piece metadata to get deal details by @LexLuthr in #55
Full Changelog: https://github.com/filecoin-project/curio/commits/v1.22.0