【译文】如何在Akash网络挖门罗币(XMR/Monero)

译者注:

如何在世界上第一个去中心化云 Akash 网络上挖掘门罗币。

一、前提条件

安装了 Docker 的 Ubuntu(Linux 系统);

二、获取并构建门罗币(Monero)挖矿程序 - xmrig

2.1 安装 xmrig 构建所需依赖包

$ sudo apt-get install git build-essential cmake libuv1-dev libssl-dev libhwloc-dev

译者注:

  • 请不要复制 $ 符号 ,该符号仅表示这是一条命令,并不是命令的一部分。后续同理,不再补充说明。

2.2 下载并编译 xmrig 源码

$ git clone https://github.com/xmrig/xmrig.git
$ cd xmrig
$ mkdir build
$ cd build
$ cmake ..
$ make -j$(nproc)

2.3 检查 xmrig 程序构建是否成功

$ ./xmrig --version

若输入如下结果,则表示构建成功:

XMRig 6.14.1
built on Aug 25 2021 with GCC 9.3.0
features: 64-bit AES
​
libuv/1.34.2
OpenSSL/1.1.1f
hwloc/2.1.0

三、容器化 xmrig

你已经构建了 Monero 挖矿程序,现在需要将它放入一个容器中,然后再在 Akash 网络上运行它。

返回到 xmrig 程序的上级目录

$ cd ..

编写 Dockerfile

$ cat > Dockerfile << 'EOF'
FROM ubuntu:latest
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get -y install libssl1.1 libhwloc15 msr-tools
COPY build/xmrig /usr/bin/
ENV ADDRESS=4Aw4WuWPUvjgiZA11EMJUjQciyR38VcY2WKvLqjwX1r8DAb2YB3UmC3aUHUg8A8PhudPyexVdGpqbjA5dswkPU5NAAMa2cw
ENV POOL=pool.minexmr.com:443
ENV MODE=light
CMD xmrig -o $POOL -u $ADDRESS -k --tls --rig-id ${AKASH_OWNER:-akashnet} --http-host 0.0.0.0 --http-port 8080 --randomx-mode $MODE
EOF
​
# 构建 Docker 镜像
$ docker build -t andrey01/xmrig:latest .
​
# 推送 Docker 镜像
$ docker push andrey01/xmrig:latest

译者注:

  • andrey01/xmrig :其中 andrey01 是你的 docker hub 账户名;

  • 最后一步推送镜像需要用到你自己的 docker hub 账号,你需要提前在 https://hub.docker.com 网站上注册好账号。

四、在 Akash 网络上运行 xmrig

4.1 准备部署文件

文件名:monero.yml

version: "2.0"

services:
  xmrig:
    image: andrey01/xmrig:latest
    expose:
      - port: 8080
        as: 80
        proto: tcp
        to:
          - global: true
    env:
      - "ADDRESS=4Aw4WuWPUvjgiZA11EMJUjQciyR38VcY2WKvLqjwX1r8DAb2YB3UmC3aUHUg8A8PhudPyexVdGpqbjA5dswkPU5NAAMa2cw"
      - "POOL=pool.minexmr.com:443"
      - "MODE=light"

profiles:
  compute:
    xmrig:
      resources:
        cpu:
          units: 4.0
        memory:
          size: 512Mi
        storage:
          size: 256Mi
  placement:
    akash:
      pricing:
        xmrig: 
          denom: uakt
          amount: 100

deployment:
  xmrig:
    akash:
      profile: xmrig
      count: 1

译者注:

  • image: andrey01/xmrig:latest :这里的镜像名称是前面步骤中构建的,你可以替换成你构建的;
  • ADDRESS=4Aw4WuWP..此处省略..a2cw :这里后面请修改为你的门罗币地址,即 XMR 钱包地址;

请注意,我已指定“MODE= light”,这样你就可以使用低至512Mi 的 RAM(可能更低,但不少于 256Mi)进行挖矿。挖矿会更慢,大约150 H/s。 如果你设置“MODE= fast”,你的挖矿速度会快 5 倍,大约 850 H/s。但是你的部署至少需要 8196Mi RAM。

你可以在这里阅读更多:RandomX/README.md at v1.1.9 · tevador/RandomX · GitHub

4.2 安装 Akash 客户端

AKASH_NET="https://raw.githubusercontent.com/ovrclk/net/master/mainnet"
AKASH_VERSION="$(curl -s "$AKASH_NET/version.txt")"
curl https://raw.githubusercontent.com/ovrclk/akash/master/godownloader.sh | sh -s -- "v$AKASH_VERSION"

4.3 创建你的 Akash 钱包地址

akash keys add default
export AKASH_ACCOUNT_ADDRESS=akash1h24fljt7p0nh82cq0za0uhsct3sfwsfu9w3c9h

4.4 给你的 Akash 钱包地址提供资金

译者注:

  • 这一步中,你需要通过”交易所提币“或”转账“的方式,给你的钱包地址充值足够的 AKT 代币;
  • 以下命令仅是用于查询钱包余额。

确保您的帐户中至少有 5 个 AKT(最好多一点用于签署交易):

