Ojo est un réseau oracle décentralisé axé sur la sécurité et conçu pour soutenir l'écosystème Cosmos. Ojo collecte des données de tarification à partir d'une variété de sources, à la fois sur et hors chaîne, et utilise des mécanismes de sécurité avancés pour garantir l'intégrité des données fournies.
Exigences matérielles minimales
|
Type de nœud |
CPU |
RAM |
Stockage |
|
Testnet |
4 |
8GB |
150GB |
Script d'installation automatique
wget -O ojjo https://raw.githubusercontent.com/111STAVR111/props/main/Ojo/ojjo && chmod +x ojjo && ./ojjo
Installation manuelle
Préparation du serveur
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
Installation de GO 1.21.6
ver="1.21.6"
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" >> $HOME/.bash_profile
source $HOME/.bash_profile
go version
Version 06.03.23
cd $HOME && mkdir $HOME/go/bin/
git clone https://github.com/ojo-network/ojo
cd ojo
git checkout v0.1.2
make install
ojod version --long | grep -e version -e commit
version: HEAD-ad5a2377134aa13d7d76575b95613cf8ed12d1e4
commit: ad5a2377134aa13d7d76575b95613cf8ed12d1e4
Initialisation
ojod init STAVR_guide --chain-id=ojo-devnet ojod config chain-id ojo-devnet
Création/restauration du portefeuille
ojod keys add <nom du portefeuille> ou ojod keys add <walletname> --recover
Chargement de Genesis
wget -O $HOME/.ojo/config/genesis.json "https://raw.githubusercontent.com/111STAVR111/props/main/Ojo/genesis.json"
sha256sum $HOME/.ojo/config/genesis.json
6037d1c1a89110c024fc18143eafe33fee19671b9427a4d4ac9c701f7a3c9309
Configurer le prix minimum de l'essence, Peers/Sids/Peer Filter/MaxPeers
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = "0.0uojo"/;" ~/.ojo/config/app.toml
external_address=$(wget -qO- eth0.me)
sed -i.bak -e "s/^external_address *=.*/external_address = "$external_address:26656"/" $HOME/.ojo/config/config.toml
peers=""
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = "$peers"/" $HOME/.ojo/config/config.toml
seeds=""
sed -i.bak -e "s/^seeds =.*/seeds = "$seeds"/" $HOME/.ojo/config/config.toml
sed -i 's/max_num_inbound_peers =.*/max_num_inbound_peers = 50/g' $HOME/.ojo/config/config.toml
sed -i 's/max_num_outbound_peers =.*/max_num_outbound_peers = 50/g' $HOME/.ojo/config/config.toml
Configuration de l'élagage (optionnel)
pruning="custom"
pruning_keep_recent="100"
pruning_keep_every="0"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = "$pruning"/" $HOME/.ojo/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = "$pruning_keep_recent"/" $HOME/.ojo/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = "$pruning_keep_every"/" $HOME/.ojo/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = "$pruning_interval"/" $HOME/.ojo/config/app.toml
Configuration de l'indexeur (optionnel)
indexer="null" &&
sed -i -e "s/^indexer *=.*/indexer = "$indexer"/" $HOME/.ojo/config/config.toml
Téléchargement d'addrbook
wget -O $HOME/.ojo/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Ojo/addrbook.json"
Création d'un fichier de service
sudo tee /etc/systemd/system/ojod.service > /dev/null <<EOF
[Unit]
Description=ojo
After=network-online.target
[Service]
User=$USER
ExecStart=$(which ojod) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
StateSync pour Ojo Testnet
SNAP_RPC=https://ojo.rpc.t.stavr.tech:443
peers="1f091cf9567c0d72a0f93877007379e0298b8860@ojo.peer.stavr.tech:37096"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = "$peers"/" $HOME/.ojo/config/config.toml
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height);
BLOCK_HEIGHT=$((LATEST_HEIGHT - 100));
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"| ;
s|^(seeds[[:space:]]+=[[:space:]]+).*$|1""|" $HOME/.ojo/config/config.toml
ojod tendermint unsafe-reset-all --home /root/.ojo
wget -O $HOME/.ojo/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Ojo/addrbook.json"
sed -i -e "s/^snapshot-interval *=.*/snapshot-interval = "1500"/" $HOME/.ojo/config/app.toml
sudo systemctl restart ojod && journalctl -fu ojod -o cat
Mise à jour de SnapShot Testnet toutes les 5 heures
cd $HOME
apt install lz4
sudo systemctl stop ojod
cp $HOME/.ojo/data/priv_validator_state.json $HOME/.ojo/priv_validator_state.json.backup
rm -rf $HOME/.ojo/data
curl -o - -L https://ojo.snapshot.stavr.tech/ojo-snap.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.ojo --strip-components 2
mv $HOME/.ojo/priv_validator_state.json.backup $HOME/.ojo/data/priv_validator_state.json
wget -O $HOME/.ojo/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Ojo/addrbook.json"
sudo systemctl restart ojod && journalctl -fu ojod -o cat
Démarrage
sudo systemctl daemon-reload
sudo systemctl enable ojod
sudo systemctl restart ojod && sudo journalctl -fu ojod -o cat
Création d'un validateur
ojod tx staking create-validator
--amount 1000000uojo
--from WalletName
--commission-max-change-rate "0.1"
--commission-max-rate "0.2"
--commission-rate "0.1"
--min-self-delegation "1"
--pubkey $(ojod tendermint show-validator)
--moniker "STAVR_guide"
--chain-id ojo-devnet
--identity=""
--details=""
--website="" -y
Suppression d'un noeud
sudo systemctl stop ojod
sudo systemctl disable ojod
rm /etc/systemd/system/ojod.service
sudo systemctl daemon-reload
cd $HOME
rm -rf ojo
rm -rf .ojo
rm -rf $(which ojod)
Commandes utiles
Informations
ojod status 2>&1 | jq .NodeInfo
ojod status 2>&1 | jq .SyncInfo
ojod status 2>&1 | jq .ValidatorInfo
Vérifier les journaux
sudo journalctl -fu ojod -o cat
Vérifier l'état du service
sudo systemctl status ojod
Redémarrer le service
sudo systemctl restart ojod
Arrêter le service
sudo systemctl stop ojod
Démarrage du service
sudo systemctl start ojod
Redémarrer/désactiver/interrompre le service
sudo systemctl daemon-reload
sudo systemctl disable ojod
sudo systemctl enable ojod
Votre pair
echo $(ojod tendermint show-node-id)'@'$(wget -qO- eth0.me)':'$(cat $HOME/.ojo/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
Travailler avec des clés
Nouvelle clé ou récupération de clé
ojod keys add Wallet_Name
или
ojod keys add Wallet_Name --recover
Vérification de toutes les clés
ojod keys list
Vérification du solde
ojod query bank balances address....jkl1yjgn7z09ua9vms259j
Suppression d'une clé
ojod keys delete Wallet_Name
Exporter une clé
ojod keys export wallet
Importer une clé
ojod keys import wallet wallet.backup
Travailler avec le validateur
Modifier le validateur
ojod tx staking edit-validator
--new-moniker "Your_Moniker"
--identity "Keybase_ID"
--details "Your_Description"
--website "Your_Website"
--security-contact "Your_Email"
--chain-id ojo-devnet
--commission-rate 0.05
--from Wallet_Name
--gas 350000 -y
Votre adresse de validation
ojod keys show Wallet_Name --bech val
Votre adresse Valcons
ojod tendermint show-address
Informations sur le validateur
ojod query staking validator valoperaddress......
Jail Info
ojod query slashing signing-info $(ojod tendermint show-validator)
Unjail
ojod tx slashing unjail --from Wallet_name --chain-id ojo-devnet --gas 350000 -y
Liste des validateurs actifs
ojod q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " t " + .description.moniker' | sort -gr | nl
Liste des validateurs inactifs
ojod q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " t " + .description.moniker' | sort -gr | nl
Validation par rapport à la clé (Gagnant - Bon. Perdant - Mauvais)
VALOPER=Enter_Your_valoper_Here
[[ $(ojod q staking validator $VALOPER -oj | jq -r .consensus_pubkey.key) = $(ojod status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "nYou winn" || echo -e "nYou losen"
Sortie de toutes les récompenses de tous les validateurs
ojod tx distribution withdraw-all-rewards --from Wallet_Name --chain-id ojo-devnet --gas 350000 -y
Sortie des récompenses et des commissions de votre validateur
ojod tx distribution withdraw-rewards valoper1amxp0k0hg4edrxg85v07t9ka2tfuhamhldgf8e --from Wallet_Name --gas 350000 --fees "7000"uojo --chain-id=ojo-devnet --commission -y
Délégation de jetons à votre validateur
ojod tx staking delegate Your_valoper........ "100000000"uojo --from Wallet_Name --gas 350000 --fees "7000"uojo --chain-id=ojo-devnet -y
Délégation de jetons à un autre validateur
ojod tx staking delegate valoper........ "100000000"uojo --from Wallet_Name --gas 350000 --fees "7000"uojo --chain-id=ojo-devnet -y
Re-délégation des jetons à un autre validateur
ojod tx staking redelegate Your_valoper........ valoper........ "100000000"uojo --from Wallet_Name --gas 350000 --fees "7000"uojo --chain-id=ojo-devnet -y
Ancrer les jetons de votre validateur ou d'un autre validateur
ojod tx staking unbond Your_valoper........ "100000000"uojo --from Wallet_Name --gas 350000 --fees "7000"uojo --chain-id=ojo-devnet -y
ojod tx staking unbond valoper........ "100000000"uojo --from Wallet_Name --gas 350000 --fees "7000"uojo --chain-id=ojo-devnet -y
Transfert de jetons d'un portefeuille à un autre.
ojod tx bank send Your_address............ address........... "1000000000000000000"uojo --gas 350000 --fees "7000"uojo --chain-id=ojo-devnet -y
Gouvernance
Voir toutes les offres
ojod query gov proposals
Voir une proposition spécifique
ojod query gov proposal 1
Voter en faveur d'une proposition
ojod tx gov vote 1 yes --from Wallet_Name --gas 350000 --fees "7000"uojo --chain-id=ojo-devnet -y
Voter contre une proposition
ojod tx gov vote 1 no --from Wallet_Name --gas 350000 --fees "7000"uojo --chain-id=ojo-devnet -y
S'abstenir de voter
ojod tx gov vote 1 abstain --from Wallet_Name --gas 350000 --fees "7000"uojo --chain-id=ojo-devnet -y
Voter contre avec droit de veto
ojod tx gov vote 1 no_with_veto --from Wallet_Name --gas 350000 --fees "7000"uojo --chain-id=ojo-devnet -y