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 -yInstall dependencies
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -yInstall 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 versionSet 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_profileGet 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-linuxInitialize
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.tomlDownload genesis and addrbook
wget -O $HOME/.alignedlayer/config/genesis.json https://testnet-files.itrocket.net/alignedlayer/genesis.jsonwget -O $HOME/.alignedlayer/config/addrbook.json https://testnet-files.itrocket.net/alignedlayer/addrbook.jsonAdd 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.tomlSet minimum gas-price
sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0.0001stake"|g' $HOME/.alignedlayer/config/app.tomlSet 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.tomlCreate 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
EOFsudo systemctl daemon-reload
sudo systemctl enable alignedlayerd
sudo systemctl restart alignedlayerd && sudo journalctl -u alignedlayerd -fRun from snapshot
Wait fo full sync (output "false")
alignedlayerd status 2>&1 | jqCreate or recover wallet
!!! BACKUP YOUR SEED PHRASE !!!
alignedlayerd keys add $WALLET
OR
alignedlayerd keys add $WALLET --recoverGet 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_profileCreate 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.jsonCreate 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 | jqlogs
sudo journalctl -u alignedlayerd -fstart service
sudo systemctl start alignedlayerdstop service
sudo systemctl stop alignedlayerdrestart service
sudo systemctl restart alignedlayerdenable service
sudo systemctl enable alignedlayerddisable service
sudo systemctl disable alignedlayerdCheck wallets list
alignedlayerd keys listDelete wallet
alignedlayerd keys delete $WALLETCheck Balance
alignedlayerd q bank balances $WALLET_ADDRESSWithdraw all rewards
alignedlayerd tx distribution withdraw-all-rewards --from $WALLET --chain-id alignedlayer --fees 50stakeWithdraw rewards and commission from your validator
alignedlayerd tx distribution withdraw-rewards $VALOPER_ADDRESS --from $WALLET --commission --chain-id alignedlayer --fees 50stake -yCheck your balance
alignedlayerd query bank balances $WALLET_ADDRESSDelegate to Yourself
alignedlayerd tx staking delegate $(alignedlayerd keys show $WALLET --bech val -a) 1000000stake --from $WALLET --chain-id alignedlayer --fees 50stake -yDelegate
alignedlayerd tx staking delegate <TO_VALOPER_ADDRESS> 1000000stake --from $WALLET --chain-id alignedlayer --fees 50stake -yRedelegate Stake to Another Validator
alignedlayerd tx staking redelegate $VALOPER_ADDRESS <TO_VALOPER_ADDRESS> 1000000stake --from $WALLET --chain-id alignedlayer --fees 50stake -yUnbond
alignedlayerd tx staking unbond $(alignedlayerd keys show $WALLET --bech val -a) 1000000stake --from $WALLET --chain-id alignedlayer --fees 50stake -yTransfer Funds
alignedlayerd tx bank send $WALLET_ADDRESS <TO_WALLET_ADDRESS> 1000000stake --fees 50stake -yValidator 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 paramsUnjail validator
alignedlayerd tx slashing unjail --from $WALLET --chain-id alignedlayer --fees 50stake -yDelete 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_profileLast updated