脚本刷钱/Akash第二周挑战3流程(已结束)

Created Wed, 09 Dec 2020 22:00:00 +0800 Modified Sat, 12 Dec 2020 14:00:00 +0800
893 Words

Akash 第二周挑战 3 流程

最后的挑战是综合前面,有一定难度。前面的都搞清楚的话,部署没啥问题。

大致流程是用 deploy-2-3.yaml(和 2-2 的基本一样),跑云节点,然后通过调用云节点的 RPC,去生成验证人信息,并部署成验证人。验证人加入列表之后就可以关闭部署了。最关键的地方是把验证人节点名(MONIKER)设置成邀请码,验证人列表里就能看到。

官方文档 https://docs.akash.network/testnet-challenges/testnet-challenges/guided-deployments#challenge-3-week-2

部署前需先生成钱包并领测试币,参考 Akash 节点部署流程 的前半部分运行 akash 本地程序 和 Akash 挑战 1 流程(已结束) 的生成钱包。

运行代码都在下面。

#!/bin/bash
AKASH_NET="https://raw.githubusercontent.com/ovrclk/net/master/edgenet"
AKASH_NODE="https://akash.rpc.best:443"
TESTNET_NODE="http://174.138.34.238:26657"
AKASH_CHAIN_ID="akash-edgenet-1"
ACCOUNT_ADDRESS="" #需要填你自己的
KEY_NAME="" #需要填你自己的
KEYRING_BACKEND="os"
PROVIDER= #需要填你自己的
DSEQ= #需要填你自己的
GSEQ=1
OSEQ=1
CODE= #需要填你自己的

SECONDARY_NODE=$TESTNET_NODE
SECONDARY_MONIKER=$CODE
SECONDARY_KEY_NAME=$KEY_NAME
SECONDARY_CHAIN_ID=akash-edgenet-2
DEPLOY_YML=deploy-2-3.yaml

# 1. 发起部署交易,注意改yml文件
akash tx deployment create $DEPLOY_YML --from $KEY_NAME --node $AKASH_NODE \
 --chain-id $AKASH_CHAIN_ID  --fees 50000uakt -y

# 2. 查询部署的镜像列表,需要等会儿,输出的PROVIDER和DSEQ后修改上方的变量
akash query market lease list --owner $ACCOUNT_ADDRESS --node $AKASH_NODE \
--chain-id $AKASH_CHAIN_ID --state active

# 3. 上传部署许可,无输出
akash provider send-manifest $DEPLOY_YML --node $AKASH_NODE --dseq $DSEQ \
--oseq $OSEQ --gseq $GSEQ --owner $ACCOUNT_ADDRESS --provider $PROVIDER

# 4. 查询单个部署许可的状态,可获得服务地址。Mac电脑没jq的用 brew install jq 安装
akash provider lease-status \
  --dseq $DSEQ \
  --gseq $GSEQ \
  --oseq $OSEQ \
  --provider $PROVIDER \
  --owner $ACCOUNT_ADDRESS \
  --node $AKASH_NODE \
  | jq -r '.["forwarded-ports"].akash[] | select(.port==26657)'

# 5. 设置上面输出到DEPLOY_NODE_RPC变量
DEPLOY_NODE_RPC= #需要填你自己的

# 6. 查看同步状态
akash --node "$DEPLOY_NODE_RPC" status | jq '.sync_info.latest_block_height,\
.sync_info.latest_block_time,.sync_info.catching_up'

# 7. 查看RPC
akash provider lease-status \
  --dseq $DSEQ \
  --gseq $GSEQ \
  --oseq $OSEQ \
  --provider $PROVIDER \
  --owner $ACCOUNT_ADDRESS \
  --node $AKASH_NODE \
  | jq -r '.services.akash.uris[0]'

# 8. 上一步的结果设置到NODE_ENDPOINT变量
NODE_ENDPOINT= #需要填你自己的

# 9. 获取验证人信息
VALIDATOR_PUBKEY="$(curl -s "$NODE_ENDPOINT/validator-pubkey.txt")"

# 10. 创建验证人
akash tx staking create-validator \
  --node="$SECONDARY_NODE" \
  --amount=1000000uakt \
  --pubkey="$VALIDATOR_PUBKEY" \
  --moniker="$SECONDARY_MONIKER" \
  --chain-id="$SECONDARY_CHAIN_ID" \
  --commission-rate="0.10" \
  --commission-max-rate="0.20" \
  --commission-max-change-rate="0.01" \
  --min-self-delegation="1" \
  --gas-prices="0.025uakt" \
  --from="$SECONDARY_KEY_NAME"

# 11. 查看验证状态,有结果说明在验证人里了,可以提交并关闭部署
SECONDARY_VALOPER_ADDRESS="$(akash keys show "$SECONDARY_KEY_NAME" --bech=val -a)"
akash --node "$SECONDARY_NODE" query staking validator "$SECONDARY_VALOPER_ADDRESS"

# 12. 获取pull request用的json
akash query market lease get \
  --dseq $DSEQ \
  --gseq $GSEQ \
  --oseq $OSEQ \
  --provider $PROVIDER \
  --owner $ACCOUNT_ADDRESS \
  --node $AKASH_NODE -o json \
  > $CODE.json

# 13. 关闭部署
akash tx deployment close --node $AKASH_NODE --chain-id $AKASH_CHAIN_ID --dseq $DSEQ\
 --owner $ACCOUNT_ADDRESS --from $KEY_NAME --fees 50000uakt  -y

提交方法参考 Akash 挑战 1 流程(已结束) 的后面。

最后一个任务了。提交得越早的人奖励越多,大家冲起来。

如果 Provider 实在太坑老报错,万不得已,就参考之前的教程自己租服务器部署验证人吧。我们凌晨测试云节点很流畅。 RPC 的使用方法可以参考 Akash 第二周挑战 2 流程 。 验证人部署可以参考 Akash 节点部署流程 的最后。