Alignedlayer
Aligned works with EigenLayer to leverage ethereum consensus mechanism for ZK proof verification. Working outside the EVM, this allows for cheap verification of any proving system
RPC: https://aligned-test.rpc.cryptomolot.com/
Resources
Hardware requirements
4-Cores
16 GB
200 GB NVME
100mbps network bandwidth
Linux (Ubuntu 22.04 x64)
Installation 💾
Update repositories
apt update && apt upgrade -y
Install dependencies
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y
Install GO 1.22.2
sudo rm -rf /usr/local/go && \
curl -L https://go.dev/dl/go1.22.2.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local && \
echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> $HOME/.bash_profile && \
source .bash_profile && \
go version
Set variables
change the <wallet>, <moniker>. And Alignedlayer_port # if you needed
echo "export WALLET="<WALLET>"" >> $HOME/.bash_profile
echo "export MONIKER="<MONIKER>"" >> $HOME/.bash_profile
echo "export ALIGNEDLAYER_CHAIN_ID="alignedlayer"" >> $HOME/.bash_profile
echo "export ALIGNEDLAYER_PORT="26"" >> $HOME/.bash_profile
source $HOME/.bash_profile
Get binaries
cd $HOME
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env
curl https://get.ignite.com/cli | bash
sudo mv ignite /usr/local/bin/
rm -rf $HOME/aligned_layer_tendermint
git clone https://github.com/yetanotherco/aligned_layer_tendermint.git
cd $HOME/aligned_layer_tendermint
git checkout 98643167990f8a597b331ddd879e079bafb25b08
make build-linux
Initialize
change the <moniker>
alignedlayerd init $MONIKER --chain-id alignedlayer
alignedlayerd config keyring-backend test
sed -i -e "s|^node *=.*|node = \"tcp://localhost:${ALIGNEDLAYER_PORT}657\"|" $HOME/.alignedlayer/config/client.toml
Download genesis and addrbook
wget -O $HOME/.alignedlayer/config/genesis.json https://testnet-files.itrocket.net/alignedlayer/genesis.json
wget -O $HOME/.alignedlayer/config/addrbook.json https://testnet-files.itrocket.net/alignedlayer/addrbook.json
Add seeds/bpeers/peers in config.toml
SEEDS="d1a8816c1c5800b352c2a1eb0e7a156bce34ae9f@alignedlayer-testnet-seed.itrocket.net:50656"
PEERS="144c2d4fbbaf54dda837bfbc88b688fb2f02c92f@alignedlayer-testnet-peer.itrocket.net:50656,2567ea5aed4bba4e3062a1072a8f1e7fb4e4497c@65.109.85.36:26656,51ca4087558ebe93a16e3f1e84a969d30e7a91f1@95.216.245.35:26656,5f0e7fbfef5865c15be8d564f4b11f56abecc501@164.68.108.76:26656,ee5a3e96c1eda6605bd2dfd9cef9eb67a67a9e6b@109.199.97.54:26656,7292de855372480ae23dbcaf94d36ead187cf6a8@194.163.143.206:50656,c2a2bb5cf9d126b623d5ef40151cad73b5d7f4e8@37.60.248.85:26656,a1d6d9569789a7a8765f0a4899439819f07755d4@213.133.103.213:26656,9a8aa5cebc5183c2cba97252c452eab4aba3a6be@213.199.57.46:26656,029808691d64f7f03ee9ff2736858fa34d753017@46.250.235.85:24256,38bcfb4d2026b1f34f5c61d48c1905cc46096c0b@94.130.35.35:12656"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.alignedlayer/config/config.toml
Set minimum gas-price
sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0.0001stake"|g' $HOME/.alignedlayer/config/app.toml
Set custom ports (if needed)
# set custom ports in app.toml
sed -i.bak -e "s%:1317%:${ALIGNEDLAYER_PORT}317%g;
s%:8080%:${ALIGNEDLAYER_PORT}080%g;
s%:9090%:${ALIGNEDLAYER_PORT}090%g;
s%:9091%:${ALIGNEDLAYER_PORT}091%g;
s%:8545%:${ALIGNEDLAYER_PORT}545%g;
s%:8546%:${ALIGNEDLAYER_PORT}546%g;
s%:6065%:${ALIGNEDLAYER_PORT}065%g" $HOME/.alignedlayer/config/app.toml
# set custom ports in config.toml file
sed -i.bak -e "s%:26658%:${ALIGNEDLAYER_PORT}658%g;
s%:26657%:${ALIGNEDLAYER_PORT}657%g;
s%:6060%:${ALIGNEDLAYER_PORT}060%g;
s%:26656%:${ALIGNEDLAYER_PORT}656%g;
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${ALIGNEDLAYER_PORT}656\"%;
s%:26660%:${ALIGNEDLAYER_PORT}660%g" $HOME/.alignedlayer/config/config.toml
(Optional) Pruning
sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.alignedlayer/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.alignedlayer/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"50\"/" $HOME/.alignedlayer/config/app.toml
(Optional) Disable indexer and enable prometheus
default indexer="kv" default prometheus = false
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.alignedlayer/config/config.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.alignedlayer/config/config.toml
Create a service file
sudo tee /etc/systemd/system/alignedlayerd.service > /dev/null <<EOF
[Unit]
Description=Alignedlayer node
After=network-online.target
[Service]
User=$USER
WorkingDirectory=$HOME/.alignedlayer
ExecStart=$(which alignedlayerd) start --home $HOME/.alignedlayer
Restart=on-failure
RestartSec=5
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable alignedlayerd
sudo systemctl restart alignedlayerd && sudo journalctl -u alignedlayerd -f
Run from snapshot
Wait fo full sync (output "false")
alignedlayerd status 2>&1 | jq
Create or recover wallet
!!! BACKUP YOUR SEED PHRASE !!!
alignedlayerd keys add $WALLET
OR
alignedlayerd keys add $WALLET --recover
Get tokens from faucet 🆓
faucet not yet
Set var for wallet and valoper addresses
WALLET_ADDRESS=$(alignedlayerd keys show $WALLET -a)
VALOPER_ADDRESS=$(alignedlayerd keys show $WALLET --bech val -a)
echo "export WALLET_ADDRESS="$WALLET_ADDRESS >> $HOME/.bash_profile
echo "export VALOPER_ADDRESS="$VALOPER_ADDRESS >> $HOME/.bash_profile
source $HOME/.bash_profile
Create Validator
Create validator json file
echo "{\"pubkey\":{\"@type\":\"/cosmos.crypto.ed25519.PubKey\",\"key\":\"$(alignedlayerd comet show-validator | grep -Po '\"key\":\s*\"\K[^"]*')\"},
\"amount\": \"1000000stake\",
\"moniker\": \"<MONIKER>\",
\"identity\": \"\",
\"website\": \"\",
\"security\": \"\",
\"details\": \"\",
\"commission-rate\": \"0.1\",
\"commission-max-rate\": \"0.2\",
\"commission-max-change-rate\": \"0.01\",
\"min-self-delegation\": \"1\"
}" > validator.json
Create validator from json
alignedlayerd tx staking create-validator validator.json \
--from $WALLET \
--chain-id alignedlayer \
--fees 50stake
!!! BACKUP YOUR priv_validator_key.json !!!
Useful commands ⚙️
node info
alignedlayerd status 2>&1 | jq
logs
sudo journalctl -u alignedlayerd -f
start service
sudo systemctl start alignedlayerd
stop service
sudo systemctl stop alignedlayerd
restart service
sudo systemctl restart alignedlayerd
enable service
sudo systemctl enable alignedlayerd
disable service
sudo systemctl disable alignedlayerd
Check wallets list
alignedlayerd keys list
Delete wallet
alignedlayerd keys delete $WALLET
Check Balance
alignedlayerd q bank balances $WALLET_ADDRESS
Withdraw all rewards
alignedlayerd tx distribution withdraw-all-rewards --from $WALLET --chain-id alignedlayer --fees 50stake
Withdraw rewards and commission from your validator
alignedlayerd tx distribution withdraw-rewards $VALOPER_ADDRESS --from $WALLET --commission --chain-id alignedlayer --fees 50stake -y
Check your balance
alignedlayerd query bank balances $WALLET_ADDRESS
Delegate to Yourself
alignedlayerd tx staking delegate $(alignedlayerd keys show $WALLET --bech val -a) 1000000stake --from $WALLET --chain-id alignedlayer --fees 50stake -y
Delegate
alignedlayerd tx staking delegate <TO_VALOPER_ADDRESS> 1000000stake --from $WALLET --chain-id alignedlayer --fees 50stake -y
Redelegate Stake to Another Validator
alignedlayerd tx staking redelegate $VALOPER_ADDRESS <TO_VALOPER_ADDRESS> 1000000stake --from $WALLET --chain-id alignedlayer --fees 50stake -y
Unbond
alignedlayerd tx staking unbond $(alignedlayerd keys show $WALLET --bech val -a) 1000000stake --from $WALLET --chain-id alignedlayer --fees 50stake -y
Transfer Funds
alignedlayerd tx bank send $WALLET_ADDRESS <TO_WALLET_ADDRESS> 1000000stake --fees 50stake -y
Validator Details
alignedlayerd q staking validator $(alignedlayerd keys show $WALLET --bech val -a)
Jailing info
alignedlayerd q slashing signing-info $(alignedlayerd tendermint show-validator)
Slashing parameters
alignedlayerd q slashing params
Unjail validator
alignedlayerd tx slashing unjail --from $WALLET --chain-id alignedlayer --fees 50stake -y
Delete node 🗑️
sudo systemctl stop alignedlayerd
sudo systemctl disable alignedlayerd
sudo rm -rf /etc/systemd/system/alignedlayerd.service
sudo rm $(which alignedlayerd)
sudo rm -rf $HOME/.alignedlayer
sed -i "/ALIGNEDLAYER_/d" $HOME/.bash_profile
Last updated