Skip to content

Releases: FilOzone/filecoin-services

v1.0.0 - FWSS Release

02 Nov 15:22
980e25a

Choose a tag to compare

This is the General Availability (GA) release of the Filecoin Warm Storage Service (FWSS) contracts.

Core Contracts - Mainnet

  1. Payments Contract: 0x23b1e018F08BB982348b15a86ee926eEBf7F4DAa
  2. PDPVerifier Implementation: 0xe2Dc211BffcA499761570E04e8143Be2BA66095f
  3. PDPVerifier Proxy: 0xBADd0B92C1c71d02E7d520f64c0876538fa2557F
  4. SessionKeyRegistry: 0x74FD50525A958aF5d484601E252271f9625231aB
  5. ServiceProviderRegistry Implementation: 0xe255D3a89D6B326b48bc0fC94a472A839471D6B0
  6. ServiceProviderRegistry Proxy: 0xf55dDbf63F1b55c3F1D4FA7e339a68AB7b64A5eB
  7. FilecoinWarmStorageService Implementation: 0xd60b90f6D3C42B26a246E141ec701a20Dde2fA61
  8. FilecoinWarmStorageService Proxy: 0x8408502033C418E1bbC97cE9ac48E5528F371A9f
  9. FilecoinWarmStorageServiceStateView: 0x9e4e6699d8F67dFc883d6b0A7344Bd56F7E80B46

Configuration:

Core Contracts - Calibration Network

  1. Payments Contract: 0x09a0fDc2723fAd1A7b8e3e00eE5DF73841df55a0
  2. PDPVerifier Implementation: 0x2355Cb19BA1eFF51673562E1a5fc5eE292AF9D42
  3. PDPVerifier Proxy: 0x85e366Cf9DD2c0aE37E963d9556F5f4718d6417C
  4. SessionKeyRegistry: 0x97Dd879F5a97A8c761B94746d7F5cfF50AAd4452
  5. ServiceProviderRegistry Implementation: 0xb32Bb530638d20f1B59B40CDD2Ce4208430f7DE3
  6. ServiceProviderRegistry Proxy: 0x839e5c9988e4e9977d40708d0094103c0839Ac9D
  7. FilecoinWarmStorageService Implementation: 0x4BCc752555Bf08A5Bd9a4Ce467a12607277450bA
  8. FilecoinWarmStorageService Proxy: 0x02925630df557F957f70E112bA06e50965417CA0
  9. FilecoinWarmStorageServiceStateView: 0xA5D87b04086B1d591026cCE10255351B5AA4689B

Configuration:

