-
Notifications
You must be signed in to change notification settings - Fork 528
5. Oracle
Oracles provide pricing information for assets on the Acala Network. Acala has designed its oracle infrastructure to meet these demands through the implementation of the following features:
- Multiple Providers: The oracle module accepts data feeds from multiple nodes and data providers, and the aggregator combines the data to a single price.
- Quality of Service: Oracle operations are classified as high-priority transactions with a favorable fee schedule and DDoS attack protection, e.g. allow 1 call per block from each authorized provider to reduce delay, ensure reliability, and maintain cost-efficiency.
- Progressive Decentralization: Initially, oracle providers will be authorized and whitelisted to maximize security and predictability, while gradually shifting to be more permissionless and trustless over time.
Right now we whitelist a number of trusted operators to provide price feeds. We will take a phased approach to decentralizing our oracle system, starting with adding operator to Operator Membership
by sudo account, then upgraded to general council approval. We are also following closely with the governance and technical progression in the space, and will gradually improve decentralization while maintaining highest security.
Price feeds on Mandala are rather arbitrary. DOT is set at $300 until a proper market establishes. ACA mirrors MKR price until market bootstrap. Other crypto prices like BTC come from Alpha Vantage.
Below are simple guidelines for
- Check Membership
- Set Up an Oracle Server
- Request for Membership
Membership is by invitation only. If you would like to become an oracle provider, please submit your interest here
The default oracle server we are using is open sourced here. Follow the instructions there to set up environment variable, build and start the server.
-
SUB_KEY_SEED
: is the hex raw seed of your oracle server account. Make sure it has enough ACA for transaction fees. -
SUB_ENDPOINT
:wss://node-6632097881473671168.au.onfinality.cloud/ws
-
PRICE_FEED_INTERVAL_MS
: price feed interval in milli seconds e.g.300000
as 5 minutes -
FEED_ACALA
: astrue
-
CONSOLE_LOG
: astrue
for logging