Dymension
Home of the RollApps
Dymension is a network of easily deployable and lightning fast modular blockchains called RollApps. Dymension allows anyone to build and deploy their own consensus-free blockchain, a RollApp.
Website https://dymension.xyz/
Twitter https://twitter.com/dymension
Mainnet network:
Chain ID | Latest Version | Wasm |
---|---|---|
dymension_1100-1 | v3.1.0 | OFF |
Public endpoints
REST API https://dymension-api.lefey.tech
JSON RPC https://dymension-jsonrpc.lefey.tech
1.Install dependencies
Basic utils
sudo apt update && sudo apt upgrade -y
sudo apt install curl git jq lz4 build-essential -y
Install GO 1.21.6
sudo rm -rf /usr/local/go
curl -sL https://go.dev/dl/go1.21.6.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
source $HOME/.bash_profile
go version
2.Build node binary
Clone sources and build
cd && git clone https://github.com/dymensionxyz/dymension.git
cd dymension
git checkout v3.1.0
make install
Check version and commit
dymd version --long | grep -e commit -e version
commit: b0e997d6b921666b7c4da4e121a87a2652ed0d2a
version: v3.1.0
3. Config node
Initial config
dymd init <moniker_name> --chain-id=dymension_1100-1
dymd config chain-id dymension_1100-1
Download and check genesis
wget https://github.com/dymensionxyz/networks/raw/main/mainnet/dymension/genesis.json -O $HOME/.dymension/config/genesis.json
sha256sum $HOME/.dymension/config/genesis.json
44a4440d7515cd3b7245bc8ed0ccb1e9ecadd8f24da5508f325f9df0509f916b
Minimum gas price/Peers/Filter peers/Max peers
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0adym\"/;" ~/.dymension/config/app.toml
external_address=$(wget -qO- eth0.me)
sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:26656\"/" $HOME/.dymension/config/config.toml
peers="a53c0884c5225f13a99e0af9ef04cd50facee668@84.203.117.234:26691,879aca1f688346ca7a3901aa1e9fc62f48112f01@65.109.124.111:26656"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.dymension/config/config.toml
seeds="284313184f63d9f06b218a67a0e2de126b64258d@seeds.silknodes.io:25155,2031373ae11f2ce79a5e61fb15308c860559cc64@tenderseed.ccvalidators.com:29202,20e1000e88125698264454a884812746c2eb4807@seeds.lavenderfive.com:20556,b02a7c844834bc06ffa7ed3a4e51e3c37462872b@seeds.bh.rocks:40656,baeaf56bca434dd5e0dea3900a9368110b4971f8@seed.hoodrun.io:26656,400f3d9e30b69e78a7fb891f60d76fa3c73f0ecc@dymension.rpc.kjnodes.com:14659"
sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.dymension/config/config.toml
sed -i 's/max_num_inbound_peers =.*/max_num_inbound_peers = 50/g' $HOME/.dymension/config/config.toml
sed -i 's/max_num_outbound_peers =.*/max_num_outbound_peers = 50/g' $HOME/.dymension/config/config.toml
Pruning (optional)
pruning="custom"
pruning_keep_recent="1000"
pruning_keep_every="0"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.dymension/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.dymension/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.dymension/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.dymension/config/app.toml
Disable indexer (optional)
indexer="null" &&
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.dymension/config/config.toml
Create service file
sudo tee /etc/systemd/system/dymd.service > /dev/null <<EOF
[Unit]
Description=dymd
After=network-online.target
[Service]
User=$USER
ExecStart=$(which dymd) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
Start node
sudo systemctl daemon-reload
sudo systemctl enable dymd
sudo systemctl restart dymd && journalctl -fu dymd -o cat
1. Stop node and reset the data
sudo systemctl stop dymd.service
cp $HOME/.dymension/data/priv_validator_state.json $HOME/.dymension/priv_validator_state.json.backup
dymd tendermint unsafe-reset-all --keep-addr-book --home $HOME/.dymension
mv $HOME/.dymension/priv_validator_state.json.backup $HOME/.dymension/data/priv_validator_state.json
2.Configure the state sync information
SNAP_RPC="https://dymension-rpc.lefey.tech:443"
SEEDS="2aae7e6232d05897110d77dac5f4c3ea261c3247@dymension-seed.lefey.tech:10656"
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height)
BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000))
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)
echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH
sed -i \
-e "s|^enable *=.*|enable = true|" \
-e "s|^rpc_servers *=.*|rpc_servers = \"$SNAP_RPC,$SNAP_RPC\"|" \
-e "s|^trust_height *=.*|trust_height = $BLOCK_HEIGHT|" \
-e "s|^trust_hash *=.*|trust_hash = \"$TRUST_HASH\"|" \
-e "s|^seeds *=.*|seeds = \"$SEEDS\"|" $HOME/.dymension/config/config.toml
3.Start node
sudo systemctl start dymd && journalctl -fu dymd -o cat
Last updated