Added

  • EXTRA_DATA size limits for enhanced security (#313)
  • Floor price set to 0.06 USDFC/month (#320)
  • Random nonces for AddPieces operations (#317)
  • Relaxed constraints on setViewContract (#310)
  • Auto-verify contracts after deployment (#272)
  • Regression tests for dataset cleanup (#276)
  • Export Errors ABI (#329)

Changed

  • BREAKING: Simplified DataSetStatus enum from 3 states to 2 states (#314)
    • Old values: NotFound (0), Active (1), Terminating (2)
    • New values: Inactive (0), Active (1)
    • Migration:
      • NotFoundInactive (non-existent datasets)
      • TerminatingActive (terminated datasets with pieces are still Active)
      • Use pdpEndEpoch to check if a dataset is terminated
    • Details: Inactive represents non-existent datasets or datasets with no pieces yet. Active represents all datasets with pieces, including terminated ones.
    • Use getDataSetStatusDetails() to check termination status separately from Active/Inactive status
  • BREAKING: ServiceProviderRegistry Bloom Schema refactor (#308)
    • Removed encoded productData; all product attributes now use capability key-value store
    • Keys are string, values are bytes
    • Migration for synapse and curio:
      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.
      2. Replace getPDPOffering() with getAllProductCapabilities() to retrieve product info
      3. getActiveProvidersByProductType() and getProvidersByProductType() now return productCapabilityValues in ProviderWithProduct[]
      4. getProductCapabilities() no longer returns exists bool array
      5. getProductCapability() is removed; use productCapabilities mapping instead
      6. updatePDPServiceWithCapabilities() is removed; use updateProduct() instead
      7. Capability values cannot be empty; exclude the key if product lacks the capability
    • Contract size reduced from 21,290 to 17,751 bytes (-3,539 bytes)
  • BREAKING: Non-sequential clientDataSetId (#265)
    • Changed from sequential counter to mapping-based non-sequential IDs
    • Migration: Clients can now create datasets with any unique clientDataSetId value, removing the sequential bottleneck
    • Added DataSetIdAlreadyExists error for duplicate IDs
  • BREAKING: Renamed Payments contract to FilecoinPayV1 (#293)
    • Migration: Update all contract references from Payments to FilecoinPayV1
    • ABI file renamed: Payments.abi.jsonFilecoinPayV1.abi.json
    • Deployment scripts and documentation updated
  • BREAKING: ServiceProviderRegistry events now emit raw productData (#294)
    • Removed serviceUrl argument from Product events
    • Migration: Parse serviceUrl from raw productData if needed
    • Events now more portable and forward-compatible with future product types
  • BREAKING: ServiceProviderRegistry deletes removed product data (#295)
    • Changed behavior: Product data is now properly cleaned up when removed
    • Migration: Use isActive to detect if product exists, not presence of data fields
  • Calibnet: Reduced DEFAULT_CHALLENGE_WINDOW_SIZE from 30 epochs to 20 epochs for faster testing iteration (#327)
  • Made storage pricing and minimum rate mutable storage variables instead of immutable constants (#325)
  • Made FWSS permissionless by removing provider approval checks (#302)
  • CDN pricing changed from monthly to usage-based egress model (#324)
  • Use constant typehash instead of rehashing for EIP-712 signatures (#315)
  • Burn mechanism now uses FVMPay (#296)
  • SignatureVerificationLib refactored to use delegate pattern (#282)
  • Subgraph now...
Read more

v0.3.0 - M3 Calibration Network Deployment

08 Oct 22:15
7b28dec

Choose a tag to compare

Core Contracts

  1. Payments Contract: 0x6dB198201F900c17e86D267d7Df82567FB03df5E
  2. PDPVerifier Implementation: 0x4EC9a8ae6e6A419056b6C332509deEA371b182EF
  3. PDPVerifier Proxy: 0x579dD9E561D4Cd1776CF3e52E598616E77D5FBcb
  4. SessionKeyRegistry: 0x97Dd879F5a97A8c761B94746d7F5cfF50AAd4452
  5. ServiceProviderRegistry Implementation: 0x5672fE3B5366819B4Bd2F538A2CAEA11f0b2Aff5
  6. ServiceProviderRegistry Proxy: 0x1096ba1e7BB912136DA8524A22bF71091dc4FDd9
  7. FilecoinWarmStorageService Implementation: 0x6B78a026309bc2659c5891559D412FA1BA6529A5
  8. FilecoinWarmStorageService Proxy: 0x468342072e0dc86AFFBe15519bc5B1A1aa86e4dc
  9. FilecoinWarmStorageServiceStateView: 0xE4587AAdB97d7B8197aa08E432bAD0D9Cfe3a17F

Configuration:

Changed

  • ServiceProviderRegistry full redeploy - Required due to state compatibility issues with FilecoinWarmStorageService
    • Previous FWSS release (0.2.0) used an old ServiceProviderRegistry; upgrading existing ServiceProviderRegistry would cause state mismatch with FWSS
  • ServiceProviderRegistry VERSION updated to 0.3.0 to properly reflect inclusion of providerId struct fix from PR #247
  • FilecoinWarmStorageService VERSION string updated to 0.3.0.
  • Changed PDPVerifier to v2.2.1 (PDP v2.2.1 release notes)
    • Restored createDataSet() function for enhanced flexibility in dataset initialization, enabling empty "bucket" creation, smoother Curio and synapse-sdk integration (#219)

v0.2.0 - M3 Calibration Network Deployment

07 Oct 08:57
6c26081

Choose a tag to compare

Core Contracts

Calibration Network:

  1. Payments Contract: 0x6dB198201F900c17e86D267d7Df82567FB03df5E
  2. PDPVerifier Implementation: 0xCa92b746a7af215e0AaC7D0F956d74B522b295b6
  3. PDPVerifier Proxy: 0x9ecb84bB617a6Fd9911553bE12502a1B091CdfD8
  4. SessionKeyRegistry: 0x97Dd879F5a97A8c761B94746d7F5cfF50AAd4452
  5. ServiceProviderRegistry Implementation: 0xEdc9A41371d69a736bEfBa7678007BDBA61425E5
  6. ServiceProviderRegistry Proxy: 0xA8a7e2130C27e4f39D1aEBb3D538D5937bCf8ddb
  7. FilecoinWarmStorageService Implementation: 0x2d76e3A41fa4614D1840CEB73aa07c5d0af6a023
  8. FilecoinWarmStorageService Proxy: 0x9ef4cAb0aD0D19b8Df28791Df80b29bC784bE91b
  9. FilecoinWarmStorageServiceStateView: 0x7175a72479e2B0050ed310f1a49a517C03573547

Configuration:

Added

  • feat: announcePlannedUpgrade (#260)
  • feat: Allow deletion of terminated dataset, Add getDataSetStatus (#255)
  • feat(ServiceProviderRegistry): add getProvidersByIds batch lookup function (251)
  • perf(ServiceProviderRegistry): getProviderPayee helper for dataSetCreated (#249)
  • Added ERC-3009 support with new deposit authorization functions (#225)
    • depositWithAuthorization() for ERC-3009 compliant deposits
    • depositWithAuthorizationAndApproveOperator() for combined deposit and operator approval
    • depositWithAuthorizationAndIncreaseOperatorApproval() for combined deposit and operator allowance increase
  • feat: service registry: add providerId to ServiceInfo (#209)
  • feat: owner beneficairy seperation without transfer (#191)
  • feat: Add dataset termination and deletion status tracking for SDK usability (#146)
  • Switch from PieceCIDv2 to v2 (#123)
  • perf(provenPeriods): bitmap (#258)

Changed

  • Modify CDN payment rails and add methods for usage-based payments (#237)
  • BREAKING: Updated Payments contract ABI with breaking changes (#223)
    • DepositRecorded event removes usedPermit parameter - event listeners must be updated
    • railCancel function state mutability changed from nonpayable to payable - callers may need to handle potential token transfers
    • PermitRecipientMustBeMsgSender error replaced with SignerMustBeMsgSender error - error handling code must be updated
  • feat: remove provierId from ServiceProviderInfo struct (#247)
    • Adds a ServiceProviderInfoView struct with providerId field for external consumption.
  • Breaking: feat!: FilCDN now is FilBeam (#236)
  • Breaking: feat!: update service parameters (#239)
  • feat: remove dataset creation fee (#245)
  • feat: update getClientDataSets to return dataSetId (#242)
  • fix: update FilCDN Controller & Beneficiary addresses (#230)
  • feat(subgraph): updates based on KV metadata and service provider registry (#189)
  • Add emit pieceCid in PieceAdded event (#207)
  • fix: Clear withCDN flag when terminating service (#208)
  • fix: remove serviceName and serviceDescription properties (#199)
  • feat: rename datset termination and emit events for dataset termination and add extradata (#129)
  • feat: remove service provider registry as we're moving it to it's own contract (#135)

v0.1.0

09 Oct 05:52
e680057

Choose a tag to compare

v0.1.0 Pre-release
Pre-release
Core Contracts:

1. SessionKeyRegistry: 0x97Dd879F5a97A8c761B94746d7F5cfF50AAd4452
2. PDPVerifier Implementation: 0x16b6E7ec316aF33504c8783c73Fb29dC61f6A347
3. PDPVerifier Proxy: 0x445238Eca6c6aB8Dff1Aa6087d9c05734D22f137
4. Payments Contract: 0x1096025c9D6B29E12E2f04965F6E64d564Ce0750
5. ServiceProviderRegistry Implementation: 0xEdc9A41371d69a736bEfBa7678007BDBA61425E5
6. ServiceProviderRegistry Proxy: 0xA8a7e2130C27e4f39D1aEBb3D538D5937bCf8ddb
7. FilecoinWarmStorageService Implementation: 0x88449EcAd119B6c05fa5eFB18C80d86d5781fc10
8. FilecoinWarmStorageService Proxy: 0x80617b65FD2EEa1D7fDe2B4F85977670690ed348
9. FilecoinWarmStorageServiceStateView: 0x87EDE87cEF4BfeFE0374c3470cB3F5be18b739d5

Configuration:
- USDFC Token: 0xb3042734b608a1B16e9e86B374A3f3e389B4cDf0
- FilCDN Controller: 0x5f7E5E2A756430EdeE781FF6e6F7954254Ef629A
- FilCDN Beneficiary: 0xff0000000000000000000000000000000037385c
- Max Proving Period: 30 epochs
- Challenge Window Size: 15 epochs
- Challenge Finality: 1
- Service Name: "Filecoin Warm Storage Service"