内存池 Stream 使用指南
PolyEdge 内存池交易流引擎基于标准 HTTP/2 Server-Sent Events (SSE) 协议,直连底层验证节点 P2P 广播层,在出块前(Pre-block)毫秒级推送撮合的内存池交易数据。
管理方式:您可以直接使用下方的 REST API 进行自动化管理,也可以前往网页端 控制台 Stream 管理 进行可视化创建、修改过滤条件与监控会话。
本指南介绍完整的四步闭环使用流程:创建流配置、建立长连接、在保持连接的前提下动态热更新订阅规则,以及销毁流会话。如需查询您名下当前所有的流配置及活跃会话数,可随时调用 获取流列表 (GET /streams)。
1. 创建流 (POST /streams)
向流网关注册一个内存池流配置,并声明初始过滤条件(支持钱包地址、分类标签及周期系列过滤):
curl -X POST "https://stream.polyedge.dev/streams" \
-H "Content-Type: application/json" \
-H "X-PolyEdge-Key: <YOUR_API_KEY>" \
-d '{
"name": "Production Copy-Trading Stream",
"addresses": ["0x2005d16a84ceefa912d4e380cd32e7ff827875ea"],
"tags": ["crypto", "politics"],
"series": ["sol-up-or-down-5m"]
}'
成功响应 (201 Created):
{
"id": "e8f3b207-9b4e-4b77-a8d1-1376d8b67cf9",
"name": "Production Copy-Trading Stream",
"enabled": true,
"addresses": ["0x2005d16a84ceefa912d4e380cd32e7ff827875ea"],
"tags": ["crypto", "politics"],
"series": ["sol-up-or-down-5m"],
"active_sessions": 0,
"created_at": "2026-09-25T20:55:27.788Z",
"updated_at": "2026-09-25T20:55:27.788Z"
}
记录返回的 id,下一步用于建立实时流连接。
2. 连接流 (GET /streams/{id})
使用支持 HTTP/2 或 SSE 长连接的客户端库(如 Node.js HTTP/2、Python httpx、Go net/http 或 curl)发起连接,实时监听内存池交易推送:
curl -N "https://stream.polyedge.dev/streams/e8f3b207-9b4e-4b77-a8d1-1376d8b67cf9" \
-H "X-PolyEdge-Key: <YOUR_API_KEY>"
报文格式与事件说明
服务器推送标准 SSE 数据帧:
event: tx:当在内存池中捕获到匹配过滤条件的链上交易时推送。data字段为 JSON 格式的LiveTransaction数据对象:id: 4716111 event: tx data: {"tx_hash":"0xcb9add...","timestamp":"2026-09-25T20:55:29.248Z","market":{...},"taker":{...},"makers":[...]}: heartbeat:每 30 秒自动发送的心跳注释帧,用于穿透 NAT 网关与反向代理,保持 TCP 连接存活:: heartbeat
保活与重连:在活跃的内存池 SSE 长连接中,服务器每 30 秒发送一次心跳。若客户端超过 60 秒未收到任何数据或心跳帧,建议主动断开当前 SSE 连接并重新建立。
3. 更新流 (PUT /streams/{id}/subscription)
PolyEdge 支持零停机动态热过滤。当需要增删监听地址、更换关注板块或周期系列时,直接调用此接口更新即可。所有活跃的内存池长连接会话将立即生效,无需断线重连:
curl -X PUT "https://stream.polyedge.dev/streams/e8f3b207-9b4e-4b77-a8d1-1376d8b67cf9/subscription" \
-H "Content-Type: application/json" \
-H "X-PolyEdge-Key: <YOUR_API_KEY>" \
-d '{
"addresses": [
"0x2005d16a84ceefa912d4e380cd32e7ff827875ea",
"0x592306c26c00c4d9ede9ee341aa39bb2782649cd"
],
"tags": ["sports", "tennis", "crypto"],
"series": ["itf"]
}'
成功响应 (200 OK):
{
"id": "e8f3b207-9b4e-4b77-a8d1-1376d8b67cf9",
"name": "Production Copy-Trading Stream",
"enabled": true,
"addresses": [
"0x2005d16a84ceefa912d4e380cd32e7ff827875ea",
"0x592306c26c00c4d9ede9ee341aa39bb2782649cd"
],
"tags": ["sports", "tennis", "crypto"],
"series": ["itf"],
"active_sessions": 1,
"updated_at": "2026-09-25T20:56:02.124Z"
}
4. 删除流 (DELETE /streams/{id})
当不再需要某个流会话时,调用此接口销毁配置并释放并发连接配额:
curl -X DELETE "https://stream.polyedge.dev/streams/e8f3b207-9b4e-4b77-a8d1-1376d8b67cf9" \
-H "X-PolyEdge-Key: <YOUR_API_KEY>"
成功响应 (200 OK):
{
"id": "e8f3b207-9b4e-4b77-a8d1-1376d8b67cf9"
}