Roller Operation Quick guide
for Froopyland Testnet
Table of contents
· ⌘ Get info from the Roller
∘ 💈RollApp ID for the Roller config
∘ 💈Check relayer status
· ⌘ Check different items
∘ 💈Processes running roller
∘ 💈Ports
∘ 💈Client status
∘ 💈Endpoints
· ⌘ Check LOGS
∘ 💈Relayer logs
∘ 💈RollApp logs
∘ 💈Light Node logs
∘ 💈Issues with IBC transfers
· ⌘ SystemD
∘ 💈Check status of services
∘ 💈Check light node
∘ 💈Stop all services
∘ 💈Kill rollapp processes
∘ 💈Restarting the processes
∘ 💈SystemD Relayer Logs
· ⌘ Managing sessions with screen
· ⌘ Operation
∘ 💈Update Roller
· ⌘ Potential problems
∘ 💈Issues with relayer channel establishment
∘ 💈Relayer blocked
∘ 💈no sequencer registered on the hub for this rollapp
∘ 💈RPC requests — rate limit.
· ⌘ Explorers
∘ 💈Devnet explorer:
∘ 💈EVMOS Block Explorer RollApps
∘ 💈Roller Front-Chain
· ⌘ Other resources
∘ 💈State Sync
∘ 💈Migrate RollApp to another server
∘ 💈How to Migrate an Existing RollApp to Avail DA
⌘ Get info from the Roller
💈RollApp ID for the Roller config
roller config show
💈Check relayer status
roller relayer status
⌘ Check different items
💈Processes running roller
ps -a | grep 'rly\|roller'
💈Ports
lsof -i tcp:<PORT>
lsof -i tcp:26657
lsof -i tcp:1317
lsof -i tcp:8545
💈Client status
curl localhost:26657/status
💈Endpoints
RollApp RPC Endpoint
Check in browser: http://<VPS IP>:26657/status
Rest Endpoint
Check in browser: http://<VPS IP>:1317/status
JSON RPC Endpoint (for EVM RollApps)
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_newBlockFilter","params":[],"id":1}' -H "Content-Type: application/json" <IP>:<PORT>
⌘ Check LOGS
💈Relayer logs
tail -f ~/.roller/relayer/relayer.log
💈RollApp logs
tail -f ~/.roller/rollapp/rollapp.log
💈Light Node logs
tail -f ~/.roller/da-light-node/light_client.log
💈Issues with IBC transfers
(after successful channel establishment)
grep "Relayed packets" ~/.roller/relayer/relayer.log
⌘ SystemD
💈Check status of services
sudo systemctl status da-light-client
sudo systemctl status sequencer
sudo systemctl status relayer
💈Check light node
journalctl -fu da-light-client.service -o cat
💈Stop all services
sudo systemctl stop sequencer
sudo systemctl stop relayer
sudo systemctl stop da-light-client
💈Kill rollapp processes
sudo killall roller
sudo killall rollapp_evm
sudo killall rly
💈Restarting the processes
sudo systemctl restart sequencer
sudo systemctl restart relayer
sudo systemctl restart da-light-client
💈SystemD Relayer Logs
sudo journalctl -u relayer -f --no-hostname -o cat
⌘ Managing sessions with screen
The Screen program allows Linux systems to open multiple terminal instances within a single session. It also allows you to close the terminal and reconnect to the screen session, which will keep the “virtual terminals” you had open, in case you are not using SystemD
⌘ To install screen we use the following command:
apt install screen
It is possible to assign a name to a new session, using the “-S” parameter:
screen -S <session-name>
screen -S rollapp
Now you can start your scripts in the screen session, e.g. start your rollapp:
roller run
To leave the session but to leave it in the background running:
CTL + a +d
To close the current session and screen sessions:
exit
⌘ Operation
💈Update Roller
Stop the sequencer, da-light-client and relayer (If you’re using systemctl:
sudo systemctl stop sequencer
sudo systemctl stop relayer
sudo systemctl stop da-light-client
Run the update:
curl -L https://dymensionxyz.github.io/roller/install.sh | bash
Run roller migrate:
roller migrate
Restart the RollApp services
sudo systemctl restart sequencer
sudo systemctl restart relayer
sudo systemctl restart da-light-client
Check logs:
tail -f ~/.roller/relayer/relayer.log
Chain syncing:
Relayer working fine:
⌘ Potential problems
💈Issues with relayer channel establishment
Instead of running roller run, please run separately
roller da-light-client start
roller sequencer start
roller relayer start
💈Relayer blocked
if your relayer stays in one of the states indefinitely:
Establishing IBC transfer channel
💈 Creating clients…
💈 Updating clients…
💈 Creating connection…
💈 Creating channel…
💈 Waiting for channel completion….
💈 Creating channel…
Start the relayer again with:
roller relayer start --override
Wait untill the last command is finished successfully and then run roller run again.
💈no sequencer registered on the hub for this rollapp
Use this command:
roller tx register --force
to force register sequencer to registered rollapp
💈RPC requests — rate limit.
RPC error -32000 — Due to the high consumption or frequency of RPC requests, you have exceeded the rate limit
Hub RPC
roller config set hub-rpc <URL RPC>
For example:
roller config set hub-rpc https://dym.rpc.cumulo.com.es:443
And restart services:
sudo systemctl restart sequencer
sudo systemctl restart relayer
sudo systemctl restart da-light-client
NOTE: you can find more RPC endpoints in:
⌘ Explorers
💈Devnet explorer:
💈EVMOS Block Explorer RollApps
💈Roller Front-Chain
The modular dashboard of Dymension
⌘ Other resources
💈State Sync
Dymension rollapps can perform a state sync from a snapshot
More info:
Create a snapshot
Install compressor lz4
sudo apt install lz4
Stop the rollapp:
sudo systemctl stop sequencer
sudo systemctl stop relayer
sudo systemctl stop da-light-client
Create a compressed archive of the rollapp data directory:
cd ~/.roller/rollapp
tar -cvf - data | lz4 > snapshot.tar.lz4
Load a snapshot
Clear the rollapp state with:
rollapp_evm dymint unsafe-reset-all --home ~/.roller/rollapp
Load the snapshot into the rollapp data directory:
cd ~/.roller/rollapp
lz4 -c -d snapshot.tar.lz4 | tar -x -C .
Ensure the rollapp isn’t producing blocks until it’s synced. Set aggregator=false
in the rollapp's config file:
~/.roller/rollapp/config/dymint.toml
Edit file:
sudo vi .roller/rollapp/config/dymint.toml
Save file:
ESC
:wq!
Start the rollapp using roller run:
roller run
Verify the rollapp is fully synced by checking its logs:
tail -f ~/.roller/rollapp/rollapp.log
tail -f ~/.roller/relayer/relayer.log?
Once it is synchronised, modify the file again:
~/.roller/rollapp/config/dymint.toml
With aggregator=true
Restart rollapp:
sudo systemctl restart sequencer
sudo systemctl restart relayer
sudo systemctl restart da-light-client
💈Migrate RollApp to another server
The safest method we have so far is to copy the entire directory of .roller
On the original rollapp server stop rollapp:
sudo systemctl stop sequencer
sudo systemctl stop relayer
sudo systemctl stop da-light-client
Compress .roller folder:
sudo tar -cvf - .roller | lz4 > copyroller.tar.lz4
Verify that roller is installed on the new environment:
Copy copyroller.tar.lz4 to new server and unzip it:
lz4 -c -d copyroller.tar.lz4 | tar -x -C .
Modify the file .roller/rollapp/config/dymint.toml and change the user of the new server, if necessary:
keyring_home_dir = "/home/user/.roller/hub-keys"
Start rollapp services:
sudo systemctl start sequencer
sudo systemctl start relayer
sudo systemctl start da-light-client
Check that everything works in the logs:
NOTE: If everything works correctly request the IP change in your pair rollappID.
💈How to Migrate an Existing RollApp to Avail DA
The following section explains how to change the DA of a rollapp, you can see more information about it in this section:
Dymension docs: https://docs.dymension.xyz/build/change_configuration
Avail docs: https://docs.availproject.org/clash-of-nodes/dymension/
1. Stop All Roller Services
sudo systemctl stop sequencer
sudo systemctl stop relayer
sudo systemctl stop da-light-client
2. Switch DA to Avail
roller config set da avail
Do not forget to save the address of Avail will be necessary to fund the faucet:
3. Update Avail Network Endpoint
sed -i 's|wss://dymension-devnet.avail.tools/ws|wss://goldberg.avail.tools/ws|g' .roller/rollapp/config/dymint.toml
4. Retrieve Your Avail Address
roller keys list
5. Fund Your Avail Address
To perform this step you need a Gitcoin Passport. If you have not set up a Gitcoin Passport yet, visit https://passport.gitcoin.co/#/dashboard
More info: https://support.gitcoin.co/gitcoin-knowledge-base/gitcoin-passport/how-do-i-add-passport-stamps
Go to Avail Discord in #goldberg-faucet, use the command /deposit <avail address>.
With the command /balance <avail address> you will be able to see your balance:
6. Restart All Services
sudo systemctl restart sequencer
sudo systemctl restart relayer
sudo systemctl restart da-light-client
Check rollapp logs:
tail -f ~/.roller/relayer/relayer.log
tail -f ~/.roller/rollapp/rollapp.log
7. Update Your RollApp in the Dymension Github
Assuming you have already listed your rollapp in Portal, you need to make changes to your PR.
More information about rollapp Portal listing:
https://docs.dymension.xyz/build/production/portal-listing
"type": "RollApp",
"da": "Avail",
"description": "",
"analytics": true,
"goldberg": true,
"availAddress": "<your Avail address>"
}
dYmension networks:
⌘ Web: https://www.dymension.xyz/
⌘ Twitter oficial: https://twitter.com/dYmensionXYZ
⌘ Telegram: https://t.me/dYmensionXYZ
⌘ Discord: https://discord.gg/dymension
Twitter | Medium | LinkedIn | Discord | Telegram | cumulo.pro