雷电网络(Raiden Network)是以太坊区块链的链下扩容方案,Raiden节点的Restful API官方文档中文版由汇智网提供,访问地址:http://cw.hubwiz.com/card/c/raiden-api/
Raiden API访问端结点URL中通常包含有版本信息,以便支持对不同版本API的访问,所有的API访问URL前缀都是:/api/<version>/
。
如果希望快速掌握区块链应用的开发,推荐汇智网的区块链应用开发系列教程, 内容涵盖比特币、以太坊、eos、超级账本fabric和tendermint等多种区块链,以及 java、go、nodejs、python、php、c#、dart等多种开发语言。
1、API请求/响应数据的JSON编码
API的访问请求与响应都采用JSON编码。下面是API中的常用对象。
1.1 通道 / Channel
通道对象示例如下:
{
"channel_identifier": 21,
"token_network_identifier": "0x2a65Aca4D5fC5B5C859090a6c34d164135398226",
"partner_address": "0x61C808D82A3Ac53231750daDc13c777b59310bD9",
"token_address": "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8",
"balance": 25000000,
"total_deposit": 35000000,
"state": "opened",
"settle_timeout": 500,
"reveal_timeout": 40
}
通道对象包含如下字段:
- channel_identifier:通道的标识,整数
- partner_address:对方地址, EIP55编码的地址字符串,用来开启一个通道
- token_address:代币地址,EIP555编码的代币地址字符串,用于通道上的交易
- token_network_identifier:代币网络标识符,EIP55编码的代币网络标识符
- balance:可用代币余额,整数
- total_deposit:已存入通道合约的金额,整数
- state:通道的当前状态,字符串,可能的值包括:
opened
- 通道已开启closed
- 通道已关闭settled
- 通道已关闭而且已清算 - settle_timeout:通道清算超时区块数,整数
- reveal_timeout:允许的最大揭示超时区块数,整数
1.2 通道事件 / Event
通道事件也编码为JSON对象,事件的参数作为事件对象的属性。为了便于区分不同类型的事件,在事件对象上额外添加了event_type
和block_number
属性。
2、API错误信息
对于不成功的API请求,会返回对应的http状态码,例如409冲突或400错误请求等,同时也会在返回的json对象中附带errors字段,你可以用来获取关于错误的详细信息。但是,需要指出的是,如果Raiden不能处理收到的请求并且抛出异常,那么将返回http状态码 500,这时返回的就不是json对象,而只是一个字符串消息Internal server error
。 这是由于我们依赖于其他开发库来实现API,发生异常时我们无法正常处理响应消息。
无论如何,我们认为500错误是Raiden的bug,如果你碰到这种现象,请反馈给我们。
3、访问端结点
Raiden提供了以下访问端结点,可以在开发时选用:
- 基础API
- 查询雷电节点信息: GET /api/(version)/address
- 注册指定的代币 :PUT /api/(version)/tokens/(token_address)
- 通道及代币信息查询API
- 获取未结算通道列表:GET /api/(version)/channels
- 获取指定代币的未结算通道列表:GET /api/(version)/channels/(token_address)
- 查询指定通道的信息: GET /api/(version)/channels/(token_address)/(partner_address)
- 获取已注册代币列表: GET /api/(version)/tokens
- 获取指定代币的网络地址: GET /api/(version)/tokens/(token_address)
- 获取指定代币未结算通道的对手方: GET /api/(version)/tokens/(token_address)/partners
- 获取未完成转账清单:GET /api/(version)/pending_transfers
- 获取指定代币的未完成转账列表:GET /api/(version)/pending_transfers/(token_address)
- 获取指定通道的未完成转账列表:GET /api/(version)/pending_transfers/(token_address)/(partner_address)
- 通道管理API
- 连接管理API
- 支付相关API
原文链接:以太坊雷电网络API文档 — 汇智网