# Ghid - 0G Labs

By [Crypto Lemon](https://paragraph.com/@parlamentulcrypto) · 2024-04-15

---

1️⃣

    sudo apt update && \sudo apt install curl git jq build-essential gcc unzip wget lz4 -y
    

2️⃣

    cd $HOME && \
    ver="1.21.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" && \
    echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bash_profile && \
    source ~/.bash_profile && \
    go version
    

3️⃣

    git clone https://github.com/0glabs/0g-evmos.git
    cd 0g-evmos
    git checkout v1.0.0-testnet
    make install
    evmosd version
    

4️⃣

Modificați **_NUME\_NODE_** din instrucțiunea de mai jos cu orice nume pentru node-ul dumneavoastră.

    echo 'export MONIKER="NUME_NODE"' >> ~/.bash_profile
    echo 'export CHAIN_ID="zgtendermint_9000-1"' >> ~/.bash_profile
    echo 'export WALLET_NAME="wallet"' >> ~/.bash_profile
    echo 'export RPC_PORT="26657"' >> ~/.bash_profile
    source $HOME/.bash_profile
    

5️⃣

    cd $HOME
    evmosd init $MONIKER --chain-id $CHAIN_ID
    evmosd config chain-id $CHAIN_ID
    evmosd config node tcp://localhost:$RPC_PORT
    evmosd config keyring-backend os
    

6️⃣

    wget https://github.com/0glabs/0g-evmos/releases/download/v1.0.0-testnet/genesis.json -O $HOME/.evmosd/config/genesis.json
    

7️⃣

    PEERS="1248487ea585730cdf5d3c32e0c2a43ad0cda973@peer-zero-gravity-testnet.trusted-point.com:26326" && \
    SEEDS="8c01665f88896bca44e8902a30e4278bed08033f@54.241.167.190:26656,b288e8b37f4b0dbd9a03e8ce926cd9c801aacf27@54.176.175.48:26656,8e20e8e88d504e67c7a3a58c2ea31d965aa2a890@54.193.250.204:26656,e50ac888b35175bfd4f999697bdeb5b7b52bfc06@54.215.187.94:26656" && \
    sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.evmosd/config/config.toml
    

8️⃣

    sed -i "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.00252aevmos\"/" $HOME/.evmosd/config/app.toml
    

9️⃣

    sudo tee /etc/systemd/system/ogd.service > /dev/null <<EOF
    [Unit]
    Description=OG Node
    After=network.target
    
    [Service]
    User=$USER
    Type=simple
    ExecStart=$(which evmosd) start --home $HOME/.evmosd
    Restart=on-failure
    LimitNOFILE=65535
    
    [Install]
    WantedBy=multi-user.target
    EOF
    

1️⃣0️⃣

    sudo systemctl daemon-reload && \
    sudo systemctl enable ogd && \
    sudo systemctl restart ogd && \
    sudo journalctl -u ogd -f -o cat
    

În terminal vor apărea log-urile. Așteptați 30s și asigurați-vă că block-urile cresc (atrageți atenția la valoarea **_height_**). Pentru a ieși, tastați **CTRL+C**.

1️⃣1️⃣

    wget https://rpc-zero-gravity-testnet.trusted-point.com/latest_snapshot.tar.lz4
    

1️⃣2️⃣

    sudo systemctl stop ogd
    

1️⃣3️⃣

    cp $HOME/.evmosd/data/priv_validator_state.json $HOME/.evmosd/priv_validator_state.json.backup
    

1️⃣4️⃣

    evmosd tendermint unsafe-reset-all --home $HOME/.evmosd --keep-addr-book
    

1️⃣5️⃣

    lz4 -d -c ./latest_snapshot.tar.lz4 | tar -xf - -C $HOME/.evmosd
    

1️⃣6️⃣

    mv $HOME/.evmosd/priv_validator_state.json.backup $HOME/.evmosd/data/priv_validator_state.json
    

1️⃣7️⃣

    sudo systemctl restart ogd && sudo journalctl -u ogd -f -o cat
    

O să vedeți din când în când **eroarea:** **_reconnecting to peer_**. E ok, continuați.  
Pentru a ieși, tastați **CTRL+C**.

1️⃣8️⃣

    evmosd status | jq .SyncInfo
    

Cu instrucțiunea de mai sus verificați dacă a avut loc sincronizarea.  
La **_latest\_block\_height_** trebuie să fie aceeași valoare ca și pe 👉 [**Explorer**](https://explorer.validatorvn.com/OG-Testnet), iar la **_catching\_up_** - _false_.

**Nu treceți la următoarea instrucțiune până când nu se sincronizează node-ul!**

1️⃣9️⃣

Creați portofelul. **Nu uitați să salvați cuvintele secrete!**\*  
Setați-vă o parolă simplă pentru că toate instrucțiunile ulterioare legate de adresă, de fiecare dată vor necesita introducerea parolei. \*

    evmosd keys add $WALLET_NAME
    

2️⃣0️⃣

Aflați adresa clasică EVM (0x…) pentru care veți cere tokeni din [**Faucet**](https://faucet.0g.ai/). Salvați-o.

    echo "0x$(evmosd debug addr $(evmosd keys show $WALLET_NAME -a) | grep hex | awk '{print $3}')"
    

2️⃣1️⃣

Verificați balanța portofelului.

    evmosd q bank balances $(evmosd keys show $WALLET_NAME -a) 
    

2️⃣3️⃣

Creați validatorul.

    evmosd tx staking create-validator \
      --amount=10000000000000000aevmos \
      --pubkey=$(evmosd tendermint show-validator) \
      --moniker=$MONIKER \
      --chain-id=$CHAIN_ID \
      --commission-rate=0.05 \
      --commission-max-rate=0.10 \
      --commission-max-change-rate=0.01 \
      --min-self-delegation=1 \
      --from=$WALLET_NAME \
      --identity="" \
      --website="" \
      --details="" \
      --gas=500000 --gas-prices=99999aevmos \
      -y
    

2️⃣4️⃣

    evmosd q staking validator $(evmosd keys show $WALLET_NAME --bech val -a) 
    

2️⃣5️⃣

Delegați tokeni către propriul validator.

    evmosd tx staking delegate $(evmosd keys show $WALLET_NAME --bech val -a)  10000000000000000aevmos --from $WALLET_NAME --gas=500000 --gas-prices=99999aevmos -y
    

2️⃣6️⃣

Delegați tokeni către alt validator. În cazul dat, am lăsat adresa validatorului meu.  
E recomandat să delegați cel puțin 1 dată către o altă adresă, iar în rest puteți delega doar către propriul validator.

    evmosd tx staking delegate evmosvaloper1qdq6f2c2druy2ad3m5knnzlfh302a08awhmsfk 10000000000000000aevmos - from $WALLET_NAME - gas=500000 - gas-prices=99999aevmos -y
    

Pentru a putea delega de mai multe ori, trebuie să cereți o dată la 24h tokeni din Faucet. 1 delegate = 1 cerere din Faucet. Nu cereți pe mai multe adrese că s-ar putea să vă cosidere sybil. Facem minimul necesar.

**ALTE INSTRUCȚIUNI UTILE:**

*   Vedeți lista validatorilor activi.
    

    evmosd q staking validators -o json --limit=1000 \
    | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' \
    | jq -r '.tokens + " - " + .description.moniker' \
    | sort -gr | nl
    

*   Vedeți lista validatorilor inactivi.
    

    evmosd q staking validators -o json --limit=1000 \
    | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED")' \
    | jq -r '.tokens + " - " + .description.moniker' \
    | sort -gr | nl
    

*   Vizualizați log-urile.
    

    sudo journalctl -u ogd -f -o cat
    

*   Verificați statutul sincronizării.
    

    evmosd status | jq .SyncInfo
    

*   Restart.
    

*   Opriți node-ul.
    

    sudo systemctl stop ogd
    

*   Ștergeți node-ul.
    

    sudo systemctl stop ogd
    sudo systemctl disable ogd
    sudo rm /etc/systemd/system/ogd.service
    rm -rf $HOME/.evmosd $HOME/0g-evmos
    

*   Unjail Validator.
    

    evmosd tx slashing unjail --from $WALLET_NAME --gas=500000 --gas-prices=99999aevmos -y
    

*   Statistica despre block-urile omise & despre perioada de jail (dacă e cazul).
    

    evmosd q slashing signing-info $(evmosd tendermint show-validator)
    

*   Salvați private key-ul adresei de validator.
    

    cat $HOME/.evmosd/config/priv_validator_key.json
    

**Link-uri utile:**

[**FAUCET**](https://faucet.0g.ai/)

[**Ajutor testnet de la 0G Labs. Info Rețea. Video-uri.**](https://island-columnist-256.notion.site/Testnet-Launch-Announcement-29e9dab9d2e14c1088c3cbd47bfce2fb)

[**EXPLORER**](https://explorer.validatorvn.com/OG-Testnet)

explorer.validatorvn.com/OG-Testnet/staking/**adresa\_validator**

---

*Originally published on [Crypto Lemon](https://paragraph.com/@parlamentulcrypto/ghid-0g-labs)*
