Releases: filecoin-project/curio
v1.24.2
Overview
We are excited to introduce Curio v1.24.2. This release includes some important fixes for FastFinality and Lotus dependency upgrade in Curio for upcoming Filecoin Network upgrade to NV24.
📖 You can read more about Curio in our documentation.
Compatibility
This release is compatible with Lotus versions v1.30.0 and Boost v2.4.0. For the latest compatibility details, refer to the Curio version compatibility matrix.
🏗️ Improvements
UI Improvements
- Replaced 'f0' string for miner actor ID to correct conversion based on the network.
- Fixed message displayed after saving a configuration layer.
F3
- Improved error handling when failing to receive manifest from the client in f3.
- Resolved participation issues related to sentinel errors in f3.
- Updated participation loop to ensure consistent operation in f3.
🐛 Bug Fixes
- Fixed sector size overflow by accounting for inter-piece padding during data ingestion.
What's Changed
- fix: remove f0 string from UI by @LexLuthr in #296
- fix: config save cookie by @LexLuthr in #297
- fix(f3): handle failure to receive manifest from the client by @Stebalien in #298
- fix: account for inter-piece padding in ingest by @LexLuthr in #305
- f3: Update participate loop to always participate by @magik6k in #302
- Fix F3 participation erroring out on sentinel errors by @Kubuxu in #313
- chore: release v1.24.2 by @LexLuthr in #322
New Contributors
- @Stebalien made their first contribution in #298
- @Kubuxu made their first contribution in #313
Full Changelog: v1.24.1...v1.24.2
v1.24.1
Overview
We are excited to introduce Curio v1.24.1. This release enables FastFinality in Curio for upcoming Filecoin Network upgrade to NV24.
📖 You can read more about Curio in our documentation.
Compatibility
This release is compatible with Lotus versions v1.30.0-rc2 and Boost v2.4.0-rc1. For the latest compatibility details, refer to the Curio version compatibility matrix.
What's Changed
Full Changelog: v1.24.0...v1.24.1
v1.24.0
Overview
We are excited to introduce Curio v1.24.0, which includes several improvements, bug fixes, and new features to enhance the overall performance and usability of Curio. This release prepares Curio for upcoming Filecoin Network upgrade to NV24.
📖 You can read more about Curio in our documentation.
Compatibility
This release is compatible with Lotus versions v1.30.0-rc2 and Boost v2.4.0-rc1. For the latest compatibility details, refer to the Curio version compatibility matrix.
⭐ Highlights
☀️ New Features
- Introduced a retry wait mechanism for task retries, enhancing system stability and reducing the likelihood of repeated immediate failures.
- Added alerts to notify users when the chain synchronization is lagging, ensuring timely awareness of synchronization issues.
- The UI now shows node uptime, providing better insights into node performance and stability.
- Users can now reset the sectors state to before SDR from the UI. This allows resealing sectors from SDR if required at any stage before PreCommit message is sent.
- Updated Curio to be compatible with the upcoming NV24 network upgrade, ensuring seamless operation post-upgrade.
🔧 Enhanced Snap Deals Handling
- Added a button in the web UI to resume all stuck sectors in Snap Deals, improving operational efficiency.
- Fixed issues where Snap Deals did not correctly process non-Filplus deals, ensuring all deals are handled properly.
- Adjusted scheduling logic to only schedule tasks when necessary, reducing unnecessary resource usage during Snap Deals.
⚡ Faster Performance
- Improved task scheduling to initiate processes only when needed, enhancing overall system performance.
- Introduced an experimental feature for GPU overprovisioning to potentially enhance computational tasks.
- Modified the loading of native dependencies to with certain build flags to allow using Curio is a library.
🖥️ User Interface Updates
- Users can now copy the block CID directly from the winning stats table.
- Enhanced the PoRep pipeline UI to display when tasks are waiting, providing better visibility into processing states.
🏗️ Improvements
- Added more detailed resource logs to assist users in monitoring and troubleshooting system resource usage.
- Enhanced the multinode proxy for better performance and reliability in multi-node environments.
- Implemented transactions during sector migrations to ensure data integrity and consistency.
- Improved the sector termination process for enhanced reliability and user experience.
- Cleaned up code by removing unused wdPost pre-checks and configurations, reducing potential confusion.
🐛 Bug Fixes
- Fixed an issue where counters were not correctly separated when sharing max values, improving resource allocation accuracy.
- Eliminated incomplete resource check logs that could cause confusion or misinterpretation.
- Corrected the PoRep count in the summary to display accurate information.
- Fixed an issue where multiple API keys were found in the database when migrating multiple miner IDs.
- Fixed the sector list power display after sector extension operations to reflect accurate values.
- Fixed a bug where the message watcher could return early, ensuring consistent message processing.
- Addressed an issue causing panics due to faults by creating a skipped bitfield in PoSt operations.
- Resolved issues where Slack alerts and winpost alerts were not triggering correctly.
- Corrected alert mechanisms related to WindowPoSt and WinningPoSt operations.
What's Changed
- feat: implement retry wait mechanism for task retries by @strahe in #216
- feat: add github action by @LexLuthr in #229
- fix: harmony: Correctly separate this counters when sharing Max by @magik6k in #246
- fix: add detailed resource log by @LexLuthr in #205
- feat: node uptime in UI by @LexLuthr in #253
- fix: remove incomplete resource check log by @magik6k in #261
- feat: restart button for sectors by @LexLuthr in #266
- fix: PoRep count in PoRep summary by @LexLuthr in #257
- fix: show task waiting in PoRep pipeline by @LexLuthr in #260
- fix: multiple api keys found in the database when migrating multiple miner IDs by @LexLuthr in #256
- fix: allow copying the block cid from winning stats table by @LexLuthr in #255
- fix: remove wdPost pre-checks, unused config by @LexLuthr in #252
- fix: alerts for wnPost and wdPost by @LexLuthr in #251
- update sector terminate by @LexLuthr in #264
- remove dependabot by @LexLuthr in #274
- fix: sector list power after extension by @LexLuthr in #273
- feat: chain sync alert by @LexLuthr in #272
- fix: do not return early from message watcher by @LexLuthr in #276
- fix: post: create skipped bitfield to avoid panics with faults by @magik6k in #279
- fix: snap: Correctly handle non-filplus deals by @magik6k in #281
- fix: sealsupra: Only schedule when needed by @magik6k in #284
- feat: webui/snap: Button for resuming all stuck sectors by @magik6k in #230
- cunative: Only pull in native deps with a tag by @magik6k in #211
- experiment: GPU Overprovisioning by @magik6k in #262
- fix make calibnet by @magik6k in #285
- fix: slack alert, winpost alert by @LexLuthr in #287
- fix: Improved multinode proxy by @LexLuthr in #249
- Use transactions in sector migrations by @magik6k in #169
- feat: NV24 upgrade by @LexLuthr in #286
- chore: release v1.24.0 by @LexLuthr in #291
Full Changelog: v1.23.1...v1.24.0
v1.23.1
Overview
We are excited to introduce Curio v1.23.1, which includes several improvements, bug fixes, and new features to enhance the overall performance and usability of Curio. This release ensures better stability and more efficient operation for our users.
📖 You can read more about Curio in our documentation.
Compatibility
This release is compatible with Lotus versions v1.28.1 and Boost v2.3.0. For the latest compatibility details, refer to the Curio version compatibility matrix.
⭐ Highlights
☀️ New Features
- SupraSeal Batch: 10x more efficient sealing, with a custom build and more NVMe drives.
- Unseal: Retrieve the unsealed copy from the sealed copy. Now Curio has EVERY feature of lotus-miner.
- 中文 Simplified Chinese Documentation
🔧 Enhanced Snap Deals Handling
- Fixed issues related to snap-deal handling, including unsealed sector management and t_aux generation when not present.
- Improved snap piece cleanup and selection process to optimize data handling.
- Snap-deal pipeline UI updates for better sector management.
⚡ Faster Performance
- Avoided expensive table scans in the SectorsStatus query, leading to faster performance in lmrpc tasks.
- Improved backpressure management in snap tasks, ensuring smoother task execution.
- Optimization of snap sector picker to be deadline-aware, enhancing task prioritization and performance.
🖥️ User Interface Updates
- Added new sidebar navigation to the web UI for easier access to tasks and configuration.
- Improved display of chain connectivity status and added bulk task restart options on the PoRep page.
- Updated UI for the config list page to make configuration management more user-friendly.
🏗️ Improvements
- Fixes to the WinningPoSt logic to correctly declare GPU requirements, reducing the risk of job failures.
- Added batch deadline setting for SectorMetadata to streamline sector management tasks.
- Improved handling of insufficient funds errors during sealing and snap processes.
- Resolved issues with the use of HarmonyDB, preventing misconfiguration during setup.
- Introduced an installation target for completion scripts to improve development setup.
- AlertManager has been updated to resolve key addresses before checking, improving alert reliability.
🐛 Bug Fixes
- Corrected sector selection in the snap ingester, ensuring smooth sector processing.
- Resolved issues with invalid sector provider (SP) in the sector list page.
- Fixed issues related to the precommit stage to ensure the correct sector duration is used.
What's Changed
- fix: data URL in piece park loop by @LexLuthr in #132
- feat: Sectors table dropdowns by @snadrus in #125
- warn: when Winning & Seal enabled by @snadrus in #130
- Fix git clone cmd in README.md by @lanzafame in #134
- fix: readRemote range request input by @LexLuthr in #136
- Fix Sector selection in snap ingester by @magik6k in #137
- SupraSeal by @magik6k in #69
- Add installation target for completions by @strahe in #133
- fix: Use user sector duration in precommit by @magik6k in #141
- fix unsealed handling in snapdeals by @magik6k in #142
- fix: Generate t_aux for snap when not present by @magik6k in #143
- Fix: improve snap piece cleanup / selection by @magik6k in #144
- webui: Fix chain connectivity status display by @magik6k in #145
- fix: DB config in guided-setup by @LexLuthr in #147
- webui: Config layers on node page by @magik6k in #146
- message: Allow repriced messages by @magik6k in #148
- fix: invalid sp in the sector list page by @strahe in #152
- Readme updates by @snadrus in #154
- fix: do not use miner config for harmonyDB by @LexLuthr in #153
- chore: enable unit tests by @LexLuthr in #159
- Add indexes to mining and message waits tables by @magik6k in #162
- Associate the
harmony_task_history
table with the sector by @strahe in #149 - storage: Batch declare, rm memindex by @magik6k in #158
- fix failing gen test on main by @LexLuthr in #163
- web debug fix by @snadrus in #157
- docs: Add note on nvme format by @magik6k in #164
- lmrpc: Avoid table scans in SectorsStatus by @magik6k in #165
- lmrpc: Fix snap Proving state by @magik6k in #166
- lmrpc: fix backpressure with DoSnap by @magik6k in #168
- webui: Always show recent task fails in the task page by @magik6k in #171
- snap: Obey collateral-from-miner config by @magik6k in #172
- webui: Show task fails and allow bulk restart on PoRep page by @magik6k in #170
- sptool: sectors extend flags in days/deltas by @magik6k in #167
- porep: No-overhead unsealed creation in Filalize by @magik6k in #174
- Make Snap sector picker deadline-aware by @magik6k in #173
- left-sidebar by @snadrus in #176
- Feat: Add api proxy dev server by @anhoffa in #180
- webui: Jetbrains Mono, fix porep layout by @magik6k in #179
- Move storiface into Curio by @magik6k in #183
- Batch deadline setting in SectorMetadata by @magik6k in #177
- test harmonydb by @snadrus in #161
- fix: main lint error by @LexLuthr in #188
- feat: Update the UI for the config list page by @anhoffa in #189
- fix: WinningPoSt: Correctly declare GPU requirements by @magik6k in #195
- winpost: Add more defenses against slashing by @magik6k in #190
- seal/snap: Handle insufficient funds errors correctly by @magik6k in #196
- Update restart-all-button.mjs by @Reiers in #198
- Update Resource table by @Reiers in #199
- Unseal by @magik6k in #181
- zh by @snadrus in #202
- fix: alertmanager: Resolve key addresses before checking by @magik6k in #203
- snap: Don't fail all landed ops if one fails by @magik6k in #207
New Contributors
- @lanzafame made their first contribution in #134
- @anhoffa made their first contribution in #180
- @Reiers made their first contribution in #198
Full Changelog: v1.23.0...v1.23.1
v1.23.0
Overview
We are excited to announce to introduce Curio v1.23.0 for the upcoming Filecoin Network upgrade to NV 23 codename "waffle" 🧇 .
Please ensure to upgrade to this release before 6th August 2024 to ensure a smooth migration experience.
📖 You can read more about Curio in our documentation.
Compatibility
This release is compatible with Lotus versions v1.28.1 and Boost v2.3.0. For the latest compatibility details, refer to the Curio version compatibility matrix.
⭐ Highlights
🫰 Snap Deals
- Curio now supports snap deals for data loading. (Proving snap deal sectors happens already)
- Configuration allows for data loading through either snap-deal or at-seal-time pipelines.
- The UI's snap-deal pipeline page new new.
⚡ Faster Migration
- Curio guided migration has been updated to skip migrating sector indexes. These will be regenerated when storage is attached to the Curio nodes.
- Storage paths are no longer migrated directly from
lotus-miner
to avoid incorrect URLs. - This eliminates the need to start
lotus-miner
during the migration process.
🖥️ GUI
- A new snap-deal page dedicated to the snap-deal pipeline.
- A new deals page showing all deals assigned to sectors that are waiting to be sealed.
- A new sector expiry graph for each actor, illustrating the expiration pattern of your sectors.
🏗️ Improvements
- Synthetic PoRep is now supported. Users can pledge a new CC sector with the
--synthetic
option or enable it in the configuration for deal sectors. - 🐛 A bug in YugabyteDB caused crashes due to queries containing the string-to-array directive. All such queries in Curio have been modified to avoid the crash.
- AlertManager now supports alerting via Slack webhook.
- 🐛 A bug fix to correct incorrect sector expiration calculations in the precommit stage.
- Size: the Curio binary is half the size of the previous version to save your resources & run on lighter Storage hardware.
- Dependencies on Lotus are reduced to actor versions and Miner (storage and proving) components.
What's Changed
- fix: read-any-spid by @snadrus in #95
- no more lotus build by @snadrus in #63
- SpID getter fixes by @magik6k in #98
- Fix/spid reader by @snadrus in #97
- fix: use correct expiration in precommit by @LexLuthr in #99
- doc: versions by @snadrus in #100
- Doc/versions by @snadrus in #101
- feat: Snap Deals by @magik6k in #52
- no amd build opmz by @snadrus in #103
- lmrpc: Decode DDO in SectorsStatus by @magik6k in #102
- feat: add slack webhook alertmanager plugin by @LexLuthr in #105
- fix SectorsStatus sector state edge-case by @magik6k in #106
- fix: remove sector indexing from guided-setup by @LexLuthr in #110
- fix: add control addresses from chain by @LexLuthr in #108
- fix: sptool control list command by @LexLuthr in #109
- feat: Expirations chart by @magik6k in #111
- fix: wdpost cli test by @LexLuthr in #116
- fix: broken commands by @LexLuthr in #117
- Feat: Remove the /hapi/ UI and migrate all functionality into WebRPC + lit mjs by @snadrus in #113
- fix: porep UI page refresh and rendering by @LexLuthr in #122
- feat: synthetic PoRep by @LexLuthr in #58
- no string-to-array by @snadrus in #124
- chore: release v1.23.0 by @LexLuthr in #126
- fix: sector detail page by @LexLuthr in #128
Full Changelog: v1.22.1...v1.23.0
v1.22.1
Overview
We are excited to announce the first patch release of Curio, our innovative solution to enhance the efficiency and reliability of Filecoin data onboarding. This release lays the groundwork for Curio, providing a stable and robust platform with high availability, efficient task management, and seamless configuration capabilities. 🚀
📖 You can read more about Curio in our documentation.
🆕 🧑🏭 New Contributors
Special thanks to our new contributors.
- @dependabot made their first contribution in #43
- @strahe made their first contribution in #89
🎉 New Features :
- AlertManager
- Curio AlertManager now supports sending alerts to Prometheus AlertManager
- AlertManager has been updated to send alerts to multiple plugins at once
🏗️ Key Changes
This release focuses on the fixes around migration process and UI pages. These improvements are based on the feedback received after mainnet migration by SPs.
-
Guided Setup Fixes
- Migrate deal metadata from Lotus
- Fixed config marshalling issues
-
Home page tables have been updated to be more user friendly and display the most important data at the top
What's Changed
- chore: update readme by @LexLuthr in #57
- chore(deps): bump github.com/jackc/pgx/v5 from 5.4.1 to 5.5.4 by @dependabot in #43
- Fix paramfetch dest dir with aria2 by @magik6k in #60
- fix/harmonytask task recovery could better handle config changes between restarts by @snadrus in #62
- fix: 1 GPU slot by default in FFI select by @LexLuthr in #61
- fix: curio market seal command by @LexLuthr in #65
- FFISelect improvements by @snadrus in #70
- fix: toml decode and paramfetch by @LexLuthr in #71
- Fix guidedsetup repo/config type by @magik6k in #72
- fix: sector metadata proposal by @LexLuthr in #73
- feat: collateral from miner and remove beta from UI by @LexLuthr in #75
- Readme - doc, help channel by @snadrus in #80
- Revert "FFISelect improvements" by @magik6k in #78
- Fix/UI 2 by @snadrus in #85
- fix: create log directory by @LexLuthr in #88
- Mongo UI fixes by @snadrus in #79
- forest Test by @snadrus in #59
- feat: Add support for Prometheus AlertManager by @strahe in #89
- fix: failing tests on main by @LexLuthr in #90
Full Changelog: v1.22.0...v1.22.1
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