跳到主要内容

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.1.0和钱包4.1.0编写。

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

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

选择接口​

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

涉及余额、密钥或转账的操作。 钱包Owner API。需要使用钱包的.owner_api_secret进行HTTP Basic身份验证、ECDH握手以及钱包令牌,具体步骤参见连接与读取。

接收支付。 运行epic-wallet listen可通过epicbox协议或HTTP自动处理。如需以编程方式处理slate,Foreign API方法为receive_tx。

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

响应封装​

每个Epic JSON-RPC方法均返回HTTP 200及JSON-RPC result,该结果内部还有第二层Ok或Err信封。请求可能在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中的_unwrap在Err时抛出异常,在Ok时返回值,该客户端中的每次调用都经过它。

金额​

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

下一步​