Отображаемые транзакции могут быть неверными!

Когда я вхожу bitcoind getinfoна свой удаленный сервер Ubuntu, я получаю этот ответ:

{  
    "version" : 32400,
    ... (some other info)
    "errors" : "WARNING: Displayed transactions may not be correct!  You may need to upgrade, or other nodes may need to upgrade."
} 
  • Что пошло не так?
  • Как я могу это исправить?

Вот что я делал раньше:

Я запускаю удаленный сервер с Ubuntu 12.04 LTSоперационной системой. Машина находится в 800 км от моего дома, я подключен к ней по SSH. Так что графического интерфейса нет, я могу использовать только команды оболочки.

Вчера я установил биткойн, вызвав эту команду оболочки (будучи root) после обновления всех остальных пакетов ( apt-get updateза которыми следует apt-get dist-upgrade):

# apt-get install bitcoind

биткойн и 8 или 10 других пакетов были установлены.
Затем я отредактировал /root/.bitcoin/bitcoin.confи ввел это:

server=1
daemon=1
rpcuser=[мое имя пользователя]
rpcpassword=[очень длинный пароль]

Затем я запустил bitcoind, позвонив

# bitcoind

Ответ был

запуск биткойн-сервера

но даже после ожидания более 5 минут я не получил обратно оболочку (я не мог ввести новые команды). Поэтому я нажал

ctrl-c

Когда я снова вошел bitcoind, я обнаружил, что он уже запущен:

Биткойн: не удается получить блокировку каталога данных /root/.bitcoin. Биткойн, вероятно, уже запущен.

Он также работал после закрытия и повторного открытия ssh-соединения с сервером. Так что я думал, что теперь все в порядке. Я также сгенерировал биткойн-адрес, который работал нормально.

Теперь, примерно через 12 или 14 часов, я снова подключился к серверу ubuntu и вошел

# bitcoind getinfo

но ответ был

ошибка: не удалось подключиться к серверу

также отображение всех активных процессов по вызову topпоказало мне, что биткойн не запущен. Поэтому я снова запустил его, введя bitcoindв командной строке, но снова не получил оболочку, поэтому снова пришлось нажимать ctrl-c. Но когда я вошел bitcoind getinfoпосле этого, я получил ответ, который я разместил в начале этого сообщения ( "errors" : "WARNING: Displayed transactions may not be correct! ...)

Итак, вот мои вопросы:

  1. Что пошло не так?
  2. Как я могу это исправить?
  3. Как я могу запустить биткойн и снова вернуться в оболочку?
  4. Как я могу остановить биткойн? (Я просто могу убить процесс, я не знаю другого способа)

РЕДАКТИРОВАТЬ 1:

(2014-01-08; вечер)

Об остановке bitcoind: я узнал, что команда bitcoind stop. Но когда я попробовал это вчера, я получил сообщение об ошибке (извините, не могу вспомнить точное сообщение об ошибке. Я думаю, оно сказало «неизвестная команда», но я не уверен)


РЕДАКТИРОВАТЬ 2:

(2014-01-09; утро)

Вчера я остановил bitcoind и удалил все в каталоге /root/.bitcoin/, кроме wallet.dat и bitcoin.conf. Затем я снова запустил биткойн. Даже спустя 8 часов все еще работало нормально. Иногда для ответа на такие команды, как , требовалось до 20 секунд bitcoind getinfo, но биткойн всегда давал ожидаемый ответ без каких-либо сообщений об ошибках.

Итак, я лег спать, а сегодня утром снова зашел на свой сервер и обнаружил, что биткойн не работает (ответ bitcoind getinfoбыл error: couldn't connect to server).

Итак, я начал с команды bitcoind. Ответ был bitcoin server starting, но я не вернул оболочку (не могу вводить новые команды). Поэтому я открыл вторую оболочку и вошел bitcoind getinfoтуда, и через несколько секунд сервер ответил статус-json-объектом с пустой строкой ошибки (что означает: нет ошибки). Так что я считаю, что старт удался. Но первая оболочка (где я запускал биткойн) все еще зависает, так как прошло уже более 30 минут.

Краткий ответ: похоже, у вас очень старая версия биткойн-клиента и вам нужно обновить ее. Я постараюсь опубликовать более подробный ответ позже.
Удалите все файлы blk*.dat в вашем каталоге биткойнов. Пусть он загрузит все блоки с нуля и посмотрите, не отображается ли сообщение «Отображаемые транзакции могут быть неправильными!» предупреждение все еще отображается. Если да, то проверьте жесткий диск на наличие поврежденных дорожек, убедитесь, что он не заполнен, нет ли какой-либо антивирусной/антивредоносной программы, портящей ваши данные, и т. д. Удачи.
@NateEldredge: Нет, это самая новая доступная версия для Ubuntu. Вчера я написал в своем вопросе: «Вчера я установил биткойн...». Таким образом, дата установки была 7 января 2014 года. И я опубликовал номер версии. Это 32400р.

Ответы (1)

Вы используете биткойн 0.3.24. Это очень старая версия, которая не будет работать должным образом в сегодняшней сети Биткойн. Последняя версия 0.8.6.

Похоже, что сопровождающие Ubuntu не обновили версию bitcoind в стандартном репозитории 12.04; поэтому вам придется получить текущую версию откуда-то еще. Разработчики Ubuntu поддерживают собственный репозиторий биткойнов, поэтому вы можете установить последнюю версию, выполнив следующие действия:

sudo add-apt-repository ppa:bitcoin/bitcoin 
sudo apt-get update
sudo apt-get install bitcoind

Вы также можете получить эти инструкции из «официального» источника, перейдя по ссылке http://bitcoin.org/en/download и перейдя по ссылке «Ubuntu (PPA)».

В ответ на ваш другой вопрос, когда вы запускаете bitcoindбез аргументов, он запускается на переднем плане и принимает команды на стандартный ввод (после задержки на минуту или две при запуске). Вы можете выйти из него, набрав stop. Вы также можете запустить его в фоновом режиме, выполнив bitcoind -daemon, а затем передать ему команды, запустив bitcoind getinfoи т. д.

«add-apt-repository ppa:bitcoin/bitcoin» не сработал (неизвестная команда add-apt-repository). Поэтому я отредактировал sources.list и вставил эту строку: «deb ppa.launchpad.net/bitcoin/bitcoin/ubuntu точное основное». После этого я позвонил «apt-get update» и получил сообщение об ошибке, в котором говорилось, что не удалось найти открытый ключ. Поэтому мне пришлось вызвать «apt-key adv --recv-keys --keyserver keyserver.ubuntu.com [идентификатор ключа из сообщения об ошибке]». Затем сработало «apt-get update», и с помощью «apt-get dist-upgrade» я смог обновиться до версии «80600» (которая, как мне кажется, 0.8.6).
@HubertSchölnast: Хорошо. apt-add-repositoryделает это за один шаг. У вас, видимо, он не установлен, но он есть в python-software-propertiesпакете (в 12.04).
@NateEldredge В комментарии выше вы написали «apt-add», но в ответ вы написали «add-apt». Я думаю, что один из двух может быть неправильным. ;)