测试网节点教程系列 7 —— io.net
本系列之前的教程请见:https://forum.hammerplease.uk/t/topic/99
准备工作
我对 ionet 的理解就是分布式租用,只不过别的都是租用节点的存储、cpu、带宽,这个变成了租用 GPU。那么换言之,你出借自己机器的 GPU,那么你就可以参与获取分成,很像挖矿对吧?
一般来讲只有三种情况
- NVIDIA 家用级显卡: RTX 2080Ti 以上 例如 3050 4090
- 各种大模型算力卡:A100 H100 等等 可以是 NVIDIA 也可以是 TESLA
- 苹果 M1 以上的芯片(使用CPU):M1 M2 M3;或者 AMD 7980 以上的
- AMD 的显卡其实也可以,似乎是 QEMU 来做的,具体实现方式未知。
具体的设备列表见下:
在开始之前可以看看:https://cloud.io.net/explorer/home
基本上只有 A100 是一直有人租用的,其他的都是空闲。所以大多数是可能就是 idle 挂机领积分(官方说了 idle 也是有积分的),因此我认为没有太大必要为了这个项目买很好的 PC 显卡来刷空投。
另外发现 Mac 的权重很高,同样 idle Mac 的性价比会很高。
一般来讲按照官网的提示操作就行。一般步骤如下:
参考官方文档在自己的电脑上安装 Docker:https://docs.docker.com/get-docker/
Linux 有点特别,但本质上还是通过 docker 来安装的。所以其实也可以直接自己安装。
或者也可以使用更加轻量和快速的 orbstack :
brew install --cask orbstack
Mac 相关
注册账号并导航:https://cloud.io.net/worker/devices
连接新设备
可以看到官方甚至告诉你每一步应该做什么,该去什么地方下载,跑什么命令,照着操作即可。
启动之后会启动三个容器,常驻运行的会有两个。运行之后点一下 Refresh ,确保 worker 已经注册即可。
WARNING: Plugin "/Users/xxx/.docker/cli-plugins/docker-scan" is not valid: failed to fetch metadata: fork/exec /Users/xxx/.docker/cli-plugins/docker-scan: no such file or directory
WARNING: daemon is not using the default seccomp profile
NOTE: If you see a warning regarding the platform mismatch (linux/amd64 vs. linux/arm64/v8), please ignore it. This is expected when running on macOS with M1/M2/M3 chips.
WARNING: Plugin "/Users/xxx/.docker/cli-plugins/docker-scan" is not valid: failed to fetch metadata: fork/exec /Users/xxx/.docker/cli-plugins/docker-scan: no such file or directory
WARNING: daemon is not using the default seccomp profile
v0.1: Pulling from ionetcontainers/io-launch
d51af753c3d3: Already exists
fc878cd0a91c: Already exists
6154df8ff988: Already exists
fee5db0ff82f: Already exists
683986a13a30: Already exists
39160ab4f23f: Pull complete
40258508c0e1: Pull complete
3168d6cb2fe2: Pull complete
20f4332bdabe: Pull complete
1177225ad48a: Pull complete
efec69bcb00d: Pull complete
82179bad8b90: Pull complete
4da1c55e03a3: Pull complete
4f4fb700ef54: Pull complete
2be1dc1217a7: Pull complete
0aad397bfc36: Pull complete
55a6877c0f99: Pull complete
fc72df4cc7d7: Pull complete
18953da0cd23: Pull complete
74fe7a453e58: Pull complete
Digest: sha256:73a6dfa7757eade4efd3924bb6b47125295036efe48a590190c75884ee10afc6
Status: Downloaded newer image for ionetcontainers/io-launch:v0.1
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
fe4dbe02389fe0cc4e6008881b0a432fc237a2b5b1c5519210cf280d6465b43b
➔ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c4361501bf69 ionetcontainers/io-worker-monitor "tail -f /dev/null" 5 minutes ago Up 5 minutes romantic_banach
42a3464d7c37 ionetcontainers/io-worker-vc "sudo -E /srp/invoke…" 6 minutes ago Up 6 minutes competent_albattani
可以看到官方的二进制会自动执行 docker 命令,帮你把需要启动的容器都启动起来,非常无脑。
因为市场供大于求,所以一般都是 idle,自己电脑顺带跑一跑其实没啥压力。例如我就跑了两台:
需要注意的是似乎对流量要求比较高,所以多注意自己梯子的流量消耗(例如容器)。听朋友说一天消耗掉 100G 的时候也有。
Be aware that you will be installing a 20GB size container. This contains all the packages needed to serve AI/ML apps. Everything happens inside the container, nothing within the container can access your filesystem.
不过很奇怪的是 rewards 一直都没有显示记录,也一直显示 Internal Error。不确定到底是官方的问题还是我的问题,还是先继续跑着吧。
Linux 相关
Vultr
不知道为啥我开了 ionet 之后总觉得 mac 的网络有些问题,所以还是想在服务器上面跑,即便要花点小钱,所以我想到了 Vultr 这家有 GPU 的云厂商(也有一些国产的,不过都被用光了,而且也没有便宜的)。
使用这个链接注册可以拿到 100 USD 的试用:https://www.vultr.com/?ref=9435510-8H
操作开通一下最便宜的 A16 机型(1/16 个核心,一个月 22 刀),然后发现GPU 机型默认是不开通的,需要通过工单申请。
如果拿来测试的机器是从 MJJ 买的月抛,这种情况还是比较特殊的,建议就不要去提工单,不然就会:
主打一个自投罗网 2333 虽然也可以自己 PS ID 和 银行卡,但最好是别主动触发他们的风控和 billing department 的审查,别问我怎么知道的。
所以我又拿着我自己的账号操作了一下,刚好账号里面还有以前冲的 100 刀还没用完。
先购买一个 1/16 的 A16,操作系统选 Debian(因为 ionet 官方的脚本是基于 Debian 的,apt 也比较通用一些)。
# install docker and deps
curl -L https://github.com/ionet-official/io-net-official-setup-script/raw/main/ionet-setup.sh -o ionet-setup.sh
chmod +x ionet-setup.sh && ./ionet-setup.sh
# call docker
curl -L https://github.com/ionet-official/io_launch_binaries/raw/main/launch_binary_linux -o launch_binary_linux
chmod +x launch_binary_linux
./launch_binary_linux --device_id=e96cb2b0-5e09-4134-9fa2-da4740fbc867 --user_id=f9d8753b-4a3a-44ac-a1c7-xxxx --operating_system="Linux" --usegpus=true --device_name=vultr-a16
不过似乎官网存在一些什么 bug 一直没有显示我的新设备,等一段时间看看。也怀疑可能和我选的 印度有关,换个英国看看。
还发现如果选择了 GPU Enabled Debian 直接自带了 docker。
通过 nvidia-smi
可以查看显卡信息
通过上面说的 refresh 之后提示 worker 已经连接点击跳转之后提示 设备不支持,暂时不确定原因,可能比较一个合理的原因是 1/16 个核心的原因?也可能是 A16 + 1/16 个核心的缘故?
后续会再尝试一下别种。
但实际上之前我看到也有人在 Vultr 上面开的 A16 也是可以连接的,很怪。
2024.03.25 开了一台 A100 本来准备试试 但是看到了下图 项目方代码质量实在是绝了。
试了 1/20 的 A100 还是提示 Unsupported,4GB 一个小时 0.17 usd。
重新开了一台 1个 GPU 的 A100 依旧提示 Unsupported,80GB 一个小时 2.6 USD。
尝试等了三个小时似乎还是没有效果,可能确实是设备不支持,不确定他们对 vultr 做了什么。至此以下几款机型都尝试过了:
暂时不进一步尝试,毕竟有钱也不是这么花的。
Scaleway
如果你没有 Mac M1 以上的芯片,也许可以考虑 Scaleway 的服务:https://console.scaleway.com/asaas/servers
开完账号可以提个工单,问问有没有coupon。以前我就是这么干的,不过 code 找不到了。
Paris 1 有 M2+16G 的组合,一个月 720 小时也就是 122 EUR,需要的可以自己开。
或者选择 Paris 3,是 M1 的 CPU + 8G ,价格便宜一些,一个小时 0.11 EUR 一个月也就是 79.2 EUR。当然了,系数比 M2 也小一些。
需要注意的是现在有银行卡认证,在扣费之后银行的 statement 上面会有一个 4 位数的验证码,需要在 10 天内通过验证,这样账号才是完全可用的。
Vast/Runpod
可以使用这个链接注册 vast,最低 5 USD 起充值。或者用这个链接注册 runpod,对比之下比如 A2000 vast 只需要 0.1 USD 一个小时 Runpod 需要 0.14 USD。
vast 本质也是 ionet 的竞品,你可以把自己的设备出租,也可以在上面租用别人的设备,价格例如 3060 一个小时 0.15 usd ,按照具体使用时间扣费(不像 vultr 一扣一小时,所以试错成本很低,开一个机就 0.01 usd)。
他们的原理是在 agent 上面起一个他们的进程,他们会自动创建一个容器(也就是所谓的 template),然后注入一些他们的运行时和安全机制,所以本质上就是给你一个打包过的 docker pod。ionet 也是通过镜像来调度的,而且只给了 二进制,对具体的机制还不知清楚,我试着看了一些 镜像中的操作,里面也打包了二进制,还是无法绕开它们的启动二进制来做(比如自己单独起两个容器并给具体的参数)。
我也尝试了 DIND(Docker in Docker)的方式,发现因为他们加了壳,所以没法在启动的 pod 中再启动一套 docker。遂也以失败告终。
所以现在 vast.ai 还是无法用来挖 ionet。可能后面如果他们开放了非 docker 的方式就可以尝试了,这边插个眼。
Runpod 应该也是类似的情况,这边不进一步尝试。
Hetzner
可以通过这个链接:https://www.hetzner.com/dedicated-rootserver/#cpu_type=ARM 来订购 除了有 setup fee (49 EUR)首月会贵一些,这边不定期有货。
一个月 53.80 EUR 已经很便宜了 起码比 scaleway 便宜(0.17 EUR per hour,而且还没有货),市面上没有更加便宜的了。可以用这个链接注册,可以拿到 20 EUR 首月的抵扣,需要用全程中国 IP+护照注册,全部填写实际信息才可能不封号。注册地址: https://hetzner.cloud/?ref=FIYt5AsJkLHh
至此,可能答案就是有自己的设备且符合要求的就挖一下,否则并不是很适合参与。
如果有余力的话或者没有设备的话可以做一下银河的任务: