This repository hosts rollappd
, a template implementation of a dymension rollapp.
rollappd
is an example of a working RollApp using dymension-RDK
and dymint
.
It uses Cosmos-SDK's simapp as a reference, but with the following changes:
- minimal app setup
- wired IBC for ICS 20 Fungible Token Transfers
- Uses
dymint
for block sequencing and replacingtendermint
- Uses modules from
dymension-RDK
to sync withdymint
and provide RollApp custom logic
Note: Requires Go 1.19
Get started with building RollApps
Build and install the rollappd
binary:
make install
export the following variables:
export ROLLAPP_CHAIN_ID="demo-dymension-rollapp"
export KEY_NAME_ROLLAPP="rol-user"
export DENOM="urax"
export MONIKER="$ROLLAPP_CHAIN_ID-sequencer"
And initialize the rollapp:
sh scripts/init.sh
rollappd start
You should have a running local rollapp!
Follow the instructions on Dymension Hub docs to run local dymension hub node
create sequencer key using dymd
dymd keys add sequencer --keyring-dir ~/.rollapp/sequencer_keys --keyring-backend test
SEQUENCER_ADDR=`dymd keys show sequencer --address --keyring-backend test --keyring-dir ~/.rollapp/sequencer_keys`
fund the sequencer account
dymd tx bank send local-user $SEQUENCER_ADDR 10000000000000000000000udym --keyring-backend test --broadcast-mode block
sh scripts/settlement/register_rollapp_to_hub.sh
sh scripts/settlement/register_sequencer_to_hub.sh
Modify dymint.toml
in the chain directory (~/.rollapp/config
)
set:
settlement_layer = "dymension"
rollappd start
git clone https://github.com/dymensionxyz/go-relayer.git --branch v0.2.0-v2.3.1-relayer
cd relayer && make install
while the rollapp and the local dymension hub node running, run:
sh scripts/ibc/setup_ibc.sh
After successful run, the new established channels will be shown
rly start hub-rollapp
TODO