"Celestia" mainnet services 

RPC (archive) : https://rpc-celestia.theamsolutions.info
API (archive) : https://rest-celestia.theamsolutions.info
gRPC (archive) : grpc-celestia.theamsolutions.info:443
LightNode  : https://lightnode-celestia.theamsolutions.info:443
SEED : 3abb9ad6d7a3c728984c4b7e9c05e91731779865@seed-celestia.theamsolutions.info:443

EXPLORER : https://explorer.theamsolutions.info
 

TMKMS Remote signer service - LINK 

Grafana Dashboard - LINK

TG Alarm/Notification service  - LINK

 

NODE SETUP
 

Install GO and dependencies HERE

#install binaries 
git clone https://github.com/celestiaorg/celestia-app.git
cd celestia-app
v=$(curl -s https://rpc-celestia.theamsolutions.info/abci_info| jq -r .result.response.version)
git checkout v${v}
make install

#initialize working directory, set node name
celestia-appd init <NODE_NAME> --chain-id celestia

#download genesis file
wget -qO $HOME/.celestia-app/config/genesis.json \
https://github.com/celestiaorg/networks/raw/master/celestia/genesis.json
 
#add seeds 
seeds="3abb9ad6d7a3c728984c4b7e9c05e91731779865@seed-celestia.theamsolutions.info:443,9aa8a73ea9364aa3cf7806d4dd25b6aed88d8152@celestia.seed.mzonder.com:13156,20e1000e88125698264454a884812746c2eb4807@seeds.lavenderfive.com:16656"
sed -i "s/^seeds *=.*/seeds = \"$seeds\"/;" $HOME/.celestia-app/config/config.toml

#create service file 
sudo tee <<EOF >/dev/null /etc/systemd/system/celestia-appd.service
[Unit]
Description=Celestia-App
After=network-online.target
#
[Service]
User=$USER
ExecStart=$(which celestia-appd) start
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
#
[Install]
WantedBy=multi-user.target
EOF
 
#enable service and launch node (Note: to run from latest blocks, use state sync or snapshot services below)
sudo systemctl enable celestia-appd.service
sudo systemctl daemon-reload
sudo systemctl restart celestia-appd.service
sudo journalctl -u celestia-appd.service -fn 50 -o cat

 

STATE SYNC SERVICE
 


sudo systemctl stop celestia-appd
celestia-appd tendermint unsafe-reset-all --home $HOME/.celestia-app

SNAP_RPC="https://rpc-celestia.theamsolutions.info:443"; \
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$(($LATEST_HEIGHT - 2000)); \
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.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" $HOME/.celestia-app/config/config.toml; \
wget -qO $HOME/.celestia-app/config/addrbook.json https://snapshots.theamsolutions.info/celest-addrbook.json

sudo systemctl restart celestia-appd 
sudo journalctl -u celestia-appd.service -fn 100 -o cat

 

 DATA SNAPSHOT
 (State-Synced, not full data / updates every 6 hrs.)
 

#snapshot info check : curl -s https://snapshots.theamsolutions.info | egrep -o ">celestia-snap*.*tar" | tr -d ">"

snap=$(curl -s https://snapshots.theamsolutions.info/ | egrep -o ">celestia-snap*.*tar" | tr -d ">")
wget -P $HOME https://snapshots.theamsolutions.info/${snap}
sudo systemctl stop celestia-appd
mv $HOME/.celestia-app/data/priv_validator_state.json $HOME
rm -rf $HOME/.celestia-app/data
tar xf $HOME/${snap} -C $HOME/.celestia-app; rm $HOME/${snap}
mv $HOME/priv_validator_state.json $HOME/.celestia-app/data/
wget -q -O $HOME/.celestia-app/config/addrbook.json https://snapshots.theamsolutions.info/celest-addrbook.json
sudo systemctl restart celestia-appd 
sudo journalctl -u celestia-appd.service -f -o cat

 

ARCHIVE DATA SNAPSHOT
(updates every 24h / ~06:30 UTC)


#snapshot info check: curl -s https://arch-snap.celestia.theamsolutions.info | egrep -o ">celestia_archive-snap*.*tar" | tr -d ">"

snap=$(curl -s https://arch-snap.celestia.theamsolutions.info | egrep -o ">celestia_archive-snap*.*tar" | tr -d ">")
wget -P $HOME https://snapshots.theamsolutions.info/${snap}
sudo systemctl stop celestia-appd
mv $HOME/.celestia-app/data/priv_validator_state.json $HOME
rm -rf $HOME/.celestia-app/data
tar xf $HOME/${snap} -C $HOME/.celestia-app; rm $HOME/${snap}
mv $HOME/priv_validator_state.json $HOME/.celestia-app/data/
wget -q -O $HOME/.celestia-app/config/addrbook.json https://snapshots.theamsolutions.info/celest-addrbook.json
sudo systemctl restart celestia-appd 
sudo journalctl -u celestia-appd.service -f -o cat

 

BRIDGE NODE SETUP
 

#install binaries
git clone https://github.com/celestiaorg/celestia-node.git
cd celestia-node
git checkout v0.12.4; make build
sudo mv build/celestia /usr/local/bin
make cel-key
sudo mv cel-key /usr/local/bin
celestia version

#set variables (below default values in case that bridge node same machine as app node)
#wallet name for bridge node
NODE_KEY="bridge-key"

#IP of app node, which bridge node will connect to
NODE_IP="127.0.0.1"
#RPC port of app node, which bridge node will connect to
NODE_RPC="26657"
#GRPC port of app node, which bridge node will connect to
NODE_GRPC="9090"
      
#make variables permanent
echo 'export NODE_KEY='\"${NODE_KEY}\" >> $HOME/.bash_profile
echo 'export NODE_IP='\"${NODE_IP}\" >> $HOME/.bash_profile
echo 'export NODE_RPC='\"${NODE_RPC}\" >> $HOME/.bash_profile
echo 'export NODE_GRPC='\"${NODE_GRPC}\" >> $HOME/.bash_profile
source $HOME/.bash_profile

#check that variables been added
cat $HOME/.bash_profile

#add new bridge key
cel-key add ${NODE_KEY} --node.type bridge --p2p.network celestia
#or restore key from mnemonic
cel-key add ${NODE_KEY} --node.type bridge --recover --p2p.network celestia

#initialize conifg and working directory (config location "$HOME/.celestia-bridge/config.toml")
celestia bridge init \
--keyring.accname ${NODE_KEY} \
--core.ip  ${NODE_IP} \
--core.rpc.port ${NODE_RPC} \
--core.grpc.port ${NODE_GRPC} \
--p2p.network celestia

#create service file
sudo tee <<EOF >/dev/null /etc/systemd/system/celestia-bridge.service
[Unit]
Description="Celestia-Bridge"
After=network-online.target
#
[Service]
User=$USER
ExecStart=$(which celestia) bridge start --node.config="$HOME/.celestia-bridge/config.toml" --metrics.tls=true --metrics \
--metrics.endpoint otel.celestia.observer --p2p.network celestia
Restart=on-failure
RestartSec=10
LimitNOFILE=4096
#
[Install]
WantedBy=multi-user.target
EOF

#enable service and launch node 
sudo systemctl daemon-reload
sudo systemctl enable celestia-bridge.service
sudo systemctl restart celestia-bridge.service
sudo journalctl -u celestia-bridge.service -fn 100 -o cat

 

#save authorization tokens as variable 
AUTH_TOKEN=$(celestia bridge auth admin)
echo 'export AUTH_TOKEN='\"${AUTH_TOKEN}\" >> $HOME/.bash_profile

#check bridge node ID
curl -sX POST -H "Authorization: Bearer $AUTH_TOKEN" -H 'Content-Type: application/json' -d \ '{"jsonrpc":"2.0","id":0,"method":"p2p.Info","params":[]}' http://localhost:26658 | jq -r .result.ID

#check bridge node HEIGHT
curl -sX POST -H 'Content-Type: application/json'  -H "Authorization: Bearer $AUTH_TOKEN" -d \
'{"id": 1, "jsonrpc": "2.0","method": "header.SyncState","params": []}' http://localhost:26658 | jq .result.height

#compare to actual height (should be same or delay~1 block..)
curl -sX POST -H 'Content-Type: application/json'  -H "Authorization: Bearer $AUTH_TOKEN" -d \
'{"id": 1, "jsonrpc": "2.0","method": "header.SyncState","params": []}' http://localhost:26658 | jq .result.height && \
curl -s https://rpc-celestia.theamsolutions.info/status | jq -r .result.sync_info.latest_block_height

 

GOOD LUCK!

 

AM Solutions © Copyright. All rights reserved.

We need your consent to load the translations

We use a third-party service to translate the website content that may collect data about your activity. Please review the details and accept the service to view the translations.