Author

Topic: Что делать если застряла синхронизация Bitcoin Core (Read 229 times)

hero member
Activity: 487
Merit: 1259
Тот гайд описывает как расщепить данные, которые по умолчанию хранятся в одной директории, между различными директориями. Вам это в действительности надо? Если да, то зачем?
Вы сами упомянули, что синхронизация в случае использования SSD происходит намного быстрее, да я и сам проверил это на практике. Проблема в том, что при отсутствии ссдшника на 500+ гб никак не получится записать блокчейн целиком. Если расщепить папки между разными дисками: к примеру поместить папки chainstate, blocks/index и indexes на SSD (они занимают не так много места), то можно значительно выиграть в скорости. После начальной синхронизации можно вернуть все на место, там скорость уже не так важна.




Я так не заморачивался и купил  SSD  на 1 ТВ, до  2025 должно хватить с головой.




Главная цель - не только запустить ноду, но и использовать ее для самостоятельной проверки транзакций. Можно настроить персональный электрум сервер или запустить собственную lightning ноду, но все это требует индексирования транзакций. Мобильные кошельки обычно тоже можно подключить к своим собственным нодам, так что это явно не будет лишним. Не доверяй, а проверяй, в общем.


Если то честно,  то не совсем понял насчет "персональный электрум сервер". Вы хотите запустить ноду коре. Сервер электрум в данном случае как телеге пятое колесо.
hero member
Activity: 487
Merit: 1259
На каждом из трех компьютеров создается ярлык, который ведет к bitcoin-qt.exe В свойствах ярлыка прописывается -datadir=<ваш путь к локальной базе> (знак минус перед datadir в этом случае является обязательным)  . Винда на каждом компьютере в зависимости от его конфигурации может назначить разную букву внешнему диску. Когда прописывается <ваш путь к локальной базе> на это надо обращать свое внимание. Для ускорения синхронизации желательно выбрать побольше размер кэша в RAM где будет кэшироваться база перед обращением к внешнему диску.  Обычно оптимально установить этот размер в пол   RAM. У меня RAM 16 Гиг , тогда  dbcache=8192, можно прописать опять в свойствах ярлыка: -dbcache=8192  или ваше значение. Для внешнего диска лучше использовать SSD, чем HDD, потому что синхронизация сопровождается большим количеством  I/O операций.

Запуск коре на каждом компе осуществляется через этот ярлык.

К сожалению, портативного SSD у меня нет, но я сделал все как написано в этом гайде https://en.bitcoin.it/wiki/Splitting_the_data_directory и синхронизация прошла меньше чем за сутки. Однако, когда я решил синхронизировать ноду на компьютере с другой операционкой (Win10) и поставил кошелек синхронизироваться на несколько часов произошло следующее. Во-первых, Bitcoin Core самопроизвольно закрылся через неопределенное время. За это время в папке blocks скачалось примерно 120 гб данных. Когда я запустил Bitcoin Core снова, то он отказалася синхронизироваться на момент закрытия и стал писать "processing blocks on disk". Стоит отметить, что в этот раз я пытаюсь синхронизироваться с параметром txindex=1, которое я добавил в bitcoin.conf. Уже даже страшно оставлять его без присмотра, если происходят такие непонятные движухи.


Тот гайд описывает как расщепить данные, которые по умолчанию хранятся в одной директории, между различными директориями. Вам это в действительности надо? Если да, то зачем?

То что перестал синхронизироваться после того как включили txindex=1 (коре  по умолчанию воспринимает этот этого параметр как ноль) это нормально. Происходит перестройка базы данных. Как только она закончится, синхронизация должна возобновиться.  Вам  действительности надо чтобы строилась база данных для всех транзакций без исключения, а не только для ваших транзакций? Если да, то зачем?

SATA SSD подключается через простой USB-SATA переходник.
legendary
Activity: 2254
Merit: 4260
🔐BitcoinMessage.Tools🔑
Тот гайд описывает как расщепить данные, которые по умолчанию хранятся в одной директории, между различными директориями. Вам это в действительности надо? Если да, то зачем?
Вы сами упомянули, что синхронизация в случае использования SSD происходит намного быстрее, да я и сам проверил это на практике. Проблема в том, что при отсутствии ссдшника на 500+ гб никак не получится записать блокчейн целиком. Если расщепить папки между разными дисками: к примеру поместить папки chainstate, blocks/index и indexes на SSD (они занимают не так много места), то можно значительно выиграть в скорости. После начальной синхронизации можно вернуть все на место, там скорость уже не так важна.

Quote
То что перестал синхронизироваться после того как включили txindex=1 (коре  по умолчанию воспринимает этот этого параметр как ноль) это нормально. Происходит перестройка базы данных. Как только она закончится, синхронизация должна возобновиться.  Вам  действительности надо чтобы строилась база данных для всех транзакций без исключения, а не только для ваших транзакций? Если да, то зачем?
Главная цель - не только запустить ноду, но и использовать ее для самостоятельной проверки транзакций. Можно настроить персональный электрум сервер или запустить собственную lightning ноду, но все это требует индексирования транзакций. Мобильные кошельки обычно тоже можно подключить к своим собственным нодам, так что это явно не будет лишним. Не доверяй, а проверяй, в общем.


