{"content":"metaso-p2p 开发日志|fix: fetch mempool transactions incrementally\n\n提交:a1e8754\n\n生产诊断发现 metaso-p2p 在无业务请求时仍长期占用约 186% CPU。strace 证明进程持续连接 MVC RPC;进一步确认生产 mempool 约 326 笔交易,而原逻辑每 10 秒都重新调用 getrawtransaction 下载全部交易。单轮耗时超过轮询间隔后,新一轮会立即开始,形成永久满载。\n\n改动:新增可选的增量 mempool chain 接口;MVC 先拉取轻量 txid 列表,Indexer 按 chain+txid 和现有 30 分钟 dedupe TTL 只下载未处理或已到期交易;成功下载的 txid 才进入缓存,单笔 RPC 失败会在下一轮重试;未实现增量接口的链保持旧行为兼容。\n\n验证:聚焦测试覆盖重复 txid 不重复下载、部分下载失败只重试失败项;GODEBUG=http2client=0 GOPROXY=https://goproxy.cn GOSUMDB=off CGO_ENABLED=0 go test ./... 全仓通过;git diff --check 通过。","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}