Please describe your proposed solution
The current Charli3 node infrastructure allows up to 5 participating nodes per data feed (eg ada/usd).
However, these are predetermined prior to a price update and the nodes supplying the feed are “hardwired” in the feed config file. Adjusting operators requires a multi-signature update of the feed.
We propose to allow a large network of node operators and to build a mechanism for selecting node operators prior to a data feed update. For example, this mechanism may randomly select 5 operators from a larger pool (eg 50) to supply the price feed. At a very basic mvp we will build the selector to randomize who gets selected. Eventually we will enhance the selector mechanism to take into account historical performance, tier level of node, and potentially other variables.
For this proposal, we want to develop a random selector mechanism that is secure such that it is protected from single point attacks to manipulate which nodes get selected. Achieving just this mvp is going to require an experienced architect along with security expert review and significant testing.
Summary of outputs:
- onboard approx 100 node operators
- create a list/active database of node operators available for data feeds
- design and implement a selector mechanism locally
- deploy the selector mechanism using a pre production data feed
- test the deployed pre prod feed with live node operators to stress test the selector mechanism
- Deploy a mainnet POC of a functioning selector and pool with a data feed