Installing Telliot

How to install the Fetch Reporter (Telliot) and a Disputable Values Monitor (DVM) .

If you experience ANY issues during the installation and setup please do not hesitate to reach out via the Fetch Telegram Support group!

Prerequisites:

  • Some tPLS for paying gas fees. If you need tPLS, you can obtain some via the PulseChain Faucet.

  • A Linux distribution or macOS on your machine, as they are both Unix-based (Ubuntu 22.04 / 24.04 has been tested). Windows is not currently supported.

  • Running Telliot and a DVM is fairly lightweight and does not require significant computing power. A dual core machine with 16GB RAM should be enough to get started. It's also highly recommended to run this software on a fresh cloud server instance from AWS, Digital Ocean, or other providers.

Install Script

To install Fetch Reporter (Telliot) and the Disputable Values Monitor (DVM) on your computer, simply run the following script and follow the on-screen instructions:

curl https://install.fetchoracle.com/install.sh | bash && source ~/fetchoracle/disputable-values-monitor/venv/bin/activate && source ~/.nvm/nvm.sh

Once the installation script is complete, you can simply navigate to the telliot-feeds directory installed on your machine:

cd ~/fetchoracle/disputable-values-monitor/telliot-feeds

With the core install complete, you can now configure Telliot and start reporting!

Telliot Setup and Usage

The Telliot CLI handles all the functionality of reporting data and allows you to customize how you report.

After installation, Telliot must be personalized to use your own private keys and endpoints.

First, create the default configuration files:

telliot config init

The default configuration files are created in a folder called telliot in the user's home folder.

You can view your current configuration at any time by using:

telliot config show

The default configuration for ~/telliot/endpoints.yaml is:

type: EndpointList
endpoints:
- type: RPCEndpoint
  chain_id: 943
  network: Pulsechain Testnet
  provider: Pulsechain
  url: https://rpc.v4.testnet.pulsechain.com
  explorer: https://scan.v4.testnet.pulsechain.com/
- type: RPCEndpoint
  chain_id: 369
  network: Pulsechain Mainnet
  provider: Pulsechain
  url: https://rpc.pulsechain.com
  explorer: https://scan.pulsechain.com/

Add Reporting Accounts

The reporter (Telliot) needs to know which accounts (wallet addresses) are available for submitting values to the oracle. Use the command line to add necessary reporting accounts/private keys.

For example, to add an account called myacct1 for reporting on Pulsechain testnet v4 (chain ID 943):

>> telliot account add myacct1 <yourPrivateKey> 943
Enter encryption password for myacct1: 
Confirm password: 
Added new account myacct1 (address= 0xcd0000000000000000000000000000000000) for use on chains (943,)

You'll need to replace the <yourPrivateKey> in this example with the private key that holds your FETCH for reporting.

To view other options for managing accounts with Telliot, use the command:

telliot account --help

After adding accounts, configure your endpoints as folllows.

Configure Endpoints

You can add your RPC endpoints via the command line or by editing the endpoints.yaml file. It's easier to do via the command line, but here's an example command using the nano text editor to edit the YAML file directly:

nano ~/telliot/endpoints.yaml

[Optional] Run set_telliot_env.py script to set the Telliot environment. This script will configure local telliot-core to use ENV_NAME environment variable when selecting thecontract_directory.<ENV_NAME>.json contracts directory file.

The supported environments are testnet and mainnet.

Execute python set_telliot_env.py --help for details:

Make sure to cd ~/fetchoracle/disputable-values-monitor/telliot-feeds before running this!

python set_telliot_env.py --env testnet

Upgrade Script

Run the following to upgrade local installation of Telliot:

source ~/fetchoracle/disputable-values-monitor/venv/bin/activate
cd ~/fetchoracle/disputable-values-monitor
git pull
pip install --upgrade pip
pip install -e .
git submodule update --recursive
pip install -r requirements.txt
cd ~

Last updated