LITE_SERVER_UNKNOWN: не удается вычислить блок с указанной транзакцией: его нет в базе данных
-
Привет, я просто пытаюсь получить транзакции по адресу и время от времени получаю эту ошибку (несколько раз я получал успешный ответ)
запрос:
curl -X 'GET' 'https://toncenter.com/api/v2/getTransactions?address=EQBnvfmXYL_z7n4WriIEVrBNKVQBolTD5bx-syCe5B5EtqOy' -H 'accept: application/json'
ошибка:
{"ok":false,"error":"LITE_SERVER_UNKNOWN: cannot compute block with specified transaction: lt not in db","code":500}
- Почему я периодически получаю эту ошибку? 2. Нужно ли мне использовать свой собственный облегченный узел, чтобы избежать этой ошибки? В чем причина использования собственного облегченного узла?
Спасибо.
-
Я нахожусь в такой же ситуации, кажется, что сервер не хранит полные данные блока. Кроме того, в строке tongo@1.4.1/liteap/client.go 648 есть соответствующая обработка ошибок, но я этого не понял. Приблизительный код выглядит следующим образом: txs, err := c.GetTransactions(ctx, uint32(transactionCount), a, lastLt, ton.Bits256(LastHash)) if err != nil { если e, ok := err.(liteclient.LiteServerErrorC); ok && int32(e.Code) == -400 { // liteserver может хранить неполную историю. в этом случае он возвращает ошибку -400 для разрыва старых транзакций } возвращает nil, err }
-
Вероятно, вам следует добавить параметр "archival=true" в ваш запрос транзакций.