Hylian: ICON Price Oracle


#1

We’re building an ICX/USD price oracle on-chain on ICON, operated by multiple P-Reps Candidates (currently 10 participants seem to be interested, but we need as much participants as possible).

The goal of this initative is plural :

  • Provide a ICX/USD price for SCORE developers, as it is not possible to do external API calls from a SCORE.
  • Explore how oracles may work running on ICON
  • Cooperate with P-Reps candidates (and hopefully build together more awesome things in the future)

This thread may serve for technical support, discussion around consensus for the price oracle, and any suggestion you may have around this initiative.


Here are some references to this project (in progress) :

Currently being deployed on MainNet:

Currently being deployed on TestNet:


Feel free to join the discussion if you have any question, or if you’re interested in hosting a price feed SCORE in order to help making the oracle more secure.


#2

Thanks @Spl3en awesome work! Rhizome has deployed a second Daedric SCORE on TestNet and hope that others contribute to make the Price Oracle a little more decentralised. Also looking forward to ‘building together more awesome things in the future’

Rhizome’s Daedric On TestNet
Marvin: https://github.com/rhizomeicx/marvin


#3

Thanks Rhizome !

Your Daedric SCORE has been whitelisted, it’s now active on the Hylian TestNet.

https://bicon.tracker.solidwallet.io/transaction/0xe28441a3eb7fa8175d46c711ea5ee81882ca2c2f04b83e8646ea7bda3f9c190a


#4

Thank you to all the P-Rep teams joining in on this. It’s an important piece of our defi ecosystem!


#5

Since the last week, the price oracle (Hylian) is getting more Daedrics: already 4 P-Reps candidates have successfully deployed their price feed SCORE on the Yeouido TestNet.
We’re already working on refining the bot aspect of Daedric, notably thanks to the work from Rhizome with Marvin (WIP) :

Daedric uses bash scripts in order to be updated, which isn’t suitable for all platforms - Marvin solves that, as it is a .net core (cross-platform) implementation of the price feed bot. It’s also configurable and more flexible than the current implementation.

Thanks to Rhizome for such initiative.


#6

Apparently, the Yeouido TestNet is getting resetted the next week according to this announcement :

If you’re willing to try Daedric on the TestNet, please do it before that date. Please PM me if you want assistance for doing so.
We will probably move on MainNet after that date. So far, no bug has been found during the deployment of Hylian and Daedric on TestNet.


#7

Read on telegram, you are looking for developers. Any specific domain knowledge you are looking for?

Been software engineer/designer for 15 years, mainly C/C++, last 4 years also python. Never in blockchain domain though, so productivity will be low in beginning. Been thinking about contributing to icon somehow but was not sure how.


#8

Hey @ehenderichs, thanks for reaching out.
If you’re looking for some experience in deploying a SCORE to the ICON network, you’re in the right place. No problem about the low productivity in the beginning, we’re all learning.
We’re looking for people able to deploy and operate Daedric to ICON and eventually extend its features.

If you’re interested in helping, feel free to install / deploy Daedric, the instructions for doing so are detailed in the README of the Daedric’s repository : https://github.com/iconation/Daedric

If you have any troubles (including installing t-bears), feel free to reach us out in t.me/icondevs


#9

Hello,

Hylian and Daedric version have been updated to 1.1.0.
There’s a new feature from Hylian, registred feeds now support metadata (in order to inspect more easily who own the Daedric instance).

The deployment to Mainnet will take place this week - It has been pushed for revision to the ICON Team.

We’re also thinking of incentives for Daedric operators, let us know if you have any idea / suggestion.


#10

Yes, we are interested, but, need to understand if dedicated servers are needed (any specifications)?


#11

Daedric requires to run a bot that will update your SCORE periodically.
That bot (such as Marvin) only does few HTTP requests, once every hour - it doesn’t need a lot of CPU resources, it can run on any device. Consequently, the cost for maintaining a Daedric SCORE is very low.


#12

Hello fellow P-Reps candidates,

Hylian and Daedric has successfully been accepted to Mainnet and it is running right now!
If you’re still interested in running a Daedric instance, please install it using the instructions given on the GitHub page (https://github.com/iconation/Daedric).

For the newcomers, Hylian and Daedric are an ICX/USD price oracle running on ICON.
We’re currently looking for volunteers to help running this oracle to make it more secure.

Requirements and costs for running it are very low :


#13

For information (and posterity), here are the initial values of Hylian :


#14

Here is some ELI5 explanation about how Hylian, Daedric and Marvin work together.

  • Let’s say any ICONist is wondering what the ICX/USD price currently is.
    That ICONist may be any user or a SCORE developer willing to use the ICX/USD price in his application.

  • Hylian keeps a list of whitelisted Daedric SCOREs in its database. Each of these Daedric are owned by a separate, independant entity. Let’s say Alice, Bob, Charlie and Eve run their own Daedric.

  • Hylian ask the same question for each Daedric : In your opinion, what is the current ICX/USD price ?

  • Each Daedric answers with what they think is the correct ICX/USD price - they may return different values. Let’s say Eve is even trying to cheat and say the ICX/USD price is $1000 EOY.

  • Once all Daedric have answered, Hylian takes all these values and compute the median value of the values received. By doing so, the price given by Eve doesn’t influence the result a lot.

  • That median value is finally returned to the user as a result and considered as a safe price for ICX/USD.

This is how Daedric and Hylian work together.

Now, each Daedric also needs to know the ICX/USD price.
That’s what Marvin does : it’s a bot that regularly reads the price from multiple sources (coinmarketcap, coingecko, velic, binance, …) and figure out the price of ICX/USD that way. Once it has the ICX price, it pushes it to Daedric. By default, Marvin refreshes the price for Daedric every hour.

It is possible to control the price if more than 50% participants agree to cheat at the same time in order to change drastically the median value, but it gets harder with a lot of participants.

That’s why we need you!


#15

Hi All,
Marvin has been successfully updated and tested on Mainnet. If you are running or planning to use Marvin please pull down the latest from: https://github.com/rhizomeicx/marvin.


#16

We already deployed on mainnet. What’s the advantage of using marvin. Can you explain the difference over the included bot in daedric


#17

Marvin is more configurable and can be run on windows or linux. Im in the process of looking at moving our Marvin instance into AWS severless Lamda function which will make the server cosr $0.


#18

That’s great I normally prefer running on a server but I like running stuff on my pc since I never close it. Can be nice addition to stuff I run on that one.


#19

@Spl3en Rhizome Mainnet Daedric addess:
cxcc711062b732ed14954008da8a5b5193b4d48618


#20

Hi All!,
We have added an extra deployment option for Marvin. You can now deploy Marvin to a server-less AWS Lambda Function. We are currently running this on testnet (https://bicon.tracker.solidwallet.io/address/hxd4868df8546497c27d5218ed54fef1ad77e4cb10) just to confirm stability etc.

Please check out the latest readme: https://github.com/rhizomeicx/marvin#amazon-web-services