跳到主要内容

更新日志

Rocky 永续合约 API 与 现货 API 的重大变更日志,最新在前。

2026-09-18​

  • Epoch 承诺(ADR-005): 交易所上的每个订单事件和每笔成交——含自营账户——现在都会在与事件同一个数据库事务里写入 append-only 日志,并每 60 秒一个 epoch 以 RockyEpochCommitment 合约承诺到 Canton(日志的 Merkle 根加当期成交记录;prev_root 成链;绝不跳过)。新增公开接口 GET /v1/chain/status、/v1/chain/epochs、/v1/chain/epochs/{id} 和 /v1/chain/proof?seq=|ref_id=,返回任何人都能对照链上根验证的包含证明。见 Epoch 承诺。
  • 流量透明: GET /v1/traffic 公布交易所按预算 lane 实测的 Canton 流量与免费额度的对比,GET /v1/traffic/mm 是 Rocky 自营做市舰队据以自适应的单字状态;自营成交量现在有预算(约每天 2 万笔)而不再无上限。
  • 净额结算: 同一对 party 之间的成交按对手方对归批,以一笔原子多腿 DvP 按资产净额交割(60 秒窗口,敞口小时自适应延长至最多 15 分钟;成交达 500 笔或敞口大时立即结算)。批内所有成交共享一个 cantonUpdateId;净为零的批次不产生账本交易即确认。见 链上结算。
  • 结算通道: DvP 结算器现在以同一笔原子交易里的两笔 Token Standard 直接转账完成结算(rocky-clob-v8 0.6.0;主网实测每笔 DvP 14 KB,原 32 KB),receiver 缺少 direct preapproval 时回退到 allocate + execute;每条腿选最少的输入 holding,用一小组并发 worker(SPOT_CHAIN_WORKERS,默认 2)结算且绝不花同一个 holding,生产环境每 2 秒轮询一次。
  • 市场: ACC-USDCB 下架(挂单已撤销退款,历史仍可查询)。活跃现货市场:CBTC-USX、CBTC-USDCB、CBTC-USDCX、CETH-USDCB、CETH-CBTC。

2026-09-02​

  • 现货 WebSocket 推送(Phase C): Binance 风格的行情流,位于 wss://api.rocky.exchange/ws/<stream> 与 /stream?streams=…——<symbol>@depth5|depth10|depth20(250 ms 快照)、<symbol>@trade、<symbol>@kline_1m、<symbol>@ticker(1 秒)。流名为小写且保留交易对中的连字符(cbtc-usdcb@trade)。治理:每连接 32 个流,每 IP 16 个连接(RATE_LIMIT_WS_CONNS_PER_IP,在 upgrade 阶段返回 HTTP 429),服务端 20 秒 ping,60 秒 pong 超时,非法流列表以关闭码 1008 并附可读原因拒绝。没有订阅/取消订阅协议、没有用户数据流、没有增量深度。见 WebSocket 行情推送、有限档深度信息、逐笔交易、K 线与 Ticker、增量深度信息(空缺)。
  • 边缘: nginx 现在以 WebSocket upgrade header 和 300 秒读超时代理 /ws/ 与 /stream;转发 X-Real-IP,使按 IP 的连接上限以真实客户端为键。
  • 文档: 新增 现货 API 章节——总览、基本信息(HMAC-SHA256 与 Ed25519 签名及参考向量、限流档位与权重、错误码、汇总的 与 Binance 的差异)、每一个 /api/v3 端点、链上结算(DvP 模型、状态机、按 updateId 在 Canton 上验证、零手续费、minNotional、STP)、机构接入 与 集成包模板。

