Helm Chart Infra Setup
Description
This section describes how to install Orakl Network Services through the Helm Chart. This document uses helm chart to deploy in cloud (AWS, GCP) environment.
Kubernetes
Postgresql (V.14)
Redis (latest)
Persistent Volumes
Installation
01. Register the Orakl Network helm chart repository
02. Create namespace for kubernetes
03. Storage
AWS Installation
You must first create an efs file storage in AWS and have an ID.
GCP Installation
In GCP, you must first create a file storage and have a name for the storage
04. Api
Before installing the API, you must have a postgresql database ready.
DATABASE_URL
: postgresql://{user_id}:{user_password}@{host_name}:{port}/{database_name}Typically, we'll create a database called
orakl
and proceed from theremake sure for security reason not to use admin account. create new user for the database.
ENCRYPT_PASSWORD
: You can set the key to any key you want as the conversion key. When the reporter's private key is stored in the database, it is encrypted and stored with this key.
05. Fetcher
To install Orakl Fetcher, you need to have Redis set up beforehand.
ORAKL_NETWORK_API_URL
: This is the address to communicate with the Pod you installed in step 03. It uses the usual Kubernetes domain for communication, which ishttp://{api pod's service name}.{namespace}.svc.cluster.local:3030/api/v1
So if you installed in a namespace other than the orakl namespace, the address of the API server will need to be changed, for example, if the namespace is default, it will behttp://orakl-api.default.svc.cluster.local:3030/api/v1
REDIS_HOST
,REDIS_PORT
: You can use a fresh deployment of Redis in Kubernetes, or you can use your own Redis if you have one
06. Cli
ORAKL_NETWORK_API_URL
,ORAKL_NETWORK_FETCHER_URL
: These 2 URLs are the same convention we used to deploy the fetcher earlier, just make sure to include the service name and namespace.ORAKL_NETWORK_DELEGATOR_URL
: This URL will be available soon. The parts related to Delegator are in the process of being migrated.
07. Basic Configuration
If you look at the aggregator Baobab at https://config.orakl.network/, there are 12 contracts and each contract has an address. There will be more later. We have to have 12 accounts to whitelist in this contract if you want to activate reporters account. To activate your account, kindly reach out to us at business@orakl.network.
list all pods in orakl namespace
access to cli pod
You can set the default settings through the orakl cli part. Here we'll show you an example.
network setting
network list a
The result should be
setting service
service check
the result should be
setting listener
To set up a listener, you need to know the contract address of the listener associated with the DATA FEED. In this article, we will focus on
BNB-USDT
. This contract is already deployed on Bisonai and the contract address can be found in the Address section of the Aggregator Baobab in the Orakl Config documentation.setting reporter
oracleAddress refer
BNB-USDT
contract addresssetting delegator
The reporter address should be match with your BNB-USDT reporter's account address. The reporter's account address must be
lowercase
. Even if the reporter's account address is already mixed with capitalization, please make it lowercase here. We'll fix this in the future (issue caused by switching from ethers.js to caver.js)The contract address is
BNB-USDT
's contractcontractId should match with contract id which deployed. If you want to check contract ID inserted in database
yarn cli delegator contractList
. You can find outid
from list.This is the task that connects the contract and the reporter together. This can be used in the future if the contract and reporter are different or change. Reporter's id can be found
yarn cli delegator reporterList
Enable Fetcher with aggregatorHash
08. Datafeed (aggregator)
CHAIN
: baobab | cypressORAKL_NETWORK_API_URL
,ORAKL_NETWORK_DELEGATOR_URL
: These 2 URLs are the same convention we used to deploy the fetcher earlier, just make sure to include the service name and namespace.PROVIDER_URL
: The JSON RPC address of the node to use ex)https://api.baobab.klaytn.net:8651
SLACK_WEBHOOK_URL
: If there is no value, you can leave it blank.REDIS_HOST
,REDIS_PORT
: You can use a fresh deployment of Redis in Kubernetes, or you can use your own Redis if you have one
Last updated