-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy pathCardchain_install.sh
More file actions
executable file
·127 lines (105 loc) · 5.74 KB
/
Cardchain_install.sh
File metadata and controls
executable file
·127 lines (105 loc) · 5.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/bin/bash -i
set -e
echo -n "Enter your validator name: "
read NODE_MONIKER
NODE_HOME=~/.cardchaind
CHAIN_ID=cardtestnet-14
# CHAIN_REPO_URL='https://github.com/DecentralCardGame/Cardchain'
CHAIN_BINARY_URL='https://github.com/DecentralCardGame/Cardchain/releases/download/v0.18.0/cardchaind'
# CHAIN_VERSION=
CHAIN_BINARY='cardchaind'
GENESIS_URL='https://cardchain.crowdcontrol.network/files/genesis.json'
SEEDS=""
PEERS="1cb10562e90e6546fa7bc69b8bf634270b67a9f7@152.53.103.89:32056"
# Install go 1.21.5
# echo "Installing go..."
# wget -q -O - https://git.io/vQhTU | bash -s -- --remove
# wget -q -O - https://git.io/vQhTU | bash -s -- --version 1.215
# source $shell_profile
# install from source
# echo "Installing build-essential..."
# sudo apt install build-essential -y
# echo "Installing Cardchain..."
# rm -rf Cardchain
# git clone $CHAIN_REPO_URL
# cd Cardchain
# git checkout $CHAIN_VERSION
# make install
echo "Downloading Binary..."
wget $CHAIN_BINARY_URL -O $HOME/go/bin/$CHAIN_BINARY
chmod 711 $HOME/go/bin/$CHAIN_BINARY
export PATH=$PATH:$HOME/go/bin
echo "Installing jq"
sudo apt-get install jq
echo "Initializing Cardchain..."
rm -rf $NODE_HOME
$CHAIN_BINARY config chain-id $CHAIN_ID
$CHAIN_BINARY init $NODE_MONIKER --chain-id $CHAIN_ID --home $NODE_HOME
echo "Copy Genesis file..."
wget $GENESIS_URL -O $NODE_HOME/config/genesis.json
echo "Seting persistent peers..."
sed -i -e "/persistent_peers =/ s/= .*/= \"$PEERS\"/" $NODE_HOME/config/config.toml
echo "Setting up cosmovisor..."
mkdir -p $NODE_HOME/cosmovisor/genesis/bin
cp $(which $CHAIN_BINARY) $NODE_HOME/cosmovisor/genesis/bin
chmod 711 $NODE_HOME/cosmovisor/genesis/bin/$CHAIN_BINARY
echo "Installing cosmovisor..."
export BINARY=$NODE_HOME/cosmovisor/genesis/bin/$CHAIN_BINARY
export GO111MODULE=on
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/cosmovisor@latest
#sudo rm /etc/systemd/system/cosmovisor.service
sudo touch /etc/systemd/system/cosmovisor.service
echo "[Unit]" | sudo tee /etc/systemd/system/cosmovisor.service
echo "Description=Cosmovisor service" | sudo tee /etc/systemd/system/cosmovisor.service -a
echo "After=network-online.target" | sudo tee /etc/systemd/system/cosmovisor.service -a
echo "" | sudo tee /etc/systemd/system/cosmovisor.service -a
echo "[Service]" | sudo tee /etc/systemd/system/cosmovisor.service -a
echo "User=$USER" | sudo tee /etc/systemd/system/cosmovisor.service -a
echo "ExecStart=$HOME/go/bin/cosmovisor run start --home $NODE_HOME" | sudo tee /etc/systemd/system/cosmovisor.service -a
echo "Restart=always" | sudo tee /etc/systemd/system/cosmovisor.service -a
echo "RestartSec=3" | sudo tee /etc/systemd/system/cosmovisor.service -a
echo "LimitNOFILE=4096" | sudo tee /etc/systemd/system/cosmovisor.service -a
echo "Environment='DAEMON_NAME=$CHAIN_BINARY'" | sudo tee /etc/systemd/system/cosmovisor.service -a
echo "Environment='DAEMON_HOME=$NODE_HOME'" | sudo tee /etc/systemd/system/cosmovisor.service -a
echo "Environment='DAEMON_ALLOW_DOWNLOAD_BINARIES=true'" | sudo tee /etc/systemd/system/cosmovisor.service -a
echo "Environment='DAEMON_RESTART_AFTER_UPGRADE=true'" | sudo tee /etc/systemd/system/cosmovisor.service -a
echo "Environment='DAEMON_LOG_BUFFER_SIZE=512'" | sudo tee /etc/systemd/system/cosmovisor.service -a
echo "Environment='UNSAFE_SKIP_BACKUP=true'" | sudo tee /etc/systemd/system/cosmovisor.service -a
echo "" | sudo tee /etc/systemd/system/cosmovisor.service -a
echo "[Install]" | sudo tee /etc/systemd/system/cosmovisor.service -a
echo "WantedBy=multi-user.target" | sudo tee /etc/systemd/system/cosmovisor.service -a
# echo "Setting up statesync..."
# LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height)
# echo $LATEST_HEIGHT
# BLOCK_HEIGHT=$((LATEST_HEIGHT)); \
# TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)
# echo -e "\033[0;36mlatest height: $LATEST_HEIGHT \nblock height: $BLOCK_HEIGHT \ntrust hash: $TRUST_HASH \033[0m"
# 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\"|" $NODE_HOME/config/config.toml; \
echo "Configuring pruning"
indexer="null"
pruning="custom"
pruning_keep_recent="100"
pruning_keep_every="0"
pruning_interval="10"
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $NODE_HOME/config/config.toml
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $NODE_HOME/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $NODE_HOME/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $NODE_HOME/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $NODE_HOME/config/app.toml
echo "Starting cosmovisor.service..."
sudo systemctl daemon-reload
sudo systemctl start cosmovisor.service
sudo systemctl restart systemd-journald
while [ "$(curl -s localhost:26657/status | jq ".result.sync_info.catching_up")" != "false" ]
do
echo "Catching up. Sleeping for 1 minute."
sleep 60
done
echo "Synchonized."
# echo "Creating wallet..."
# $CHAIN_BINARY config keyring-backend test
# ($CHAIN_BINARY keys add validator) 2>&1 | tee $NODE_HOME/config/validator_mnemonic
echo "Please add the wallet you used in the testnets before or use the faucet on our website to get some funds. Afterwards run ./Testnet/Cardchain_create_validator.sh to create your Validator."