基础环境安装
sudo apt update -y &&sudo apt upgrade -y
sudo apt install curl tar wget lz4 jq build-essential git make -y
go 安装
sudo rm -rf /usr/local/go
curl https://dl.google.com/go/go1.21.5.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
变量设置
chain=celestia
github=https://github.com/celestiaorg/celestia-app
gitfoldername=celestia-app
gittag=v1.3.0
daemonname=celestia-appd
daemonhome=celestia-app
genesis=https://snapshots.polkachu.com/genesis/celestia/genesis.json
seeds=
[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:16656,[email protected]:1500,[email protected]:26626,[email protected]:26656,[email protected]:46656,[email protected]:29656,[email protected]:26200,[email protected]:30783,[email protected]:26656,[email protected]:2000,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:16656,[email protected]:26656,[email protected]:27656,[email protected]:26656,[email protected]:26670,[email protected]:26656,[email protected]:26776,[email protected]:26656,[email protected]:2000,[email protected]:26666,[email protected]:11656,[email protected]:2000,[email protected]:26656,[email protected]:26656,[email protected]:26200,[email protected]:26200,[email protected]:26656,[email protected]:2000,[email protected]:26656,[email protected]:26656,[email protected]:31330,[email protected]:11656,[email protected]:2000,[email protected]:26656,[email protected]:15670,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:20056,[email protected]:26656,[email protected]:26656,[email protected]:11656,[email protected]:11656,[email protected]:26656,[email protected]:26656,[email protected]:26200,[email protected]:2000,[email protected]:26656,[email protected]:11656,[email protected]:11656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:15007,[email protected]:26630,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:2600,[email protected]:26656,[email protected]:26656,[email protected]:32438,[email protected]:26656,[email protected]:26656,[email protected]:11656,[email protected]:26656,[email protected]:46657,[email protected]:56656,[email protected]:26656,[email protected]:26656,[email protected]:11656,[email protected]:32668,[email protected]:26656,[email protected]:11656,[email protected]:26656,[email protected]:56656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26605,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:11656,[email protected]:26656,[email protected]:26668,[email protected]:11656,[email protected]:26656,[email protected]:32656,[email protected]:26656,[email protected]:43656,[email protected]:26656,[email protected]:55656,[email protected]:26656,[email protected]:26659,[email protected]:26656,[email protected]:26656,[email protected]:31660,[email protected]:13656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26630,[email protected]:27657,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:11656,[email protected]:26656,[email protected]:26001,[email protected]:26656,[email protected]:26656,[email protected]:26756,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:2000,[email protected]:52656,[email protected]:26656,[email protected]:12056,[email protected]:26656,[email protected]:13656,[email protected]:26656,[email protected]:26656,[email protected]:51656
chainid=celestia
安装节点二进制文件
git clone $github
cd $gitfoldername
git checkout $gittag
make install
$daemonname init node --chain-id=$chainid --home=$HOME/.$daemonhome
cd
设置cosmovisor
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/[email protected]
cat <<'EOF' >>$HOME/.bashrc
export DAEMON_NAME=$daemonname
export DAEMON_HOME=$HOME/.$daemonhome
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
打开端口(可选)
sed -i 's/127.0.0.1:26657/0.0.0.0:26657/g' $DAEMON_HOME/config/config.toml
sed -i '/\[api\]/{:a;n;/enable/s/false/true/;Ta;}' $DAEMON_HOME/config/app.toml
$daemonname config node http://127.0.0.1:26657
开启txindex
sed -i 's/indexer = "null"/indexer = "kv"/g' $DAEMON_HOME/config/config.toml
修改pruning
sed -i 's/pruning = "default"/pruning = "custom"/g' $DAEMON_HOME/config/app.toml
sed -i 's/pruning-keep-recent = "0"/pruning-keep-recent = "100"/g' $DAEMON_HOME/config/app.toml
sed -i 's/pruning-interval = "0"/pruning-interval = "10"/g' $DAEMON_HOME/config/app.toml
genesis和peer配置
wget -O $DAEMON_HOME/config/genesis.json $genesis
sed -i -e "s/^seeds *=.*/seeds = \"$seeds\"/; s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $DAEMON_HOME/config/config.toml
设置最低Gas price (但是发交易时gas太低不一定能上链,建议先测试最低多少gas price能被验证者节点接受,默认为0.002utia)
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0utia\"/" $DAEMON_HOME/config/app.toml
下载快照
wget -O celestia_354172.tar.lz4 https://snapshots.polkachu.com/snapshots/celestia/celestia_354172.tar.lz4 --inet4-only
lz4 -c -d celestia_354172.tar.lz4 | tar -x -C $HOME/.celestia-app
配置服务
sudo tee /etc/systemd/system/${chain}-cosmovisor.service > /dev/null <<EOF
[Unit]
Description=cosmovisor
After=network-online.target
[Service]
User=$USER
ExecStart=$(which cosmovisor) start --home=${DAEMON_HOME}
Restart=always
RestartSec=3
LimitNOFILE=4096
Environment="DAEMON_NAME=${daemonname}"
Environment="DAEMON_HOME=${DAEMON_HOME}"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="UNSAFE_SKIP_BACKUP=true"
Environment="DAEMON_LOG_BUFFER_SIZE=512"
[Install]
WantedBy=multi-user.target
EOF
启动
sudo systemctl enable celestia-cosmovisor.service
sudo systemctl restart celestia-cosmovisor.service
看日志
sudo journalctl -u celestia-cosmovisor.service -f -o cat
检查是否同步 (可能要半小时到1小时才能同步)
curl localhost:26657/status | jq .result.sync_info
"catching_up": 显示为false
即已经同步