Cross Finance

Explorer
Chain-ID: crossfi-evm-testnet-1
Latest Node Version: 0.3.0-prebuild3
Latest Block Height:

Cross Finance offers an innovative solution addressing critical issues by enhancing efficiency, ensuring data security, and reducing transaction costs. At the core of its ecosystem lies Cross Finance’s blockchain platform, CrossFi Chain, enabling the deployment of various DeFi products.​


Binary: realio-networkd
Denom: ario
Symbol: RIO
Exponent: 18
Folder Chain: .realio-network
Key management
crossfid keys add crossfid keys add  --recovercrossfid keys listcrossfid keys delete crossfid keys export crossfid keys import  .backup
Check balance
crossfid q bank balances $(crossfid keys show  -a)
Service
sudo journalctl -u crossfid -f --no-hostname -o catsudo systemctl start crossfidsudo systemctl stop crossfidsudo systemctl restart crossfidsudo systemctl status crossfidsudo systemctl daemon-reloadsudo systemctl enable crossfidsudo systemctl disable crossfidcrossfid status 2>&1 | jq .SyncInfoecho $(crossfid tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.mineplex-chain/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')curl -sS http://localhost:657/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
Validator management















Create Validator
crossfid tx staking create-validator \
--amount=000000000000000000mpx \
--moniker="" \
--pubkey=$(crossfid tendermint show-validator) \
--identity="" \
--details="" \
--website="" \
--security-contact= \
--chain-id=crossfi-evm-testnet-1 \
--commission-rate=0. \
--commission-max-rate=0.20 \
--commission-max-change-rate=0. \
--min-self-delegation=1 \
--from= \
--gas="1000000" \
--gas-prices="30000000000mpx"
Edit Validator
crossfid tx staking edit-validator \
--new-moniker="" \
--chain-id=crossfi-evm-testnet-1 \
--from= \
--gas="1000000" \
--gas-prices="30000000000mpx" -y
crossfid tx staking edit-validator \
--identity="" \
--chain-id=crossfi-evm-testnet-1 \
--from= \
--gas="1000000" \
--gas-prices="30000000000mpx"
crossfid tx staking edit-validator \
--details="" \
--chain-id=crossfi-evm-testnet-1 \
--from= \
--gas="1000000" \
--gas-prices="30000000000mpx"
crossfid tx staking edit-validator \
--commission-rate=0. \
--chain-id=crossfi-evm-testnet-1 \
--from= \
--gas="1000000" \
--gas-prices="30000000000mpx"
crossfid tx staking edit-validator \
--new-moniker="" \
--identity="" \
--chain-id=crossfi-evm-testnet-1 \
--from= \
--gas="1000000" \
--gas-prices="30000000000mpx"
crossfid tx staking edit-validator \
--new-moniker="" \
--details="" \
--chain-id=crossfi-evm-testnet-1 \
--from= \
--gas="1000000" \
--gas-prices="30000000000mpx"
crossfid tx staking edit-validator \
--new-moniker="" \
--commission-rate=0. \
--chain-id=crossfi-evm-testnet-1 \
--from= \
--gas="1000000" \
--gas-prices="30000000000mpx"
crossfid tx staking edit-validator \
--identity="" \
--details="" \
--chain-id=crossfi-evm-testnet-1 \
--from= \
--gas="1000000" \
--gas-prices="30000000000mpx"
crossfid tx staking edit-validator \
--identity="" \
--commission-rate=0. \
--chain-id=crossfi-evm-testnet-1 \
--from= \
--gas="1000000" \
--gas-prices="30000000000mpx"
crossfid tx staking edit-validator \
--details="" \
--commission-rate=0. \
--chain-id=crossfi-evm-testnet-1 \
--from= \
--gas="1000000" \
--gas-prices="30000000000mpx"
crossfid tx staking edit-validator \
--new-moniker="" \
--identity="" \
--details="" \
--chain-id=crossfi-evm-testnet-1 \
--from= \
--gas="1000000" \
--gas-prices="30000000000mpx"
crossfid tx staking edit-validator \
--new-moniker="" \
--identity="" \
--commission-rate=0. \
--chain-id=crossfi-evm-testnet-1 \
--from= \
--gas="1000000" \
--gas-prices="30000000000mpx"
crossfid tx staking edit-validator \
--new-moniker="" \
--details="" \
--commission-rate=0. \
--chain-id=crossfi-evm-testnet-1 \
--from= \
--gas="1000000" \
--gas-prices="30000000000mpx"
crossfid tx staking edit-validator \
--identity="" \
--details="" \
--commission-rate=0. \
--chain-id=crossfi-evm-testnet-1 \
--from= \
--gas="1000000" \
--gas-prices="30000000000mpx"
crossfid tx staking edit-validator \
--new-moniker="" \
--identity="" \
--details="" \
--commission-rate=0. \
--chain-id=crossfi-evm-testnet-1 \
--from= \
--gas="1000000" \
--gas-prices="30000000000mpx"
crossfid tx staking edit-validator \
--new-moniker="" \
--identity="" \
--details="" \
--website="" \
--security-contact= \
--chain-id=crossfi-evm-testnet-1 \
--commission-rate=0. \
--from= \
--gas="1000000" \
--gas-prices="30000000000mpx"




crossfid status 2>&1 | jq .ValidatorInfocrossfid q staking validator $(crossfid keys show  --bech val -a)crossfid q slashing signing-info $(crossfid tendermint show-validator)crossfid tx slashing unjail --broadcast-mode=block --from  --chain-id crossfi-evm-testnet-1 --gas="1000000" --gas-prices="30000000000mpx"crossfid q staking validators -oj --limit=2000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " 	 " + .description.moniker' | sort -gr | nl[[ $(crossfid q staking validator $(crossfid keys show  --bech val -a) -oj | jq -r .consensus_pubkey.key) = $(crossfid status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "Your key status is ok" || echo -e "Your key status is error"crossfid q slashing signing-info $(crossfid tendermint show-validator)
Token management
crossfid tx distribution withdraw-all-rewards --from  --chain-id crossfi-evm-testnet-1 --gas="1000000" --gas-prices="30000000000mpx"crossfid tx distribution withdraw-rewards $(crossfid keys show  --bech val -a) --commission --from  --chain-id crossfi-evm-testnet-1 --gas="1000000" --gas-prices="30000000000mpx"crossfid tx staking delegate $(crossfid keys show  --bech val -a) 000000000000000000mpx --from  --chain-id crossfi-evm-testnet-1 --gas="1000000" --gas-prices="30000000000mpx"crossfid tx staking redelegate $(crossfid keys show  --bech val -a)  000000000000000000mpx --from  --chain-id crossfi-evm-testnet-1 --gas="1000000" --gas-prices="30000000000mpx"crossfid tx staking delegate  000000000000000000mpx --from  --chain-id crossfi-evm-testnet-1 --gas="1000000" --gas-prices="30000000000mpx"crossfid tx staking unbond $(crossfid keys show  --bech val -a) 000000000000000000mpx --from  --chain-id crossfi-evm-testnet-1 --gas="1000000" --gas-prices="30000000000mpx"crossfid tx bank send   000000000000000000mpx --from  --chain-id crossfi-evm-testnet-1 --gas="1000000" --gas-prices="30000000000mpx"
Governance
View Proposal
crossfid query gov proposal 
Vote
crossfid tx gov vote   --from  --chain-id crossfi-evm-testnet-1 --gas="1000000" --gas-prices="30000000000mpx"
Utility
Set Custom Port




CUSTOM_PORT=
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}660\"%" $HOME/.mineplex-chain/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${CUSTOM_PORT}317\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}080\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${CUSTOM_PORT}090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${CUSTOM_PORT}091\"%; s%^address = \"127.0.0.1:8545\"%address = \"0.0.0.0:${CUSTOM_PORT}545\"%; s%^ws-address = \"127.0.0.1:8546\"%ws-address = \"0.0.0.0:${CUSTOM_PORT}546\"%" $HOME/.mineplex-chain/config/app.toml
Enable Indexing usually enabled by default
sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.mineplex-chain/config/config.toml
Disable Indexing
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.mineplex-chain/config/config.toml
Reset Chain Data
crossfid tendermint unsafe-reset-all --home $HOME/.mineplex-chain --keep-addr-book
Delete Node
WARNING! This action will remove all files related to the crossfid chain! Make sure you have backed up your priv_validator_key.json
sudo systemctl stop crossfid && \
sudo systemctl disable crossfid && \
rm /etc/systemd/system/crossfid.service && \
sudo systemctl daemon-reload && \
cd $HOME && \
rm -rf .mineplex-chain && \
rm -rf $(which crossfid)
Genesis
wget -O $HOME/.mineplex-chain/config/genesis.json "https://snap.crossfi.kynraze.com/genesis.json"
Addrbook
Update every 1h
wget -O $HOME/.mineplex-chain/config/addrbook.json "https://snap.crossfi.kynraze.com/addrbook.json"
List Peers:
PEERS= 
sed -i -e "s|^persistent_peers *=.*|persistent_peers = "$PEERS"|" $HOME/.mineplex-chain/config/config.toml
In case our endpoint experiences an issue, we use the Cosmos directory endpoint as a backup.
Api Endpoint
RPC Endpoint
gRPC Endpoint
Auto Installation
Script Info
Binary
:
FOLDER
:
Golang Version
:
Snapshot
:
From Stratch ||
Coming Soon
With StateSync
With Snapshot ||
Manual Installation
Setting vars




