SHA256
Добавить ListBlockchainHeads для межсерверной сверки
This commit is contained in:
@@ -2,10 +2,11 @@
|
||||
|
||||
Этот файл описывает технические WebSocket-запросы, которые нужны для служебной работы клиента с сервером. Часть операций доступна без авторизации, часть требует успешной авторизованной сессии.
|
||||
|
||||
Сейчас здесь шесть методов:
|
||||
Сейчас здесь семь методов:
|
||||
|
||||
- `Ping` — keep-alive запрос для поддержания живого WebSocket-соединения;
|
||||
- `GetServerInfo` — запрос базовой публичной информации о сервере для выбора узла в децентрализованной сети;
|
||||
- `ListBlockchainHeads` — краткая сводка по всем локальным блокчейнам сервера для межсерверной синхронизации;
|
||||
- `GetCallIceConfig` — выдача STUN/TURN конфигурации для звонков;
|
||||
- `ClientErrorLog` — отправка клиентской ошибки в серверный лог;
|
||||
- `ClientDebugLog` — отправка клиентского debug-события в серверный буфер;
|
||||
@@ -15,6 +16,7 @@
|
||||
|
||||
- `Ping` нужен для регулярной проверки, что соединение всё ещё живо;
|
||||
- `GetServerInfo` нужен до авторизации и до работы с данными, чтобы клиент понял, что сервер доступен, и показал пользователю краткую карточку этого узла.
|
||||
- `ListBlockchainHeads` нужен для сервер-сервер сверки: партнёр получает список heads по всем цепочкам, сравнивает его со своим состоянием и затем добирает недостающие блоки по диапазону.
|
||||
|
||||
Ниже сначала описаны назначение методов, затем точные форматы запросов и ответов.
|
||||
|
||||
@@ -134,7 +136,68 @@
|
||||
|
||||
---
|
||||
|
||||
## 3. `GetCallIceConfig`
|
||||
## 3. `ListBlockchainHeads`
|
||||
|
||||
### Назначение
|
||||
|
||||
Запрос краткой сводки по всем локальным блокчейнам сервера.
|
||||
|
||||
Нужен для межсерверной синхронизации. Партнёр может:
|
||||
|
||||
- получить список всех блокчейнов;
|
||||
- сравнить `lastBlockNumber` и `lastBlockHash` со своими значениями;
|
||||
- понять, какие цепочки нужно догонять;
|
||||
- затем отдельно запросить недостающие блоки по диапазону.
|
||||
|
||||
Этот запрос доступен без авторизации.
|
||||
|
||||
### Запрос
|
||||
|
||||
```json
|
||||
{
|
||||
"op": "ListBlockchainHeads",
|
||||
"requestId": "heads-001",
|
||||
"payload": {}
|
||||
}
|
||||
```
|
||||
|
||||
### Успешный ответ
|
||||
|
||||
```json
|
||||
{
|
||||
"op": "ListBlockchainHeads",
|
||||
"requestId": "heads-001",
|
||||
"status": 200,
|
||||
"ok": true,
|
||||
"payload": {
|
||||
"blockchains": [
|
||||
{
|
||||
"blockchainName": "alice_main",
|
||||
"lastBlockNumber": 124,
|
||||
"lastBlockHash": "aabbccdd00112233445566778899aabbccddeeff00112233445566778899aabb",
|
||||
"fileSizeBytes": 58720
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Поля ответа
|
||||
|
||||
- `blockchains` — массив текущих heads всех цепочек сервера.
|
||||
- `blockchainName` — имя блокчейна.
|
||||
- `lastBlockNumber` — последний номер блока в этой цепочке.
|
||||
- `lastBlockHash` — последний хэш блока в HEX-формате `64` символа.
|
||||
- `fileSizeBytes` — текущий размер файла блокчейна в байтах.
|
||||
|
||||
### Специфические коды ошибок `ListBlockchainHeads`
|
||||
|
||||
- У `ListBlockchainHeads` нет специальных прикладных ошибок при штатной работе.
|
||||
- Если произойдёт непредвиденная проблема, сервер вернёт общую ошибку из раздела `00`, обычно `500 / INTERNAL_ERROR`.
|
||||
|
||||
---
|
||||
|
||||
## 4. `GetCallIceConfig`
|
||||
|
||||
Доступно только после успешной авторизации.
|
||||
|
||||
@@ -184,7 +247,7 @@
|
||||
|
||||
---
|
||||
|
||||
## 4. `ClientErrorLog`
|
||||
## 5. `ClientErrorLog`
|
||||
|
||||
### Запрос
|
||||
|
||||
@@ -231,7 +294,7 @@
|
||||
|
||||
---
|
||||
|
||||
## 5. `ClientDebugLog`
|
||||
## 6. `ClientDebugLog`
|
||||
|
||||
### Запрос
|
||||
|
||||
@@ -269,7 +332,7 @@
|
||||
|
||||
---
|
||||
|
||||
## 6. `CallDeliveryReport`
|
||||
## 7. `CallDeliveryReport`
|
||||
|
||||
### Запрос
|
||||
|
||||
|
||||
Reference in New Issue
Block a user