AtomOne AtomOne - Mainnet
Chain ID: atomone-1 Block Height: Loading...
RPC Status:

Network Overview

AtomOne emerged in response to concerns raised by the community over Proposal 82 and furthered by Proposal 848 on the Cosmos Hub, which highlighted issues surrounding centralization, security and governance inefficiencies within the network.

https://rpc-atomone.sychonix.com

https://api-atomone.sychonix.com

Installation

  • Install Dependencies
sudo apt update && sudo apt upgrade -y
sudo apt install curl iptables build-essential git wget jq make gcc nano tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev aria2 -y
  • Install Go
sudo rm -rf /usr/local/go
curl -Ls https://go.dev/dl/go1.21.13.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local
eval $(echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee /etc/profile.d/golang.sh)
eval $(echo 'export PATH=$PATH:$HOME/go/bin' | tee -a $HOME/.profile)
  • Install binary
cd $HOME
git clone https://github.com/atomone-hub/atomone.git
cd atomone
git checkout v1.0.0
make install
  • Initialize The Node
atomoned init $MONIKER --chain-id atomone-1
sed -i -e "s|^node *=.*|node = \"tcp://localhost:12957\"|" $HOME/.atomone/config/client.toml
sed -i -e "s|^keyring-backend *=.*|keyring-backend = \"os\"|" $HOME/.atomone/config/client.toml
sed -i -e "s|^chain-id *=.*|chain-id = \"atomone-1\"|" $HOME/.atomone/config/client.toml
  • Download Genesis & Addrbook
curl -L https://snapshot.sychonix.com/mainnet/atomone/genesis.json > $HOME/.atomone/config/genesis.json
curl -L https://snapshot.sychonix.com/mainnet/atomone/addrbook.json > $HOME/.atomone/config/addrbook.json
  • Configure Seeds and Peers
SEEDS="a3c7481636f715464af61b5cb26de1cb7fd26f05@atomone-mainnet.sychonix.com:12956"
PEERS="$(curl -sS https://rpc-atomone.sychonix.com/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}' | sed -z 's|\n|,|g;s|.$||')"
sed -i -e "s|^seeds *=.*|seeds = '"$SEEDS"'|; s|^persistent_peers *=.*|persistent_peers = '"$PEERS"'|" $HOME/.atomone/config/config.toml
  • Update Port Configuration
sed -i -e "s%:1317%:12917%; s%:8080%:12980%; s%:9090%:12990%; s%:9091%:12991%; s%:8545%:12945%; s%:8546%:12946%; s%:6065%:12965%" $HOME/.atomone/config/app.toml
sed -i -e "s%:26658%:12958%; s%:26657%:12957%; s%:6060%:12960%; s%:26656%:12956%; s%:26660%:12961%" $HOME/.atomone/config/config.toml
  • Customize Pruning
sed -i \
  -e 's|^pruning *=.*|pruning = "custom"|' \
  -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
  -e 's|^pruning-interval *=.*|pruning-interval = "17"|' \
  $HOME/.atomone/config/app.toml
  • Set Minimum Gas Price, Enable Prometheus, and Disable the Indexer
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0uatone\"|" $HOME/.atomone/config/app.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.atomone/config/config.toml
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.atomone/config/config.toml
  • Create Service File
sudo tee /etc/systemd/system/atomoned.service > /dev/null <<EOF
[Unit]
Description=atomoned node service
After=network-online.target
[Service]
User=$USER
ExecStart=$(which atomoned) start
Restart=always
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
  • Download Current Snapshot
curl "https://snapshot.sychonix.com/mainnet/atomone/atomone-snapshot.tar.lz4" | lz4 -dc - | tar -xf - -C "$HOME/.atomone"
  • Enable the Service and Start the Node
sudo systemctl daemon-reload
sudo systemctl enable atomoned.service
sudo systemctl restart atomoned.service && sudo journalctl -u atomoned.service -f --no-hostname -o cat

Upgrade

No chain upgrades scheduled yet.

Peers

PEERS="$(curl -sS https://rpc-atomone.sychonix.com/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}' | sed -z 's|\n|,|g;s|.$||')"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.atomone/config/config.toml

Snapshot

Height: Loading... | Last updated: Loading... | Size: Loading...
  • Install dependencies, if needed
sudo apt update && sudo apt install aria2
  • Stop Service
sudo systemctl stop atomoned
  • Back up priv_validator_state.json
cp $HOME/.atomone/data/priv_validator_state.json $HOME/.atomone/priv_validator_state.json.backup
  • Reset the data
atomoned tendermint unsafe-reset-all --home $HOME/.atomone --keep-addr-book
  • Download Snapshot
aria2c -x 16 -s 16 -o atomone-snapshot.tar.lz4 https://snapshot.sychonix.com/mainnet/atomone/atomone-snapshot.tar.lz4
lz4 -dc atomone-snapshot.tar.lz4 | tar -xf - -C $HOME/.atomone
rm -v atomone-snapshot.tar.lz4
  • Restore Backup and Restart Service
mv $HOME/.atomone/priv_validator_state.json.backup $HOME/.atomone/data/priv_validator_state.json
sudo systemctl restart atomoned && sudo journalctl -u atomoned -f -o cat

Addrbook

curl -L https://snapshot.sychonix.com/mainnet/atomone/addrbook.json > $HOME/.atomone/config/addrbook.json

Genesis

curl -L https://snapshot.sychonix.com/mainnet/atomone/genesis.json > $HOME/.atomone/config/genesis.json

API

api-atomone.sychonix.com

RPC

rpc-atomone.sychonix.com

CLI Cheatsheet

Wallet Management

atomoned keys add 

atomoned keys add  --recover

atomoned keys list 

atomoned keys delete 

atomoned keys export 

atomoned keys import .backup

atomoned q bank balances $(atomoned keys show  -a)

Validator Management

Moniker

Identity

Details

Website

Security Contact

Amount

atomoned tx staking create-validator \
--amount=1000000uatone \
--pubkey=$(atomoned tendermint show-validator) \
--moniker="" \
--identity="" \
--details="" \
--website="" \
--security-contact= \
--chain-id=atomone-1 \
--commission-rate=0.05 \
--commission-max-rate=0.20 \
--commission-max-change-rate=0.01 \
--min-self-delegation=1 \
--gas-prices 0uatone \
--gas "auto" \
--gas-adjustment "1.5" \
--from wallet \
-y

atomoned tx staking edit-validator \
--new-moniker="" \
--identity="" \
--details="" \
--website="" \
--chain-id=atomone-1 \
--commission-rate=0.07 \
--from wallet \
--gas=auto \
--gas-prices 0uatone \
-y

atomoned tx slashing unjail --from wallet --chain-id atomone-1 --gas auto --gas-adjustment 1.5  

atomoned query slashing signing-info $(atomoned tendermint show-validator)

atomoned q staking validator $(atomoned keys show wallet --bech val -a)

atomoned q bank denom-metadata -oj | jq

atomoned status 2>&1 | jq -r '.SyncInfo.catching_up // .sync_info.catching_up'

atomoned status 2>&1 | jq -r '.SyncInfo.latest_block_height // .sync_info.latest_block_height'

Token Management

atomoned tx distribution withdraw-all-rewards --from wallet --chain-id atomone-1 --gas auto --gas-adjustment 1.5 --gas-prices 0uatone -y 

atomoned tx distribution withdraw-rewards $(atomoned keys show wallet --bech val -a) --commission --from wallet --chain-id atomone-1 --gas auto --gas-adjustment 1.5 --gas-prices 0uatone -y 

atomoned tx staking delegate $(atomoned keys show wallet --bech val -a) 1000000uatone --from wallet --chain-id atomone-1 --gas auto --gas-adjustment 1.5 --gas-prices 0uatone -y 

atomoned tx staking redelegate $(atomoned keys show wallet --bech val -a)  1000000uatone --from wallet --chain-id atomone-1 --gas auto --gas-adjustment 1.5 --gas-prices 0uatone -y

atomoned tx staking delegate  1000000uatone --from  --chain-id atomone-1 --gas auto --gas-adjustment 1.5 --gas-prices 0uatone -y 

atomoned tx staking unbond $(atomoned keys show wallet --bech val -a) 1000000uatone --from wallet --chain-id atomone-1 --gas auto --gas-adjustment 1.5 --gas-prices 0uatone -y

atomoned tx bank send wallet  1000000uatone --from wallet --chain-id atomone-1 --gas auto --gas-adjustment 1.5 --gas-prices 0uatone -y

Service Management

sudo systemctl daemon-reload

sudo systemctl enable atomoned 

sudo systemctl disable atomoned 

sudo systemctl start atomoned 

sudo systemctl stop atomoned 

sudo systemctl restart atomoned 

sudo systemctl status atomoned 

sudo journalctl -u atomoned -f --no-hostname -o cat

CUSTOM_PORT=
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}660\"%" $HOME/.atomone/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${CUSTOM_PORT}317\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}080\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${CUSTOM_PORT}090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${CUSTOM_PORT}091\"%" $HOME/.atomone/config/app.toml

cd $HOME && sudo systemctl stop atomoned && sudo systemctl disable atomoned && sudo rm /etc/systemd/system/atomoned .service && sudo systemctl daemon-reload && sudo rm -rf $(which atomoned ) && sudo rm -rf $HOME/.atomone && sudo rm -rf $(which atomoned )