P+Prime SeekerPRIME SEARCH NETWORK

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 开始调度。

也可以在 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:全局账户与永久积分

命令行示例(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换行与全局身份

如果旧版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。升级后默认关闭;不会修改其他项目开关或断点。暂不自动领取或上传筛分候选。