XOLANA X1 Testnet

Initial settings

set XOLANA cluster:
solana config set -u https://xolana.xen.network
check current cluster configuration:
solana config get
logrotate for creating 5 x separate log.txt every hour if > 100MB:
cd /etc/
sudo nano xolana-log-logrotate.conf

paste the following code and replace USERNAME with your linux user:

/home/USERNAME/solanalabs/log.txt
{
  su USERNAME USERNAME
  missingok
  size 100M
  copytruncate
  rotate 5
}
sudo crontab -e

paste the following code:

# run logrotate every 1h for the logfile: /home/USERNAME/solanalabs/log.txt of the process: "nohup solana-validator..."
0 * * * * /usr/sbin/logrotate /etc/xolana-log-logrotate.conf

Validator start

change path to solanalabs:
cd && cd solanalabs
start the screen:
screen -dmS xolana && screen -r xolana
start the solana-validator:
nohup ./target/release/solana-validator --identity identity.json --vote-account vote.json --known-validator Abt4r6uhFs7yPwR3jT5qbnLjBtasgHkRVAd1W6H5yonT --known-validator 5NfpgFCwrYzcgJkda9bRJvccycLUo3dvVQsVAK2W43Um --only-known-rpc --log ./log.txt --rpc-port 8899 --full-rpc-api --dynamic-port-range 8000-8020 --entrypoint xolana.xen.network:8001 --entrypoint owlnet.dev:8001 --wal-recovery-mode skip_any_corrupted_record --limit-ledger-size 50000000 --enable-rpc-transaction-history --enable-extended-tx-metadata-storage --rpc-pubsub-enable-block-subscription --full-snapshot-interval-slots 5000 --maximum-incremental-snapshots-to-retain 10 --maximum-full-snapshots-to-retain 50 &

Validator restart / update

exit your validator process:
solana-validator exit -f
check running validator process:
ps aux | grep solana-validator
remove ledger (if necessary):
rm -rf ledger
change logfile name:
mv log.txt log_YYYYMMDD.txt
start the solana-validator:
nohup ./target/release/solana-validator --identity identity.json --vote-account vote.json --known-validator Abt4r6uhFs7yPwR3jT5qbnLjBtasgHkRVAd1W6H5yonT --known-validator 5NfpgFCwrYzcgJkda9bRJvccycLUo3dvVQsVAK2W43Um --only-known-rpc --log ./log.txt --rpc-port 8899 --full-rpc-api --dynamic-port-range 8000-8020 --entrypoint xolana.xen.network:8001 --entrypoint owlnet.dev:8001 --wal-recovery-mode skip_any_corrupted_record --limit-ledger-size 50000000 --enable-rpc-transaction-history --enable-extended-tx-metadata-storage --rpc-pubsub-enable-block-subscription --full-snapshot-interval-slots 5000 --maximum-incremental-snapshots-to-retain 10 --maximum-full-snapshots-to-retain 50 &

Validator monitoring

to show the logfile:
tail -f log.txt
to check catching up:
solana catchup --our-localhost
to check the ledger:
solana-validator --ledger ./ledger monitor
to list all validators:
solana gossip
to list all voting validators:
solana validators
to show current block production:
solana block-production
to show block production for a given epoch "1234":
solana block-production --epoch 1234
to list all leaders schedule in current epoch:
solana leader-schedule
to list the leader schedule for a given validator in current epoch:
solana leader-schedule | grep 6sEFEXRYMHAad8gXbn1usu3zncv6mdCk393xgwmk6Yr6
solana leader-schedule | grep 5mYGwPhcvACu6VANimW5wikS13W69nfPnGjQrPkLma5e
to check public address for a given account "id.json":
solana-keygen pubkey id.json
to show the balance of an account:
solana balance ACCOUNT_ADDRESS
to show the status of stake account:
solana stake-account STAKE_ACCOUNT_ADDRESS
to show the status of vote account:
solana stake-account VOTE_ACCOUNT_ADDRESS
to show the stakes of vote account:
solana stakes VOTE_ACCOUNT_ADDRESS

Validator information

to list all validators information:
solana validator-info get
to set validator information (after that the INFO_ADDRESS will be created):
cd && cd solanalabs
solana validator-info publish "VALIDATOR_NAME" --website "https://www.com" --icon-url "https://www.com/logo.png" --keypair identity.json --details "validator aligator"
to change validator information:
cd && cd solanalabs
solana validator-info publish "VALIDATOR_NAME" --website "https://www.com" --icon-url "https://www.com/logo.png" --info-pubkey INFO_ADDRESS --keypair identity.json --details "validator operator"

Validator vote's commission

to change commission of vote account (possible to change during the first half of any epoch):
cd && cd solanalabs
solana vote-update-commission <VOTE_ACCOUNT_ADDRESS> <PERCENTAGE> <AUTHORIZED_KEYPAIR (filepath to withdrawer)>