Ask AI
Skip to main content

Run a dYdX node

The dYdX Full Node will act as the source for the KYVE protocol validator and is required. You can either run the dYdX node on the same machine with the KYVE protocol together (recommended) or on a seperate machine.

danger

Due to very specific requirements, an additional validation layer, accessibility as well as to prevent slashes, it is strongly recommended to run an independent data source node. API providers should be avoided and have already led to critical problems in the past.

Install full node

The dYdX binary with the version v2.0.1 has to be installed. There are two ways to install and run the binary:

You can follow the official installation instructions here or download the binary directly from here.

danger

If you are building from source please use the specified go version in the go.mod file, else there is the danger of receiving vote slashes.

You can verify the successful installation with

./dydxprotocold version
v2.0.1

After the successful installation, you need to set up the dydxprotocold config. First choose a moniker and initialize everything:

./dydxprotocold init <your-moniker> --chain-id dydx-mainnet-1

To download and setup the genesis file execute the following command:

wget -qO- https://raw.githubusercontent.com/dydxopsdao/networks/main/dydx-mainnet-1/genesis.json | cat > ~/.dydxprotocol/config/genesis.json

To enable the start of the syncing process, a seed node needs to be added into

~/.dydx/config/config.toml
seeds = "ade4d8bc8cbe014af6ebdf3cb7b1e9ad36f412c0@seeds.polkachu.com:23856"
You can also add persistent_peers from Polkachu to ensure that you will actually

find peers where you can sync with the network: https://polkachu.com/live_peers/

Configuration

Due to the size of the block_results response, it is required to set the following in your ~/.dydx/config/config.toml:

timeout_broadcast_tx_commit = "120s"

For efficient pruning, the following settings are recommended to decrease the disk usage:

~/.dydx/config/config.toml
[tx_index]

indexer = "null"
~/.dydx/config/app.toml
index-events = [""]

Finally, the node can be started:

./dydxprotocold start --x-crisis-skip-assert-invariants
caution

ATTENTION: To be able to perform upgrades automatically, it is recommended to use the cosmovisor. How to set it up can be found here.

To start the Osmosis node with the cosmovisor, run:

cosmovisor run start --x-crisis-skip-assert-invariants

Verifying the completed node setup

After the successful start of the node you have to sync blocks until the latest summary of the pool is reached. For example if the latest pool summary is 1,000,000 you can check if the node has synced the blocks until that height with:

curl http://localhost:26657/block?height=1000000

If it returns a valid block response you can continue with starting the actual KYVE protocol validator and start participating in the validation and archival process.

TIP: to save storage space you can start pruning blocks manually after they have been archived by the pool since after that they are not needed anymore.