CrossFi is a technology that expands the influence of blockchain and gives users the opportunity to use clear and accessible financial instruments every day anywhere in the world. CrossFi App is the first combination of financial services and functions of full-fledged banking, debit cards, a non-custodial model of mutual settlements and the absence of intermediaries in traditional financial services on the crypto market.
Valoper | mxvaloper1hmqljvhlcchyp4t876kxm762ecspd88djyzgcm |
---|---|
Version | Loading... |
Stage | Testnet |
Last Block | Loading... |
Chain | Loading... |
Status | Loading... |
Explorer | Crossfi Finance |
Snapshot | Loading... |
Update and install packages for compiling#### From user with sudoers access
$ sudo su -
# apt update -y && sudo apt install curl git jq lz4 lzma build-essential zsh -y
Notes : make sure dont running validator used user root !!!
Notes :
We never used user salinem in our production, This user is just an example.
We assume you have already mounted big size DISK in /mainnet
# mkdir -p /mainnet && useradd -m -d /mainnet/salinem -s /bin/zsh salinem
salinem ALL=(ALL) NOPASSWD: /usr/bin/systemctl daemon-reload, \
/usr/bin/systemctl * crossfi-node*, \
/usr/bin/journalctl -fu *, \
/usr/bin/cp -rf /mainnet/salinem/systemd/* /etc/systemd/system/*, \
/usr/bin/cp /mainnet/salinem/systemd/* /etc/systemd/system/*
We create FHS in /mainnet/salinem#### From user with sudoers access
$ sudo su - salinem
#### OR If you started from user root do this
# su - salinem
/ /bin /etc /mainnet/salinem | | | |---bin | | |------go | | | |---bin | |---conf | |---source | |---systemd | |---lib | |---tmp /dev /mntCreate Directory, make sure you have already login with user salinem
#### Create FHS
mkdir -p ${HOME}/tmp
mkdir -p ${HOME}/lib
mkdir -p ${HOME}/bin
mkdir -p ${HOME}/conf
mkdir -p ${HOME}/source
mkdir -p ${HOME}/systemd
cd ${HOME}/tmp
wget -c
filename=$(ls -1)
check_extension_gz=$(echo $filename | grep -i "tar.gz" | wc -l)
check_extension_zip=$(echo $filename | grep -i "zip" | wc -l)
check_extension_elf=$(echo $filename | egrep -i "zip|tar.gz" | wc -l)
if [ $check_extension_gz -eq 1 ]
then
check_data=$(tar tf ${filename} | grep )
tar xvf ${filename} -C .
mv ${check_data} ${HOME}/bin/
fi
if [ $check_extension_unzip -eq 1 ]
then
unzip ${filename}
check_data=$(ls -1 | grep -v ${filename})
mv $check_data ${HOME}/bin/
fi
if [ $check_extension_elf -eq 0 ]
mv crossfid ${HOME}/bin
fi
# Set Go path to $PATH variable
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> $HOME/.zshrc
echo "export GOPATH="${HOME}/lib" >> $HOME/.zshrc
echo "export GOMAXPROCS=2" >> $HOME/.zshrc
echo "export CHAIN_ID=crossfi-evm-testnet-1" >> $HOME/.zshrc
echo "export WALLET_NAME=mywallet" >> $HOME/.zshrc
echo "export MONIKER=MYNODE" >> $HOME/.zshrc
source ~/.zshrc
or # Set Go path to $PATH variable
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> $HOME/.bashrc
echo "export GOPATH="${HOME}/lib" >> >> $HOME/.bahsrc
echo "export GOMAXPROCS=2" >> $HOME/.bashrc
echo "export CHAIN_ID=crossfi-evm-testnet-1" >> $HOME/.bashrc
echo "export WALLET_NAME=mywallet" >> $HOME/.bashrc
echo "export MONIKER=MYNODE" >> $HOME/.bashrc
source ~/.bashrc
crossfid init --chain-id $CHAIN_ID "$MONIKER"
curl -Ls https://roomit.xyz/genesis/testnet/crossfi/genesis.json > $HOME/.crossfid/config/genesis.json
curl -Ls https://roomit.xyz/addressbook/testnet/crossfi/addrbook.json > $HOME/.crossfid/config/genesis.json
If you have conflicted port or running tendermint with 1 environment node. you need change the ports otherwise you have conflicted ports.
PROXY_APP="16505"
RPC="16705"
PROF_RPC="1105"
P2P="16605"
METRICS="16805"
API="1205"
GRPC="1305"
WEBGRPC="1405"
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${PROXY_APP}\"%" $HOME/.crossfid/config/config.toml
sed -i.bak -e "s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${RPC}\"%" $HOME/.crossfid/config/config.toml
sed -i.bak -e "s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${PROF_RPC}\"%" $HOME/.crossfid/config/config.toml
sed -i.bak -e "s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${P2P}\"%" $HOME/.crossfid/config/config.toml
sed -i.bak -e "s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${METRICS}\"%" $HOME/.crossfid/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${API}\"%" $HOME/.crossfid/config/app.toml
sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${GRPC}\"%" $HOME/.crossfid/config/app.toml
sed -i.bak -e "s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${WEBGRPC}\"%" $HOME/.crossfid/config/app.toml
sed -i \
-e 's|^pruning *=.*|pruning = "custom"|' \
-e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
-e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
-e 's|^pruning-interval *=.*|pruning-interval = "19"|' \
$HOME/.crossfid/config/app.toml
The first we made in user salinem ${HOME}/systemd/#### From user with sudoers access
$ sudo su -
cat > ${HOME}/systemd/crossfi-node.service << EOF
[Unit]
Description= Tendermint Daemon
After=network-online.target
[Service]
User=salinem
Group=salinem
ExecStart=/mainnet/salinem/bin/crossfid start --home=/mainnet/salinem/.crossfid
Restart=on-failure
RestartSec=3
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
EOF
Copy from ${HOME}/systemd/crossfi-node.service to /etc/systemd/system/ sudo cp -rf /mainnet/salinem/systemd/crossfi-node.service /etc/systemd/system/
sudo systemctl daemon-reload
Enable Service when booting sudo systemctl enable crossfi-node.service
Start Service sudo systemctl start crossfi-node.service
Check Service and Log sudo systemctl status crossfi-node.service
sudo journalctl -fu crossfi-node.service
statesync.sh
, edit this file and put code below
#!/bin/bash
SNAP_RPC="https://rpc.crossfi.roomit.xyz:443"
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 2000)); \
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.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\"|" $HOME/.crossfid/config/config.toml
2. Stop Service
sudo systemctl stop crossfi-node
Notes: for systemd init blockchain, adjust with your name of service. Example : systemctl stop crossfid
3. Execute Script
bash statesync.sh
4. Reset Node
# On some tendermint chains
crossfid unsafe-reset-all
# On other tendermint chains
crossfid tendermint unsafe-reset-all --home $HOME/.crossfid --keep-addr-book
5. Start Services
sudo systemctl start crossfi-node
sudo apt install lzma -y
2. Download Snapshot
SNAPSHOT=$(curl -s https://roomit.xyz/snapshot/testnet/crossfi/ | grep -i "<a href=" | grep lzma | grep -v md5sum | awk -F"=" '{print $2}' | sed 's/"//g' | sed "s/>//g" | sed "s/ //g")
wget -c https://roomit.xyz/snapshot/testnet/crossfi/${SNAPSHOT} --inet4-only
3. Stop Your Service Blockchain
sudo systemctl stop crossfi-node
4. Backup State ValidatorNotes : for systemd init blockchain, adjust with your name of service. Example : systemctl stop crossfid
cp ${HOME}/.crossfid/data/priv_validator_state.json ${HOME}/.crossfid/priv_validator_state.json
4. Reset Node Blockchain
crossfid tendermint unsafe-reset-all --home $HOME/.crossfid --keep-addr-book
5. Extract Data Snapshot
lzma -d -c ${SNAPSHOT} | tar -xv -C $HOME/.crossfid
6. Restore State Validator
cp ${HOME}/.crossfid/priv_validator_state.json ${HOME}/.crossfid/data/priv_validator_state.json
7. Start Node Blockchain
sudo systemctl start crossfi-node
https://rpc.crossfi.roomit.dev
https://api.crossfi.roomit.dev
grpc.crossfi.roomit.dev:8443
Assume, you have done install grpcurl
grpcurl grpc.crossfi.roomit.dev:8443 list
sudo systemctl stop crossfi-node
Download And DeployNotes : for systemd init blockchain, adjust with your name of service. Example : systemctl stop crossfid
curl -Ls https://roomit.xyz/genesis/testnet/crossfi/genesis.json > $HOME/.crossfid/config/genesis.json
Start Your Service Blockchain sudo systemctl start crossfi-node
sudo systemctl stop crossfi-node
Download And DeployNotes : for systemd init blockchain, adjust with your name of service. Example : systemctl stop crossfid
curl -Ls https://roomit.xyz/addressbook/testnet/crossfi/addrbook.json > $HOME/.crossfid/config/genesis.json
Start Your Service Blockchain sudo systemctl start crossfi-node
08bc9afd0cac4ae6cf8f1877920b0cc7e58a6f42@seeds.tendermint.roomit.dev:40005
b7f6da1a8aea371206b4d234398c4888c0564066@p2p.tendermint.roomit.dev:16605
PERSISTENT_PEERS="Data Processing"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PERSISTENT_PEERS\"/" ${HOME}/.crossfid/config/config.toml
sed -i \
-e 's|^pruning *=.*|pruning = "custom"|' \
-e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
-e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
-e 's|^pruning-interval *=.*|pruning-interval = "19"|' \
$HOME/.crossfid/config/app.toml
If you have conflicted port or running tendermint with 1 environment node. you need change the ports otherwise you have conflicted ports.
PROXY_APP="16505"
RPC="16705"
PROF_RPC="1105"
P2P="16605"
METRICS="16805"
API="1205"
GRPC="1305"
WEBGRPC="1405"
sed -i.bak -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:${PROXY_APP}\"%" $HOME/.crossfid/config/config.toml
sed -i.bak -e "s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:${RPC}\"%" $HOME/.crossfid/config/config.toml
sed -i.bak -e "s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:${PROF_RPC}\"%" $HOME/.crossfid/config/config.toml
sed -i.bak -e "s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:${P2P}\"%" $HOME/.crossfid/config/config.toml
sed -i.bak -e "s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":${METRICS}\"%" $HOME/.crossfid/config/config.toml
sed -i.bak -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:${API}\"%" $HOME/.crossfid/config/app.toml
sed -i.bak -e "s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:${GRPC}\"%" $HOME/.crossfid/config/app.toml
sed -i.bak -e "s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:${WEBGRPC}\"%" $HOME/.crossfid/config/app.toml
echo "export RPC="http://localhost:$(head -n100 ${HOME}/.crossfid/config/config.toml | grep "[rpc]" | grep "^laddr" | awk -F":" '{print $3}' | tr -d "\"" | tr "\n" " " |sed "s/ //")"" >> ${HOME}/.bashrc
echo "export UNIT="mpx"" >> ${HOME}/.bashrc
echo "export MONIKER="NODE_DEPLOY_ROOMIT_SCRIPT"" >> ${HOME}/.bashrc
echo "export CHAIN_ID="crossfi-evm-testnet-1"" >> ${HOME}/.zshrc
echo "export PROFILE="PGP_KEY_OF_KEYBASE"" >> ${HOME}/.bashrc
echo "export DETAILS="Describes Your Validator"" >> ${HOME}/.bashrc
echo "export WEBSITE="https://yourwebsite.com"" >> ${HOME}/.bashrc
source ${HOME}/.bashrc
If you using zsh shell echo "export RPC="http://localhost:$(head -n100 ${HOME}/.crossfid/config/config.toml | grep "[rpc]" | grep "^laddr" | awk -F":" '{print $3}' | tr -d "\"" | tr "\n" " " |sed "s/ //")"" >> ${HOME}/.zshrc
echo "export UNIT="mpx"" >> ${HOME}/.zshrc
echo "export MONIKER="NODE_DEPLOY_ROOMIT_SCRIPT"" >> ${HOME}/.zshrc
echo "export CHAIN_ID="crossfi-evm-testnet-1"" >> ${HOME}/.zshrc
echo "export PROFILE="PGP_KEY_OF_KEYBASE"" >> ${HOME}/.zshrc
echo "export DETAILS="Describes Your Validator"" >> ${HOME}/.zshrc
echo "export WEBSITE="https://yourwebsite.com"" >> ${HOME}/.zshrc
source ${HOME}/.zshrc
--gas auto --gas-prices 10000000000000mpx --gas-adjustment 1.5
We assume,You have complete identities. Moniker, Website, Security and Details Your Validator Install jq package for management json format
Ubuntu
apt install jq
CentOS
yum install jq
Arch Linux
pacman -S jq
crossfid keys add mywallet --home ${HOME}/.crossfid
crossfid keys add mywallet --recover --home ${HOME}/.crossfid
Recovery key with passpharse crossfid keys add mywallet --recover --keyring-backend os --home ${HOME}/.crossfid
crossfid keys list --home ${HOME}/.crossfid
crossfid keys delete mywallet --home ${HOME}/.crossfid
crossfid keys export mywallet --home ${HOME}/.crossfid
crossfid keys import mywallet mywallet.backup --home ${HOME}/.crossfid
for mywallet in `crossfid keys list --home ${HOME}/.crossfid --output json| jq -r ".[] .address"`
do
crossfid q bank balances ${mywallet} --home ${HOME}/.crossfid --chain-id ${CHAIN_ID} --node ${RPC}
done
crossfid q bank balances mywallet_public_address --home ${HOME}/.crossfid --chain-id ${CHAIN_ID} --node ${RPC}
We assume,You have complete identities. Moniker, Website, Security and Details Your Validator Install jq package for management json format
Ubuntu
apt install jq
CentOS
yum install jq
Arch Linux
pacman -S jq
crossfid tx staking create-validator \
--amount=1000000${UNIT} \
--pubkey=$(crossfid tendermint show-validator --home ${HOME}/.crossfid) \
--moniker="${MONIKER}" \
--identity="${PROFILE}" \
--details="${DETAILS}" \
--website="${WEBSITE}" \
--chain-id=${CHAIN_ID} \
--commission-rate=0.05 \
--commission-max-rate=0.20 \
--commission-max-change-rate=0.01 \
--min-self-delegation=1 \
--from=mywallet \
--node ${RPC} \
--home ${HOME}/.crossfid \
--gas auto --gas-prices 10000000000000mpx --gas-adjustment 1.5 \
-y
crossfid tx staking edit-validator \
--pubkey=$(crossfid tendermint show-validator --home ${HOME}/.crossfid) \
--moniker="${MONIKER}" \
--identity="${PROFILE}" \
--details="${DETAILS}" \
--website="${WEBSITE}" \
--chain-id=${CHAIN_ID} \
--commission-rate=0.05 \
--from=mywallet \
--node ${RPC} \
--home ${HOME}/.crossfid \
--gas auto --gas-prices 10000000000000mpx --gas-adjustment 1.5 \
-y
crossfid status 2>&1 | jq .ValidatorInfo
crossfid status 2>&1 | jq .SyncInfo
echo $(crossfid tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.crossfid/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
curl -sS ${RPC}/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
crossfid tx slashing unjail \
--from mywallet \
--chain-id ${CHAIN_ID} \
--home ${HOME}/.crossfid \
--node ${RPC} \
--gas auto --gas-prices 10000000000000mpx --gas-adjustment 1.5 \
-y
crossfid query slashing signing-info $(crossfid tendermint show-validator) \
--node ${RPC} \
--home ${HOME}/.crossfid
crossfid 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
crossfid 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
crossfid query staking validator \
$(crossfid keys show \
$(crossfid keys list --home ${HOME}/.crossfid --output json| jq -r ".[] .address" | tail -n1) \
--bech val -a) \
--chain-id ${CHAIN_ID} \
--node $RPC
crossfid tx distribution withdraw-all-rewards \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.crossfid \
--gas auto --gas-prices 10000000000000mpx --gas-adjustment 1.5 \
-y
crossfid tx distribution withdraw-rewards $(crossfid keys show mywallet --bech val -a) \
--commission \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.crossfid \
--gas auto --gas-prices 10000000000000mpx --gas-adjustment 1.5 \
-y
crossfid tx staking delegate prefixVALOPExxxxxx 100000${UNIT} \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.crossfid \
--gas auto --gas-prices 10000000000000mpx --gas-adjustment 1.5 \
-y
crossfid tx staking redelegate $(crossfid keys show wallet --bech val -a) 100000${UNIT} \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.crossfid \
--gas auto --gas-prices 10000000000000mpx --gas-adjustment 1.5 \
-y
crossfid tx staking unbond $(crossfid keys show wallet --bech val -a) 100000${UNIT} \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.crossfid \
--gas auto --gas-prices 10000000000000mpx --gas-adjustment 1.5 \
-y
crossfid tx bank send wallet 100000${UNIT} \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.crossfid \
--gas auto --gas-prices 10000000000000mpx --gas-adjustment 1.5 \
-y
We assume,You have complete identities. Moniker, Website, Security and Details Your Validator Install jq package for management json format
Ubuntu
apt install jq
CentOS
yum install jq
Arch Linux
pacman -S jq
crossfid query gov proposals
### vote yes
crossfid tx gov vote 1 yes \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.crossfid \
--gas auto --gas-prices 10000000000000mpx --gas-adjustment 1.5 \
-y
### vote no
crossfid tx gov vote 1 no \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.crossfid \
--gas auto --gas-prices 10000000000000mpx --gas-adjustment 1.5 \
-y
### vote abstain
crossfid tx gov vote 1 abstain \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.crossfid \
--gas auto --gas-prices 10000000000000mpx --gas-adjustment 1.5 \
-y
### vote No With Veto
crossfid tx gov vote 1 nowithveto \
--from mywallet \
--chain-id ${CHAIN_ID} \
--node $RPC \
--home ${HOME}/.crossfid \
--gas auto --gas-prices 10000000000000mpx --gas-adjustment 1.5 \
-y
Validator | Details | Commission | Status | Jailed | Staked |
---|
Proposal | Description | Status | Voting Start | Voting End | Total Voted | Participant |
---|
Network scan is tools for check node where the node open direct port rpc from internet without proxy.
This data collect from our RPC only https://rpc.crossfi.roomit.dev
P2P | Network | Moniker | RPC | Remote IP | Status |
---|
IP Address | City | Region | Country | Latitude | Longitude |
---|