Giter VIP home page Giter VIP logo

external-initiator's People

Contributors

aalu1418 avatar boxhock avatar dependabot[bot] avatar gupadhyaya avatar johnnymugs avatar krebernisak avatar laurenttrk avatar michaelfig avatar pana avatar ryanrhall avatar secret2830 avatar siovanus avatar thodges-gh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

external-initiator's Issues

JobSpec improvements

Potentially add runlog & fluxmonitor distinct types on JobSpec? (For now the convention is that if nothing is passed then it is runlog. But there might be other types from time to time.)

FluxMonitor spec might need some validations.

No indicators for idle FluxMonitor

If oracle is not eligible to submit, FM is not started. We should probably log the reason for the non-eligibility, so we can know if it is expected behavior or something has gone wrong.

Syncing FluxAggregatorState more accurately

As of current PoC FM integration with Substrate, we requesting the FA state once on FM, and then changing it directly on FM on new incoming events from BM.

We might need to have the FA state synced as close as possible to the actual blockchain state. For e.g something might go wrong in FM logic, and have it do an internal state change that doesn't reflect the true state of the blockchain. Or maybe the blockchain has some other unexpected behaviour that FM haven't taken into account, so the FA is in a different state.

A solution could be to do the syncing(querying the whole FA state anew) more frequently, on incoming blockchain events, to prevent faulty results.

(We might need to move all FA state handling to BM and have FM only to read it).

failed to start chainlink container in integration test

i have ran ./integration/setup without issue.
But when i ran ./integration/run_test, the integration_chainlink container kept restarting.
Here is the log from that container:

2020-09-15T00:10:35Z [INFO]  API exposed for user [email protected]          cmd/local_client.go:95
2020-09-15T00:10:35Z [DEBUG] eth.Client#Dial(...)                               eth/client.go:110
error starting app: dial tcp 127.0.0.1:8546: connect: connection refused

i didn't change the integration/chainlink.env file under integration which has ETH_DISABLED=true

FM service should implement contexts

As part of #139, the FM service now has access to contexts in requests to the blockchain implementation.

The FM service should implement these by setting a timeout for requests, and calling the context cancel on subscriptions on shutdown.

FM is starting even if job is not present in the CL node

FM starts even the related job is not present in the CL node. What should the behavior be?

At least we might need an easy way to delete subscriptions(both to CL node + the blockchain), without having to manually do it through db? Maybe something like clear/reset of all subscriptions at least?

Reduce integration/CI testing times

Currently it takes ~6 min for the CI to set up the integration tests, and roughly 10 minutes in total. This probably won't scale very well as we integrate more (non-EVM) chains.

Clean up logic in FM service

The FM service currently has a lot of unclear logic that should be cleaned up.

A few of the issues:

  • Too many pointers (it's not clear how big the risk of nil pointer dereferences are)
  • Events from the blockchain manger first goes to one listeners, which interprets the response, which sends the events in a new channel, which is then read by a new listener.

While it was discussed earlier that the blockchain manager sending a single FM state struct would be the best option, I now think that the best solution here is if we have a generic channel in which the blockchain manager sends different types of events defined in the blockchain package. This should reduce the number of pointers used, and hopefully clean up some of the logic in the FM service.

Complete WS integration

This includes:

  • Support for a single request - response model
  • Support for reconnecting (should re-open any pre-existing subscriptions) with incremental backoff

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.