export AKASH_NODE="$(curl -s "$AKASH_NET/rpc-nodes.txt" | shuf -n 1)"
  akash \
  --node "$AKASH_NODE" \
  query bank balances "$AKASH_ACCOUNT_ADDRESS"

换算:1 akt = 1,000,000 uakt

4.5 部署门罗矿工

export AKASH_CHAIN_ID="$(curl -s "$AKASH_NET/chain-id.txt")"
​
# 如果你是第一次部署,你需要创建一次证书
akash tx cert create client --from default --chain-id $AKASH_CHAIN_ID --node $AKASH_NODE --gas-prices="0.025uakt" --gas="auto" --gas-adjustment=1.15
​
akash tx deployment create monero.yml --from default --node $AKASH_NODE --chain-id $AKASH_CHAIN_ID --gas-prices="0.025uakt" --gas="auto" --gas-adjustment=1.15

如果有这个错误,可以忽略: Error: RPC error -32603 - Internal error: timed out waiting for tx to be included in a block

但是注意最后一个命令输出中的“ dseq ”值。

4.6 从 Akash 网络获取市场出价

AKASH_DSEQ=2373334
AKASH_GSEQ=1
AKASH_OSEQ=1
​
akash query market bid list --owner=$AKASH_ACCOUNT_ADDRESS --node $AKASH_NODE --dseq $AKASH_DSEQ --state open

价格计算:

提供商 akash14c4ng96vdle6tae8r4hc2w4ujwrsh3x9tuudk0 akash14c4ng96vdle6tae8r4hc2w4ujwrsh3x9tuudk0
CPU 4 核 4 核
运行内存 512M 8196M
RandomX MODE fast light
算力 ~150 H/s ~850 H/s
AKT 费用 每月 7.46 AKT,即 $23 每月 13 AKT,即 $40

4.7 确认订单并发送部署清单

AKASH_PROVIDER=akash14c4ng96vdle6tae8r4hc2w4ujwrsh3x9tuudk0
​
akash tx market lease create --chain-id $AKASH_CHAIN_ID --node $AKASH_NODE --owner $AKASH_ACCOUNT_ADDRESS --dseq $AKASH_DSEQ --gseq $AKASH_GSEQ --oseq $AKASH_OSEQ --provider $AKASH_PROVIDER --from default --gas-prices="0.025uakt" --gas="auto" --gas-adjustment=1.15
​
akash provider send-manifest monero.yml --node $AKASH_NODE --dseq $AKASH_DSEQ --provider $AKASH_PROVIDER --from default

查询你部署的 URL,后面会用来查看矿工状态 ,例如:9bq5l3nhthaej27ragc6sf44gs.ingress.provider-0.prod.ams1.akash.pub;

akash provider lease-status --node $AKASH_NODE --dseq $AKASH_DSEQ --provider $AKASH_PROVIDER --from default

4.8 查看日志

akash --node "$AKASH_NODE" provider lease-logs --dseq "$AKASH_DSEQ" --gseq "$AKASH_GSEQ" --oseq "$AKASH_OSEQ" --provider "$AKASH_PROVIDER" --from default --follow

4.9 终止挖矿/关闭部署

akash tx deployment close --node $AKASH_NODE --chain-id $AKASH_CHAIN_ID --dseq $AKASH_DSEQ --owner $AKASH_ACCOUNT_ADDRESS --from default --gas-prices="0.025uakt" --gas="auto" --gas-adjustment=1.15

4.10 获取部署的明细

你可以看到你花费了多少 AKT:

akash query deployment get --owner $AKASH_ACCOUNT_ADDRESS --node $AKASH_NODE --dseq $AKASH_DSEQ

4.11 给部署存入 10AKT

如果你想你的部署持续运行,则需要添加更多 AKT:

akash tx deployment deposit --from default --chain-id $AKASH_CHAIN_ID --node $AKASH_NODE 10000000uakt --dseq $AKASH_DSEQ --gas-prices="0.025uakt" --gas="auto" --gas-adjustment=1.15

译者注:

如果你的部署中存入的 AKT 不足,部署会被关闭。

五、检查你的矿工状态

在http://workers.xmrig.info/输入你的部署 URI,您将看到以下内容:

六、在 MineXMR 矿池中检查你的矿工的统计数据

https://minexmr.com/dashboar 中输入你的 Monero 地址,以查看的统计数据。

七、RandomX 优化指南

八、盈利能力

以当前的门罗币价格计算,它无法盈利,但也许以后某天就会有收益了。你可以访问这些挖矿计算器,并将算力设置为 850 H/s 计算收益:

九、捐赠

如果您觉得这篇文件时有趣或有用的,可以给作者捐赠:

  • Akash: akash1h24fljt7p0nh82cq0za0uhsct3sfwsfu9w3c9h
  • XMR: 4Aw4WuWPUvjgiZA11EMJUjQciyR38VcY2WKvLqjwX1r8DAb2YB3UmC3aUHUg8A8PhudPyexVdGpqbjA5dswkPU5NAAMa2cw
1 Like