Methods of payment Abuse

Union. Installing the node

10.09.2024, 17:26

The Union network is a highly efficient zero-disclosure infrastructure layer for universal messaging, asset transfers, NFT and DeFi. It is based on consensus verification and does not depend on trusted third parties, oracles, multisignatures or computational multilateral cryptography.

Minimum System Requirements:

Node type

CPU

RAM

Storage

Testnet

4

8GB

150GB

Installation

Automatic installation:

Installation script:

wget -O uniont https://raw.githubusercontent.com/111STAVR111/props/main/Union/uniont && chmod +x uniont && ./uniont

Manual installation

Server preparation:

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

Installing 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

Assembly 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

Initialization:

uniond --home $HOME/.union init STAVR_guide --chain-id union-testnet-8

Create or restore a wallet:

uniond keys add <walletname>
# OR
uniond keys add <walletname> --recover

Genesis download:

wget -O $HOME/.union/config/genesis.json "https://raw.githubusercontent.com/111STAVR111/props/main/Union/genesis.json"
sha256sum $HOME/.union/config/genesis.json

Setting the minimum gas price and connection parameters:

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

Data trimming (optional):

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

Disabling indexing (optional):

indexer="null"
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.union/config/config.toml

Download addrbook:

wget -O $HOME/.union/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Union/addrbook.json"

Creating a service file:

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

Testnet snapshot updates every 5 hours:

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

Launch:

sudo systemctl daemon-reload
sudo systemctl enable uniond
sudo systemctl restart uniond && sudo journalctl -fu uniond -o cat

Creating a validator:

#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

Delete Node:

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)

Useful commands

Check node status

uniond status 2>&1 | jq .NodeInfo
uniond status 2>&1 | jq .SyncInfo
uniond status 2>&1 | jq .ValidatorInfo

View node logs

sudo journalctl -fu uniond -o cat

Checking the status of the service

sudo systemctl status uniond

Service restart

sudo systemctl restart uniond

Service stop

sudo systemctl stop uniond

Service start

sudo systemctl start uniond

Reload/disable/enable

sudo systemctl daemon-reload
sudo systemctl disable uniond
sudo systemctl enable uniond

Your Peer

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/".*//')

Working with keys

Create a new key or restore an existing key

uniond keys add Wallet_Name
OR
uniond keys add Wallet_Name --recover

Check all the keys

uniond keys list

Check your balance

uniond query bank balances union...addressjkl1yjgn7z09ua9vms259j

Delete key

uniond keys delete Wallet_Name

Export key

uniond keys export Wallet_Name

Import key

uniond keys import Wallet_Name backup_файл

Validator control

Edit validator

uniond tx staking edit-validator \
--new-moniker "Your_Name" \
--identity "Keybase_ID" \
--details "Your_Description" \
--website "Your_Site" \
--security-contact "Ваш_Email" \
--chain-id union-testnet-8 \
--commission-rate 0.05 \
--from Wallet_Name \
--gas 350000 -y

Your Valoper Address

uniond keys show Wallet_Name --bech val

Your Valcons Address

uniond tendermint show-address

Information about the validator

uniond query staking validator unionvaloperaddress......

Jail Info

uniond query slashing signing-info $(uniond tendermint show-validator)

Release from imprisonment (Unjail)

uniond tx slashing unjail --from Wallet_Name --chain-id union-testnet-8 --gas 350000 -y

List of active validators

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

List of inactive validators

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

Check if your key matches the validator (Win - Good. Lose - Bad)

VALOPER=Введите_Ваш_valoper_Здесь
[[ $(uniond q staking validator $VALOPER -oj | jq -r .consensus_pubkey.key) = $(uniond status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "\nYou win\n" || echo -e "\nYou lose\n"

Output all rewards from all validators

uniond tx distribution withdraw-all-rewards --from Wallet_Name --chain-id union-testnet-8 --gas 350000 -y

Withdraw remuneration and commission from your validator

uniond tx distribution withdraw-rewards unionvaloper1amxp0k0hg4edrxg85v07t9ka2tfuhamhldgf8e --from Wallet_Name --gas 350000 --chain-id=union-testnet-8 --commission -y

Delegate tokens to your validator

uniond tx staking delegate unionvaloper........ "100000000"muno --from Wallet_Name --gas 350000 --chain-id=union-testnet-8 -y

Delegate tokens to another validator

uniond tx staking delegate unionvaloper........ "100000000"muno --from Wallet_Name --gas 350000 --chain-id=union-testnet-8 -y

Redelegate tokens to another validator

uniond tx staking redelegate unionvaloper........ unionvaloper........ "100000000"muno --from Wallet_Name --gas 350000  --chain-id=union-testnet-8 -y

Unbond tokens from your validator or another validator

uniond tx staking unbond unionvaloper........ "100000000"muno --from Wallet_Name --gas 350000 --chain-id=union-testnet-8 -y

Transfer of tokens from wallet to wallet

uniond tx bank send unionaddress............ unionaddress........... "1000000000000000000"muno  --gas 350000 --chain-id=union-testnet-8 -y

Management

View all offers

uniond query gov proposals

View a specific proposal

uniond query gov proposal 1

A vote "yes"

uniond tx gov vote 1 yes --from Wallet_Name --gas 350000  --chain-id=union-testnet-8 -y

Vote "no"

uniond tx gov vote 1 no --from Wallet_Name --gas 350000  --chain-id=union-testnet-8 -y

Abstain from voting

uniond tx gov vote 1 abstain --from Wallet_Name --gas 350000  --chain-id=union-testnet-8 -y

Vote no with a veto

uniond tx gov vote 1 no_with_veto --from Wallet_Name --gas 350000  --chain-id=union-testnet-8 -y

IBC перевод

Example: Union -> Osmosis

uniond tx ibc-transfer transfer transfer channel-2 Ваш_OSMOaddress............ "100000"muno --from Ваш_Union_Кошелёк ---gas 350000 --fees 7000"muno" --chain-id=union-testnet-8 -y