Context: FilOzone/synapse-sdk#540
Summary
Create a simple contract that maintains a list of endorsed provider IDs. This replaces the endorsement certificates approach.
Background
We have a three-tier provider trust model:
All providers - Everyone in ServiceProviderRegistry
Approved providers - Recorded in FilecoinWarmStorageService
Endorsed providers - Small set we store at least one copy with
This contract identifies the endorsed tier.
Details
Store a list of provider IDs
Owner-controlled
Suggested functions:
getEndorsedProviders() → uint256[] - returns full list
addEndorsed(uint256 providerId) - owner only
removeEndorsed(uint256 providerId) - owner only
Or just setEndorsed(uint256[] providerIds)?
Deploy to calibnet and mainnet
Add to deployment script(s) or make a new one (@rjan90 to provide input on preferred deployment script mechanism)
Document contract address per network
Later: Transfer to multisig and test with multisig before GA
Follow-on Synapse work
Add contract address constant per network, add override address in SynapseOptions for devnet use and other testing
Add memoised query in StorageManger, fetch once per session, cache result, pass to dependent components
Update feat: Endorsement Certificates synapse-sdk#443 to use contract data instead of certs
Note: part of the upload() work will be redoing a bunch of this code so the main priority is just to make something provably work.
Context: FilOzone/synapse-sdk#540
Summary
Create a simple contract that maintains a list of endorsed provider IDs. This replaces the endorsement certificates approach.
Background
We have a three-tier provider trust model:
This contract identifies the endorsed tier.
Details
getEndorsedProviders() → uint256[]- returns full listaddEndorsed(uint256 providerId)- owner onlyremoveEndorsed(uint256 providerId)- owner onlysetEndorsed(uint256[] providerIds)?Follow-on Synapse work
SynapseOptionsfor devnet use and other testingStorageManger, fetch once per session, cache result, pass to dependent componentsNote: part of the
upload()work will be redoing a bunch of this code so the main priority is just to make something provably work.