Я установил биткойн в Linux. Я запускаю его в режиме тестовой сети, но он не синхронизируется, так как не загружает блоки.
В bitcoin.conf у меня есть следующее:
rpcport=8332 # Needed for testnet as default port for testnet is 18332
Ниже то, что он показывает bitcoind getinfo
:
{
"version" : 80600,
"protocolversion" : 70001,
"walletversion" : 60000,
"balance" : 0.00000000,
"blocks" : 0,
"timeoffset" : 0,
"connections" : 0,
"proxy" : "",
"difficulty" : 1.00000000,
"testnet" : true,
"keypoololdest" : 1392428204,
"keypoolsize" : 101,
"paytxfee" : 0.00000000,
"errors" : ""
}
У меня есть следующее для ufw status verbose
брандмауэра:
Status: active
To Action From
-- ------ ----
8333/tcp ALLOW Anywhere
8332/tcp ALLOW Anywhere
18333/tcp ALLOW Anywhere
8333 ALLOW Anywhere
8332 ALLOW Anywhere
18333 ALLOW Anywhere
8333/tcp ALLOW Anywhere (v6)
8332/tcp ALLOW Anywhere (v6)
18333/tcp ALLOW Anywhere (v6)
8333 ALLOW Anywhere (v6)
8332 ALLOW Anywhere (v6)
18333 ALLOW Anywhere (v6)
8332/tcp ALLOW OUT Anywhere
18333/tcp ALLOW OUT Anywhere
8333 ALLOW OUT Anywhere
8332 ALLOW OUT Anywhere
18333 ALLOW OUT Anywhere
8333/tcp ALLOW OUT Anywhere
8332/tcp ALLOW OUT Anywhere (v6)
18333/tcp ALLOW OUT Anywhere (v6)
8333 ALLOW OUT Anywhere (v6)
8332 ALLOW OUT Anywhere (v6)
18333 ALLOW OUT Anywhere (v6)
8333/tcp ALLOW OUT Anywhere (v6)
Ниже приведено содержимое debug.log:
2014-03-13 01:04:57 Bitcoin version v0.8.6.0-g03a7d67-beta ()
2014-03-13 01:04:57 Using OpenSSL version OpenSSL 1.0.1 14 Mar 2012
2014-03-13 01:04:57 Default data directory /home/jlp/.bitcoin
2014-03-13 01:04:57 Using data directory /home/jlp/.bitcoin/testnet3
2014-03-13 01:04:57 Using at most 125 connections (1024 file descriptors available)
2014-03-13 01:04:57 Using 4 threads for script verification
2014-03-13 01:04:57 init message: Verifying wallet...
2014-03-13 01:04:57 dbenv.open LogDir=/home/jlp/.bitcoin/testnet3/database ErrorFile=/h$
2014-03-13 01:04:57 Bound to [::]:18333
2014-03-13 01:04:57 Bound to 0.0.0.0:18333
2014-03-13 01:04:57 init message: Loading block index...
2014-03-13 01:04:57 Opening LevelDB in /home/jlp/.bitcoin/testnet3/blocks/index
2014-03-13 01:04:57 Opened LevelDB successfully
2014-03-13 01:04:57 Opening LevelDB in /home/jlp/.bitcoin/testnet3/chainstate
2014-03-13 01:04:58 Opened LevelDB successfully
2014-03-13 01:04:58 LoadBlockIndexDB(): last block file = 0
2014-03-13 01:04:58 LoadBlockIndexDB(): last block file info: CBlockFileInfo(blocks=1, s$
2014-03-13 01:04:58 LoadBlockIndexDB(): transaction index disabled
2014-03-13 01:04:58 LoadBlockIndexDB(): hashBestChain=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2014-03-13 01:04:58 init message: Verifying blocks...
2014-03-13 01:04:58 block index 43ms
2014-03-13 01:04:58 init message: Loading wallet...
2014-03-13 01:04:58 nFileVersion = 80600
2014-03-13 01:04:58 wallet 441ms
2014-03-13 01:04:58 init message: Loading addresses...
2014-03-13 01:04:58 Loaded 0 addresses from peers.dat 1ms
2014-03-13 01:04:58 mapBlockIndex.size() = 1
2014-03-13 01:04:58 nBestHeight = 0
2014-03-13 01:04:58 setKeyPool.size() = 101
2014-03-13 01:04:58 mapWallet.size() = 0
2014-03-13 01:04:58 mapAddressBook.size() = 1
2014-03-13 01:04:58 AddLocal(XXX.XXX.XXX.XXX:18333,1)
2014-03-13 01:04:58 IPv4 eth0: XXX.XXX.XXX.XXX
2014-03-13 01:04:58 dnsseed thread start
2014-03-13 01:04:58 Loading addresses from DNS seeds (could take a while)
2014-03-13 01:04:58 net thread start
2014-03-13 01:04:58 addcon thread start
2014-03-13 01:04:58 opencon thread start
2014-03-13 01:04:58 msghand thread start
2014-03-13 01:04:58 dumpaddr thread start
2014-03-13 01:04:58 0 addresses found from DNS seeds
2014-03-13 01:04:58 dnsseed thread exit
2014-03-13 01:04:58 init message: Done loading
2014-03-13 01:04:59 GetMyExternalIP() received [XXX.XXX.XXX.XXX] XXX.XXX.XXX.XXX:0
2014-03-13 01:04:59 GetMyExternalIP() returned XXX.XXX.XXX.XXX
2014-03-13 01:04:59 AddLocal(XXX.XXX.XXX.XXX:18333,4)
2014-03-13 01:06:52 ThreadRPCServer method=getinfo
2014-03-13 01:06:52 keypool reserve 2
2014-03-13 01:06:52 keypool return 2
2014-03-13 01:09:09 ThreadRPCServer method=getinfo
2014-03-13 01:09:09 keypool reserve 2
2014-03-13 01:09:09 keypool return 2
2014-03-13 01:19:58 Flushed 0 addresses to peers.dat 4ms
2014-03-13 01:34:58 Flushed 0 addresses to peers.dat 18ms
2014-03-13 01:49:58 Flushed 0 addresses to peers.dat 1ms
2014-03-13 02:04:58 Flushed 0 addresses to peers.dat 22ms
2014-03-13 02:19:58 Flushed 0 addresses to peers.dat 3ms
2014-03-13 02:34:58 Flushed 0 addresses to peers.dat 44ms
2014-03-13 02:49:58 Flushed 0 addresses to peers.dat 22ms
2014-03-13 03:04:58 Flushed 0 addresses to peers.dat 34ms
2014-03-13 03:19:58 Flushed 0 addresses to peers.dat 16ms
2014-03-13 03:34:58 Flushed 0 addresses to peers.dat 32ms
...
...
...
2014-03-13 13:04:59 Flushed 0 addresses to peers.dat 20ms
2014-03-13 13:19:59 Flushed 0 addresses to peers.dat 3ms
2014-03-13 13:30:47 ThreadRPCServer method=getinfo
2014-03-13 13:30:47 keypool reserve 2
2014-03-13 13:30:47 keypool return 2
2014-03-13 13:34:59 Flushed 0 addresses to peers.dat 21ms
Может ли кто-нибудь предложить какие-либо решения, чтобы заставить биткойн синхронизировать и загружать блоки?
Обновление от 13 марта 2014 г.:
Я попытался удалить bitcoin.conf и запустить это:
bitcoind -testnet -debugnet -printtoconsole
и я получил следующее:
Bitcoin version v0.8.6.0-g03a7d67-beta ()
Using OpenSSL version OpenSSL 1.0.1 14 Mar 2012
Default data directory /home/jlp/.bitcoin
Using data directory /home/jlp/.bitcoin/testnet3
Using at most 125 connections (1024 file descriptors available)
Using 4 threads for script verification
init message: Verifying wallet...
dbenv.open LogDir=/home/jlp/.bitcoin/testnet3/database ErrorFile=/home/jlp/.bitcoin/testnet3/db.log
Bound to [::]:18333
Bound to 0.0.0.0:18333
init message: Loading block index...
Opening LevelDB in /home/jlp/.bitcoin/testnet3/blocks/index
Opened LevelDB successfully
Opening LevelDB in /home/jlp/.bitcoin/testnet3/chainstate
Opened LevelDB successfully
LoadBlockIndexDB(): last block file = 0
LoadBlockIndexDB(): last block file info: CBlockFileInfo(blocks=1, size=293, heights=0...0, time=2011-02-02...2011-02-02)
LoadBlockIndexDB(): transaction index disabled
LoadBlockIndexDB(): hashBestChain=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX height=0 date=2011-02-02 23:16:42
init message: Verifying blocks...
block index 32ms
init message: Loading wallet...
nFileVersion = 80600
wallet 454ms
init message: Loading addresses...
Loaded 0 addresses from peers.dat 0ms
mapBlockIndex.size() = 1
nBestHeight = 0
setKeyPool.size() = 101
mapWallet.size() = 0
mapAddressBook.size() = 1
AddLocal(XXX.XXX.XXX.XXX:18333,1)
IPv4 eth0: XXX.XXX.XXX.XXX
dnsseed thread start
Loading addresses from DNS seeds (could take a while)
net thread start
addcon thread start
opencon thread start
msghand thread start
dumpaddr thread start
Error: To use bitcoind, you must set a rpcpassword in the configuration file:
/home/jlp/.bitcoin/bitcoin.conf
It is recommended you use the following random password:
rpcuser=bitcoinrpc
rpcpassword=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
(you do not need to remember this password)
The username and password MUST NOT be the same.
If the file does not exist, create it with owner-readable-only file permissions.
It is also recommended to set alertnotify so you are notified of problems;
for example: alertnotify=echo %s | mail -s "Bitcoin Alert" admin@foo.com
Error: To use bitcoind, you must set a rpcpassword in the configuration file:
/home/jlp/.bitcoin/bitcoin.conf
It is recommended you use the following random password:
rpcuser=bitcoinrpc
rpcpassword=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
(you do not need to remember this password)
The username and password MUST NOT be the same.
If the file does not exist, create it with owner-readable-only file permissions.
It is also recommended to set alertnotify so you are notified of problems;
for example: alertnotify=echo %s | mail -s "Bitcoin Alert" admin@foo.com
init message: Done loading
dumpaddr thread stop
Shutdown : In progress...
msghand thread interrupt
Flush(false)
wallet.dat refcount=0
opencon thread interrupt
wallet.dat checkpoint
addcon thread interrupt
wallet.dat detach
wallet.dat closed
DBFlush(false) ended 1ms
StopNode()
net thread interrupt
0 addresses found from DNS seeds
dnsseed thread exit
Flushed 0 addresses to peers.dat 9ms
Committing 0 changed transactions to coin database...
Flush(true)
wallet.dat refcount=0
wallet.dat checkpoint
wallet.dat detach
wallet.dat closed
DBFlush(true) ended 1ms
Shutdown : done
В соответствии с предложением в приведенном выше ответе я добавил в bitcoin.conf следующее:
rpcuser=bitcoinrpc
rpcpassword=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
и повторил:
bitcoind -testnet -debugnet -printtoconsole
и получил следующее:
Bitcoin version v0.8.6.0-g03a7d67-beta ()
Using OpenSSL version OpenSSL 1.0.1 14 Mar 2012
Default data directory /home/jlp/.bitcoin
Using data directory /home/jlp/.bitcoin/testnet3
Using at most 125 connections (1024 file descriptors available)
Using 4 threads for script verification
init message: Verifying wallet...
dbenv.open LogDir=/home/jlp/.bitcoin/testnet3/database ErrorFile=/home/jlp/.bitcoin/testnet3/db.log
Bound to [::]:18333
Bound to 0.0.0.0:18333
init message: Loading block index...
Opening LevelDB in /home/jlp/.bitcoin/testnet3/blocks/index
Opened LevelDB successfully
Opening LevelDB in /home/jlp/.bitcoin/testnet3/chainstate
Opened LevelDB successfully
LoadBlockIndexDB(): last block file = 0
LoadBlockIndexDB(): last block file info: CBlockFileInfo(blocks=1, size=293, heights=0...0, time=2011-02-02...2011-02-02)
LoadBlockIndexDB(): transaction index disabled
LoadBlockIndexDB(): hashBestChain=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX height=0 date=2011-02-02 23:16:42
init message: Verifying blocks...
block index 50ms
init message: Loading wallet...
nFileVersion = 80600
wallet 436ms
init message: Loading addresses...
Loaded 0 addresses from peers.dat 1ms
mapBlockIndex.size() = 1
nBestHeight = 0
setKeyPool.size() = 101
mapWallet.size() = 0
mapAddressBook.size() = 1
AddLocal(XXX.XXX.XXX.XXX:18333,1)
IPv4 eth0: XXX.XXX.XXX.XXX
dnsseed thread start
net thread start
Loading addresses from DNS seeds (could take a while)
addcon thread start
opencon thread start
msghand thread start
dumpaddr thread start
init message: Done loading
0 addresses found from DNS seeds
dnsseed thread exit
connection timeout
ERROR: GetMyExternalIP() : connection to YYY.YYY.YYY.YYY:80 failed
connection timeout
ERROR: GetMyExternalIP() : connection to ZZZ.ZZZ.ZZZ.ZZZ:80 failed
GetMyExternalIP() received [XXX.XXX.XXX.XXX] XXX.XXX.XXX.XXX:0
GetMyExternalIP() returned XXX.XXX.XXX.XXX
AddLocal(XXX.XXX.XXX.XXX:18333,4)
Через некоторое время я получил следующий дополнительный ответ:
Flushed 0 addresses to peers.dat 201ms
Flushed 0 addresses to peers.dat 4ms
Может ли кто-нибудь различить сверху, в чем проблема и как ее решить?
Причина, по которой вы не находите узлы, заключается в том, что их может быть не так много, доступных с помощью традиционных методов начальной загрузки (многие клиенты устанавливаются с отключенным UPnP или за брандмауэрами и не могут принимать входящие соединения, а существующие узлы с входящими соединениями иногда могут быть рассредоточены). ). Если вы достаточно терпеливы, вы в конечном итоге получите связь.
Если вы не хотите быть терпеливым, есть обходной путь. Вам нужно найти имя хоста (IP-адрес или URL-адрес) биткойна, подключенного к узлам в тестовой сети. Как только вы его найдете, закройте bitcoind и отредактируйте файл конфигурации биткойнов (nano .bitcoin/bitcoin.conf) с помощью строки:
addnode=<hostname>
Когда вы запускаете биткойн, он просматривает файл конфигурации и пытается получить доступ к каждому узлу, который вы определили таким образом.
Вы также можете просто закрыть биткойн и начать с команды:
bitcoind -dameon -addnode=<hostname>
Успешно подключенные узлы сохраняются в файле peers.dat, поэтому оба метода работают одинаково хорошо, если узел, к которому вы пытаетесь подключиться, находится в сети. Дополнительную информацию о peers.dat и о том, как его просмотреть, можно найти здесь (если вы хотите помочь другу найти подключение к тестовой сети): Как мне прочитать файл peers.dat, чтобы получить список всех увиденных пиров или что биткойн подключился к?
Я снова попытался запустить биткойн в режиме тестовой сети, и на этот раз он загружает блоки. Я не уверен, почему. Возможно, это как-то связано с тем, что я вернул IP-адрес в файл /etc/resolv.conf, который я ранее закомментировал.
0 addresses found from DNS seeds
ошибку, и с этого момента все пойдет ко дну.
пользователь11221
0 addresses found from DNS seeds
и то , чтоconnection timeout
вы получаете при выполненииGetMyExternalIP()
, подразумевает проблемы с конфигурацией сети. Попробуйтеtraceroute checkip.dyndns.org
и посмотрите, пройдет ли ваш запрос. Возвращаетnslookup google.com
действительный IP? Если да, установите брандмауэр (и маршрутизатор, если последний не работает) в режим DMZ и посмотрите, не изменится ли что-нибудь.JLP
traceroute checkip.dyndns.org
, и я получил 13 строк (хмеля?) обратно.nslookup google.com
возвращает 11 IP-адресов для google.com. Однако я снова попытался запустить биткойн в режиме тестовой сети, и на этот раз он загружает блоки. Я не уверен, почему. Возможно, это как-то связано с тем, что я вернул IP-адрес в файл /etc/resolv.conf, который я ранее закомментировал.