跳到主要内容

API参考

Epic在三个软件中提供七个可编程接口。选择哪个取决于你需要链数据还是密钥操作。

概览

接口位置协议默认端口可花费
Node /v1/*节点REST,链读取与管理3413
节点/v2/owner节点JSON-RPC 2.0,节点管理3413
Node /v2/foreign节点JSON-RPC 2.0,链读取与交易提交3413
钱包 Owner /v3/owner钱包JSON-RPC 2.0,加密3420
Wallet Owner /v2/owner钱包JSON-RPC 2.0,未加密3420
Wallet Foreign /v2/foreign钱包JSON-RPC 2.03415
Epicbox中继中继WebSocket over TLS443

文档基于节点4.0.3和钱包4.0.0编写。

节点在同一端口的同一监听器上同时提供/v1/v2,作为两种接口风格而非两代接口。两者均处于活跃状态,该页面将每个v1路由映射到对应的JSON-RPC方法。

钱包也通过同一监听器提供两个owner接口,其中未加密的/v2/owner是两者中较旧的一个。

选择接口

读取链数据。 使用节点上的JSON-RPC:/v2/foreign用于区块、内核(kernel)和输出(output),/v2/owner用于节点状态和对等节点。不涉及密钥。从节点查询开始。

涉及余额、密钥或转账的操作。 使用钱包Owner API。它需要ECDH握手和钱包令牌,具体步骤参见连接与读取

接收支付。 运行epic-wallet listen会通过epicbox协议或HTTP自动处理。若要以编程方式处理slate,对应的Foreign API方法为receive_tx

运营中继基础设施。 参见epicbox协议

响应封装

每个Epic JSON-RPC方法均返回HTTP 200及JSON-RPC result,该结果内部包含第二层OkErr信封。一个请求可以在HTTP层和JSON-RPC层均成功,但仍可能执行失败:

{"id": 1, "jsonrpc": "2.0", "result": {"Ok": {"...": "data"}}}
{"id": 1, "jsonrpc": "2.0", "result": {"Err": {"NotEnoughFunds": {"available": 0}}}}

一个函数负责解包两层。examples/python/epic_wallet.py中的_unwrapErr时抛出异常,在Ok时返回值,该客户端中的每个调用都经过它。

金额

每个金额均为**freeman**的整数计数,1 EPIC等于100,000,000个。钱包Owner API将其u64字段序列化为JSON字符串,因此retrieve_summary_info以字符串形式返回total及每个amount_字段,node_height也以字符串形式返回height。在进行算术运算前需先解析。节点的JSON-RPC返回裸整数,包括get_status上的supplymax_supply

下一步