Почему происходит сбой вызова API RPC «uptime», если Bitcoin Core запущен, но не синхронизирован полностью? - Биткойнер
Винтажный Клуб для гитаристов
2 голосов
/

По крайней мере, похоже, что это так, потому что созданная мною функция, чтобы определить, «работает» ли Bitcoin Core, выполняет самый минимальный / простой вызов API, который я мог найти (это было «время безотказной работы»), чтобы проверить, работает ли моя система. все еще может общаться с Bitcoin Core (на том же компьютере) или если что-то сломалось.

Поскольку блокчейн вырос до безумного размера, я был вынужден переместить свой биткойн-datadir с SSD-диска намеханический (из-за нехватки места на первом). Примерно в то же время я также настроил Bitcoin Core, чтобы всегда использовать Tor для всех соединений. Сочетание этих двух вещей вызвало неожиданную проблему: «все ли еще нормально?»Сбой сценария для Bitcoin Core, когда я запускаю компьютер после ночного сна, потому что для подготовки Bitcoin Core требуется больше времени, чем раньше. Иногда это может занять около получаса.

(Это также влияет на мои опросы для проверки текущего баланса, что по крайней мере понятно, потому что Bitcoin Core, вероятно, не хочет сообщать устаревшую цифру, если новыйданные, подлежащие извлечению, изменяют баланс.)

Все, что говорится в руководстве, таково: https://bitcoincore.org/en/doc/0.18.0/rpc/control/uptime/

(По какой-то причине нет документов API для 0.18.1 ... последняя версия - 0.18.)

Мои вопросы:

  1. Это известная проблема / ошибка? Будет ли это исправлено в ближайшее время?
  2. Должен ли я использовать какой-либо другой вызов API, чтобы проверить, работает ли Bitcoin Core и может ли я говорить со мной?
  3. Можно ли использовать отдельный вызов APIопределить, готово ли Bitcoin Core «полностью готово к действию» (полностью синхронизировано)?

1 Ответ

0 голосов
/

Узлу не нужно синхронизироваться полностью, чтобы RPC начал отвечать на запросы.

Что происходит, если Bitcoin Core запускается в режиме «разогрева». Во время прогрева RPC недоступен, поскольку система настраивается. Это когда кошельки, сеть ваша локальная информация UTXO, установка индекса блока и проверка ваших локальных блоков имеют место. (Я подозреваю, что вы могли перепутать сообщение «Проверка блоков ...» с синхронизацией.). В режиме прогрева RPC-порт 8333 открыт, но он будет возвращать ошибку JSON для каждого запроса. Открытый порт сигнализирует входящим подключающимся узлам, что там есть узел, но он еще не может отвечать на запросы.

После выполнения этой процедуры прогрева (занимает несколько минут) узел будет запущен и синхронизируется ссеть. Во время синхронизации, даже если это занимает недели, сервер RPC включен. Очевидно, что он не сможет отвечать на запросы для блоков, которые он еще не получил и не проверил.

Это известная проблема / ошибка? Будет ли это исправлено в ближайшее время?

Не ошибка. Это часть того, как запускается Bitcoin Core.

Должен ли я использовать какой-то другой вызов API, чтобы проверить, работает ли Bitcoin Core и может ли я говорить со мной?

Попробуйте команду справки . Если он возвращается, это означает, что сервер RPC запущен.

Есть ли отдельный вызов API, который я мог бы использовать, чтобы определить, готово ли Bitcoin Core «к действию» (полностью синхронизировано)?

Вы можете попробовать использовать getblockcount, чтобы увидеть, какова высота последнего синхронизированного блока. Он полностью синхронизируется, если высота равна высоте сети. Опять же, вам не нужно это для использования RPC, но я включил это, чтобы ответить на ваш вопрос.

Попробуйте getrpcinfo проверить состояние сервера RPC.

Проверить другие методы API здесь .

Добро пожаловать на сайт Биткойнер, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...