Skip to main content
Version: Testnet - Blumbus

Start

Setup DA network

export CELESTIA_NETWORK="mocha"
export CELESTIA_HOME_DIR="${HOME}/.da"

Follow the Celestia Docs for setting up a light node (celestia-node) using Docker or on a Bare Metal server. It is recommended to begin the light node from a trusted height for a fast syncing process:

note

Make sure to fund the created address to publish data to the network.

  • Edit config.toml: code ~/.da/config.toml setting DASer.SampleFrom to the trusted height and Header.TrustedHast to the hash of the trusted height
  • Run the node: celestia light start --node.store $HOME/.da --core.ip rpc-mocha.pops.one
note

You can find a list of nodes you can use as --core.ip here

Update RollApp configuration

  • Use Celestia DA Backend [optional]
  • Generate celestia namespace ID
export CELESTIA_NAMESPACE_ID=$(openssl rand -hex 10)
export CELESTIA_TOKEN=$(celestia light auth admin --p2p.network ${CELESTIA_NETWORK} --node.store $CELESTIA_HOME_DIR)
sed -i "s/da_layer .*/da_layer = \"celestia\"/" ${ROLLAPP_HOME_DIR}/config/dymint.toml
sed -i "s/namespace_id .*/namespace_id = \"${CELESTIA_NAMESPACE_ID}\"/" ${ROLLAPP_HOME_DIR}/config/dymint.toml

sed -i "s/da_config .*/da_config = \"{\\\\\"base_url\\\\\": \\\\\"http:\/\/localhost:26658\\\\\", \\\\\"timeout\\\\\": 60000000000, \\\\\"gas_prices\\\\\":0.02, \\\\\"gas_adjustment\\\\\": 1.3, \\\\\"namespace_id\\\\\": \\\\\"${CELESTIA_NAMESPACE_ID}\\\\\", \\\\\"auth_token\\\\\":\\\\\"${CELESTIA_TOKEN}\\\\\"}\"/" ${ROLLAPP_HOME_DIR}/config/dymint.toml

Update RollApp configuration

dasel put -f "${ROLLAPP_HOME_DIR}"/config/dymint.toml "settlement_layer" -v "dymension"
dasel put -f "${ROLLAPP_HOME_DIR}"/config/dymint.toml "settlement_node_address" -v "$HUB_RPC_URL"
dasel put -f "${ROLLAPP_HOME_DIR}"/config/dymint.toml "settlement_gas_prices" -v "20000000000adym"

Begin RollApp process

$EXECUTABLE start

Setup IBC channels and relayer

Set the empty block time to 3s

dasel put -f "${ROLLAPP_HOME_DIR}"/config/dymint.toml "max_idle_time" -v "3s"
dasel put -f "${ROLLAPP_HOME_DIR}"/config/dymint.toml "batch_submit_max_time" -v "3s"
dasel put -f "${ROLLAPP_HOME_DIR}"/config/dymint.toml "max_proof_time" -v "3s"

Install relayer:

git clone https://github.com/dymensionxyz/go-relayer.git && cd go-relayer && git checkout v0.3.4-v2.5.2-relayer && make install

Setup IBC bridge in RollApp binary:

This process takes a few minutes.

./scripts/ibc/setup_ibc.sh

Stop the rollapp process

kill $(pgrep $(basename $EXECUTABLE))

Change the empty block time to 1h

dasel put -f "${ROLLAPP_HOME_DIR}"/config/dymint.toml "max_idle_time" -v "1h0m0s"
dasel put -f "${ROLLAPP_HOME_DIR}"/config/dymint.toml "batch_submit_max_time" -v "1h0m0s"
dasel put -f "${ROLLAPP_HOME_DIR}"/config/dymint.toml "max_proof_time" -v "1m40s"

Restart the rollapp process

$EXECUTABLE start

Start the Relayer

rly start hub-rollapp --flush-interval 100000h --max-msgs 100 --time-threshold 2h --no-flush --log-format json

Your RollApp is currently running and connected to the Dymension network of choice. Next list the RollApp on the Portal.