Fetch Oracle
  • Welcome to Fetch
  • THE BASICS
    • What Problem Does Fetch Solve?
    • What Can You Do With Fetch?
    • The FETCH Token
    • Staking
    • Contracts Overview
    • Contract Addresses
    • Contributing
    • Audits
  • REPORTING DATA
    • How to Report Data
    • Requirements
      • (Optional) Using Cloud Hosting
    • Installing Telliot
      • Adding Accounts
      • MAC Virtual Machine with UTM
    • Reporting With Telliot
      • Reporting Options
      • Discord Notifications
    • Gas Fees
    • Add support for a new spot price
  • GETTING DATA
    • Tipping
    • Receiving Data From Fetch
    • Solidity
    • User Checklists
    • Testnet
    • Creating a Query
  • VOTES & DISPUTES
    • Voting
    • Disputing
    • Introduction to DVM
      • Installing DVM
      • Monitoring
  • OPTIONAL CONFIGS
    • Claim Tip Script ENV Config
  • Connect
    • Whitepaper
    • Telegram
    • Twitter/X
    • YouTube
Powered by GitBook
On this page
  • Prerequisites:
  • .env file
  • Endpoints.yaml file
  • Dispute Mode
  • Alerts
  • Alerts Only
  1. VOTES & DISPUTES
  2. Introduction to DVM

Installing DVM

How to install, configue, and run a DVM

PreviousIntroduction to DVMNextMonitoring

Last updated 2 months ago

Prerequisites:

Follow the install instructions from Installing Telliot and choose the option to install DVM when running the script. [If you are a more advanced user, you can clone the inside telliot-feeds folder, enter venv environment, cd into dvm folder and install it with pip install -e .]

Once installed, make sure you're in python's virtual environment (venv):

Everytime you run Telliot or DVM you need to enter this virtual environment. To enter it, go to telliot-feeds folder and run source venv/bin/activate. To exit it, run deactivate.

Navigate to the disputable-values-monitor directory installed on your machine, under telliot-feeds folder:

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

.env file

Before running the DVM check the .env file inside telliot-feeds. That's where the variables for DVM are stored and where you'll set your Discord Webhook for alerts.

You may do this later, but DVM won't send alerts for disputes or extra features.

Endpoints.yaml file

It's also important to check your telliot folder in /Home. Open the endpoints.yaml file and comment out the endpoints you're not going to use.

For example, if you're going to be reporting and monitoring only pulsechain Mainnet, comment out (with a '#') the endpoints for Testnet or any other ones that may be present.

Remember DVM will be scanning all chains in this folder for events.

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/

Always stop all services if editing .env files or parameters for DVM or Telliot, in case you have both running.

It's recommended, if possible, to run each service on different machines.

Dispute Mode

To start the DVM in dispute mode, run the following command:

cli -d -a <yourAccName>

Alerts

To enable Discord alerts you need to set up the .env file inside telliot-feeds with your discord webhook.

Alerts Only

To send alerts only and monitor events, start the DVM running:

cli

The console will ask if you want to run alerts only. Type "y" and press enter.

The DVM will then monitor the queries you set in the telliot-feeds/disputable-values-monitor/disputer-config.yaml file, inside the dvm folder, and will NOT dispute them if they meet their thresholds. It will only send alerts according to your specification.

The console screen doesn't change until there's a new report submitted. After that, a table with detailed info on the reports will take place.

Run cli --help for a help guide on DVM options available.

If you don't have a Discord webhook, here's Discord's on how to get one following quick easy steps.

You can generate queryIDs at

DVM repo
official tutorial
https://go.fetchoracle.com/#/generate-query-id