# Airchains 创建CosmWasm Zk Rollup中文教程 **Published by:** [Silent ⚛| validator](https://paragraph.com/@exploring/) **Published on:** 2024-06-22 **URL:** https://paragraph.com/@exploring/airchains-cosmwasm-zk-rollup ## Content Airchains 是一个模块化的 zk-Rollup 框架平台,其独特设计旨在帮助开发人员构建具有无与伦比的速度和隐私性的综合应用程序,在选择执行和数据可用性层方面提供了灵活性。 官方推特:官方网站:Making Confidentiality Accessible | Enabling zkFHEMaking Confidentiality Accessible | Enabling zkFHEhttps://www.airchains.ioAirchains能与celestia, Avail, EigenDa等DA层集成,在执行层方面,支持EVM,Cosmwasm和SVM。近期Airchains启动了Station奖励计划,旨在激励和支持像开发人员在 Airchains 网络上构建出色的项目。 通过在 Airchains 网络上创建Station,您可以开始赚取积分并解锁令人难以置信的奖励!您建造的Station越多,您为生态系统带来的价值越多,您的奖励就越高。本教程将教你如何创建Airchains的Cosmwasm Zk Rollup Station并赚取积分。 由于avail经常没水,我们选择eigenda作为da。 本教程仅供参考,请以官方文档为准 https://docs.airchains.io/rollups/cosmwasm-zk-rollup/create-an-cosmwasm-rollupCosmwasm Zk Rollup 可能遇到一些奇怪的无法解决的错误,建议创建EVM + Eigenda的stationEVM + Eigenda教程可以参考TESTCN老哥的https://medium.com/@TestnetCn/airchains-rollapp部署-3842a6cba873配置要求系统: Ubuntu 22.04安装依赖sudo apt-get update && apt-get install jq build-essential -y 安装gocurl 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下载GitHub 库cd git clone https://github.com/airchains-network/wasm-station.git git clone https://github.com/airchains-network/tracks.git 设置Wasm Stationcd wasm-station go mod tidy /bin/bash ./scripts/local-setup.sh 这里需要等待一段时间。 成功后你会看到这样的内容等待一段时间后,你会看到类似这样的内容运行wasmstationsudo 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 设置DA下载eigenlayer clicd wget https://github.com/airchains-network/tracks/releases/download/v0.0.2/eigenlayer sudo chmod +x eigenlayer sudo mv eigenlayer /usr/local/bin/eigenlayer 创建keyeigenlayer operator keys create -i=true --key-type ecdsa 你的钱包名 保存好出现的私钥,输入:q 退出 记录好出现的Public Key hex,后面要用这里的Public Key hex后面有用设置Tracks删除所有旧数据sudo rm -rf ~/.tracks 下载依赖cd $HOME/tracks go mod tidy 初始化sequencergo 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 创建airchains 地址go run cmd/main.go keys junction --accountName airchains地址名 --accountPath $HOME/.tracks/junction-accounts/keys 注意保存这里显示的助记词,否则之后无法恢复。这里也会显示air开头的地址,后面有用领水在discord的Switchyard-faucet频道发送$faucet air开头的地址领水 如果discord水龙头没水了,可以试试这个FAUCETME | AIRCHAINSMultichain faucet helps with fair and reliable token distribution in various networks Quick and safe way to get tokenshttps://airchains.faucetme.pro初始化provergo 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值创建stationgo 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 修改代码默认的gas pricesed -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" 启动stationsudo 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 查看station日志sudo journalctl -u stationd -f -o cat Ctrl +c 退出查看日志刷TX创建脚本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.outcode: 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频道问问。更新stationd到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 没有其他日志,并且不加分。 解决方法 重启stationdb. station日志中有各种奇怪的报错。 解决方法 回滚并重启stationdsudo 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钱包中。 点击钱包上方的按钮点击导入助记词导入助记词接下来打开Station Points ProgramStation Rewards Programhttps://points.airchains.io连接钱包,接下来你应该能看到积分,如图如果你的节点日志正常,却没有积分。可以在discord里面问问,也许是积分的网站没有同步到最新状态。 本教程还会持续更新,欢迎关注 ## Publication Information - [Silent ⚛| validator](https://paragraph.com/@exploring/): Publication homepage - [All Posts](https://paragraph.com/@exploring/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@exploring): Subscribe to updates - [Twitter](https://twitter.com/EthExploring): Follow on Twitter