雷電網絡(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
- 查詢已加入的代幣網絡:GET /api/(version)/connections
- 自動加入代幣網絡:PUT /api/(version)/connections/(token_address)
- 刪除指定的代幣網絡:DELETE /api/(version)/connections/(token_address)
- 支付相關API
原文鏈接:以太坊雷電網絡API文檔 — 匯智網