Airchains 是一个模块化的 zk-Rollup 框架平台,其独特设计旨在帮助开发人员构建具有无与伦比的速度和隐私性的综合应用程序,在选择执行和数据可用性层方面提供了灵活性。
官方推特:
官方网站:
Airchains能与celestia, Avail, EigenDa等DA层集成,在执行层方面,支持EVM,Cosmwasm和SVM。
近期Airchains启动了Station奖励计划,旨在激励和支持像开发人员在 Airchains 网络上构建出色的项目。
通过在 Airchains 网络上创建Station,您可以开始赚取积分并解锁令人难以置信的奖励!您建造的Station越多,您为生态系统带来的价值越多,您的奖励就越高。
本教程将教你如何创建Airchains的Cosmwasm Zk Rollup Station并赚取积分。
由于avail经常没水,我们选择eigenda作为da。
本教程仅供参考,请以官方文档为准
系统: Ubuntu 22.04
sudo apt-get update && apt-get install jq build-essential -y
curl https://dl.google.com/go/go1.22.1.linux-amd64.tar.gz | sudo tar -C/usr/local -zxvf - ;
cat <<'EOF' >>$HOME/.bashrc
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF
source $HOME/.bashrc
这里我们选择创建Cosmwasm Zk Rollup
cd
git clone https://github.com/airchains-network/wasm-station.git
git clone https://github.com/airchains-network/tracks.git
cd wasm-station
go mod tidy
/bin/bash ./scripts/local-setup.sh
这里需要等待一段时间。
成功后你会看到这样的内容
sudo tee <<EOF >/dev/null /etc/systemd/system/wasmstationd.service
[Unit]
Description=wasmstationd
After=network.target
[Service]
User=$USER
ExecStart=$HOME/wasm-station/build/wasmstationd start --api.enable
Restart=always
RestartSec=3
LimitNOFILE=10000
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload && \
sudo systemctl enable wasmstationd && \
sudo systemctl start wasmstationd
查看日志
sudo journalctl -u wasmstationd -f
cd
wget https://github.com/airchains-network/tracks/releases/download/v0.0.2/eigenlayer
sudo chmod +x eigenlayer
sudo mv eigenlayer /usr/local/bin/eigenlayer
eigenlayer operator keys create -i=true --key-type ecdsa 你的钱包名
保存好出现的私钥,输入:q 退出
记录好出现的Public Key hex,后面要用
删除所有旧数据
sudo rm -rf ~/.tracks
下载依赖
cd $HOME/tracks
go mod tidy
go run cmd/main.go init --daRpc "disperser-holesky.eigenda.xyz" --daKey "上面的Public Key hex" --daType "eigen" --moniker "节点名" --stationRpc "http://127.0.0.1:26657" --stationAPI "http://127.0.0.1:1317" --stationType "wasm"
成功后,能看到如下
[2024-06-11 09:50:08] » Track initialization successful
go run cmd/main.go keys junction --accountName airchains地址名 --accountPath $HOME/.tracks/junction-accounts/keys
注意保存这里显示的助记词,否则之后无法恢复。这里也会显示air开头的地址,后面有用
在discord的Switchyard-faucet频道发送
$faucet air开头的地址领水
如果discord水龙头没水了,可以试试这个
go run cmd/main.go prover v1WASM
获取bootstrapNode值
nodeid=$(grep "node_id" ~/.tracks/config/sequencer.toml | awk -F '"' '{print $2}')
ip=$(curl -s4 ifconfig.me/ip)
bootstrapNode=/ip4/$ip/tcp/2300/p2p/$nodeid
echo $bootstrapNode
最后显示的的应该类似
/ip4/<你服务器的ip>/tcp/2300/p2p/你的nodeid
这就是你的bootstrapNode值
go run cmd/main.go create-station --accountName airchains地址名 --accountPath $HOME/.tracks/junction-accounts/keys --jsonRPC "https://junction-testnet-rpc.synergynodes.com/" --info "WASM Track" --tracks 刚刚air开头的地址 --bootstrapNode "刚刚显示的bootstrapNode"
等待一段时间后,会显示如下
[2024-06-11 10:16:32] » tracks address: air1mwe3cpx52vmr2nl75yppl0xw2w5htgtyq93env
[2024-06-11 10:16:32] » Currently user have 2.000000AMF
[2024-06-11 10:16:44] » txHash: 3D7688A44BCDBED043380C5367B0B1320187B34E46B6C52E82BD16843D145FE3
[2024-06-11 10:16:44] » /root/.tracks/config/genesis.json created
[2024-06-11 10:16:44] » vrfPrivKey ID: 124014616c36ba23183504643d101a875c99531732bb83f6366e8be2c776bc03
[2024-06-11 10:16:44] » vrfPubKey ID: 13223019114f6a1d4d2068bf2dd58982d63d5c914412976a5291372a51deb542
[2024-06-11 10:16:44] » Successfully Created VRF public and private Keys
[2024-06-11 10:16:44] » Successfully created station
sed -i 's/gasFees := fmt.Sprintf("%damf", gas)/gasFees := fmt.Sprintf("%damf", 2*gas)/' "$HOME/tracks/junction/verifyPod.go"
sed -i 's/gasFees := fmt.Sprintf("%damf", gas)/gasFees := fmt.Sprintf("%damf", 2*gas)/' "$HOME/tracks/junction/validateVRF.go"
sed -i 's/gasFees := fmt.Sprintf("%damf", gas)/gasFees := fmt.Sprintf("%damf", 3*gas)/' "$HOME/tracks/junction/submitPod.go"
sudo tee /etc/systemd/system/stationd.service > /dev/null << EOF
[Unit]
Description=station track service
After=network-online.target
[Service]
User=$USER
WorkingDirectory=$HOME/tracks/
ExecStart=$(which go) run cmd/main.go start
Restart=always
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable stationd
sudo systemctl restart stationd
sudo journalctl -u stationd -f -o cat
Ctrl +c 退出查看日志
创建脚本
cd
addr=$($HOME/wasm-station/build/wasmstationd keys show node --keyring-backend test -a)
sudo tee spam.sh > /dev/null << EOF
#!/bin/bash
while true; do
$HOME/wasm-station/build/wasmstationd tx bank send node ${addr} 1stake --from node --chain-id station-1 --keyring-backend test -y
sleep 6 # Add a sleep to avoid overwhelming the system or network
done
EOF
后台运行刷tx脚本
nohup bash spam.sh &
看日志,正常是这样。成功之后,你会在rollup中每6秒发一笔交易。
cat nohup.out
code: 0
codespace: ""
data: ""
events: []
gas_used: "0"
gas_wanted: "0"
height: "0"
info: ""
logs: []
raw_log: ""
timestamp: ""
tx: null
txhash: F2F9C6911D3D48C98CAC47773E0B7B4C8E9AD23BFD10692177BA5C8C69980A3B
code: 0
codespace: ""
data: ""
events: []
gas_used: "0"
gas_wanted: "0"
height: "0"
info: ""
logs: []
raw_log: ""
timestamp: ""
tx: null
txhash: ACB167A5B5E806B59497EA49B825106E1AB4C8FA7808AA89A726F4109E4E00FB
再次查看station日志
sudo journalctl -u stationd -f -o cat
正常会看到这样的日志
如果有错误,可以在airchains discord频道问问。
sudo systemctl stop stationd
cd ~/tracks && git reset --hard HEAD && git pull && git checkout v0.0.5
sudo systemctl start stationd
a. stationd日志一直是
New Block Found
没有其他日志,并且不加分。
解决方法
重启stationd
sudo systemctl restart stationd
b. station日志中有各种奇怪的报错。
解决方法
回滚并重启stationd
sudo systemctl stop stationd
cd $HOME/tracks
go run cmd/main.go rollback
go run cmd/main.go rollback
go run cmd/main.go rollback
sudo systemctl restart stationd
如果回滚无效。考虑换一个rpc试试。还是不行的话去discord英文频道和项目方反馈。
可以在discord中文频道找群友分享的定时重启的脚本。
接下来我们需要将airchains钱包(air开头的)钱包导入到leap钱包中。
点击钱包上方的按钮
点击导入助记词
接下来打开
连接钱包,接下来你应该能看到积分,如图
如果你的节点日志正常,却没有积分。可以在discord里面问问,也许是积分的网站没有同步到最新状态。
本教程还会持续更新,欢迎关注