04 / 构建阅读需 5 分钟

服务与运维

仓库有两个独立进程:发送无需许可调用的 keeper,以及准备发布内容的事件中继。本地配置不证明服务已持续运行。

Keeper

Keeper 检查网络和 Hook/Lens 连接,再查询快照。文档流程优先符合条件的再平衡,否则配置资金,其他操作均不可用时才销毁隔离库存。

发送前模拟,每区块最多一项操作。预期资格拒绝属于正常结果;RPC 错误和意外模拟结果须报告为可处理错误。

从 dry-run 开始

services/ 中,安装并按 README 完成本地配置后:

DRY_RUN=true pnpm keeper:once

此模式不提交交易即可核查网络、部署、已解析地址、资格与估算。

运维钱包应专用于 gas,无需是部署者、团队或 guardian。最大 gas 与最小奖励参数限制执行,但不保证盈利。

交易日志与恢复

Keeper 按链、hook、钱包及 dry-run/live 模式隔离状态,使用本地进程锁及持久化意图、nonce、hash 日志。

超时或重启后,先恢复追踪现有交易,再准备新操作。无 hash 的意图含糊不清:修改日志前比较钱包 pending 与已挖出的 nonce。

只有确认旧进程已停止,才移除 .lock。锁是本地的,不能协调多机器。每个实例应使用适合的钱包和状态。

模块变化

当前 Lens 从注册表解析。整个操作期间保留核心身份与修订上下文。

多买墙版需更新 ABI、预览、拒绝原因和事件。未经该版验收,不能宣称单买墙 keeper 已适配验证。

事件中继

services/floor-bot 读取事件、准备文字,保留游标与去重键 transactionHash:logIndex

Dry-run 与发布模式状态分开。游标含链与 hook 上下文;服务支持网络使用最终确认区块。重组或不一致检查点须先协调再恢复。

中继发布前持久化 pendingPost。若外部服务已接受消息,而进程在记录成功前停止,重试前应确认消息是否存在:本地数据库与社交网络不能共同提交。

GitBook 不执行发布。实际启用中继需独立的运维配置与授权。

为固定买墙调整措辞

旧中继播报 FloorRaised。即时策略中,注资可在低于上次注资的价格建立买墙,同时保留旧价位。

因此中继须说明相关买墙、价位和新增资金,不能仅据事件名推断全局上涨。旧说法“floor 永远上升”不适用此策略。

有用的运维检查

追踪 RPC 错误、配置偏差、待处理回执、模拟失败、keeper gas 余额及最后处理区块的时间。保存恢复日志和版本身份,不包含私有签名数据。

能重启进程的监控不能代替解决 nonce 不明确或注册表变更问题。

来源: services/keeper/README.md, services/floor-bot/README.md, services/keeper/src/index.ts 以及 services/shared.

CUBIT / 2026 年 9 月 10 日 来源与方法