Bitcoin Forum
November 18, 2024, 07:00:46 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Вопр. по устойчивости стандартного софта  (Read 2641 times)
epros (OP)
Newbie
*
Offline Offline

Activity: 45
Merit: 0


View Profile
November 24, 2013, 07:43:05 AM
Last edit: November 24, 2013, 08:11:18 AM by epros
 #1

Потребовалось мне поставить Bitcoin-Qt на линукс (стабильный дистрибутив дебиан). Сразу столкнулся с проблемой - почему-то пакет не вошёл в стандартный репозиторий. Начал разбираться почему, оказалось - неспроста: Биткоин хранит данные в Berkeley DB и стандартный пакет до сих пор использует версию 4.8 формата этой базы. В то время как нормальный софт, эксплуатируемый уже пару лет, давно использует версию 5.1 формата базы. В том числе, stable-релиз дистрибутива debian весь заточен под версию 5.1. А эти форматы несовместимы на бинарном уровне, вот ведь какая ерунда... Об этом написано в readme файлах к стандартному пакету Bitcoin-Qt. Я не могу сделать downgrade своей системы до формата 4.8, ибо половина системного софта заточена на работу с форматом 5.1. А стабильной версии биткоин, работающей с форматом 5.1, тоже нет. Т.е. имеется версия, входящая в репозиторий нестабильного релиза, но на стабильный релиз она не ставится.

Я попробовал тупо скомпилировать исходники стандартного bitcoind, взятые с GitHub (и заточенные под версию 4.8 формата базы). Демон запускается, работает и даже отвечает на JSON запросы. Но:
1) Иногда вдруг соединение с демоном по необъяснимой причине не устанавливается. Десятки попыток не дают результата. Потом вдруг через пять минут всё опять оживает.
2) Что ещё хуже: Несколько раз непонятно почему происходил ПОЛНЫЙ СБРОС БАЗЫ. Т.е. база заполнилась уже более чем до 100 тыс. блоков (а один раз - даже более чем до 200 тыс.), а потом вдруг, хоп, снова getblockcount возвращает 0 блоков и заполнение начинается сначала...

Не могу понять, что мне делать-то теперь?
tvv
Legendary
*
Offline Offline

Activity: 1302
Merit: 1005


View Profile WWW
November 24, 2013, 01:36:00 PM
 #2

Да по-моему быстрее будет с нуля нормальный софт написать, чем с этим разбираться...

PS  если там выкинуть нафиг не нужное - то он упрощается раз в 100, так что писать не долго.

PPS  будь это не финансы - еще можно было бы потрахаться...
awoland
Legendary
*
Offline Offline

Activity: 1498
Merit: 1021

Was mich nicht umbringt macht mich stärker [F.N.]


View Profile WWW
November 24, 2013, 02:55:06 PM
 #3

Биткоин хранит данные в Berkeley DB и стандартный пакет до сих пор использует версию 4.8 формата этой базы.
Стандартный клиент биткойн уже давно хранит данные в гугловской leveldb, а Berkeley DB в нём используется для храниения пар адрес:приватный ключ в wallet.dat.

Was mich nicht umbringt macht mich stärker [F.N.]
giv
Sr. Member
****
Offline Offline

Activity: 254
Merit: 251


View Profile
November 24, 2013, 03:02:00 PM
 #4

Я попробовал тупо скомпилировать исходники стандартного bitcoind, взятые с GitHub (и заточенные под версию 4.8 формата базы).
Какую версию биткоина собирали, из какой ветки и т.д.? Блоки хранятся в LevelDB, а не в BDB. Поэтому если сбрасываются блоки, то BDB скорее всего не при чем.
Исходники не "заточены" ни под какую версию BDB. Они прекрасно собираются и работают и с 4.8, и с 5.1. По крайней мере так было до недавнего времени, последние релизы не проверял.

Не могу понять, что мне делать-то теперь?
Читать лог. Лежит тут ~/.bitcoin/debug.log

If you like my I2P-patch for bitcoin-qt/bitcoind, please, donate my project! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
----------------------
Если Вам нравится мой I2P-патч для bitcoin-qt/bitcoind, пожалуйста, поддержите мой проект! 1JTtvgy5CzwnsRj3vtHACdyKWxgTnYn754
fsb4000
Legendary
*
Offline Offline

