Биткойн и Биткойн отправят сообщение об ошибке, если оно будет запущено несколько раз. Я предполагаю, что это потому, что они используют одну и ту же базу данных и кошелек.
Можно ли запустить два экземпляра Bitcoin QT/bitcoind, один из которых прослушивается в режиме производства, а другой — в режиме тестирования? (на том же компьютере)
Целесообразно это или не целесообразно?
Вы можете без проблем запустить mainnet и testnet bitcoind рядом друг с другом. Они не используют одну и ту же базу данных (один будет использовать подкаталог testnet3/).
Что будет конфликтовать, так это порт RPC, так как они оба будут пытаться привязаться к порту 8332 для получения соединений RPC. Используйте -rpcport=N на одном из них, чтобы использовать другой порт.
Начиная с 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
аргумент. Таким образом, производственные данные и данные тестовой сети будут храниться в разных папках.
производитель вещей7
Питер Уилле
производитель вещей7
Default data directory C:\Users\Administrator\AppData\Roaming\Bitcoin
Конкретно будетdebug.log, peers.dat, or wallet.dat
изменен? Будет ли читаться bitcoin.conf? Похоже, что после запуска тестовой сети мой файл debug.log был усечен. (У меня был большой журнал отладки, работающий в производстве)