网络与环境
平台提供两个完全独立的运行环境,分别部署在两个独立的域名上。账户、账本余额、API 密钥以及 Webhook 签名私钥仅归属于其中一个环境 —— 两者互不相通。
开始之前
| 对比维度 | 主网 (Mainnet) | Nile 测试网 |
|---|---|---|
| Base URL | https://api.tenergy.me/v1 | https://api-nile.tenergy.me/v1 |
| 密钥前缀 | ak_live_… / sk_live_… | ak_test_… / sk_test_… |
| 账户余额 | 通过链上真实充值到账 | 通过控制台测试网水龙头直接领取测试币 |
| 价格计算 | 实时动态定价撮合引擎 | 固定测试价格表 |
GET /v1/prices 与 Webhook 中的 network 标识 | mainnet | nile |
将某环境的密钥发送至另一环境的主机时,在查询密钥前就会被系统直接拒绝,并返回 1012 key_environment_mismatch。
检查当前连接的环境
公开接口 GET /v1/prices 返回当前所处的网络标识,客户端可以在发起任何扣费请求前主动断言环境是否正确。
curl -s https://api-nile.tenergy.me/v1/prices | grep -o '"network":"[a-z]*"'
const prices = await (await fetch("https://api-nile.tenergy.me/v1/prices")).json();
if (prices.network !== "nile") throw new Error(`预期为 nile,实际收到 ${prices.network}`);
import json, urllib.request
with urllib.request.urlopen("https://api-nile.tenergy.me/v1/prices") as res:
prices = json.load(res)
assert prices["network"] == "nile", prices["network"]
Nile 测试网无法完全验证的差异
Nile 测试网并非主网的完全等价镜像。建议在测试网验证 API 调用流程与数据结构,而在主网实测真实链上行为。
| 业务机制 | Nile 测试网 | 主网 (Mainnet) |
|---|---|---|
| 撮合供应商执行 | 仅通过 ITRX 执行 —— 其他外部供应商均无测试网接口 | 接入全部自营与第三方级联流动性 |
| 库存容量 | 仅具备小额固定测试库存;大额订单可能返回 5001 insufficient_supply | 接入全网实时海量流动性供给 |
| 链上最大委托锁定期 | 最长 5 天(getMaxDelegateLockPeriod 为 144,000 个区块) | 最长 30 天(864,000 个区块) |
| 赎回解冻延迟 | 1 天 | 14 天(getUnfreezeDelayDays) |
| 档位与流水线 | 无法演练 30d 长租档位与质押解锁赎回流水线 | 所有档位与流水线均正常运转 |
来自 Nile 测试网的 Webhook 通知使用 Nile 端点独立的密钥进行签名。如果您的接收服务同时处理主网与测试网的回调,请务必根据载荷中的 network 字段或回调 URL 来选择验证密钥 —— 切勿根据事件类型来判断。