Activity: 1400
Merit: 1000



View Profile
November 24, 2013, 03:03:46 PM
 #5

Кстати, Новакоин для Linux собирается с Berkeley DB 5.1
https://bitcointalk.org/index.php?topic=114712.msg3538732#msg3538732
epros, можешь спросить у Balthazar что поменять в исходниках Bitcoin, чтобы собрать с 5.1. Как у Balthazar будет время ,я думаю, он тебе ответит.
A-Bolt
Legendary
*
Offline Offline

Activity: 2335
Merit: 2384


View Profile
November 24, 2013, 03:14:44 PM
 #6

Quote
Потребовалось мне поставить Bitcoin-Qt на линукс (стабильный дистрибутив дебиан).
Скачайте бинарники с последней версией, в чём проблема?
http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.5/bitcoin-0.8.5-linux.tar.gz/download
epros (OP)
Newbie
*
Offline Offline

Activity: 45
Merit: 0


View Profile
November 25, 2013, 02:41:20 PM
 #7

Спасибо за ответы. Детали моих последних безуспешных попыток решения проблемы в моём сегодняшнем сообщении здесь: http://debianforum.ru/index.php?topic=6112.0

Я понял, что дело, оказывается, не в версии Berkeley DB.

Касательно чтения лога: Набежало уже более 53Мб, в основном что-то вроде:

Code:
ProcessBlock: ACCEPTED
received block 0000000000000a4a36fefc27f33ff2f2a8e4e0a579a0e395ac55daa065a823ec
SetBestChain: new best=0000000000000a4a36fefc27f33ff2f2a8e4e0a579a0e395ac55daa065a823ec  height=166788  log2_work=67.681396  tx=2419888  date=2012-02-14 16:28:56 progress=0.043438
Что здесь выискивать - мне непонятно.

Что касается бинарников с последней версией: Вроде бы, именно это я и сделал, взяв bitcoind из этого архива:  http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.5/bitcoin-0.8.5-linux.tar.gz/download ? Или нет? Вот с ним и происходят все эти неприятные вещи.
epros (OP)
Newbie
*
Offline Offline

Activity: 45
Merit: 0


View Profile
November 25, 2013, 03:39:50 PM
 #8

О, вот сейчас удалил лог и через некоторое время обнаружил в нём нечто интересное:

Code:
ProcessBlock: ACCEPTED
received block 0000000000000758b4523e4f2a2fff9de8fd9ce5a4df93a53fa3e4ef064e2a8f
InvalidChainFound: invalid block=0000000000000758b4523e4f2a2fff9de8fd9ce5a4df93a53fa3e4ef064e2a8f  height=169696  log2_work=62.499542  date=2012-03-05 04:38:22
InvalidChainFound:  current best=000000000000019fac1d7703f8c03bf674d49e6384e4bd04c14f5c5fe893063e  height=169689  log2_work=62.489548  date=2012-03-05 03:38:14
InvalidChainFound: Warning: Displayed transactions may not be correct! You may need to upgrade, or other nodes may need to upgrade.
Это же сообщение (Warning: Displayed transactions may not be correct! You may need to upgrade, or other nodes may need to upgrade.) мне сейчас выдаётся в ответ на запрос getinfo. Счётчик getblockcount остановился на 169689. Вероятно, следующим этапом, как обычно, станет сброс счётчика getblockcount в нуль...

P.S. Так и есть. Сейчас перезапустил bitcoind, после чего счётчик сбросился в нуль и начал считать по-новому кругу.
epros (OP)
Newbie
*
Offline Offline

Activity: 45
Merit: 0


View Profile
November 26, 2013, 03:31:26 PM
 #9

Мне объяснили, как поставить версию из репозитория нестабильного релиза дебиана (v0.8.5.0-gef14a26-beta). Для чистоты эксперимента я удалил всё, кроме wallet.dat, из директории .bitcoin. На сей раз getblockcount досчитал аж до 205559. Однако потом вся эта фигня повторилась: Сначала getblockcount перестал увеличиваться, потом на запрос getinfo я начал получать сообщение об ошибке: "Warning: Displayed transactions may not be correct! You may need to upgrade, or other nodes may need to upgrade". Потом не установилось json соединение с демоном (наверное, он просто выгрузился). А после перезапуска getblockcount начал считать с нуля.

