ultrasoundmoney / oracle-client Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Currently there are a few println!
statements scattered in the code but no proper logging.
We should change that.
It'd be cool if we had a ci workflow that:
Currently the messages have the following format:
PriceMessage = { value: u64 }
with the price being represented as a fixed point number with 6 decimals of precision.
This is likely not the final format we want so we should decide on a message format including:
oracle-client/src/attestation_scheduler.rs
Line 149 in 09418e6
Why do we end up in this situation if slots are run with a 24s timeout?
Currently as a "slot_provider" we use a placeholder implementation that executes the oracle code for every mined block as returned by a ws connection to an json rpc provider.
Instead it should probably trigger the price reporting at the beginning of each slot, before the block is mined.
Also it should trigger the oracle even if a slot is missed and no block mined for that slot.
Options for implementing this:
We should add a Dockerfile
that containerizes the application to make it easier to run.
In particular this Dockerfile should include installation of gofer
and all required configuration.
Currently we interface with the gofer
tool by executing a cli command from rust.
This is inefficient as well as brittle and probably should be changed.
One way to do it would be to call the json_rpc
endpoint of the gofer agent
service.
In this context we should also revisit the handling of gofer configuration / customization which is currently saved in config.hcl
in the top level of this repo.
Currently there are way to many expect
and unwrap
calls in the code leading to panic / crash if anything goes wrong.
We should implement proper error handling that makes sure we recover from any recoverable error and enable transparent debugging.
Probably has some overlap with #5
Currently for the message_broadcaster we only have a dummy placeholder that just prints the messages to stdout.
Instead we need an implementation that reports the messages to our server (or some p2p network in the future).
This Probably depends on finishing #3 first
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.