CROSSFI_NODENAME=""

save and import variable

echo "export CROSSFI_NODENAME=$CROSSFI_NODENAME" >> $HOME/.bash_profile if [ ! $WALLET ]; then echo "export WALLET=wallet" >> $HOME/.bash_profile fi echo "export CROSSFI_CHAIN_ID=crossfi-evm-testnet-1" >> $HOME/.bash_profile source $HOME/.bash_profile

Install and update dependencies

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

Install Go

ver="1.20" cd $HOME 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

Check golang

go version

Install Binary

wget https://github.com/crossfichain/crossfi-node/releases/download/v0.3.0-prebuild3/crossfi-node_0.3.0-prebuild3_linux_amd64.tar.gz && tar -xf crossfi-node_0.3.0-prebuild3_linux_amd64.tar.gz tar -xvf crossfi-node_0.3.0-prebuild3_linux_amd64.tar.gz chmod +x $HOME/bin/crossfid mv $HOME/bin/crossfid $HOME/go/bin rm -rf crossfi-node_0.3.0-prebuild3_linux_amd64.tar.gz $HOME/bin

Verify that Binary successfully installed

crossfid version --long

Configure Node
Set Gas Prices

sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"10000000000000mpx\"|" $HOME/.mineplex-chain/config/app.toml

