通過 Websocket 接收區塊鏈網路上發生的事件。
API
GET /api/v1/networks/{network}/events/subscribe
Url Path 參數 | 描述 |
|---|---|
network | 通道名稱 |
access_token | 訪問REST API所需的Access Token |
source | 訂閱的事件類型 (“Tx”, “Config”, “Contract”, “Block”)。訂閱多種類型時,使用逗號(,)分割多個訂閱類型,”*“ 表示訂閱所有類型的事件 |
訊息內容
名稱 | 類型 | 描述 |
|---|---|---|
id | String | 事件ID,通道內唯一 |
name | String | 事件名稱 |
type | EventType | 事件類型(“Tx”, “Config”, “Contract”, “Block”): Tx:發生了一筆交易; Config:區塊鏈系統配置發生變更; Contract:交易中使用者智能合約設定的事件; Block:產生了新的區塊; |
network | String | 通道名稱 |
instance_id | String | 訂閱事件的執行個體ID,組織內唯一 |
content | Object | 當EventType為“Tx”或“Config” 時,該值為Transaction結構; 當EventType為“Contract”時,該值為String類型,內容為經過Base64編碼的事件內容; 當EventType為“Block”時,該值為Block結構; |
Transaction
名稱 | 類型 | 描述 |
|---|---|---|
id | String | 交易ID,當交易類型是配置變更時,該值為空白 |
state | String | 交易狀態,”VALID” 表示合法交易,其它值表示非法交易 |
from | String | 交易的發起者,格式為 <組織MSP>.<使用者名稱> |
to | String | 交易調用的目標鏈碼名稱,當交易類型是配置變更時,該值為空白 |
input | String | 經過JSON編碼的鏈碼調用參數,配置變更時為JSON編碼的common.ConfigUpdate |
events | List<Event> | 證券交易所產生的區塊鏈事件列表 |
data | Object | 交易的詳細內容,資料結構為交易中的common.Payload |
Block
名稱 | 類型 | 描述 |
|---|---|---|
number | Integer | 區塊塊高 |
hash | String | hex 編碼後的當前區塊hash值 |
previous_hash | String | hex 編碼後的上一區塊hash值 |
create_time | Integer | 當前區塊建立時間,Unix秒級時間戳記 |
transactions | List<String> | 當前區塊中,包含的所有交易的交易ID列表 |
樣本
請求樣本
wscat -c "ws://your.gateway.endpoint/api/v1/networks/channel3/events/subscribe?access_token=<Your URL Encoded Access Token>&source=%2A"正常推送訊息樣本
{
"type": "Block",
"platform": "Fabric",
"instance_id": "csi-e2ehmfqasth-bcw7tzao2dzeo",
"network": "channel3",
"id": "block-282",
"name": "282",
"content": {
"number": 282,
"hash": "f7b42d07509c463f8e8cde0fcc8325b42e8bf7fd6a7a24dd207eed297fcd6358",
"create_time": 1581589504,
"previous_hash": "b8de08d49217c1d8f4ea398c8c61fe2a5bc46ec7bb6c95f44dfd29eaf6c272ab",
"transactions": [
"dc90b701e27afa5120ee003ef9d51b86a2ff9e1a9d8537f65387bde6d92c5cba"
]
}
}錯誤碼
請參考錯誤碼。