- 4 or more physical CPU cores
- At least 500GB of SSD disk storage
- At least 32GB of memory (RAM)
- At least 100mbps network bandwidth
wget -O lambda.sh https://raw.githubusercontent.com/Agus1224/NODE_TESTNET/main/LAMBDA/lambda.sh && chmod +x lambda.sh && ./lambda.sh
Here you have to put name of your moniker (validator) that will be visible in explorer
NODENAME=<YOUR_MONIKER>
Change : <YOUR_MONIKER>
To your node moniker whatever u like
Save and import variables into system
echo "export NODENAME=$NODENAME" >> $HOME/.bash_profile
if [ ! $WALLET ]; then
echo "export WALLET=wallet" >> $HOME/.bash_profile
fi
echo "export LAMBDA_CHAIN_ID=lambdatest_92001-1" >> $HOME/.bash_profile
source $HOME/.bash_profile
sudo apt update && sudo apt upgrade -y
sudo apt install curl build-essential git wget jq make gcc tmux chrony -y
if ! [ -x "$(command -v go)" ]; then
ver="1.18.2"
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
fi
git clone https://github.com/LambdaIM/lambdavm.git
cd lambdavm
make build
sudo cp $HOME/lambdavm/build/lambdavm /usr/local/bin
lambdavm config chain-id $LAMBDA_CHAIN_ID
lambdavm config keyring-backend file
lambdavm init $NODENAME --chain-id $LAMBDA_CHAIN_ID
wget https://raw.githubusercontent.com/LambdaIM/testnets/main/lambdatest_92001-1/genesis.json
mv genesis.json ~/.lambdavm/config/
SEEDS="[email protected]:26656"
PEERS="[email protected]:26656"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.lambdavm/config/config.toml
sed -i -e "s/^timeout_commit *=.*/timeout_commit = \"2s\"/" $HOME/.lambdavm/config/config.toml
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0001ulamb\"/" $HOME/.lambdavm/config/app.toml
sudo tee /etc/systemd/system/lambdavm.service > /dev/null <<EOF
[Unit]
Description=lambdavm
After=network-online.target
[Service]
User=$USER
ExecStart=$(which lambdavm) start --home $HOME/.lambdavm
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable lambdavm
sudo systemctl restart lambdavm && sudo journalctl -u lambdavm -f -o cat
source $HOME/.bash_profile
Note : You have to synced to the lastest block , check the sync status with this command
lambdavm status 2>&1 | jq .SyncInfo
Create validator wallet using this command, Dont forget to save the Mnemonic!
NOTE : it is recommended to use wallet you fill in the form
lambdavm keys add $WALLET
(OPTIONAL) To recover using your previous saved wallet
lambdavm keys add $WALLET --recover
To get current list of wallet
lambdavm keys list --keyring-backend file
To get private key of validator wallet (SAVE IT SOMEWHERE SAFE!)
lambdavm keys export $WALLET --unarmored-hex --unsafe
LAMBDA_WALLET_ADDRESS=$(lambdavm keys show $WALLET -a)
LAMBDA_VALOPER_ADDRESS=$(lambdavm keys show $WALLET --bech val -a)
echo 'export LAMBDA_WALLET_ADDRESS='${LAMBDA_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export LAMBDA_VALOPER_ADDRESS='${LAMBDA_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile
Before creating validator please make sure you have the funds already in your wallet To check wallet balance :
lambdavm query bank balances $LAMBDA_WALLET_ADDRESS
To create a validator with 1 LAMB delegation use this command below :
lambdavm tx staking create-validator \
--amount=1000000000000000000ulamb \
--pubkey=$(lambdavm tendermint show-validator) \
--moniker=$NODENAME \
--chain-id=$LAMBDA_CHAIN_ID \
--commission-rate="0.05" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1000000" \
--gas="300000" \
--gas-prices="0.025ulamb" \
--from=$WALLET \
--identity=<your_keybase_id> \
--website="<your_website>" \
--details="<your_validator_description>" \
--broadcast-mode block
To unjail your validator use this command
lambdavm tx slashing unjail \
--broadcast-mode=block \
--from=$WALLET \
--chain-id=$LAMBDA_CHAIN_ID \
--fees=5000ulamb \
--gas=500000
- Delegate stake
lambdavm tx staking delegate $LAMBDA_VALOPER_ADDRESS 10000000ulamb --from=$WALLET --chain-id=$LAMBDA_CHAIN_ID --gas=auto
- Redelegate stake from validator to another validator
lambdavm tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 10000000ulamb --from=$WALLET --chain-id=$LAMBDA_CHAIN_ID --gas=auto
- Withdraw all rewards
lambdavm tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$LAMBDA_CHAIN_ID --gas=auto
- Withdraw rewards with commision
lambdavm tx distribution withdraw-rewards $LAMBDA_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$LAMBDA_CHAIN_ID
Check TX HASH ( Which is your txhash from the transaction
lambdavm query tx <txhash>
If the transaction was correct you should instantly become part of the validators set. Check your pubkey first:
lambdavm tendermint show-validator
You will see a key there, you can identify your node among other validators using that key:
lambdavm query tendermint-validator-set
Check your validator key
[[ $(lambdavm q staking validator $HYPERSIGN_VALOPER_ADDRESS -oj | jq -r .consensus_pubkey.key) = $(hid-noded status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "\n\e[1m\e[32mTrue\e[0m\n" || echo -e "\n\e[1m\e[31mFalse\e[0m\n"
- For Active Validators
lambdavm q staking validators -o json --limit=3000 \
| jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' \
| jq -r '.tokens + " - " + .description.moniker' \
| sort -gr | nl
- For Inactive Validators
lambdavm q staking validators -o json --limit=3000 \
| jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED")' \
| jq -r '.tokens + " - " + .description.moniker' \
| sort -gr | nl
Check Logs
journalctl -fu lambdavm -o cat
Start Service
sudo systemctl start lambdavm
Stop Service
sudo systemctl stop lambdavm
Restart Service
sudo systemctl restart lambdavm
Synchronization info
lambdavm status 2>&1 | jq .SyncInfo
Validator Info
lambdavm status 2>&1 | jq .ValidatorInfo
Node Info
lambdavm status 2>&1 | jq .NodeInfo
sudo systemctl stop lambdavm
sudo systemctl disable lambdavm
sudo rm /etc/systemd/system/lambdavm* -rf
sudo rm $(which lambdavm) -rf
sudo rm $HOME/.lambdavm -rf
sudo rm $HOME/lambdavm -rf
sudo rm -rf lambda.sh
sed -i '/lambda