v1.27.3
Curio v1.27.3
✨ Overview
Curio v1.27.3 is a stability and correctness release focused on fixing critical issues discovered since v1.27.2. This release resolves bugs in sector extension, snap deal pipelines, message sending, batch timing, retrieval filtering, and piece CID interoperability - while also introducing network-wide Curio statistics and improved build compatibility for older GPU architectures.
Operators are strongly encouraged to upgrade, particularly those running snap deal pipelines or using the sector extension manager.
⭐ Highlights
📊 Curio Network Statistics
A new curio stats feature provides network-wide visibility into the Curio ecosystem, showing aggregate metrics such as total node count, quality-adjusted power, raw byte power, and percentage of network power managed by Curio nodes. (#1079)
🛡️ Retrieval Denylist Filtering
Curio now supports denylist filtering for HTTP retrieval endpoints — a feature previously only available in Boost. Operators can block retrieval of specific pieces, and PieceCIDv2 is now properly honored in deny lists. (#1076, #1101)
🔧 Snap Pipeline Fix
A critical bug in the snap deal pipeline's DELETE trigger has been fixed. Previously, removing a failed snap pipeline entry would not revert sectors_meta.is_cc back to true, making those CC sectors invisible to snap deal ingestion and breaking the expiration manager's view. (#1097)
⏱️ Batch Timeout Timezone Fix
Precommit and commit batch triggers had a timezone mismatch where UTC timestamps stored into TIMESTAMPTZ columns were shifted by the session timezone, causing batches to fire late. Batch evaluation has been moved from SQL into tested Go functions with a new configurable MaxBatch option. (#1044)
🐛 Bug Fixes
-
fix: expmgr: Sectors without short claims don't have short claims — The expiration manager couldn't extend sectors with valid claims when
DropClaimswasn't set. (#1049) -
fix: snap pipeline DELETE trigger not reverting sectors_meta.is_cc —
NEWis NULL in DELETE triggers; the WHERE clause now correctly usesOLD, restoring CC visibility after failed snap removals. (#1097) -
fix: Clamp premium in message sending — Prevents invalid gas premium values from causing message send failures. (#1090)
-
fix: gc task spam with no storage — Clusters with no storage would run
StorageEndpointGCin an infinite failing loop. (#1086) -
fix: v1 v2 CID interop regressions — Fixed a SQL query regression where a removed
$2placeholder broke piece deal lookups with a "expected 1 arguments, got 2" error. (#1085) -
fix: missing DDO column — Adds a missing column required for DDO deal operations. (#1084)
-
fix: raw size only if unseal exists — Prevents raw-size correction from running on sectors without unsealed data. (#1047)
-
fix: FixRawSize SQL column name, join, and filetype bugs — Multiple corrections to the FixRawSize task's SQL queries and type handling. (#1037, #1035)
-
fix: batch timeout timezone bug — Fixes the timezone mismatch in precommit/commit batch triggers and moves evaluation into tested Go functions. (#1044)
🔧 Improvements
-
feat: Curio stats — Network-wide aggregate statistics for the Curio ecosystem. (#1079)
-
feat: denylist filtering for HTTP retrieval endpoints — Retrieval filtering ported from Boost, including PieceCIDv2 support. (#1076, #1101)
-
allow piece CID v1 and v2 interoperability — Handles both CIDv1 and CIDv2 piece CIDs across the stack. (#1048)
-
refactor(proof): extract cached proof pipeline behind testable interfaces — Improves testability of the proof pipeline. (#1068)
-
chore(deps): replace x/crypto with filecoin-project/go-keccak — Uses a maintained fork with ASM-optimized keccak256 after upstream dropped assembly implementations. (#1060)
-
chore(deps): bump go-ethereum 1.16.8 → 1.17.0 (#1036)
-
update PDP contract bindings (#1013)
🏗️ Build & CI
-
fix(supraseal): add Turing (sm_75) back to CUDA architectures — Restores CUDA support for Quadro RTX 6000 and other Turing-generation GPUs. (#1038)
-
fix(build): accept GCC 12 for CUDA 12 compatibility (#1019)
-
refactor Makefile — Cleaner build targets and improved build flow. (#1014)
📚 Documentation
-
docs(administration): add node maintenance & cordoning guide (#1030)
-
docs(supraseal): fix typos in batch sealing page (#1021)
What's Changed
- honor pieceCIDv2 in deny list by @LexLuthr in #1101
- Curio stats by @LexLuthr in #1079
- fix: expmgr: Sectors without short claims don't have short claims by @magik6k in #1049
- fix: snap pipeline DELETE trigger not reverting sectors_meta.is_cc by @magik6k in #1097
- feat: add denylist filtering for HTTP retrieval endpoints by @magik6k in #1076
- fix missing ddo column by @LexLuthr in #1084
- fix: Clamp premium in message sending by @magik6k in #1090
- fix gc task spam with no storage by @magik6k in #1086
- fix: v1 v2 cid interop regressions by @magik6k in #1085
- ci: Use PAT in label-for-foc-wg by @rvagg in #1082
- refactor(proof): extract cached proof pipeline behind testable interfaces by @rvagg in #1068
- allow piece cid v1 and v2 interoperability by @LexLuthr in #1048
- better uniq by @snadrus in #1072
- update pdp contract bindings by @LexLuthr in #1013
- chore(deps): replace x/crypto with filecoin-project/go-keccak by @rvagg in #1060
- fix: batch timeout timezone bug and move evaluation to testable Go by @snadrus in #1044
- fix raw size only if unseal exists by @LexLuthr in #1047
- chore(deps): bump github.com/ethereum/go-ethereum from 1.16.8 to 1.17.0 by @dependabot in #1036
- fix: FixRawSize SQL column name, join, and filetype bugs by @Reiers in #1037
- fix(supraseal): add Turing (sm_75) back to CUDA architectures by @Reiers in #1038
- fix: FixRawSize CanAccept SQL array cast typo by @Reiers in #1035
- docs(administration): add node maintenance & cordoning guide by @Reiers in #1030
- speed up DB itests by @snadrus in #1022
- fix: small correctness and quality improvements by @rvagg in #1020
- docs(supraseal): fix typos in batch sealing page by @Reiers in #1021
- fix(build): accept GCC 12 for CUDA 12 compatibility by @Reiers in #1019
- refactor Makefile by @snadrus in #1014
Full Changelog: v1.27.2...v1.27.3
Upgrade
git checkout v1.27.3
make clean build
If coming from v1.27.3-rc1/rc2/rc3, this is a straightforward rebuild — no additional database migrations or config changes required beyond what was already applied.
If upgrading from v1.27.2, standard database migrations will apply automatically on startup.