/OracleBenchmark

Primary LanguageJupyter Notebook

oracle-benchmark

L1-L2 Oracle Benchmark

Empiric vs Chainlink: LUNA Crash

Goal

Compare Empiric and Chainlink’s performance during a period of high stress: when Luna was crashing.

Output

Code that pulls this data from public blockchains in a verifiable way. A jupyter notebook using the cleaned data as input and comparing the performances with Kaiko (or some other source) as the benchmark.

Background

Let’s use May 6 to May 25 as our time frame.

Empiric’s contract at the time was https://goerli.voyager.online/contract/0x04a05a68317edb37d34d29f34193829d7363d51a37068f32b142c637e43b47a2#transactions?ps=10&p=9. This was before account contracts and before we used events so you’ll have to go through the transaction log to find the data. The data structure is : ticker, value, timestamp, source (eg if you look at data slots 2, 3, 4, 5 here https://goerli.voyager.online/tx/0x63e66a4f98091eacfd47d35c4ad6aa1ae426d8a99d6d7f2ef3aeb6907de6ea5)

Pull Chainlink data for the same time. They erased/cleared their Luna Ethereum contract but we can find it if you go to their docs https://docs.chain.link/docs/data-feeds/price-feeds/addresses/ and put that in the way back machine for before mid-May. The next step will be to extract the data from that


Installation & Requirements

  • Using Python > 3.8

Install python dependencies

python -m venv benchmark-env
source benchmark-env/bin/activate
pip install --upgrade pip
CFLAGS=-I`brew --prefix gmp`/include LDFLAGS=-L`brew --prefix gmp`/lib pip install -r requirements.txt

Configurate CTC

ctc setup
   > put infura key
   > leave default until data dir
   > set data dir as ~/<PATHTOREPOSITORY>/oracle-benchmark/data/chainlink

Results

Results are observable in notebook.ipynb