Oracles
How the SortedOracles smart contract uses governance to collect reports and maintain the oraclized rate or the Celo dollar.
SortedOracles Smart Contract
As mentioned in the previous section, the stability mechanism needs to know the market price of CELO with respect to the US dollar. This value is made available on-chain in the SortedOracles smart contract.
Collecting Reports
Through governance, a whitelist of reporters is selected. These addresses are allowed to make reports to the SortedOracles smart contract. The smart contract keeps a list of most recent reports from each reporter. To make it difficult for a dishonest reporter to manipulate the oraclized rate, the official value of the oracle is taken to be the median of this list.
Maintaining Oracle Values
To ensure the oracle's value doesn't go stale due to inactive reporters, any reports that are too old can be removed from the list. "Too old" here is defined based on a protocol parameter that can be modified via governance.
Celo-Oracle Repository
You can find more information about the technical specification of the Celo Oracles feeding data to the reserve in the GitHub repository here.