返回监控页面

ETH 链上溢价监控

公开页面:https://balebababa.vip/eth-premium/

管理设置:https://balebababa.vip/admin/eth-premium/ (复用站点后台登录)

只监控 Ethereum 主网(chainId=1)。不托管私钥、不连接交易权限API、不签名、不自动交易。默认钱包已有主网 ETH,交易所已有 USDT;手动卖出链上ETH并在交易所买回扣费后等量ETH。操作后钱包ETH减少、钱包稳定币增加,交易所USDT减少、交易所ETH增加。充提状态未核实,不假定能临时提币赶上机会。

报价范围与来源

启动与每小时根据 Factory 发现池子,核对 chainId、代币 decimals、合约代码、Factory、token0/token1 与 V3 fee。ETH→三种稳定币支持 V3 500/3000 费率池与 V2 直池。USDC/DAI→USDT支持 V3 100/500 与 V2 直池,每次按本笔实际数量逐条模拟、选择所得最多的转换路线。既不按名称猜币,也不把USDC/DAI视为1 USDT。展示的价格影响只用于解释报价,不用中间价触发提醒。

V3 使用 QuoterV2 quoteExactInputSingle 的 eth_call;V2使用 Router02 getAmountsOut 的 eth_call,均指定区块号,保存该区块哈希和原始返回值。正收益达到条件后,备用独立RPC复核同一区块哈希与该数量的模拟所得。备用结果不一致、落后、失败或主链变化,不提醒。

交易所只使用币安 ETHUSDT、OKX ETH-USDT 现货卖盘深度,逐档累加。币安采用depth增量流+REST快照桥接 lastUpdateId/U/u,序号缺口重新同步;OKX采用books快照与prevSeqId/seqId连续更新,序号重置重新同步。OKX最新官方文档已弃用固定为0的checksum,以序号为准;非零旧checksum仍校验。静默时用REST快照/seqId核实无变化,不能仅靠ping把旧盘口视为新数据。

净收益口径

预计净利润(USDT)= 链上实际模拟所得折算USDT − 买回等量ETH本金 − 交易所手续费 − Gas − 可选恢复库存成本。

保守净利润在预计净利润上进一步扣除滑点缓冲、额外费用缓冲及Gas缓冲。净收益率=保守净利润÷买回总成本(含交易所手续费)×100%。预计净收益率也使用同一分母。毛价差只减买回本金,不等于可实现利润。

DEX手续费和价格影响已经包含在amountOut中,不再扣除。USDC/DAI折算包含实际转换费与价格影响,额外转换Gas及保守授权Gas另计。没有可靠转换报价时净收益未确认,不发净收益提醒。页面所有收益均为USDT,不宣称美元估值。

默认交易所费率10bps(0.1%),须按实际账户修改。默认手续费从ETH扣除:买入数量=q/(1−费率),确保扣费后净增持q ETH;若实际从USDT扣除,改为USDT扣费模式。BNB抵扣等情况可填实际有效费率,但本版不读取账户佣金规则。

Gas单价估算=区块baseFee+可配置优先费;V3池执行Gas使用Quoter估计,再加单独的交易/路由开销。V2池执行Gas使用可配置预算。原生ETH加包装预算,WETH加一次保守授权预算;稳定币转换再加转换执行、路由与授权预算。组件在证据中逐项列出,不把包装与授权同时加到同一输入资产。它不是钱包地址相关的精确eth_estimateGas;实际交易须重新估算。

默认滑点缓冲20bps,额外费用缓冲2 USDT,Gas缓冲25%。恢复库存费用为用户自填预估,单独展示,可勾选计入完整闭环成本;并不代表交易所充提已经可用。

提醒和持续时间

默认监控0.1、0.5、1、5、10 ETH,默认只提醒1 ETH,可配置多档。每档页面选出当前保守净利润最优路线;所有候选路线及不同数量分别保留计算与机会记录。服务端与页面优先提醒每档最佳路线,减少相同数量的相近路线刷屏。

首次双RPC复核通过立即生成提醒事件;连续两个不同新区块满足条件补发持续确认。默认同机会冷却60秒;级别上升、利润同时满足增加25%及10 USDT时可提前提醒。费用/阈值/数量设置改变时按新版本重新确认,旧口径摘要保留。待发送消息在发送前重新检查当前盘口和最新收益条件。

机会摘要记录first_seen、last_seen、first_below_threshold、采样间隔、峰值净利润、累计已确认时长、最长连续时段、中断原因与重组撤销状态。累计时长仅累加两个相邻有效新区块之间未检测到数据中断的区间;同区块复核不增加区块数。断流、报价失效、RPC分歧和进程停止期间不计入已确认时长。恢复后先标为单区块重新确认,不用过去成交/K线反推持续溢价。

启用通知

1. 打开公开页,点击“启用声音”,浏览器需要该用户手势才能播放。声音开关属于当前页面会话。

2. 点击“授权浏览器通知”,允许站点权限;需要HTTPS、浏览器和系统支持,手机浏览器可能不支持。点测试按钮产生明确标注的本地测试,不写真实机会记录。