Я не понимаю, это только у меня одного такая ерунда? Я вижу, что продукт НЕ РАБОТОСПОСОБЕН. Как же так?
fsb4000
Legendary
*
Offline Offline

Activity: 1400
Merit: 1000



View Profile
November 26, 2013, 03:40:09 PM
 #10

только у тебя видимо. Я проверял работоспособность на Windows 7x64 Home Premium и OpenSuse 12.1... У многих на этом форуме работает на Ubuntu разных версий...
tvv
Legendary
*
Offline Offline

Activity: 1302
Merit: 1005


View Profile WWW
November 26, 2013, 03:51:46 PM
 #11

Да GNU-сное оно все такое - удивляться тут не чему...
epros (OP)
Newbie
*
Offline Offline

Activity: 45
Merit: 0


View Profile
November 27, 2013, 08:54:14 AM
Last edit: November 27, 2013, 09:36:46 AM by epros
 #12

Народ, подскажите хоть как-нибудь куда рыть. Ну, нужен мне этот долбаный демон биткоин, из-за проблем с ним я уже почти неделю как не могу никуда продвинуться. Ладно, что все добытые бинарники оказываются с глюками, но и ни одну из версий исходных файлов не удалось скомпилировать. По совету поддержки Дебиан я обратился сюда в англоязычную ветку Bitcoin Forum > Bitcoin > Technical Support. Подробно там описал проблему, с вырезками из лога. Пока получил только банальную ссылку на инструкцию о том, как скомпилировать исходники, взятые с sourceforge.net. Вот последняя версия, выложенная там.

Но не компилируется она у меня!!! Поставил я все нужные пакеты, как указано в инструкции, запустил "make -f makefile.unix" и в ответ получил какие-то сообщения об ошибках в файле /usr/include/boost/thread/xtime.hpp.

Вот:
Code:
/usr/include/boost/thread/xtime.hpp:23:5: error: expected identifier before numeric constant
/usr/include/boost/thread/xtime.hpp:23:5: error: expected ‘}’ before numeric constant
/usr/include/boost/thread/xtime.hpp:23:5: error: expected unqualified-id before numeric constant
/usr/include/boost/thread/xtime.hpp:46:14: error: expected type-specifier before ‘system_time’

И вот:
Code:
/usr/include/boost/thread/xtime.hpp:73:40: error: ‘get_system_time’ was not declared in this scope
/usr/include/boost/thread/xtime.hpp:73:40: note: suggested alternative:

И в конечном итоге вот:
Code:
/usr/include/boost/thread/xtime.hpp: At global scope:
/usr/include/boost/thread/xtime.hpp:88:1: error: expected declaration before ‘}’ token
make: *** [obj/alert.o] Ошибка 1

Я посмотрел, что это за файл. Оказалось, часть библиотеки libboost1.49-dev. Это что же, значит библиотека что ли битая? И это у всех пользователей, у которых поставлен этот пакет? И что мне делать-то теперь?
awoland
Legendary
*
Offline Offline

Activity: 1498
Merit: 1021

Was mich nicht umbringt macht mich stärker [F.N.]


View Profile WWW
November 27, 2013, 12:10:30 PM
 #13

В вашем случае правильным решением будет смена дистрибутива (на ubuntu или centos).

Was mich nicht umbringt macht mich stärker [F.N.]
fsb4000
Legendary
*
Offline Offline

Activity: 1400
Merit: 1000



View Profile
November 27, 2013, 12:18:31 PM
 #14

вот вроде биткоин для дебиана http://packages.debian.org/unstable/main/bitcoin-qt
epros (OP)
Newbie
*
Offline Offline

Activity: 45
Merit: 0


View Profile
November 27, 2013, 12:46:46 PM
 #15

В вашем случае правильным решением будет смена дистрибутива (на ubuntu или centos).
Как-то слишком радикально. Чем так уж плох именно Дебиан? Это один из старейших дистрибутивов и его стабильный релиз никто не треплет обновлениями каждый месяц, за что я его и выбрал.

