Skip to content

Maikol/subgraph-oracle

 
 

Repository files navigation

Subgraph Oracle

The Subgraph Oracle verifies the availability of the subgraph files and does other validity checks, if a subgraph is found to be invalid it will be denied rewards in the RewardsManager contract.

USAGE:
    availability-oracle [FLAGS] [OPTIONS] --contracts <contracts> --ipfs <ipfs> --oracle <oracle> --signing-key <signing-key> --subgraph <subgraph>

FLAGS:
        --dry-run    log the results but not send a transaction to the rewards manager
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -c, --contracts <contracts>
            One of: `mainnet`, `goerli`, `arbitrum-one`, `arbitrum-goerli`, or `ganache/mainnet`. See
            `common/src/contracts/config.rs` for the respective configurations [env: ORACLE_CONTRACTS=]
        --grace-period <grace-period>
            Grace period, in seconds from subgraph creation, for which subgraphs will not be checked [env:
            ORACLE_GRACE_PERIOD=]  [default: 0]
        --ipfs <ipfs>
            IPFS endpoint with access to the subgraph files [env: ORACLE_IPFS=]

        --ipfs-concurrency <ipfs-concurrency>
            Maximum concurrent calls to IPFS [env: ORACLE_IPFS_CONCURRENCY=]  [default: 100]

        --ipfs-timeout <ipfs-timeout>
            IPFS timeout after which a file will be considered unavailable [env: ORACLE_IPFS_TIMEOUT_SECS=]  [default:
            30]
        --metrics-port <metrics-port>                    [env: ORACLE_METRICS_PORT=]  [default: 8090]
        --min-signal <min-signal>
            Minimum signal for a subgraph to be checked [env: ORACLE_MIN_SIGNAL=]  [default: 100]

    -o, --oracle <oracle>
            The address used by by the oracle to sign transactions [env: ORACLE_ADDRESS=]

        --period <period>
            How often the oracle should check the subgraphs. With the default value of 0, the oracle will run once and
            terminate [env: ORACLE_PERIOD_SECS=]  [default: 0]
        --signing-key <signing-key>
            The secret key of the oracle for signing transactions [env: ORACLE_SIGNING_KEY=]

        --subgraph <subgraph>                           Graphql endpoint to the network subgraph [env: ORACLE_SUBGRAPH=]
    -s, --supported-networks <supported-networks>...
            a comma separated list of the supported network ids [env: SUPPORTED_NETWORKS=]  [default: mainnet]

Example command to testing with a dry run:

cargo run -p availability-oracle --  --ipfs https://api.thegraph.com/ipfs  --subgraph https://gateway.thegraph.com/network --dry-run --min-signal 10000

About

The Subgraph Oracle

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%