Le réseau de l'Union est une couche d'infrastructure à divulgation zéro très efficace pour la messagerie universelle, les transferts d'actifs, le NFT et le DeFi. Il est basé sur la vérification du consensus et ne dépend pas de tiers de confiance, de multisignatures ou de cryptographie multilatérale computationnelle.
Configuration minimale requise :
Script d'installation :
wget -O uniont https://raw.githubusercontent.com/111STAVR111/props/main/Union/uniont && chmod +x uniont && ./uniont
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 chrony liblz4-tool -y
Go 1.21.6 Installation :
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
Build 10.06.24 :
cd $HOME && mkdir -p go/bin/
wget https://uniont.binary.stavr.tech/union/uniond
chmod +x uniond
mv uniond $HOME/go/bin/
uniond --home $HOME/.union version --long
Initialisation :
uniond --home $HOME/.union init STAVR_guide --chain-id union-testnet-8
Création ou restauration d'un portefeuille :
uniond keys add <walletname>
OU
uniond keys add <walletname> --recover
Chargement de Genesis :
wget -O $HOME/.union/config/genesis.json "https://raw.githubusercontent.com/111STAVR111/props/main/Union/genesis.json"
sha256sum $HOME/.union/config/genesis.json
Configuration du prix minimum du gaz et des paramètres de connexion :
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = "0.0muno"/;" ~/.union/config/app.toml
external_address=$(wget -qO- eth0.me)
sed -i.bak -e "s/^external_address *=.*/external_address = "$external_address:26656"/" $HOME/.union/config/config.toml
peers=""
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = "$peers"/" $HOME/.union/config/config.toml
seeds=""
sed -i.bak -e "s/^seeds =.*/seeds = "$seeds"/" $HOME/.union/config/config.toml
sed -i 's/max_num_inbound_peers =.*/max_num_inbound_peers = 50/g' $HOME/.union/config/config.toml
sed -i 's/max_num_outbound_peers =.*/max_num_outbound_peers = 10/g' $HOME/.union/config/config.toml
Découpage des données (optionnel) :
pruning="custom"
pruning_keep_recent="1000"
pruning_keep_every="0"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = "$pruning"/" $HOME/.union/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = "$pruning_keep_recent"/" $HOME/.union/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = "$pruning_keep_every"/" $HOME/.union/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = "$pruning_interval"/" $HOME/.union/config/app.toml
Désactivation de l'indexation (facultatif) :
indexer="null"
sed -i -e "s/^indexer *=.*/indexer = "$indexer"/" $HOME/.union/config/config.toml
Chargement de addrbook :
wget -O $HOME/.union/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Union/addrbook.json"
Création d'un fichier de service :
sudo tee /etc/systemd/system/uniond.service > /dev/null <<EOF
[Unit]
Description=uniond
After=network-online.target
[Service]
User=$USER
ExecStart=$(which uniond) start --home /root/.union
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
StateSync Union Testnet
SNAP_RPC=https://union.rpc.t.stavr.tech:443
peers="59d554ab6bee4d814afb3e15af4031df19b2084c@union-t.seed.stavr.tech:4256"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = "$peers"/" $HOME/.union/config/config.toml
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height);
BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000));
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/.union/config/config.toml
uniond tendermint unsafe-reset-all --home /root/.union
wget -O $HOME/.union/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Union/addrbook.json"
systemctl restart uniond && journalctl -u uniond -f -o cat
Rafraîchissement des instantanés testnet toutes les 5 heures
cd $HOME
apt install lz4
sudo systemctl stop uniond
cp $HOME/.union/data/priv_validator_state.json $HOME/.union/priv_validator_state.json.backup
rm -rf $HOME/.union/data
curl -o - -L https://union-t.snapshot.stavr.tech/union-snap.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.union --strip-components 2
curl -o - -L https://union-t.wasm.stavr.tech/wasm-union.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.union --strip-components 2
mv $HOME/.union/priv_validator_state.json.backup $HOME/.union/data/priv_validator_state.json
wget -O $HOME/.union/config/addrbook.json "https://raw.githubusercontent.com/obajay/nodes-Guides/main/Projects/Union/addrbook.json"
sudo systemctl restart uniond && journalctl -u uniond -f -o cat
sudo systemctl daemon-reload
sudo systemctl enable uniond
sudo systemctl restart uniond && sudo journalctl -fu uniond -o cat
#pubkey
uniond tendermint show-validator --home /root/.union
cd $HOME
nano validator.json
{
"pubkey": {#pubkey},
"amount": "1000000muno",
"moniker": "STAVR_Guide",
"identity": "",
"website": "",
"security": "",
"details": "",
"commission-rate": "0.1",
"commission-max-rate": "0.2",
"commission-max-change-rate": "0.1",
"min-self-delegation": "1"
}
uniond --home /root/.union tx staking create-validator /root/validator.json --from Wallet_name --chain-id union
sudo systemctl stop uniond
sudo systemctl disable uniond
rm /etc/systemd/system/uniond.service
sudo systemctl daemon-reload
cd $HOME
rm -rf .union
rm -rf $(which uniond)
Vérifier l'état du nœud
uniond status 2>&1 | jq .NodeInfo
uniond status 2>&1 | jq .SyncInfo
uniond status 2>&1 | jq .ValidatorInfo
Consulter les journaux de nœuds
sudo journalctl -fu uniond -o cat
Vérifier l'état du service
sudo systemctl status uniond
Redémarrer le service
sudo systemctl restart uniond
Arrêter le service
sudo systemctl stop uniond
Démarrer le service
sudo systemctl start uniond
Redémarrer/déconnecter/activer
sudo systemctl daemon-reload
sudo systemctl disable uniond
sudo systemctl enable uniond
Votre pair
echo $(uniond tendermint show-node-id)'@'$(wget -qO- eth0.me)':'$(cat $HOME/.union/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
Créer une nouvelle clé ou restaurer une clé existante
uniond keys add Wallet_Name
OU
uniond keys add Wallet_Name --recover
Vérifier toutes les clés
uniond keys list
Vérifier le solde
uniond query bank balances union...addressjkl1yjgn7z09ua9vms259j
Modifier le validateur
uniond tx staking edit-validator
--new-moniker "Name"
--identity "Keybase_ID"
--details "Description"
--website "Site"
--security-contact "Email"
--chain-id union-testnet-8
--commission-rate 0.05
--from Wallet_Name
--gas 350000 -y
Votre adresse de validation
uniond keys show Wallet_Name --bech val
Adresse de vos valcons
uniond tendermint show-address
Informations sur le validateur
uniond query staking validator unionvaloperaddress......
Informations sur la prison
uniond query slashing signing-info $(uniond tendermint show-validator)
Unjail
uniond tx slashing unjail --from Wallet_Name --chain-id union-testnet-8 --gas 350000 -y
Liste des validateurs actifs
uniond 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
uniond 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
Vérifier si votre clé correspond au validateur(Gagnant
- Bon. Perdant
- Mauvais).
VALOPER=Enter_Your_valoper_Here
[[ $(uniond q staking validator $VALOPER -oj | jq -r .consensus_pubkey.key) = $(uniond status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "nYou winn" || echo -e "nYou losen"
Afficher toutes les récompenses de tous les validateurs
uniond tx distribution withdraw-all-rewards --from Wallet_Name --chain-id union-testnet-8 --gas 350000 -y
Produire la récompense et la commission de votre validateur
uniond tx distribution withdraw-rewards unionvaloper1amxp0k0hg4edrxg85v07t9ka2tfuhamhldgf8e --from Wallet_Name --gas 350000 --chain-id=union-testnet-8 --commission -y
Déléguer des jetons à votre validateur
uniond tx staking delegate unionvaloper........ "100000000"muno --from Wallet_Name --gas 350000 --chain-id=union-testnet-8 -y
Déléguer les jetons à un autre validateur
uniond tx staking delegate unionvaloper........ "100000000"muno --from Wallet_Name --gas 350000 --chain-id=union-testnet-8 -y
Redéléguer les jetons à un autre validateur
uniond tx staking redelegate unionvaloper........ unionvaloper........ "100000000"muno --from Wallet_Name --gas 350000 --chain-id=union-testnet-8 -y
Découpler les jetons du validateur
uniond tx staking unbond unionvaloper........ "100000000"muno --from Wallet_Name --gas 350000 --chain-id=union-testnet-8 -y
Transférer des jetons d'un portefeuille à l'autre
uniond tx bank send unionaddress............ unionaddress........... "1000000000000000000"muno --gas 350000 --chain-id=union-testnet-8 -y
Voir toutes les offres
uniond query gov proposals
Voir une offre spécifique
uniond query gov proposal 1
Voter pour
uniond tx gov vote 1 yes --from Wallet_Name --gas 350000 --chain-id=union-testnet-8 -y
Voter contre
uniond tx gov vote 1 no --from Wallet_Name --gas 350000 --chain-id=union-testnet-8 -y
S'abstenir de voter
uniond tx gov vote 1 abstain --from Wallet_Name --gas 350000 --chain-id=union-testnet-8 -y
Voter contre avec veto
uniond tx gov vote 1 no_with_veto --from Wallet_Name --gas 350000 --chain-id=union-testnet-8 -y
Exemple : Union -> Osmose
uniond tx ibc-transfer transfer transfer channel-2 Your_OSMOaddress............ "100000"muno --from Your_Union_Wallet ---gas 350000 --fees 7000"muno" --chain-id=union-testnet-8 -y