Да, сейчас обнаружилось, что в стабильный релиз выложена битая версия пакета libboost1.49-dev. Я заменил её версией из тестового релиза, после чего мне удалось нормально скомпилировать бинарник bitcoind версии 0.8.5.

Но он оказался с теми же глюками, что и те бинарники, которые я ранее скачивал в готовом виде.

вот вроде биткоин для дебиана http://packages.debian.org/unstable/main/bitcoin-qt
Да, я пробовал бинарник из нестабильного релиза: Все те же глюки. см. в этой теме подробно, с кусками логов. Фатальная проблема в том, что я никак не могу загрузить blockchain, ибо в некоторый момент возникает ошибка, после которой следующие блоки перестают приниматься, а потом getblockcounter обнуляется и загрузка начинается по новому кругу.
fsb4000
Legendary
*
Offline Offline

Activity: 1400
Merit: 1000



View Profile
November 27, 2013, 12:53:39 PM
 #16

вот bitcoin blockchain месячной давности http://sourceforge.net/projects/bitcoinblockchain/files/29-10-2013/
Но это не лучший способ, так как приходится доверять третьим лицам(каждый блок при загрузки через клиент проверяется заного, а тут приходится верить что блоки верные, но вроде по этой ссылке нормальная цепочка блоков, без изменений)
epros (OP)
Newbie
*
Offline Offline

Activity: 45
Merit: 0


View Profile
November 27, 2013, 01:26:37 PM
 #17

вот bitcoin blockchain месячной давности http://sourceforge.net/projects/bitcoinblockchain/files/29-10-2013/
Не думаю, что это - подходящее решение проблемы. Проблема ведь не в том, что  я не могу загрузить древнюю blockchain сейчас (может с пятидесятой попытки это вдруг и получится). Но принципиальная проблема в том, что в софте есть какой-то глюк, а значит потом, при обновлении blockchain, у меня может возникнуть та же ошибка: новые блоки перестанут подгружаться, а потом и blockchain снова сбросится.
A-Bolt
Legendary
*
Offline Offline

Activity: 2335
Merit: 2384


View Profile
November 27, 2013, 01:30:40 PM
 #18

Я не понимаю, это только у меня одного такая ерунда?
Судя по этому топику не только у вас: https://github.com/bitcoin/bitcoin/issues/2726 ,где в качестве костыля предлагается использовать -par=1

Тем не менее, я проверил у себя. Взял бинарник (http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.5/bitcoin-0.8.5-linux.tar.gz/download) bitcoind и запустил его на Debian wheezy. Все блоки скачались без ошибок.

Но есть нюансы:
1) у меня 64-битный Дебиан и, соответственно, 64-битный бинарник
2) Дебиан запущен в VirtualBox

Но, вообще, ситуация странная.
Либо это редкий баг, не обязательно bitcoind, может быть и какой-то либы.
Либо глючное железо.

За своё многолетнее использование Биткойна под Виндой такой ошибки не встречал.
Balthazar
Legendary
*
Offline Offline

Activity: 3108
Merit: 1359



View Profile
November 27, 2013, 02:09:14 PM
 #19

ХЗ, у меня со сборкой под дебианом никогда не было проблем. Да и с дебиана на убунту переходить это все равно что зеленый галстук менять на зеленый галстук, при идентичном наборе установленных пакетов это никак не повлияет на ситуацию.
epros (OP)
Newbie
*
Offline Offline

Activity: 45
Merit: 0


View Profile
November 27, 2013, 02:34:12 PM
 #20

Судя по этому топику не только у вас: https://github.com/bitcoin/bitcoin/issues/2726
Почитал, попробую перезапуститься с -par=1, хотя не понимаю что это значит.

Судя по количеству жалующихся на баг, дело не в аппаратных ошибках. Даже если бы и были какие-то аппаратные ошибки (а сетевые сбои наверняка у всех периодически возникают), софт не должен реагировать на них таким странным образом. Возможно, что такие глюки возникают только у тех, у кого 32-разрядная платформа (увы, я пока не могу себе позволить апгрейд). Возможно, только поэтому процент жалующихся на Bitcoin-Qt не достиг той критической отметки, после которой разработчиков растерзали бы. Wink

Для меня теперь очевидно, что 1) проблема именно в исходном коде bitcoind, 2) в последней полудюжине версий она так и не была решена.
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!