Join our telegram
Visit our website
Official documentation:
Explorer:
To set up monitoring for your validator node navigate to Set up monitoring and alerting for deweb validator
To migrate your validator to another machine read Migrate your validator to another machine
Like any Cosmos-SDK chain, the hardware requirements are pretty modest.
- 3x CPUs; the faster clock speed the better
- 4GB RAM
- 80GB Disk
- Permanent Internet connection (traffic will be minimal during testnet; 10Mbps will be plenty - for production at least 100Mbps is expected)
- 4x CPUs; the faster clock speed the better
- 8GB RAM
- 200GB of storage (SSD or NVME)
- Permanent Internet connection (traffic will be minimal during testnet; 10Mbps will be plenty - for production at least 100Mbps is expected)
You can setup your deweb fullnode in few minutes by using automated script below. It will prompt you to input your validator node name!
wget -O deweb.sh https://raw.githubusercontent.com/kj89/testnet_manuals/main/deweb/deweb.sh && chmod +x deweb.sh && ./deweb.sh
You can follow manual guide if you better prefer setting up node manually
When installation is finished please load variables into system
source $HOME/.bash_profile
Next you have to make sure your validator is syncing blocks. You can use command below to check synchronization status
dewebd status --node $DEWEB_RPC 2>&1 | jq .SyncInfo
To create new wallet you can use command below. Don’t forget to save the mnemonic
dewebd keys add $WALLET
(OPTIONAL) To recover your wallet using seed phrase
dewebd keys add $WALLET --recover
To get current list of wallets
dewebd keys list
Add wallet and valoper address and load variables into the system
DEWEB_WALLET_ADDRESS=$(dewebd keys show $WALLET -a)
DEWEB_VALOPER_ADDRESS=$(dewebd keys show $WALLET --bech val -a)
echo 'export DEWEB_WALLET_ADDRESS='${DEWEB_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export DEWEB_VALOPER_ADDRESS='${DEWEB_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile
In order to create validator first you need to fund your wallet with testnet tokens. To top up your wallet join deweb discord server to access the faucets for dws and ATOM. Make sure you are in the appropriate channel
- #dws-tap for dws tokens
- #atom-tap for ATOM tokens
To check the faucet address:
$<YOUR_WALLET_ADDRESS> rhapsody
To check your balance:
$balance <YOUR_WALLET_ADDRESS> rhapsody
To request a faucet grant:
$request <YOUR_WALLET_ADDRESS> rhapsody
Before creating validator please make sure that you have at least 1 dws (1 dws is equal to 1000000 udws) and your node is synchronized
To check your wallet balance:
dewebd query bank balances $DEWEB_WALLET_ADDRESS --node $DEWEB_RPC
If your wallet does not show any balance than probably your node is still syncing. Please wait until it finish to synchronize and then continue
To create your validator run command below
dewebd tx staking create-validator \
--amount 100000udws \
--from $WALLET \
--commission-max-change-rate "0.01" \
--commission-max-rate "0.2" \
--commission-rate "0.07" \
--min-self-delegation "1" \
--pubkey $(dewebd tendermint show-validator) \
--moniker $NODENAME \
--chain-id $DEWEB_CHAIN_ID \
--node $DEWEB_RPC
To protect you keys please make sure you follow basic security rules
Good tutorial on how to set up ssh keys for authentication to your server can be found here
Start by checking the status of ufw.
sudo ufw status
Sets the default to allow outgoing connections, deny all incoming except ssh and 26656. Limit SSH login attempts
sudo ufw default allow outgoing
sudo ufw default deny incoming
sudo ufw allow ssh/tcp
sudo ufw limit ssh/tcp
sudo ufw allow ${DEWEB_PORT}656,${DEWEB_PORT}660/tcp
sudo ufw enable
To monitor and get alerted about your validator health status you can use my guide on Set up monitoring and alerting for deweb validator
This script will help you to estimate how much time it will take to fully synchronize your node
It measures average blocks per minute that are being synchronized for period of 5 minutes and then gives you results
wget -O synctime.py https://raw.githubusercontent.com/kj89/testnet_manuals/main/deweb/tools/synctime.py && python3 ./synctime.py
dewebd q staking validators --node $DEWEB_RPC -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl
curl -sS http://localhost:${DEWEB_PORT}657/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
Check logs
journalctl -fu dewebd -o cat
Start service
sudo systemctl start dewebd
Stop service
sudo systemctl stop dewebd
Restart service
sudo systemctl restart dewebd
Synchronization info
dewebd status --node $DEWEB_RPC 2>&1 | jq .SyncInfo
Validator info
dewebd status --node $DEWEB_RPC 2>&1 | jq .ValidatorInfo
Node info
dewebd status --node $DEWEB_RPC 2>&1 | jq .NodeInfo
Show node id
dewebd tendermint show-node-id
List of wallets
dewebd keys list
Recover wallet
dewebd keys add $WALLET --recover
Delete wallet
dewebd keys delete $WALLET
Get wallet balance
dewebd query bank balances $DEWEB_WALLET_ADDRESS --node $DEWEB_RPC
Transfer funds
dewebd tx bank send $DEWEB_WALLET_ADDRESS <TO_DEWEB_WALLET_ADDRESS> 10000000udws --node $DEWEB_RPC
dewebd tx gov vote 1 yes --from $WALLET --chain-id=$DEWEB_CHAIN_ID --node $DEWEB_RPC
Delegate stake
dewebd tx staking delegate $DEWEB_VALOPER_ADDRESS 10000000udws --from=$WALLET --chain-id=$DEWEB_CHAIN_ID --gas=auto --node $DEWEB_RPC
Redelegate stake from validator to another validator
dewebd tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 10000000udws --from=$WALLET --chain-id=$DEWEB_CHAIN_ID --gas=auto --node $DEWEB_RPC
Withdraw all rewards
dewebd tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$DEWEB_CHAIN_ID --gas=auto --node $DEWEB_RPC
Withdraw rewards with commision
dewebd tx distribution withdraw-rewards $DEWEB_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$DEWEB_CHAIN_ID --node $DEWEB_RPC
Edit validator
dewebd tx staking edit-validator \
--moniker=$NODENAME \
--identity=1C5ACD2EEF363C3A \
--website="http://kjnodes.com" \
--details="Providing professional staking services with high performance and availability. Find me at Discord: kjnodes#8455 and Telegram: @kjnodes" \
--chain-id=$DEWEB_CHAIN_ID \
--from=$WALLET \
--node $DEWEB_RPC
Unjail validator
dewebd tx slashing unjail \
--broadcast-mode=block \
--from=$WALLET \
--chain-id=$DEWEB_CHAIN_ID \
--gas=auto \
--node $DEWEB_RPC
This commands will completely remove node from server. Use at your own risk!
sudo systemctl stop dewebd
sudo systemctl disable dewebd
sudo rm /etc/systemd/system/deweb* -rf
sudo rm $(which dewebd) -rf
sudo rm $HOME/.deweb* -rf
sudo rm $HOME/deweb -rf