Биткойн перестает реагировать на JSON-RPC, приходится все время перезапускать вручную

Я запускаю биткойн на AWS в Ubuntu. Машина имеет 4 ГБ памяти и freeпоказывает, что часть ее остается свободной. Места на диске тоже достаточно.

Тем не менее, мне довольно часто приходится перезапускать биткойн вручную, потому что отправка запросов JSON-RPC возвращает ошибку тайм-аута. То есть сначала они работают, а потом нет. Независимо от того, какой запрос.

Кто-нибудь когда-нибудь сталкивался с этим? Почему это происходит? У кого-нибудь есть правдоподобная теория?

Какую версию биткойна вы используете? Кроме того, догнал ли блокчейн? (Вы можете сказать, в каком блоке вы находитесь, запустив bitcoind getinfoили bitcoin-cli getinfoсоответственно)
Приводит ли увеличение rpcthreadsк исчезновению проблемы?
Некоторое клиентское программное обеспечение HTTP не работает с функцией постоянного подключения, которую предлагает биткойн. Постоянные подключения снова отключены по умолчанию в версии 0.10, но их можно снова включить с помощью -rpckeepalive.

Ответы (2)

  1. Обновите до самой последней стабильной версии. Мы видели намного меньше утечек памяти с .10 на Ubuntu
  2. запускайте задание cron, чтобы перезапускать его каждую ночь около 4:00 утра, когда меньше всего транзакций. Это сократит утечку памяти
  3. убедитесь, что на вашем компьютере есть как минимум 4 гигабайта оперативной памяти и раздел подкачки на 2 гигабайта.
  4. дайте нам больше информации здесь. как дистрибутив Linux, статистика машины и какие вызовы rpc вы часто делаете.

Я заметил, что если HTTP-клиент, отправляющий запрос JSON-RPC, не отправляет заголовок, Connection: closeто RPC-сервер bitcoind перестает отвечать после ряда вызовов.

Действительно, похоже, есть некоторые проблемы с некоторыми клиентами и постоянными соединениями. 0.10 по умолчанию отключает постоянные соединения.