-
Notifications
You must be signed in to change notification settings - Fork 6
Description
Problems to solve
- Make it self-service for an SP to test their participation in FWSS
- Have a clear self-service way for FilOz to denote the SPs that are demonstrating sufficient "performance/reliabilty" to be used in Synpase for projects like Filecoin Pin
Proposed solution
Part 1: make it so any SP can self-service join FWSS
Part 2: "Approved Providers" now becomes the "whitelisted/blessed" set of SPs that should be considered by Synapse during Data Set creation.
Merits of this approach
This addresses the "problems to solve" above. An SP can self-service join FWSS and then can test their setup by providing an override providerId to a tool like filecoiin-pin to test things locally, all without FilOz involvement.
In addition, there are no code changes in Synapse needed since Synapse today already filters down to "Approved Providers". Whereas today the "Approved Providers" list has SPs manifesting reliability problems, with this change, it will be more tightly curated to a handful of SPs that have a reliable track records so we have a good foundation to build on for the other new software being built on top like filecoin-pin.
Implementation Notes
- The change to FilecoinWarmStorageService.sol is straightforward. The diff is below.
- Tests will need to be updated.
- dealbot will need to be updated to test all FWSS SPs, not just the approved ones so that "scores" can be generated for SPs before they become approved, as a sufficiently high "score" may even become a requirement for becoming "approved".
Contact change
diff --git a/service_contracts/src/FilecoinWarmStorageService.sol b/service_contracts/src/FilecoinWarmStorageService.sol
index 2d8bb47..2c1603f 100644
--- a/service_contracts/src/FilecoinWarmStorageService.sol
+++ b/service_contracts/src/FilecoinWarmStorageService.sol
@@ -521,9 +521,6 @@ contract FilecoinWarmStorageService is
require(providerId != 0, Errors.ProviderNotRegistered(serviceProvider));
- // Check if provider is approved
- require(approvedProviders[providerId], Errors.ProviderNotApproved(serviceProvider, providerId));
-
address payee = serviceProviderRegistry.getProviderPayee(providerId);
require(
@@ -962,9 +959,6 @@ contract FilecoinWarmStorageService is
// Check if provider is registered
require(newProviderId != 0, Errors.ProviderNotRegistered(newServiceProvider));
- // Check if provider is approved
- require(approvedProviders[newProviderId], Errors.ProviderNotApproved(newServiceProvider, newProviderId));
-
// Update the data set service provider
info.serviceProvider = newServiceProvider;