Custom Port (Optional)




CUSTOM_PORT= sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${CUSTOM_PORT}658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${CUSTOM_PORT}657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${CUSTOM_PORT}060\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${CUSTOM_PORT}656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${CUSTOM_PORT}660\"%" $HOME/.mineplex-chain/config/config.toml sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${CUSTOM_PORT}317\"%; s%^address = \":8080\"%address = \":${CUSTOM_PORT}080\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${CUSTOM_PORT}090\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${CUSTOM_PORT}091\"%; s%^address = \"127.0.0.1:8545\"%address = \"0.0.0.0:${CUSTOM_PORT}545\"%; s%^ws-address = \"127.0.0.1:8546\"%ws-address = \"0.0.0.0:${CUSTOM_PORT}546\"%" $HOME/.mineplex-chain/config/app.toml

Set Config Binary

crossfid config chain-id $CROSSFI_CHAIN_ID crossfid config keyring-backend file crossfid config node tcp://localhost:657 rm -rf testnet ~/.mineplex-chain git clone https://github.com/crossfichain/testnet.git mv $HOME/testnet/ $HOME/.mineplex-chain/

Initialize

crossfid init $CROSSFI_NODENAME --chain-id $CROSSFI_CHAIN_ID

Get Genesis and Addrbook
Download genesis
wget -O $HOME/.mineplex-chain/config/genesis.json "https://snap.crossfi.kynraze.com/genesis.json"
Download Addrbook
wget -O $HOME/.mineplex-chain/config/addrbook.json "https://snap.crossfi.kynraze.com/addrbook.json"
Set Seeds and Peers