3. 页面关闭后网页声音/Notification API不保证工作。本版未部署Web Push。后台勾选“启用服务端企业微信提醒”并保存,才能通过后端在页面关闭时继续通知。

4. 新模块复用站点企业微信发送方式。部署时若已有行情异动机器人地址,会只在服务器内复制到受保护的环境文件,不输出凭据;新模块推送默认关闭,不改变旧模块设置。若未配置地址,运维设置 ETH_PREMIUM_WEBHOOK,重启spread-monitor后再开启。

5. 后台“测试服务端通知”会向对应群发送标注为测试的消息。开发验收不主动给真实群发送测试消息。

服务端每10秒最多1条,失败最多3次,超过60秒或机会已经失效的队列不补发。发送中重启标记结果未知,避免自动重复;第三方网络超时仍可能导致消息实际送达但结果未知。

部署与运行

新模块集成在已有 spread-monitor 进程,不新增独立常驻服务或付费依赖。

已有站点备份任务覆盖spread-monitor代码与SQLite,以及/etc/site-ops与systemd配置。部署额外生成可回滚文件备份及SQLite一致性快照。

RPC和成本控制

环境变量只在服务器配置:

ETH_PREMIUM_RPC_PRIMARY=https://ethereum-rpc.publicnode.com

ETH_PREMIUM_RPC_SECONDARY=https://eth.drpc.org

ETH_PREMIUM_RPC_WS=wss://ethereum-rpc.publicnode.com

ETH_PREMIUM_RPC_BUDGET=1200

ETH_PREMIUM_BACKUP_BUDGET=600

ETH_PREMIUM_WEBHOOK=(现有或新的企业微信机器人地址)

主备需不同提供商;同主机名被拒绝。默认使用独立PublicNode与dRPC公共服务。dRPC免费端每批最多3次调用,已适配,不需要付费方案。主端批量20次;计费/限额按每个JSON-RPC子调用计数,而不是按HTTP批次数隐瞒用量。

每个新区块对所有配置数量重报价;交易所盘口变化时每秒重算净收益,跨阈值最多每5秒触发额外链上复核。Ethereum订阅newHeads及目标池Swap,HTTP区块/日志作为核对与恢复。RPC超限、429、连续失败执行退避,期间停止机会提醒。数量增加可能触及公共RPC限额;先减少数量、提高可用额度或替换有可靠额度的独立RPC,不自动购买服务。

默认盘口有效期3秒,链上区块/报价20秒,可配置。公共RPC可能延迟、停服或缺少历史状态;不保证全天候可用。原始证据压缩保留30天,可配置1–90天;摘要0表示长期。使用系统现有磁盘监控,必要时调小保留期。不会保留全网逐笔成交。

测试与证据

运行:D:/develop/python/python.exe eth-premium/test_premium.py,覆盖数量深度、base/quote扣费、费用不重复、稳定币脱锚与无汇率、盘口序号/静默/旧数据、RPC预算/分歧、ABI顺序/decimals、首次/持续/升级/冷却/恢复/结束、断流时长、链重组撤销、原始证据与摘要保留。

受控高溢价全过程在独立内存数据库执行,测试数据标为test_only,静态验收报告 /eth-premium/acceptance.json,从不写入线上真实机会表。真实主网验收只做0.1 ETH的eth_call模拟,保存区块与两RPC原始结果,不签名或广播交易。

当前限制

不保证所有池、所有费率、拆单和聚合路由的全局最优;V3当前只做单池路线,稳定币折算是单独的第二腿。官方兑换页面会重新选路,不保证复现监控路线,用户须在钱包核对。

Gas和授权按无钱包上下文的保守预算,未知余额/allowance会保守计费;不验证用户账户手续费、余额、充提、提现手续费或税费。浏览器通知不替代服务端通知。链上模拟、盘口均可能在手动操作前变化,机会不是收益保证。

官方技术参考:

上线验收结果

52项测试(33项新模块+19项回归)及1440/390像素公网检查通过;45条证据离线复算一致,上线后0.1 ETH双RPC同区块模拟核对一致。没有执行真实交易,也未向真实群发送测试消息。企业微信地址已在服务器内复用,新模块推送默认关闭,需在后台开启。

本机实际启用的 sites-enabled/exchange-alert 是独立普通文件,不能只修改 sites-available。原始压缩证据实测约18KB/区块,按12秒估算约130MB/日、30天约4GB;现有14天全量备份还会额外占用磁盘。需结合现有磁盘告警检查,必要时调整保留期或扩容,不自动购买服务。

离线复算:在 /opt/spread-monitor 下执行 /opt/exchange-alert/backend/.venv/bin/python -m eth_premium.replay evidence.json。短时实测整个spread-monitor约137MiB内存、单核6.4% CPU,非模块单独占用。

主RPC免费HTTP接口不支持eth_getLogs,固定区块Swap日志由备用RPC读取并核对哈希与removed标志;新区块订阅不可用时通过HTTP轮询采集,健康区显示当前方式。