This repository is split to on-chain and off-chain oracle implementation.
You can learn more about the Orakl Network from documentation.
Run local data feed connected to testnet.
brew install docker
brew install docker-compose
Nearly everything is already setup, but there are two variables that should be set manually in following env files:
dockerfiles/local-data-feed/envs/.contracts.env
MNEMONIC="{MNEMONIC for contract deployer wallet}"
dockerfiles/local-data-feed/envs/.cli.env
DELEGATOR_REPORTER_PK={private key for delegator fee payer}
docker-compose -f docker-compose.local-data-feed.yaml build
docker-compose -f docker-compose.local-data-feed.yaml up
docker-compose -f docker-compose.local-data-feed.yaml down -v
Run the following command to build all images
docker-compose -f docker-compose.local-core.yaml build
Set wallet credentials, ADDRESS
and PRIVATE_KEY
values, in the .core-cli-contracts.env file. You can update CHAIN
to either baobab
and cypress
. For running the VRF
service, update vrf-keys-baobab.json or vrf-keys-cypress.json. If the chain is not localhost
, Coordinator
and Prepayment
contracts won't be deployed. Instead, Bisonai's already deployed contract addresses (VRF, RR) will be used. Run the following command to start the VRF / RequestResponse service:
SERVICE=vrf docker-compose -f docker-compose.local-core.yaml up --force-recreate -d
SERVICE
is an env variable that will be used to spin up the specified service. The options are rr
and vrf
stands for Request-Response and VRF, respectively.
Note that the current docker implementation is designed to run a single service, either rr
or vrf
, at a time. Therefore, it's highly recommended to add --force-recreate
when running docker-compose up
command. That will restart all containers thus removing all the modified data in those containers.
Here is what happens after the above command is run:
api
, postgres
, redis
, and json-rpc
services will start as separate docker containerspostgres
will get populated with necessary data:
localhost
:
contracts/v0.1/migration/
get updated with provided keys and other valuescontracts/v0.1/hardhat.config.cjs
file gets updated with PROVIDER_URL
To start core microservices (listener, worker, reporter) as a singleton service run:
yarn start:core:vrf
# or
yarn start:core:request_response
yarn dev:core:vrf
# or
yarn dev:core:request_response
The microservices can also be started separately in any arbitrary order by replacing core
in the above commands with either listener
, worker
, or reporter
PR
: OraklNode Websocket dex fetche... PR
: OraklNode Update fetcher init PR
: OraklNode Update fetcher init PR
: send service is up slack messa... PR
: OraklNode Update proxy request PR
: OraklNode Index out of bound p... PR
: OraklNode Execute local aggreg... PR
: OraklNode Reduce intervals PR
: Sentinel Add external signers ... PR
: OraklNode Rollback klayswap ba... PR
: OraklNode Update sync PR
: OraklNode Update klayswap to u... PR
: Update dispatch deploy workflo... PR
: Sentinel Update request packag... PR
: OraklNode Remove unused column... PR
: OraklNode Remove unused column... PR
: OraklNode PubSub based GlobalA... PR
: OraklNode Reduce default lates... PR
: OraklNode Set fixed deviation ... PR
: OraklNode Bulk insert local ag... PR
: OraklNode Rollback timestamp c... PR
: fix accumulator cpu issue PR
: DAL Implement basic api key PR
: Add dal as an exception in git... PR
: DAL Update dal key validation PR
: DAL Update key validation PR
: OraklNode Define new chainhelp... PR
: DAL basic implementation to st... PR
: OraklNode Rollback deviation t... PR
: OraklNode Rollback deviation t... PR
: DAL APIKEY from secrets PR
: Sentinel remove datafeed redis... PR
: sentinel oversubmission in che... PR
: OraklNode Remove lint vet fro... PR
: OraklNode Remove lint vet fro... PR
: OraklNode Remove unused functi... PR
: DAL Add log for debugging