Installation
Official docs
https://docs.atom.one/guides/node-guide/
System Requirements
Category | Requirements |
---|---|
CPU | 4 cores |
RAM | 8 GB |
Storage | 512 GiB NVME |
Bandwidth | 1 Gbps |
Install dependencies
sudo apt update -y && sudo apt upgrade -y && \
sudo apt install curl tar wget clang pkg-config libssl-dev libleveldb-dev jq build-essential git make lz4 screen unzip -y
Install go
sudo rm -r /usr/local/go
curl https://dl.google.com/go/go1.23.1.linux-amd64.tar.gz | sudo tar -C/usr/local -zxvf - ;
cat <<'EOF' >>$HOME/.bashrc
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF
source $HOME/.bashrc
Set vars
EDIT YOUR MONIKER & YOUR PREFERRED PORT NUMBER
echo "export CHAIN_ID="atomone-1"" >> $HOME/.bashrc
source $HOME/.bashrc
Install binaries
cd $HOME
rm -rf atomone
git clone https://github.com/atomone-hub/atomone
cd atomone
git checkout v2.1.0
make install
Init node
atomoned init node --chain-id=$CHAIN_ID
Download genesis
curl -Ls https://snapshot.silentvalidator.com/atomone/genesis/genesis.json > $HOME/.atomone/config/genesis.json
Set peers
peers=$(curl -sS https://rpc.atomone.silentvalidator.com/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}' | paste -sd, -)
sed -i -e "s|^persistent_peers *=.*|persistent_peers = \"$peers\"|" $HOME/.atomone/config/config.toml
echo $peers
Enable indexer (optional)
sed -i -e 's/^indexer = "null"/indexer = "kv"/' $HOME/.atomone/config/config.toml
Set up cosmovisor
go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@v1.0.0
cat <<'EOF' >>$HOME/.bashrc
export DAEMON_NAME=atomoned
export DAEMON_HOME==$HOME/.atomone
EOF
source ~/.bashrc
mkdir -p $DAEMON_HOME/cosmovisor/genesis/bin
mkdir -p $DAEMON_HOME/cosmovisor/upgrades
cp $(which $DAEMON_NAME) $DAEMON_HOME/cosmovisor/genesis/bin
Set up services
sudo tee /etc/systemd/system/atomone.service > /dev/null <<EOF
[Unit]
Description=atomone
After=network.target
[Service]
User=$USER
Type=simple
WorkingDirectory=$HOME/.atomone
ExecStart=$HOME/go/bin/cosmovisor run run
Restart=on-failure
LimitNOFILE=65535
Environment="DAEMON_NAME=${DAEMON_NAME}"
Environment="DAEMON_HOME=${DAEMON_HOME}"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="DAEMON_LOG_BUFFER_SIZE=512"
Environment="UNSAFE_SKIP_BACKUP=true"
[Install]
WantedBy=multi-user.target
EOF
Download snapshots
cd
wget -O atomone_snapshot.tar.lz4 https://snapshot.silentvalidator.com/atomone/snapshot/atomone_latest.tar.lz4
Decompress snapshots
lz4 -c -d atomone_snapshot.tar.lz4 | tar -xv -C $HOME/.atomone
Start the node
sudo systemctl daemon-reload && \
sudo systemctl enable atomone && \
sudo systemctl restart atomone && \
sudo journalctl -u atomone -fn 100
Check sync status
curl -s http://localhost:26657/status | jq .result.sync_info
if "catching_up": false
then the node is synced