Installation

Manual Installation

Install dependencies

UPDATE SYSTEM AND INSTALL BUILD TOOLS

sudo apt update && sudo apt upgrade -y
sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu gcc git jq chrony liblz4-tool -y

INSTALL GO

cd $HOME
VER="1.23.3"
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"
[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
source $HOME/.bash_profile
[ ! -d ~/go/bin ] && mkdir -p ~/go/bin

Set Vars

wallet yerine istediğiniz bir ismi, MONIKER yerine bir validator adı yazmayı unutmayın.

echo "export WALLET="wallet"" >> $HOME/.bash_profile
echo "export MONIKER="test"" >> $HOME/.bash_profile
echo "export KOPI_CHAIN_ID="luwak-1"" >> $HOME/.bash_profile
source $HOME/.bash_profile

Download and build binaries

cd $HOME
wget -O kopid https://github.com/kopi-money/kopi/releases/download/v0.6.5.2/kopid-v0.6.5.2-linux-amd64-static
chmod +x $HOME/kopid
mv $HOME/kopid $HOME/go/bin/kopid

Config init app

kopid init $MONIKER --chain-id luwak-1
sed -i \
-e 's/timeout_propose = .*/timeout_propose = "300ms"/' \
-e 's/timeout_propose_delta = .*/timeout_propose_delta = "50ms"/' \
-e 's/timeout_prevote = .*/timeout_prevote = "100ms"/' \
-e 's/timeout_prevote_delta = .*/timeout_prevote_delta = "50ms"/' \
-e 's/timeout_precommit = .*/timeout_precommit = "100ms"/' \
-e 's/timeout_precommit_delta = .*/timeout_precommit_delta = "50ms"/' \
-e 's/timeout_commit = .*/timeout_commit = "500ms"/' \
-e 's/^create_empty_blocks = .*/create_empty_blocks = true/' \
-e 's/^create_empty_blocks_interval = .*/create_empty_blocks_interval = "15s"/' \
-e 's/^timeout_broadcast_tx_commit = .*/timeout_broadcast_tx_commit = "151s"/' \
-e 's/skip_timeout_commit = .*/skip_timeout_commit = false/' \
  $HOME/.kopid/config/config.toml

Download Genesis and Addrbook

wget -O $HOME/.kopid/config/genesis.json https://raw.githubusercontent.com/CoinHuntersTR/props/refs/heads/main/kopi/genesis.json
wget -O $HOME/.kopid/config/addrbook.json https://raw.githubusercontent.com/CoinHuntersTR/props/refs/heads/main/kopi/addrbook.json

Set seeds and peers

# set seeds and peers
SEEDS="[email protected]:27656"
PEERS="[email protected]:27656,[email protected]:39656,[email protected]:25656,[email protected]:15956,[email protected]:5356,[email protected]:12656,[email protected]:30756,[email protected]:27656,[email protected]:26656,[email protected]:27656,[email protected]:26656,[email protected]:26656,[email protected]:15956,[email protected]:26656,[email protected]:30756,[email protected]:24656,[email protected]:26056,[email protected]:16656,[email protected]:14656,[email protected]:26656,[email protected]:19656,[email protected]:38656,[email protected]:26656,[email protected]:19656,[email protected]:45656,[email protected]:12656,[email protected]:39656,[email protected]:27656,[email protected]:12020,[email protected]:27656,[email protected]:12656,[email protected]:39656,[email protected]:26056,[email protected]:11656,[email protected]:30756,[email protected]:16656,[email protected]:16656,[email protected]:16656,[email protected]:11656,[email protected]:26656,[email protected]:25256"
sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*seeds *=.*/seeds = \"$SEEDS\"/}" \
       -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" \
       $HOME/.kopid/config/config.toml

Config Pruning

pruning="custom"
pruning_keep_recent="1000"
pruning_keep_every="0"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.kopid/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.kopid/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"50\"/" $HOME/.kopid/config/app.toml

set minimum gas price, enable prometheus and disable indexing

sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0ukopi"|g' $HOME/.kopid/config/app.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.kopid/config/config.toml
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.kopid/config/config.toml

create service file

sudo tee /etc/systemd/system/kopid.service > /dev/null <<EOF
[Unit]
Description=kopi node
After=network-online.target
[Service]
User=$USER
WorkingDirectory=$HOME/.kopid
ExecStart=$(which kopid) start --home $HOME/.kopid
Restart=on-failure
RestartSec=5
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF

enable and start service

sudo systemctl daemon-reload
sudo systemctl enable kopid.service
sudo systemctl restart kopid.service && sudo journalctl -fu kopid.service -o cat

Snapshot

Stop the service and reset the data

sudo systemctl stop kopid.service
cp $HOME/.kopid/data/priv_validator_state.json $HOME/.kopid/priv_validator_state.json.backup
rm -rf $HOME/.kopid/data

Download latest snapshot

curl -L https://snapshots.coinhunterstr.com/mainnet/kopi/snapshot_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.kopid
mv $HOME/.kopid/priv_validator_state.json.backup $HOME/.kopid/data/priv_validator_state.json

Restart the service and check the log

sudo systemctl restart kopid.service && sudo journalctl -fu kopid.service -o cat

Auto Installation

bash <(wget -qO- https://raw.githubusercontent.com/CoinHuntersTR/props/refs/heads/main/AutoInstall/kopi.sh)

Sync Node

Node ağ ile eşleşmiş olması gerekiyor. Bunun için kopid status 2>&1 | jq komutunu çalıştırdığınızda false çıktısı vermesi gerekir. True çıktı alırsanız aşağıdaki adımlara devam etmeyin.

Run a Validator

cd $HOME

İlk önce Pubkeyimizi alıyoruz.

kopid tendermint show-validator

{"@type":"/cosmos.crypto.ed25519.PubKey","key":"0LuMdRNJpWGiH+b+................"} buna benzer bir çıktı alacaksınız.

Sonrasında validator json dosyası açıyoruz.

Aşağıdaki dosyayı kendinize göre düzenlemeyi unutmayın. Validator ismi, site linkleri vs.

cat << EOF > ~/validator.json
{   
    "pubkey":{"@type":"/cosmos.crypto.ed25519.PubKey","key":"3NyM9VcMXSDPH0yVwqbo9FKhQ3Nt4hEE7iSYb6jnWQU="},
    "amount": "9000000ukopi",
    "moniker": "",
    "identity": "",
    "website": "",
    "security": "",
    "details": " ",
    "commission-rate": "0.1",
    "commission-max-rate": "0.2",
    "commission-max-change-rate": "0.01",
    "min-self-delegation": "1"
}
EOF

terminale yapıştırdıktan sonra, CTRL X Y enter ile çıkıyoruz.

Şimdi tekrardan node restart atalım

sudo systemctl restart kopid.service && sudo journalctl -fu kopid.service -o cat

Şimdi aşağıdaki komutu çalıştırıyoruz. wallet yerine kendi cüzdan isminizi yazmayı unutmayın. Terminalde cüzdan kurmak için Useful Commands bölümüne bakabilirsiniz.

kopid tx staking create-validator ~/validator.json --from wallet --chain-id luwak-1 --gas="auto" --gas-adjustment 2 --gas-prices="0.01ukopi"

Last updated