Quote
SATA SSD подключается через простой USB-SATA переходник.
Подключить диск - это меньшая из проблем, можно и без переходника обойтись. Тем более, разве при подключении через USB скорость не пострадает? Мне всегда казалось, что SATA быстрее USB.
legendary
Activity: 2254
Merit: 4260
🔐BitcoinMessage.Tools🔑
На каждом из трех компьютеров создается ярлык, который ведет к bitcoin-qt.exe В свойствах ярлыка прописывается -datadir=<ваш путь к локальной базе> (знак минус перед datadir в этом случае является обязательным)  . Винда на каждом компьютере в зависимости от его конфигурации может назначить разную букву внешнему диску. Когда прописывается <ваш путь к локальной базе> на это надо обращать свое внимание. Для ускорения синхронизации желательно выбрать побольше размер кэша в RAM где будет кэшироваться база перед обращением к внешнему диску.  Обычно оптимально установить этот размер в пол   RAM. У меня RAM 16 Гиг , тогда  dbcache=8192, можно прописать опять в свойствах ярлыка: -dbcache=8192  или ваше значение. Для внешнего диска лучше использовать SSD, чем HDD, потому что синхронизация сопровождается большим количеством  I/O операций.

Запуск коре на каждом компе осуществляется через этот ярлык.

К сожалению, портативного SSD у меня нет, но я сделал все как написано в этом гайде https://en.bitcoin.it/wiki/Splitting_the_data_directory и синхронизация прошла меньше чем за сутки. Однако, когда я решил синхронизировать ноду на компьютере с другой операционкой (Win10) и поставил кошелек синхронизироваться на несколько часов произошло следующее. Во-первых, Bitcoin Core самопроизвольно закрылся через неопределенное время. За это время в папке blocks скачалось примерно 120 гб данных. Когда я запустил Bitcoin Core снова, то он отказалася синхронизироваться на момент закрытия и стал писать "processing blocks on disk". Стоит отметить, что в этот раз я пытаюсь синхронизироваться с параметром txindex=1, которое я добавил в bitcoin.conf. Уже даже страшно оставлять его без присмотра, если происходят такие непонятные движухи.
legendary
Activity: 2254
Merit: 4260
🔐BitcoinMessage.Tools🔑
Можно все сделать с небольшой поправкой к тому, что вы делаете.

а) Bitcoin Core устанавливаете на компах  X, Y и Z , которым подключаете внешний диск с локальным блокчейном.

б) внешний диск с локальным блокчейном подключаете к тому компу с которым хотите работать

в) в файле конфигурации к коре создаете запись, в которой указываете путь к папке на своём внешнем диске, где хранится локальная база.

datadir=(ваш путь)

С тем, как вы это делаете ,ничего не получится. Коре для своей работы  использует динамические библиотеки от форточек.  Надо самому компилировать portable версию коре, чтобы установить клиент на отдельный внешний диск.
Файл конфигурации это файл bitcoin.conf, который лежит вместе с папками blocks, chainstate и т.д?  Если да, то получается он тоже размещен на внешнем диске, тогда как Bitcoin Core узнает, где именно находится нужная папка со скаченным блокчейном? Или есть еще какой-то файл, где можно менять настройки? На самом деле, в этих файлах можно запутаться так как написано что настройки, сделанные в GUI (в интерфейсе программы) имеют меньшую силу, чем настройки в bitcoin.conf. Хотя там есть еще и консоль, которая имеет наивысший приоритет...

С портативной версией понятно, без установки не обойтись... Компиляция портативной версии это уже за пределами моей компетенции, к сожалению. Возможно, есть другие имплементации полной ноды, позволяющие делать портабл версии из коробки. Будем искать.
legendary
Activity: 2254
Merit: 4260
🔐BitcoinMessage.Tools🔑
Возник такой вопрос. Возможно ли сделать ноду портативной, то есть хранить историю на портативном жестком диске и перемещать между компами X, Y и Z для возможности быстрого подключения и синхронизации?

Что я пытался делать:
1) установил Bitcoin Core на съемный жесткий диск, синхронизировался с блокчейном, затем вынул жесткий диск.
2) после этого переустановил операционку (win10)
3) попытался запустить bitcoin-qt.exe на диске и он запустился

Проблема в том, что когда я зашел в Bitcoin Core, то увидел что он не хочет подсоединяться к пирам, входящих подключений не было сколько я ни ждал. Синхронизациии соответственно тоже не происходило, она застряла на 99.83%. Более того, каждый раз когда я пытался зайти в настройки , Bitcoin Core зависал на пять минут и вообще работал нестабильно.

При переустановке и новой синхронизации, все работало как часы, но саму папку с bitcoin-qt.exe я установил на системный диск.

В чем может быть проблема, почему Bitcoin Core отказывается работать после переустановки системы? Как синхронизировать его по-новой, чтобы не переустанавливать каждый раз. Возможно каких-то записей в реестре Windows не хватает для корректной работы, возможно ли ввести их вручную? Как перенести папку с bitcoin-qt на другой диск без потери работоспособности кошелька?
Jump to: