前言

《链游Farmers World【农民世界】爆火,发布一个免费开源的脚本》

在之前的文章中,我们分享了一个开源的农民世界(Farmers World)脚本
【OpenFarmer】:https://github.com/encoderlee/OpenFarmer

经过这段时间以来的不断学习,我们开发出了外星世界(Alien Worlds)的脚本
【OpenAlien】:https://github.com/encoderlee/OpenAlien

技术更新

两者的实现原理都差不多,但这次的【OpenAlien】和之前的 【OpenFarmer】相比,本次开源的【OpenFarmer】有两个更新要点:

1.彻底让wax云钱包账号脱离了Chrome浏览器运行,采用提取Token的方式直接发HTTP请求签名

2.底层的 EOSIO SDK 由原来的
【eospy】: https://github.com/eosnewyork/eospy
换成了我们自己开发的
【eosapi】: https://github.com/encoderlee/eosapi

支持交易的序列化,优化了错误处理,以前发送交易出错的时候,没有明确的区分错误类型,现在【OpenAlien】可以处理不同类型的错误并给出提示,尤其是节点错误的处理,避免频繁重试导致IP和账号被节点拉黑。

用法

使用方法一:

在github页面右侧的【Releases】里下载最新版打包版本,打包版本只支持Win10或更高版本的操作系统。

把压缩包里的文件解压出来,先修改配置文件【user.yml】,再双击运行【user.bat】

多开第二个账号,复制【user.yml】为【user2.yml】,复制【user.bat】为【user2.bat】

修改配置文件【user2.yml】为第二个账户的信息,修改【user2.bat】文件,把里面的字符串“user.yml”改为“user2.yml”,然后双击运行【user2.bat】

多开更多账号,以此类推

使用方法二:

1.从源码运行,先安装 Python 环境,推荐安装 Python 3.9.13 版本,因为这是我们测试过的版本

下载地址:https://www.python.org/ftp/python/3.9.13/python-3.9.13-amd64.exe

安装时记得勾选“Add Python 3.9 to PATH”

2.下载源码,在 github 项目页面上点击绿色按钮【Code】,【Download ZIP】,下载后解压出来

3.双击运行【install_dependencies.bat】安装依赖包,这个步骤每台电脑只需做一次

4.先修改配置文件【user.yml】,再双击运行【user.bat】

5.多开方法和上面一样,就是复制这两个文件,修改后运行

配置文件说明

#注意,每个参数名的冒号后面,都有一个空格,修改参数不要丢了空格# wax节点地址,使用公共节点,有时候会网络不通,或者访问太频繁被限制,出现429错误,可以换节点,或者搭建私有节点# 公共节点列表:https://wax.eosio.online/endpointsrpc_domain: https://wax.pink.gg# cpu代付号,cpu_key填写该代付号私钥,不需要代付则留空# 注意,由于外星世界官方于2022年10月更新了智能合约,阻止代付行为,所以代付功能失效cpu_account:cpu_key:# 即使可挖时间到了,也延迟20-60秒再挖delay1: 20delay2: 60# http代理(比如127.0.0.1:10808)# 给脚本设置HTTP代理,这样可以在一定程度上解决公共节点限制访问的问题,不需要则留空proxy:proxy_username:proxy_password:# 下面三项改为你的账号信息# account是wax云钱包账号名# token是什么,先在chrome浏览器中手工登录WAX云钱包https://wallet.wax.io/dashboard# 然后在chrome浏览器中输入地址导航到: https://all-access.wax.io/api/session# 把token复制出来填到下面# charge_time是采集间隔,单位秒,登录alienworlds官网,打开工具页面,就可以看到,按实际情况填写account: gts3c.c.wamtoken: EHuyFHPcLpSNUJ4BLSUnPxxxxxxxxxxxxcharge_time: 336

公共节点列表:https://wax.eosio.online/endpoints

注意,从 Chrome 浏览器中复制出 token 后,浏览器可以点右上角叉叉关闭,但不要点退出登录该账号,也不要直接重新登录另外一个账号,不然之前的账号会掉线。

如果需要在 Chrome 中登录第二个账号,请使用 Chrome 的多用户功能登录

Chrome 多用户相关文章:https://www.chensnotes.com/chrome-profile.html

常用工具

【nodepad++】https://notepad-plus-plus.org/downloads/v8.4.2

文本编辑器,编辑修改【user.yml】配置文件更愉快

【cmder】https://cmder.net

替代 windows 自带的 cmd 命令行工具,防止脚本假死

系统自带的 cmd 命令行工具,默认开启快速编辑模式,有时候因为鼠标键盘意外操作,

日志会留在一个地方,处于假死状态,导致脚本不能持续运行,换用【cmder】解决该问题

常见错误

1.交易错误

交易错误的原因有很多种,比如智能合约报错,CPU不足,秘钥不对,WAX节点限制等

连续出现5次交易出错,脚本将停止,此时需要手工检查问题或更换节点

为什么不一直继续反复重试?因为反复提交错误的交易,公共节点就会把你拉黑,需要24小时之后才能使用该节点了

自行架设 WAX 私有节点,会在一定程度上改善此问题

2.节点错误

节点错误,尤其是 429 错误,主要是因为你一个IP下面同时跑的号太多了,请求频繁,被节点拉黑

公共节点毕竟是面向全球的免费服务,为了防止滥用,做了很多限制

每N个号设置一个代理IP,或者自行架设 WAX 私有节点,会在一定程度上改善此问题

欢迎打赏

wax钱包地址:

m45yy.wam

更新记录

v1.1 (2022年11月8日)

  1. 优化logger,允许每个账号的日志输出到不同的文件
  2. 从代码中移除 eosapi 源文件,直接从 pip 下载该库
  3. 增加账户可用的CPU资源判断,如果CPU不足则不会冒然尝试提交交易,减少因频繁提交错误交易被节点拉黑的概率
  4. 注意,由于外星世界官方于2022年10月更新了智能合约,阻止代付行为,所以代付功能失效