AtomOne logo

AtomOne

testnet
Chain ID
atomone-testnet-1
Node
v4.1.0

πŸ“š Node installation

Update packages

sudo apt update && sudo apt upgrade -y

Install dependencies

sudo apt install curl tar wget clang pkg-config libssl-dev libleveldb-dev jq build-essential bsdmainutils git make ncdu htop screen unzip bc lz4 gcc -y

Install Go

cd $HOME && \
ver="1.21.13" && \
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz" && \
sudo rm -rf /usr/local/go && \
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz" && \
rm "go$ver.linux-amd64.tar.gz" && \
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile && \
source $HOME/.bash_profile && \
go version

The output should be: go version go1.21.13 linux/amd64

Download binary for work

git clone https://github.com/atomone-hub/atomone
cd atomone
git checkout v4.1.0
make install

Specify variables, for ease of work

echo 'export atomone_moniker="Validator_name"' >> $HOME/.profile
echo 'export atomone_wallet="Wallet_name"' >> $HOME/.profile
echo 'export atomone_port="111"' >> $HOME/.profile
source $HOME/.profile

Initialize the node

atomoned init $atomone_moniker --chain-id atomone-testnet-1

Set the settings

atomoned config set chain-id atomone-testnet-1 && \
peers=b4905e88aed649dc864ca7ccdc00f09fb206cad2@94.130.143.184:15656,5e9aec8259ea078d5e67c4021d815ff71ac86fbc@176.9.19.199:26656,f72ae41f29c662369f8dede551b8a3e4b49666b1@[2001:41d0:2:80a5::1]:11756,114a36a14e58072ca837381023b49da5126e0160@65.109.50.163:62656,60355b701ce2d83ec3ad42271a4202d6b6728cf4@135.181.178.120:15656,112c3c63d5fa03dbfb917d41c1ab9f8412b44128@37.27.63.150:27956,2516ab05cbaade0a9a3c506f0f13962fea64edc1@[2a01:4f9:1a:9462::10]:26656,75ccd37e1ce38d1efde90c293ff8d1ffcf7e3bfa@188.165.226.46:26706,f14da43bec20e4ac683f91200551929cf277a59e@138.201.20.216:50056,ad625cb828425625d18afcaf99d470b3f262ca95@80.64.211.52:26656 && \
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.atomone/config/config.toml && \
seeds="6b0ffcce9b59b91ceb8eea5d4599e27707e3604a@seeds.stakeup.tech:10231" && \
sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.atomone/config/config.toml
sed -i.bak -e "s|^minimum-gas-prices =.*|minimum-gas-prices = \"0.001uatone\"|" $HOME/.atomone/config/app.toml

Create wallet

atomoned keys add $atomone_wallet

Save the wallet. Or restore if there is a mnemonic:

atomoned keys add $atomone_wallet --recover

Download Genesis

wget -O genesis.json "https://snapshots.stakeup.tech/atomone-testnet/genesis.json" --inet4-only
mv genesis.json ~/.atomone/config

Optional Settings

Memory optimization
cd $HOME/.atomone/config && \
indexer="null" && \
snapshot_interval="0" && \
pruning="custom" && \
pruning_keep_recent="1000" && \
pruning_interval="50" && \
sed -i.bak -e "s/^indexer *=.*/indexer = \"$indexer\"/" config.toml && \
sed -i.bak -e "s/^snapshot-interval *=.*/snapshot-interval = \"$snapshot_interval\"/" app.toml && \
sed -i.bak -e "s/^pruning *=.*/pruning = \"$pruning\"/" app.toml && \
sed -i.bak -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" app.toml && \
sed -i.bak -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" app.toml
Change port
cd $HOME/.atomone/config && \
sed -i.bak \
    -e "s/:\s*26656/:${atomone_port}56/g" \
    -e "s/:\s*26657/:${atomone_port}57/g" \
    -e "s/:\s*26658/:${atomone_port}58/g" \
    -e "s/:\s*26660/:${atomone_port}59/g" \
    -e "s/:\s*6060/:${atomone_port}61/g" \
    config.toml

sed -i.bak \
    -e "s/:\s*1317/:${atomone_port}17/g" \
    -e "s/:\s*8080/:${atomone_port}80/g" \
    -e "s/:\s*9090/:${atomone_port}90/g" \
    -e "s/:\s*9091/:${atomone_port}91/g" \
    app.toml

Create a service file

sudo tee /etc/systemd/system/atomoned.service > /dev/null <<EOF
[Unit]
Description=atomone
After=network-online.target

[Service]
User=$USER
ExecStart=$(which atomoned) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload &&
sudo systemctl enable atomoned &&
sudo systemctl restart atomoned && sudo journalctl -u atomoned -f -o cat