2026-08-31​

  • 链上现货结算(Phase A): 客户账户之间的每一笔现货成交现在都由 spot-chain-settler worker 以两腿原子 DvP 的形式在 Canton 上交割(串行 FIFO、带退避的重试、终态 failed/skipped 审计行),按交易场所通过结算水位线启用。绑定到 Canton party 并完成 MemberAuth 的账户成为钱包出资账户:ledger.spot_balances 作为钱包的镜像维护(30 秒对账,带钳制、撤单及缺口时冻结);该分段的内部 funding→spot 转账与托管提现被禁用;链上分段以零手续费结算;按交易对的 minNotional(USD 计价市场:10)在下单时以 -1013 强制执行;新的网关门槛返回 -2010 Account is frozen… 与 -2012 Complete wallet enrollment (MemberAuth) before trading.。自成交防护(撮合器跳过同账户挂单)已由回归测试固定并公开披露。见 链上结算。
  • 现货 REST 新增(Phase B): GET /api/v3/exchangeInfo(交易对、PRICE_FILTER / LOT_SIZE / NOTIONAL 过滤器、实际执行的 rateLimits)、GET /api/v3/ping、GET /api/v3/time。GET /api/v3/myTrades 新增 settlementStatus(pending|processing|retry|confirmed|failed|skipped|internal)与 cantonUpdateId。见 交易规范信息、账户成交历史。
  • 限流(Phase B): 所有 /api/v3/* 与 /fapi/* 路由启用 Binance 形态的固定窗口限流器——按 key 的请求权重及 10 秒 / 1 分钟订单计数,按档位区分(standard 1200/50/200,ext-mm 2400/100/600,house 6000/200/1200),按 IP 的公开权重 6000/分钟与鉴权前签名刹车 24000/分钟,响应 header X-MBX-USED-WEIGHT-1M、X-MBX-ORDER-COUNT-10S、X-MBX-ORDER-COUNT-1M,拒绝时返回 429 {"code":-1003}。没有 418 升级,也没有 Retry-After。见 限流。
  • API 密钥(Phase B): 新增 ED25519 密钥类型——Rocky 只存储 base64 公钥,并对与 HMAC 相同的规范化载荷验证 base64 Ed25519 签名;mint_api_key --ed25519 --pubkey <b64>。auth.api_keys 新增 rate_tier 列(默认 standard;外部做市商为 ext-mm;Rocky 自有集群为 house,须在部署限流器前显式设置)。见 鉴权。
  • FAPI: 永续合约接口面共用同一限流器、header、错误码与密钥类型;现有 HMAC 密钥不受影响。

2026-07-01​

  • 后端: 上线可变杠杆支持——实现 POST /fapi/v1/leverage(按用户+交易对设置偏好,1~100 倍),POST /v1/orders 的 leverage 字段不再被静默限制为系统统一的 10 倍,GET /fapi/v2/positionRisk、GET /v1/positions/* 返回真实的持仓杠杆。保证金计算(ledger.orders_open.leverage、ledger.positions.leverage)在开仓/加仓/反手时使用该笔订单实际选择的杠杆,在减仓/平仓时使用持仓自身已有的杠杆(而非平仓单填写的杠杆),详见 设置杠杆、下单、下单(Web v1)。
  • 后端: 确认交易对列表本就只有 BTC-PERP/ETH-PERP/CC-PERP——ledger.markets、symbol_map、撮合引擎、oracle-poller 中均未发现其他交易对。
  • 后端: 上线积分(Points)与推荐返佣(Referral)的自动累积流水线(services/api-gateway/src/accrual.rs)——每 5 秒从真实成交(ledger.trades)按文档中的档位表计算 Trading Points 与推荐佣金。GET /v1/referral/dashboard 的 total_referred_volume/active_referrals/pending_earnings/tier 及 POST /v1/referral/claim 均已改为真实数据,不再是硬编码的 0。PnL Points、Holding Points、Staking Points 及赛季分配引擎仍未实现,具体状态见 积分总览 与 推荐总览。
  • 后端: ledger.trades 新增 is_maker 字段(供累积流水线区分 maker/taker 费率)。
  • 后端: 实现 GET /fapi/v1/openInterest(基于 ledger.positions 聚合),见 持仓量。
  • Bot: 修复一起生产事故——rocky-bot 的 taker 循环因 config.py 的默认值意外覆盖了 TakerLoop 自身正确的默认值,实际下单频率超出设计值约 60 倍、单笔数量超出设计值 10~200 倍,导致撮合引擎的 NATS 订阅过载,BTC-PERP 订单簿与数据库失步长达 6 小时以上、完全无成交。同时修复了 flatten-positions.sh/funnel-auto-reset.sh 提交时未带可执行权限,导致生产环境定期清仓任务静默失败的问题。
  • 文档: 用户账户 API 与 CC 充值流程 标注为描述已被替代的 mtc-exchange 时代架构(邮箱密码登录、已不存在的 BFF),并补充了当前实际使用的钱包鉴权与充值接口说明。MTC 挖矿奖励 标注为未实现并说明原因。Bot 文档(下单数量、风控上限、交易对数量)已与 bot 实际的(刻意放大过的)配置对齐。

2026-05-26​

  • 文档: 重构 API 参考结构,对齐行业通用永续合约分类。每个端点都有对应页面;未支持的标 空缺。
  • 后端: apply.rs 引入 LEVERAGE_V1=10 常量,关闭长期的 margin-leak 类 bug。

2026-05-25​

  • FAPI: 首版上线。HMAC-SHA256 签名、X-MBX-APIKEY header、recvWindow 上限 60s。订单 CRUD + openOrders + /fapi/v2/balance + /fapi/v2/positionRisk。
  • 行情: GET /v1/markets/{symbol}/{ticker,orderbook,recent-trades,candles,funding-rate} 与 GET /fapi/v1/{exchangeInfo,ticker/price}。

2026-05-22​

  • Web v1: 历史成交相关接口(/v1/{positions,orders,trades,fees,funding}/me)。
  • Web v1: POST /v1/orders、DELETE /v1/orders/{order_id} 用于浏览器端下单。

2026-05-19​

  • Web v1: CC 提现流程(POST /v1/withdrawals、GET /v1/withdrawals/{wid})。
  • 开发工具: POST /v1/deposits/seed、POST /v1/funding/tick(仅 devnet)。