Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Price oracles order should be managed in runtime to punish misbehaving oracles #4332

Closed
LefterisJP opened this issue May 20, 2022 · 0 comments · Fixed by #5133
Closed

Price oracles order should be managed in runtime to punish misbehaving oracles #4332

LefterisJP opened this issue May 20, 2022 · 0 comments · Fixed by #5133
Labels
Milestone

Comments

@LefterisJP
Copy link
Member

LefterisJP commented May 20, 2022

Abstract

We have had the problem that a price oracle goes offline for a very long time such as coingecko for over 12 hours here: https://twitter.com/rotkiapp/status/1527554874191368193

If this kind of failure persists for long enough and we have to wait for the timeout of 30secs to skip to the next immediate oracle for every query things stop working.

The solution is for the user to do the change themselves (change the order of oracles, or even delete the misbehaving oracle) but it would be nice if we could detect this and fix it for them automatically.

Specification

The current (and maybe historicall too?) price oracle manager class should keep a rolling record of queries per oracle and if they fail or succeed. If for an oracle all the X latest queries are failing then we should temporarily ban it

The manager should unban oracles after Y minutes have passed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant