建议官方文档为主,本文为辅。
查看活动进度
进行前可先看看该页面,如果 没有超过 200 提交都还有机会,超过 200 也可以试试,因为有人是 3 个任务都单独提 pr,有人 1 个 pr 里有 3 次提交。如图目前有 113 人提交了成果。
12 月 4 日已经开始结算了,应该来不及了,准备第二周的节点活动吧。做节点也需要安装 akash 节点,下面的内容依然有用。
设置变量
文档的指令大多是以 $VARIABLE 表示,如下图要事先设置变量。注意活动用的是 edgenet。
建议把以下内容添加到 ~/.bashrc
中,然后运行source ~/.bashrc
,变量就会全程起效。
AKASH_VERSION="v0.9.0-rc11"
AKASH_CHAIN_ID="akash-edgenet-1"
AKASH_NODE="tcp://rpc-edgenet.akashdev.net:26657"
其他变量自己根据情况设置,如下图
另外所有变量名到页面查看更方便(相比 curl):https://github.com/ovrclk/net/tree/master/edgenet
安装 akash
官方文档介绍了三种方式,第二种有坑,只能采取第三种源码编译的方式。
安装 golang-1.15
sudo apt-get update # Centos用yum update
sudo apt-get -y upgrade
wget https://dl.google.com/go/go1.15.5.linux-amd64.tar.gz # 下载包,国内服务器可能无法下载,可以手动下载后上传
sudo tar -xvf go1.15.5.linux-amd64.tar.gz # 解压包
sudo mv go /usr/local
然后添加以下环境变量进 ~/.bashrc
,然后运行source ~/.bashrc
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
最后运行 go version
查看结果,正常显示版本安装成功。
编译源码
go get -d github.com/ovrclk/akash # 会报一个constrain的警告,不用管。需要安装git
cd $GOPATH/src/github.com/ovrclk/akash # 前面GOPATH必须设置好
git checkout "$AKASH_VERSION" # 前面AKASH_VERSION变量必须设置好
make deps-install # 可能需要apt install build-essential或yum instal gcc
make install # 大概等2分钟
编译完成后输入 akash
就会有输出,钱包程序即可使用。
钱包设置
先设置 KEY_NAME
和 KEYRING_BACKEND
变量,可参考上面的图。KEY_NAME 设置你方便记忆输入的名字即可。KEYRING_BACKEND 默认用 os。
输入 akash --keyring-backend "$KEYRING_BACKEND" keys add "$KEY_NAME"
生成钱包,把文件复制存好。
输入 akash --keyring-backend "$KEYRING_BACKEND" keys show "$KEY_NAME" -a
打印钱包地址,以 ACCOUNT_ADDRESS 为变量名填入.bashrc,可参考上面的图片。
领测试币
访问 https://akash.vitwit.com/faucet 过人机检验,复制 ACCOUNT_ADDRESS 到表单提交,会给 100 个测试币。
用 akash --node "$AKASH_NODE" query bank balances "$ACCOUNT_ADDRESS"
查看是否有收到。
变量检查
部署的是 akash 网页钱包——Lunie Light。
根据教程,用 echo 命令检查变量是否有输出。有的变量输出为空就填入.bashrc
Akash 挑战 3 流程 有完整的 shell 指令可以直接复制
创建部署配置文件
创建复制网页上的 deploy.yml 到本地,一行都不用改。也可以用curl -s https://raw.githubusercontent.com/ovrclk/docs/master/guides/deploy/deploy.yml > deploy.yml
直接下载。
如果是部署自己的 web 应用就需要做修改,类似 docker 镜像的部署,属于其中一个开放挑战的任务的要求。
创建部署
根据文档 akash tx deployment create deploy.yml --from $KEY_NAME --node $AKASH_NODE --chain-id $AKASH_CHAIN_ID -y
发起部署交易。
等待租凭
根据文档 akash query market lease list --owner $ACCOUNT_ADDRESS --node $AKASH_NODE --state active
查看是否成功。有结果的话,记录 PROVIDER/DSEQ/OSEQ/GSEQ 的值。不想设置 bashrc 的话,可以直接输入GSEQ=1
设置临时变量。
上传 Manifest
上传:
akash provider send-manifest deploy.yml --node $AKASH_NODE --dseq $DSEQ --oseq $OSEQ --gseq $GSEQ --owner $ACCOUNT_ADDRESS --provider $PROVIDER
检查状态:
akash provider lease-status --node $AKASH_NODE --dseq $DSEQ --oseq $OSEQ --gseq $GSEQ --provider $PROVIDER --owner $ACCOUNT_ADDRESS
会出现一个类似*6veev7chcfmnclgqklegcc.provider4.akashdev.net*的 url,就是该 webapp 的访问地址。在浏览器中打开即可使用。
生成凭证
该部分内容在Guided Deployments
用以下指令输出 json 凭证。json 保存在当前执行命令路径。
akash query market lease get --dseq $DSEQ --gseq $GSEQ --oseq $OSEQ --provider $PROVIDER --owner $ACCOUNT_ADDRESS --node $AKASH_NODE -o json > $CODE.json
其中$CODE 变量需要设置。是注册后网页上显示的 Participant Code
提交成果
需要熟悉 Git 的 pull request 流程,不熟悉的话,参考该文章
根据官方教程进行,fork ecosystem库。克隆到本地。删除原来的 json,添加上面生成的 json 凭证。commit 结果。push 到 Github 上。去网页上点击 pull request,添加描述。你的 pull request 应该和其他人的类似。
疑难解答
有问题可以直接在该博客下面留言,或者去官方 discord 查看历史记录是否有类似错误
挑战 2
挑战 2 的流程攻略如下: Akash 挑战 2 流程