PEERS="" sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.mineplex-chain/config/config.toml sed -i -e "s|^seeds *=.*|seeds = \"\"|" $HOME/.mineplex-chain/config/config.toml

Config pruning

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

Create service file and start node
Create Service

sudo tee /etc/systemd/system/crossfid.service > /dev/null << EOF [Unit] Description=crossfid After=network-online.target

[Service] User=$USER ExecStart=$(which crossfid) start --home $HOME/.mineplex-chain Restart=on-failure RestartSec=3 LimitNOFILE=65535

[Install] WantedBy=multi-user.target EOF

Download Snapshot (Optional)

curl -o - -L https://snap.crossfi.kynraze.com/snapshot-latest.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.mineplex-chain

Start Service

sudo systemctl daemon-reload sudo systemctl enable crossfid sudo systemctl restart crossfid sudo journalctl -fu crossfid -o cat

Snapshots are taken automatically every 6 hours
Snapshot Info
Block Height
:
Size
:
Block Time
:
Indexer
:
Pruning
:
pruning-keep-recent
:
pruning-keep-every
: 0
pruning-interval
:
Currently, we do not provide snapshots
Instruction
# Update & install lz4(Required)
sudo apt install snapd lz4 -y

# Reset Chain Data
sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1false|" $HOME/.mineplex-chain/config/config.toml
sudo systemctl stop crossfid
cp $HOME/.mineplex-chain/data/priv_validator_state.json $HOME/.mineplex-chain/priv_validator_state.json.backup
rm -rf $HOME/.mineplex-chain/data

# Download Data Snapshot
curl -o - -L https://snap.crossfi.kynraze.com/snapshot-latest.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.mineplex-chain
mv $HOME/.mineplex-chain/priv_validator_state.json.backup $HOME/.mineplex-chain/data/priv_validator_state.json

# Restart
sudo systemctl restart crossfid
sudo journalctl -fu crossfid -o cat
About State Sync
With fast sync a node is downloading all of the data of an application from genesis and verifying it. With state sync your node will download data related to the head or near the head of the chain and verify the data. This leads to drastically shorter times for joining a network.
State Sync Configuration
Pruning
:
pruning-keep-recent
:
pruning-keep-every
: 0
pruning-interval
:
Instruction
systemctl stop crossfid
crossfid tendermint unsafe-reset-all --home $HOME/.mineplex-chain --keep-addr-book

STATE_SYNC_RPC=""

LATEST_HEIGHT=$(curl -s $STATE_SYNC_RPC/block | jq -r .result.block.header.height) \
SYNC_BLOCK_HEIGHT=$(($LATEST_HEIGHT - 2000)) \
SYNC_BLOCK_HASH=$(curl -s "$STATE_SYNC_RPC/block?height=$SYNC_BLOCK_HEIGHT" | jq -r .result.block_id.hash)
echo $LATEST_HEIGHT $SYNC_BLOCK_HEIGHT $SYNC_BLOCK_HASH

PEERS=""
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.mineplex-chain/config/config.toml

sed -i.bak -e "s|^enable *=.*|enable = true|" $HOME/.mineplex-chain/config/config.toml
sed -i.bak -e "s|^rpc_servers *=.*|rpc_servers = \"$STATE_SYNC_RPC,$STATE_SYNC_RPC\"|" \
$HOME/.mineplex-chain/config/config.toml
sed -i.bak -e "s|^trust_height *=.*|trust_height = $SYNC_BLOCK_HEIGHT|" \
$HOME/.mineplex-chain/config/config.toml
sed -i.bak -e "s|^trust_hash *=.*|trust_hash = \"$SYNC_BLOCK_HASH\"|" \
$HOME/.mineplex-chain/config/config.toml

systemctl restart crossfid && journalctl -fu crossfid -o cat