Как запустить биткойн одновременно в тестовой и производственной сетях на одном компьютере?

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

Можно ли запустить два экземпляра Bitcoin QT/bitcoind, один из которых прослушивается в режиме производства, а другой — в режиме тестирования? (на том же компьютере)

Целесообразно это или не целесообразно?

Ответы (3)

Вы можете без проблем запустить mainnet и testnet bitcoind рядом друг с другом. Они не используют одну и ту же базу данных (один будет использовать подкаталог testnet3/).

Что будет конфликтовать, так это порт RPC, так как они оба будут пытаться привязаться к порту 8332 для получения соединений RPC. Используйте -rpcport=N на одном из них, чтобы использовать другой порт.

Спасибо! Моя цель — помочь с репликацией тестовой сети. Не вызовет ли работа на альтернативном порту проблемы с обнаружением меня другими клиентами?
Связь с другими узлами осуществляется с использованием порта P2P, который по умолчанию равен 8333 для основной сети и 18333 для тестовой сети. Порт RPC используется только для локальной отправки команд в биткойн.
Я только что запустил тестовую сеть на том же компьютере, что и производство. Я увидел, что используется следующий каталог: Default data directory C:\Users\Administrator\AppData\Roaming\BitcoinКонкретно будет debug.log, peers.dat, or wallet.datизменен? Будет ли читаться bitcoin.conf? Похоже, что после запуска тестовой сети мой файл debug.log был усечен. (У меня был большой журнал отладки, работающий в производстве)

Начиная с Bitcoin Core 0.7.1 (19 октября 2012 г.), вы можете запустить как основную, так и тестовую сеть, просто запустив Bitcoin Core с соответствующими флагами:

bitcoind -daemon           # mainnet, -daemon will cause it to fork into the background
bitcoind -daemon -testnet  # testnet

Начиная с Bitcoin Core 0.9.0 (19 марта 2014 г.), вы можете легко использовать bitcoin-cliдля отправки команд обоим узлам:

bitcoin-cli getinfo           # mainnet, uses port  8332 for RPC-JSON
bitcoin-cli -testnet getinfo  # testnet, uses port 18332 for RPC-JSON

Кроме того, начиная с Bitcoin Core 0.9.0, существует режим регрессионного тестирования (« regtest »), который может ускорить разработку и тестирование приложений, почти мгновенно генерируя альтернативную цепочку блоков со сверхнизкой сложностью.

По умолчанию режим regtest работает на тех же портах, что и тестовая сеть (18333 для биткойн P2P , 18332 для RPC-JSON/HTTP REST ), хотя он использует другой каталог данных из тестовой сети. Это означает, что обе приведенные ниже команды будут обращаться к узлу testnet или regtest по умолчанию:

bitcoin-cli -testnet getinfo  ## sends command to port 18332
bitcoin-cli -regtest getinfo  ## also sends command to port 18332

В этом ответе есть базовый пример кода, показывающий запуск двух узлов regtest на одном компьютере, но вы также можете сделать что-то подобное, если хотите одновременно запустить узел testnet и узел regtest.


Постскриптум: принятый ответ Питера Вуилле меня смущает. В нем говорится, что он написал его 9 декабря 2012 года, но это слияние Питера говорит о том, что он добавил код (написанный @kjj2), изменив порт тестовой сети на 18332 28 сентября 2012 года — более двух месяцев назад. Кроме того, этот код был включен в Bitcoin Core 0.7.1, выпущенный в октябре 2012 года, почти на два месяца раньше, чем ответ Питера.

Пожимайте плечами. Я думаю, может быть, он просто забыл о смене.

Я, наверное, сделал :)

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

Ссылка: https://bitcointalk.org/index.php?topic=771930.0