Как определить, что биткойн действительно перестал работать

Я хотел бы взять данные блока биткойнов и отправить их, чтобы избежать повторной загрузки блокчейна на другие компьютеры в моей локальной сети. Чтобы гарантировать отсутствие повреждения базы данных, я останавливаю биткойн перед передачей. Запуск команды unix bitcoind stopвернет

Bitcoin has stopped running!

Я заметил, что он все еще работает в течение нескольких секунд после получения этого сообщения. Это не проблема, так как это никогда не превышает 15 секунд, однако я хочу автоматизировать этот процесс с помощью простого php-скрипта.

Использование команды bitcoin-rpc, например $status = $bitcoin->stop(), приведет к результату «Биткойн остановлен», но он все еще может работать сверху.

Как мне убедиться, что биткойн действительно перестал работать? Или безопасно предварительно передать данные, как только я получу это сообщение (продолжает ли биткойн записывать в БД после того, как уведомит вас об остановке)?

Вы всегда можете проверить идентификатор процесса, если он завершен или нет. Или просто подождите 15 секунд. То, что он еще запускается topна пару секунд, вероятно, связано с доработкой базы данных, освобождением всей памяти и прочее. Я думаю, вам лучше поставить sleep(15)(или 30, ради безопасности), а затем запрограммировать его и учитывать каждую миллисекунду.
Есть ли способ эффективно проверить? Я знаю, что могу подождать, и это, скорее всего, сработает, но что, если биткойн застрянет на чем-то? (Может зависнуть из-за другой программы)
Сейчас я мобильный, поэтому я не могу искать или пробовать что-то, и я, конечно, не разбираюсь в php, но я думаю, что должен быть способ. В противном случае спросите на сайте переполнения стека, потому что это связано с программированием, а не с биткойнами.
Я надеялся, что у кого-то есть опыт работы с биткойнами, хотя вы правы, это, вероятно, вопрос, который больше ориентирован на программирование, и правильный ответ для другой программы будет работать для биткойна. Спасибо за вашу помощь!

Ответы (1)

В линуксе:

ps aux | grep bitcoind

Или даже:

watch ps aux | grep bitcoind

Но чтобы ответить на ваш вопрос немного по-другому, я бы предложил оставить существующий биткойн в рабочем состоянии. Затем ваш новый узел добавляет оператор подключения с локальным IP-адресом старого узла в файле bitcoin.conf (обычно находится в $HOME/.bitcoin/).

Затем ваш новый узел будет подключаться исключительно к существующему узлу и загружать через вашу локальную сеть все блоки с существующего узла.

Кроме того, если оба ПК неподвижны, вы можете оставить это так, чтобы избежать повторных загрузок из Интернета. В качестве альтернативы, если вторым является, например, ноутбук, можно использовать вместо него -addnode. Отсюда : _

-addnode=<ip>          Add a node to connect to and attempt to keep the connection open
-connect=<ip>          Connect only to the specified node(s)
-dns                   Allow DNS lookups for -addnode, -seednode and -connect (default: 1)