Oracle Validators

Configuring yoda and your Lambda function executor instance

While validators do not need to become oracles, each oracle validator will need to have it's own AWS lambda or GCP run function instance. Yoda is the oracle daemon. It is already included in the container, but will need to be configured. Before following the yoda configuration instructions below, visit the appropriate subpage for instructions on setting up your executor on the function platform of preference.

First, yoda will need to be configured;

yoda config chain-id odin-mainnet-freya
yoda config node http://localhost:26657
yoda config validator $VALIDATOR
yoda config broadcast-timeout "5m"
yoda config rpc-poll-interval "1s"
yoda config max-try 5

Add several keys with the following;

yoda keys add REPORTER_01
yoda keys add REPORTER_02
yoda keys add REPORTER_03
yoda keys add REPORTER_04
yoda keys add REPORTER_05

This is because Yoda works with multiple reporter addresses to submit multiple transactions concurrently.

The next step in Yoda configuration is to set your function executor configuration parameter;

yoda config executor "rest:<your_aws_lambda_endpoint>?timeout=7s"

Your reporter addresses, along with some loki, must be supplied to the blockchain to trigger account creation.

odin tx multi-send 1loki $(yoda keys list -a) \
  --from $ADDRESS \
  --chain-id $CHAIN

Next, you will add the reporter addresses to your validator;

odin tx oracle add-reporters $(yoda keys list -a) \
  --from $ADDRESS \
    --chain-id odin-mainnet-freya

Now, we will activate our validator as an oracle on the blockchain;

odin tx oracle activate \
  --from $ADDRESS \
    --chain-id odin-mainnet-freya

We will want to verify our oracle is functioning;

odin query oracle validator $VALIDATOR

If everything is working as it should be, the output should include the parameter "is_active", and the value should be "true".

Last updated