Prime Seeker 统一客户端 v0.9.1
本次计算程序更新
网站 GFPS 任务使用 GFPS_16 1.0(固定 n=16、限定百万位附近偶数底数),
GHCWPS 更新为 1.2,按已验证的显卡及 NTT 区间选择15/18/21-bit路径。
通用 GFPS 4.5 继续单独在公开工具库提供。
在线更新后,自动选择模式会在下一次启动任务前下载并校验匹配的官方引擎, 存入独立版本目录;不会覆盖正在运行的程序、凭据、配置或任务断点。 已经开始的任务不被中途切换。关闭自动选择、手工修改清单或自行编译的程序均保留。 引擎下载失败会显示重试状态,不会把下载失败当作计算结果提交。
一个终端界面管理六个项目:独立开关、计算设置、任务队列与断点恢复。网站为 https://prpnet.astralprisma.top/,域名保持不变。
全新配置默认所有项目 OFF、调度停止。升级保留用户名、机器名、已有开关、任务和断点,并核验匹配显卡的计算程序。不会因打开界面就开始计算。
后台计算与监控分离
start.sh / start.cmd 默认连接本机后台服务。首次启动仍需要登录,且不会自动接任务;按 R 开始调度。
- B:返回 shell,只退出监控界面,当前任务、后续调度与日志继续运行。
- 再次运行启动脚本:连接原来的后台,显示同一任务和本次后台运行的提交计数,不会启动第二个计算进程。
- P:保存断点并暂停调度,后台仍保留。
- D:当前任务算完后停止接取新任务,后台仍保留。
- Q / Ctrl+C:请求保存断点,安全停止后台,再退出。直接关闭终端窗口或 SSH 断开只影响监控连接。
也可以在 shell 中管理后台:
./start.sh --background # 启动后台调度并立即返回(只运行已开启的项目)
./start.sh --service-status # 查看服务 PID、当前任务和运行状态
./start.sh --service-pause # 保存并暂停,保留后台
./start.sh --service-stop # 请求保存并退出后台;不会强杀计算程序
./start.sh # 重新打开监控画面
Windows 对应使用 start.cmd,参数相同。--foreground 保留旧前台模式,该模式不能按 B 分离。
升级前正在运行的旧前台客户端不能被无缝接管;请先用 Q 保存退出,再启动新版。
本版本不注册开机自启,也不承诺系统重启、强制结束后台或主机主动清理用户进程后继续运行;已有断点保留。
后台仅监听本机回环地址,并使用随机控制凭据验证请求;Linux 控制文件限制为当前用户可读写,Windows 使用当前用户 DPAPI 保护。
.service/service.log 为轮转日志(4 MiB,最多两个旧日志),.service/launcher.log 记录启动错误。
后台持有安装目录和工作目录锁;不要删除锁文件或手动修改运行中的配置来启动第二份客户端。
更新检查、可选自动更新均由后台负责;安装前等待当前任务完成,更新后保留运行或暂停状态。更新时监控连接可能关闭,重新运行启动脚本即可。
六个项目
| 项目 | 候选形式 | GPU 程序 | CPU 程序 |
|---|---|---|---|
| GFPS | b^(2^n)+1,目前网络任务 n=16 |
GFPS | PRST |
| GPRPS | k*b^n±1 |
GPRPS | PRST |
| KBBPS | k*b^b±1,严格 b=n |
GPRPS | PRST |
| GNCWPS | (n(±1))*b^n±1,k=n、n−1 或 n+1 |
GPRPS | PRST |
| GHCWPS | b^n*n^b±1 |
GHCWPS | PRST |
| GFPPS | k*n!±1、k*n#±1 |
GFPPS | PRST |
六个项目使用独立队列和工作目录。网络候选已经筛好,参与计算不需要筛子。GPRSV/GHCWSV 等筛法工具只在独立工具仓库和 Releases 中提供。
PRP 是 probable prime,不是确定性素数证明。客户端采用底数 2 的 Fermat 判据;重要命中需要独立复核与证明。CPU 的已证明结果也按协议作为 PRP 命中提交,不提升服务器的证明等级。
安装与启动
需要 Python 3.10+。Windows 首次运行 setup_windows.cmd 安装依赖,之后双击 start.cmd。也可用虚拟环境的 Python 启动 PrimeSeeker.py。
Linux / WSL / SSH:
sh setup_linux.sh
sh start.sh
Linux 虚拟环境默认放在用户缓存目录,避免 WSL 挂载盘不支持符号链接的问题。可设置 PRIME_SEEKER_VENV 指定环境目录;缺少 venv/ensurepip 时,先激活 Conda,或设置 PRIME_SEEKER_PYTHON 为可用 Python。安装脚本不会修改系统软件包,旧环境变量仍兼容。
Windows/Linux 使用各自的 settings.json / settings.linux.json,请勿拿示例配置覆盖已有配置。首次启动先登录或注册,用户名来自登录账户;按 F2 → 全局设置 调整本机机器名,所有项目共用。不同机器请使用不同机器名。
v0.7:全局账户与永久积分
- 首次使用登录或注册;已有贡献者请使用原来的用户名,初始登录信息由站长私下通知。首次登录必须设置自己的新密码,至少 10 个字符。
- 服务器分配永久用户 ID。用户主页为
/user/<id>,贡献总榜为/rank;账号在所有公开项目中共用。 - 登录后客户端目录生成
credentials.json,内含服务器签发的加密票据,不含密码。Linux 文件权限为 0600,Windows 另用当前系统用户的 DPAPI 加密。不要分享或上传凭据文件;换电脑请重新登录。 - 每次启动自动验证凭据,无需重复输入密码。服务器仅保存凭据的 SHA-256 校验值、所属账户及撤销状态,不备份可直接用于登录的票据。
- F3 或
--password修改密码;必须已登录并输入当前密码。改密后本机凭据自动换发,其他设备凭据撤销,需要重新登录。请先完成其他机器上的任务或准备重新登录再提交,任务及断点不会删除。 --login [用户名]登录/切换账户,--register [用户名]注册,--logout撤销本机凭据。不要把密码写在命令行参数、脚本或配置里。- 领取新任务需要 0.9 或更新版本;版本标识用于协议兼容性检查,登录票据才是身份凭据。已领取的任务可在原租约期限内凭原领取令牌提交。
- 所有项目按候选十进制位数÷10,000,逐任务四舍五入到两位小数。总榜倍率:GFPS×1;GPRPS/KBBPS/GNCWPS×3;GHCWPS×5;GFPPS×6。单项目积分奖章按基础分×对应倍率评定,贡献表仍显示未加权基础分。积分由服务器统一计算,归档不扣分,当前规则以网站排行榜为准。
- 积分在完成事务里独立记账,清理候选或归档不减分,重复提交不重复加分;未计算的取消任务不计分。项目列显示未加权积分,总榜显示加权总分。
命令行示例(Windows 将 sh start.sh 换为 start.cmd):
sh start.sh --login
sh start.sh --register
sh start.sh --password
sh start.sh --logout
v0.6:Linux换行与全局身份
- 发布包中所有
.sh脚本均为UTF-8、LF换行、无BOM,包含源码构建脚本;完整包和签名更新包在打包后再次检查。 - 新配置为version2,顶层
identity保存user和client,项目设置不再重复保存这两个字段。服务器、项目开关、算力权重及计算参数仍独立设置。 - v0.5及更早的version1配置会自动迁移:身份一致时直接合并;有多个不同身份时在F2提示确认,不擅自挑选一个。迁移前保留
settings*.json.v1-identity.bak。 - 已领取任务保留原领取身份直到提交结束,身份迁移不修改任务文件、断点或历史积分。运行中修改身份需先按P暂停并等待保存;暂停后的旧任务可以按原身份继续,新任务使用全局身份。
- 命令行可执行
sh start.sh --identity "用户名" "机器名"(Windows用start.cmd --identity ...)。旧的逐项目--set ID user=.../client=...会提示改用全局设置。
如果旧版Linux脚本已因CRLF无法启动,可先执行下面的一次性修复,再按原方式启动并检查更新:
sed -i 's/\r$//' setup_linux.sh start.sh
sh start.sh --check-update
建议终端至少 100 列 × 32 行。支持鼠标、Tab、方向键;窄窗口可以滚动。
常用操作
| 按键 | 功能 |
|---|---|
| Space | 开启/关闭所选项目领取新任务 |
| E | 项目设置;Ctrl+S 保存,Esc 取消 |
| F2 | 查看登录用户名,修改机器名、内存保护和更新设置 |
| F3 | 账户与密码;安全暂停后修改密码 |
| R | 启动调度 |
| P | 暂停并请求当前任务安全保存断点 |
| D | 算完当前任务、提交后停止 |
| F5 | 立即刷新服务器 Queued 数量 |
| C | 检查本地配置,不领取任务 |
| T | 清除所选项目的错误状态,允许重试 |
| U | 检查新版 |
| Shift+U | 确认安装已发现的新版 |
| A | 新增使用已注册引擎的项目 |
| Q / Ctrl+C | 请求保存并退出,等待自己的子进程结束 |
关闭项目开关只影响下一次领取;立即停下用 P。全局同时只运行一个任务,包括 CPU 后端。权重按任务周期分配,不是 GPU 时间百分比。
设置与 Queued 状态
项目设置分三页:身份/服务器/工作目录,计算后端/断点,以及网络/重试/保留策略。设置按引擎能力显示;GPRPS 支持窗口位,GFPS 支持 anchor,GFPPS/GHCWPS 不支持 duty 降载。CPU 最多 16 线程。
Queued 默认每 60 秒更新,可设 15–3600 秒,不能低于 15 秒。升级保留已有合法的自定义间隔;旧值低于 15 秒时改为 60 秒。暂停计算或关闭项目不会停止公开状态查询;F5 可手动刷新。
0 表示服务器明确返回空队列;— 表示尚未获取,* 表示上次成功数据已过期。连接失败会退避,不把断线当成空队列。最多三个并发公开 GET 查询,不发送任务或管理员令牌。
运行中使用启动时参数,修改在下一任务生效。已有任务时禁止直接更改身份、服务器、工作目录和计算后端,避免误用令牌/断点。不要删除 current_task.json 绕过保护。
自动选择 GPU / CPU
完整包包含 Windows/Linux x86-64 的四种计算程序,各提供 sm_86 / sm_89 / sm_100 / sm_120 原生版本,以及 PRST CPU。无需安装 nvcc;需要兼容的驱动与系统运行库。
自动检测实际计算能力和驱动,不仅凭显卡型号选择。没有兼容 GPU 或初始化失败时,给出警告并使用 CPU。数值校验失败不会被忽略或当成合数。若 CPU 同样不可运行,则停止该项目并报告错误,不伪造回退成功。
GHCWPS 的 CPU 路径先计算 k=n^b,再让 PRST 检验 k*b^n±1。长表达式通过独立 INI 文件输入,避免命令行长度限制;完整 result.txt 必须与展开后的候选完全匹配,才转换回原始 b^n*n^b±1 提交。不会用终端缩略字符串确认结果。
CPU/GPU 断点格式不同,切换后通常从头计算当前候选,旧目录保留至结果确认。计算前检查程序哈希,用户自定义路径和特化程序可通过关闭自动选择保留使用。
内存保护与恢复
可用内存低于 1024 MiB 与总内存 5% 的较大值时,不启动新计算。默认每 10 秒重检,恢复后额外预留 max(256 MiB, 总内存 1%),连续稳定 30 秒才继续。F2 可调整这些参数。
这只阻止新计算,不强杀当前程序。用户暂停、关闭项目或退出后,不会因为内存回落而自动启动。配置/数值错误仍需处理后按 T;待提交结果可在没有 GPU 程序的情况下继续提交。
签名更新
默认每 6 小时检查,自动安装默认关闭。按 U 检查,Shift+U 安装;也可在 F2 开启自动安装。安装等待当前任务结束后执行,重启恢复之前的调度状态;等待期间手动暂停则保持暂停。
更新只从官方 HTTPS 下载站获取,校验内置公钥签名、压缩包和逐文件 SHA-256。配置、身份、任务、断点及已有 CUDA/PRST 程序均不覆盖;自定义控制代码会阻止自动覆盖。依赖/Python 变化须手动安装。失败可回滚,事务记录在 .updates/。
代码更新到本版后,首次实际启用 GHCWPS 时,若缺少对应 GPU 程序,会从官方固定地址下载并核对随签名代码发布的大小/哈希;只添加缺失文件,不替换已有特化程序。完整包已包含它们,无需额外下载。没有兼容 GPU 时使用包内 PRST。
非常旧的客户端没有更新器,应退出后手动解压新包,保留自己的配置和 work/。同一安装目录只允许一个客户端;不要同时开第二个实例更新正在运行的管理器。
# Windows
start.cmd --check-update
start.cmd --update
start.cmd --status
start.cmd --enable ghcwps
start.cmd --set gprps duty_percent=70
start.cmd --run
# Linux 对应:sh start.sh <参数>
文件、任务格式和安全
settings*.json 是私密配置;runtime/ 为临时运行配置;work/<项目>/ 保存任务、回执和断点。不要公开这些内容。升级保留原有路径,入口兼容旧脚本,统一以 start.cmd / start.sh 启动即可。
每个网络任务只有一个候选。GFPS 文件为单个 b;GPRPS/KBBPS/GNCWPS 是一行 k*b^n±1。GHCWPS 文件名如 GHCWPS_cand_7_79580_S.txt:
GHCWPS
7^79580*79580^7+1
GFPPS 同样使用类型行和表达式行。任务、结果及候选表达式都必须匹配;上传走各项目 /api/admin/import,管理令牌独立,不应写进普通客户端配置。
新数学类型需要实现并验证新适配器,不能仅改名称获得新算法。断线、暂停、未完成/未确认结果都不会被提交为合数;只清理服务器明确确认的任务目录。界面日志为有界缓冲,不无限积累。
IBGFPS — Identical Base Generalized Fermat Prime Search
Public project: https://prpnet.astralprisma.top/ibgfps/
Tasks specify even base b and index n: N=b^(2^n)+1. The general GFPS 4.5 engine supports 1 <= n <= 20, subject to its exact CRT bound. This is distinct from GFPS_16 used by the GFPS project. Each task has its own checkpoint and durable receipt. GPU binaries cover sm_86/89/100/120 on Windows/Linux; unsupported GPUs use PRST CPU. No prime proof is implied by a PRP result.
IBGFPS is added disabled; enable it explicitly in project settings. Existing project switches, custom programs and running tasks remain unchanged. Credit is decimal digits / 10,000 rounded per task to two decimals, weight 1.00. Accepted uploaded sieve batches use survivor count × agreed sieve depth / 10^17, identical to GFPS.
IBGFPS 为公开的同底数广义费马搜索项目。b、n 随任务变化,使用通用 GFPS,不使用 GFPS_16。升级后默认关闭;不会修改其他项目开关或断点。暂不自动领取或上传筛分候选。