Skip to content

Endorsed Providers Contract #382

@rvagg

Description

@rvagg

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:

  1. All providers - Everyone in ServiceProviderRegistry
  2. Approved providers - Recorded in FilecoinWarmStorageService
  3. 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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

🎉 Done

Relationships

None yet

Development

No branches or pull requests

Issue actions