Skip to content

Commit 5ebfdb5

Browse files
committed
chore: prep FWSS v1.0.0 changelog
chore: prep FWSS v1.0.0 changelog
1 parent c073371 commit 5ebfdb5

File tree

1 file changed

+98
-20
lines changed

1 file changed

+98
-20
lines changed

CHANGELOG.md

Lines changed: 98 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,56 @@ All notable changes to this project will be documented in this file.
33

44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
55

6-
## [Unreleased]
6+
## [1.0.0] - 2025-10-27 - FWSS GA Release
7+
8+
This is the General Availability (GA) release of the Filecoin Warm Storage Service (FWSS) contracts.
9+
10+
## Core Contracts - Calibration Network
11+
12+
1. Payments Contract: [0x09a0fDc2723fAd1A7b8e3e00eE5DF73841df55a0](https://calibration.filfox.info/en/address/0x09a0fDc2723fAd1A7b8e3e00eE5DF73841df55a0)
13+
- From [Filecoin-Pay v1.0.0](https://github.com/FilOzone/filecoin-pay/releases/tag/v1.0.0)
14+
2. PDPVerifier Implementation: [0x2355Cb19BA1eFF51673562E1a5fc5eE292AF9D42](https://calibration.filfox.info/en/address/0x2355Cb19BA1eFF51673562E1a5fc5eE292AF9D42)
15+
- From [PDP v3.1.0](https://github.com/FilOzone/pdp/releases/tag/v3.1.0)
16+
3. PDPVerifier Proxy: [0x85e366Cf9DD2c0aE37E963d9556F5f4718d6417C](https://calibration.filfox.info/en/address/0x85e366Cf9DD2c0aE37E963d9556F5f4718d6417C)
17+
- From [PDP v3.1.0](https://github.com/FilOzone/pdp/releases/tag/v3.1.0)
18+
4. SessionKeyRegistry: [0x97Dd879F5a97A8c761B94746d7F5cfF50AAd4452](https://calibration.filfox.info/en/address/0x97Dd879F5a97A8c761B94746d7F5cfF50AAd4452)
19+
5. ServiceProviderRegistry Implementation: [TODO](https://calibration.filfox.info/en/address/)
20+
6. ServiceProviderRegistry Proxy: [TOD](https://calibration.filfox.info/en/address/)
21+
7. FilecoinWarmStorageService Implementation: [TODO](https://calibration.filfox.info/en/address/)
22+
8. FilecoinWarmStorageService Proxy: [TODO](https://calibration.filfox.info/en/address/)
23+
9. FilecoinWarmStorageServiceStateView: [TODO](https://calibration.filfox.info/en/address/)
24+
25+
Configuration:
26+
- USDFC Token: [0xb3042734b608a1B16e9e86B374A3f3e389B4cDf0](https://calibration.filfox.info/en/address/0xb3042734b608a1B16e9e86B374A3f3e389B4cDf0)
27+
- FILBEAM_BENEFICIARY_ADDRESS: [0x1D60d2F5960Af6341e842C539985FA297E10d6eA](https://calibration.filfox.info/en/address/0x1D60d2F5960Af6341e842C539985FA297E10d6eA)
28+
- FILBEAM_CONTROLLER_ADDRESS: [0x5f7E5E2A756430EdeE781FF6e6F7954254Ef629A](https://calibration.filfox.info/en/address/0x5f7E5E2A756430EdeE781FF6e6F7954254Ef629A)
29+
- CHALLENGE_FINALITY: 10 epochs
30+
- MAX_PROVING_PERIOD: 240 epochs
31+
- CHALLENGE_WINDOW_SIZE: 20 epochs
32+
- Service Name: "Filecoin Warm Storage Service - Calibration GA Release"
33+
- Service Description: "Calibration FWSS GA contracts"
34+
35+
## Core Contracts - Mainnet
36+
37+
This section will be filled in once E2E testing in Calibration Network with the GA release has been completed.
738

839
### Added
9-
- Dataset lifecycle tracking with `DataSetStatusChanged` event ([#169](https://github.com/FilOzone/filecoin-services/issues/169))
10-
- Convenience functions `isDataSetActive()` and `getDataSetStatusDetails()` for status checking
11-
- Comprehensive documentation: dataset lifecycle guide and integration guide
12-
- Subgraph status history tracking with `DataSetStatusHistory` entity
40+
- Dataset lifecycle tracking with `DataSetStatusChanged` event ([#314](https://github.com/FilOzone/filecoin-services/pull/314))
41+
- EXTRA_DATA size limits for enhanced security ([#313](https://github.com/FilOzone/filecoin-services/pull/313))
42+
- ServiceProviderRegistry capability key-value store with bloom filter validation ([#308](https://github.com/FilOzone/filecoin-services/pull/308))
43+
- New utility libraries: `BigEndian.sol` and `BloomSet.sol`
44+
- `getAllProductCapabilities()` function to retrieve all product key-value pairs
45+
- `productCapabilities()` mapping for flexible product metadata storage
46+
- Floor price set to 0.06 USDFC/month ([#320](https://github.com/FilOzone/filecoin-services/pull/320))
47+
- Mutable pricing configuration ([#325](https://github.com/FilOzone/filecoin-services/pull/325))
48+
- Random nonces for AddPieces operations ([#317](https://github.com/FilOzone/filecoin-services/pull/317))
49+
- Relaxed constraints on `setViewContract` ([#310](https://github.com/FilOzone/filecoin-services/pull/310))
50+
- Auto-verify contracts after deployment ([#272](https://github.com/FilOzone/filecoin-services/pull/272))
51+
- Regression tests for dataset cleanup ([#276](https://github.com/FilOzone/filecoin-services/pull/276))
52+
- Export Errors ABI ([#329](https://github.com/FilOzone/filecoin-services/pull/329))
1353

1454
### Changed
15-
- **BREAKING**: Simplified `DataSetStatus` enum from 3 states to 2 states ([#169](https://github.com/FilOzone/filecoin-services/issues/169))
55+
- **BREAKING**: Simplified `DataSetStatus` enum from 3 states to 2 states ([#314](https://github.com/FilOzone/filecoin-services/pull/314))
1656
- **Old values**: `NotFound (0)`, `Active (1)`, `Terminating (2)`
1757
- **New values**: `Inactive (0)`, `Active (1)`
1858
- **Migration**:
@@ -21,19 +61,55 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
2161
- Use `pdpEndEpoch` to check if a dataset is terminated
2262
- **Details**: `Inactive` represents non-existent datasets or datasets with no pieces yet. `Active` represents all datasets with pieces, including terminated ones.
2363
- Use `getDataSetStatusDetails()` to check termination status separately from Active/Inactive status
24-
- Subgraph schema updated with status enum and history tracking
25-
- **Calibnet**: Reduced DEFAULT_CHALLENGE_WINDOW_SIZE from 30 epochs to 20 epochs for faster testing iteration
26-
- Made storage pricing and minimum rate mutable storage variables instead of immutable constants ([#306](https://github.com/FilOzone/filecoin-services/issues/306))
27-
- `storagePricePerTibPerMonth` (initially 2.5 USDFC, max 10 USDFC)
28-
- `minimumStorageRatePerMonth` (initially 0.06 USDFC, max 0.24 USDFC)
29-
- Added `updatePricing(uint256 newStoragePrice, uint256 newMinimumRate)` function to allow owner to update pricing rates without contract upgrades
30-
- Pass 0 to keep existing value unchanged
31-
- At least one price must be non-zero
32-
- Validates against 4x upper bounds (10 USDFC storage, 0.24 USDFC minimum rate)
33-
- Price updates apply immediately to existing payment rails when recalculated
34-
- Added `getCurrentPricingRates()` function to query current storage price and minimum rate
35-
- Added `PricingUpdated(uint256 storagePrice, uint256 minimumRate)` event to track pricing changes
36-
- Added `AtLeastOnePriceMustBeNonZero` and `PriceExceedsMaximum` errors for pricing validation
64+
- **BREAKING**: ServiceProviderRegistry Bloom Schema refactor ([#308](https://github.com/FilOzone/filecoin-services/pull/308))
65+
- **Removed** encoded `productData`; all product attributes now use capability key-value store
66+
- **Keys** are `string`, **values** are `bytes`
67+
- **Migration for synapse and curio**:
68+
1. All `productInfo` previously ABI-encoded is removed. Use capability key-value store instead. Encode unsigned integers as big-endian, addresses as `bytes[20]`, strings as UTF-8.
69+
2. Replace `getPDPOffering()` with `getAllProductCapabilities()` to retrieve product info
70+
3. `getActiveProvidersByProductType()` and `getProvidersByProductType()` now return `productCapabilityValues` in `ProviderWithProduct[]`
71+
4. `getProductCapabilities()` no longer returns `exists` bool array
72+
5. `getProductCapability()` is removed; use `productCapabilities` mapping instead
73+
6. `updatePDPServiceWithCapabilities()` is removed; use `updateProduct()` instead
74+
7. Capability values cannot be empty; exclude the key if product lacks the capability
75+
- Contract size reduced from 21,290 to 17,751 bytes (-3,539 bytes)
76+
- **BREAKING**: Non-sequential `clientDataSetId` ([#265](https://github.com/FilOzone/filecoin-services/pull/265))
77+
- **Changed** from sequential counter to mapping-based non-sequential IDs
78+
- **Migration**: Clients can now create datasets with any unique `clientDataSetId` value, removing the sequential bottleneck
79+
- Added `DataSetIdAlreadyExists` error for duplicate IDs
80+
- **BREAKING**: Renamed Payments contract to FilecoinPayV1 ([#293](https://github.com/FilOzone/filecoin-services/pull/293))
81+
- **Migration**: Update all contract references from `Payments` to `FilecoinPayV1`
82+
- ABI file renamed: `Payments.abi.json``FilecoinPayV1.abi.json`
83+
- Deployment scripts and documentation updated
84+
- **BREAKING**: ServiceProviderRegistry events now emit raw productData ([#294](https://github.com/FilOzone/filecoin-services/pull/294))
85+
- **Removed** `serviceUrl` argument from Product events
86+
- **Migration**: Parse `serviceUrl` from raw `productData` if needed
87+
- Events now more portable and forward-compatible with future product types
88+
- **BREAKING**: ServiceProviderRegistry deletes removed product data ([#295](https://github.com/FilOzone/filecoin-services/pull/295))
89+
- **Changed** behavior: Product data is now properly cleaned up when removed
90+
- **Migration**: Use `isActive` to detect if product exists, not presence of data fields
91+
- **Calibnet**: Reduced `DEFAULT_CHALLENGE_WINDOW_SIZE` from 30 epochs to 20 epochs for faster testing iteration ([#327](https://github.com/FilOzone/filecoin-services/pull/327))
92+
- Made storage pricing and minimum rate mutable storage variables instead of immutable constants ([#325](https://github.com/FilOzone/filecoin-services/pull/325))
93+
- Made FWSS permissionless by removing provider approval checks ([#302](https://github.com/FilOzone/filecoin-services/pull/302))
94+
- CDN pricing changed from monthly to usage-based egress model ([#324](https://github.com/FilOzone/filecoin-services/pull/324))
95+
- Use constant typehash instead of rehashing for EIP-712 signatures ([#315](https://github.com/FilOzone/filecoin-services/pull/315))
96+
- Burn mechanism now uses FVMPay ([#296](https://github.com/FilOzone/filecoin-services/pull/296))
97+
- SignatureVerificationLib refactored to use delegate pattern ([#282](https://github.com/FilOzone/filecoin-services/pull/282))
98+
- Subgraph now uses productData from events directly ([#298](https://github.com/FilOzone/filecoin-services/pull/298))
99+
- Subgraph decodes PDP offering using ethereum.decode ([#290](https://github.com/FilOzone/filecoin-services/pull/290))
100+
- CDNPaymentRailsToppedUp event refactored ([#284](https://github.com/FilOzone/filecoin-services/pull/284))
101+
- Environment variable renamed to PDP_VERIFIER_PROXY_ADDRESS ([#292](https://github.com/FilOzone/filecoin-services/pull/292))
102+
- Updated lib/pdp to v3.1.0 with improved validator support for forward progress despite missing proofs ([#321](https://github.com/FilOzone/filecoin-services/pull/321))
103+
104+
### Removed
105+
- **BREAKING**: `PaymentArbitrated` event removed from contract and subgraph ([#301](https://github.com/FilOzone/filecoin-services/pull/301))
106+
107+
### Performance Improvements
108+
- Optimized payment validation to loop over proving periods ([#267](https://github.com/FilOzone/filecoin-services/pull/267))
109+
- Removed railToDataSet mapping for CDN rails ([#278](https://github.com/FilOzone/filecoin-services/pull/278))
110+
- Optimized withCDN metadata key handling ([#271](https://github.com/FilOzone/filecoin-services/pull/271))
111+
- Added dataSetHasCDNMetadataKey optimization ([#274](https://github.com/FilOzone/filecoin-services/pull/274))
112+
- Replaced error strings with custom errors ([#270](https://github.com/FilOzone/filecoin-services/pull/270))
37113

38114
## [0.3.0] - 2025-10-08 - M3.1 Calibration Network Deployment
39115

@@ -221,6 +297,8 @@ This release contains breaking changes that rename core concepts throughout the
221297

222298
The underlying functionality remains unchanged; this release only updates terminology for consistency.
223299

224-
[Unreleased]: https://github.com/filozone/filecoin-services/compare/v0.2.0...HEAD
300+
[Unreleased]: https://github.com/filozone/filecoin-services/compare/v1.0.0...HEAD
301+
[1.0.0]: https://github.com/filozone/filecoin-services/compare/v0.3.0...v1.0.0
302+
[0.3.0]: https://github.com/filozone/filecoin-services/releases/tag/v0.3.0
225303
[0.2.0]: https://github.com/filozone/filecoin-services/releases/tag/v0.2.0
226304
[0.1.0]: https://github.com/filozone/filecoin-services/releases/tag/v0.1.0

0 commit comments

Comments
 (0)