Warum kann ich auf localhost keine Verbindung zu Bitcoin herstellen?

Die anfänglich gestellte Frage war wie folgt, aber es stellte sich heraus, dass sie nichts mit Schlüsselpools zu tun hatte:

Ich hatte vorher keypool=1000. Jetzt habe ich Bitcoin (die Daemon-Version) mit der Option keypool=10000 gestartet, und es sind bereits 2 Stunden vergangen und Bitcoin hat noch nicht gestartet. Dh ich bekomme immer noch, error: couldn't connect to serverwenn ich versuche zu tun bitcoind getbalance.

Es ist eine ziemlich schnelle Maschine AMD 64bit 4000+ CPU mit 10 GB RAM, wie lange kann die Startzeit sein? Und wird es jedes Mal so lange dauern, wenn ich den Daemon starte, oder nur beim ersten Mal?

Werden sich zukünftige Startzeiten merklich verlängern, wenn ich keypool=10000 im Vergleich zu 1000 behalte? Oder andere Leistungseinbußen außer diesem ersten Start?

Edit : Am Ende hatte es nichts damit zu tun keypool=10000. Aus irgendeinem unbekannten Grund war meine lokale Schnittstelle ausgefallen. Ich habe es behoben mit:

ifconfig lo up

Ich beendete den Bitcoin-Daemon mit kill $PID, startete ihn erneut und innerhalb einer Minute konnte ich es tun bitcoind getbalance.

Ich weiß die Antwort nicht. Aber ich denke, der langsamere Start ist nur das erste Mal; Nachdem 10000 Schlüssel generiert wurden, sollte der Start schnell gehen.
Ich würde glauben, dass es Bitcoin etwas verlangsamen würde, wenn jeder Block validiert wird, da das Programm wahrscheinlich jede Transaktion darauf überprüfen muss, ob sie mit jedem Schlüssel in der Brieftasche übereinstimmt oder nicht. Ich weiß aber nicht, wie viel langsamer es gehen würde...
@ThePiachu: Wenn es ein Hashset aller Adressen gibt, sollte das Scannen des Blocks nach relevanten Transaktionen die gleiche Zeit dauern, egal wie viele es sind. Es sei denn, die Adressen im Block selbst sind indiziert.

Antworten (3)

Am Ende hatte es nichts damit zu tun keypool=10000. Aus irgendeinem unbekannten Grund war meine lokale Schnittstelle ausgefallen. Ich habe es behoben mit:

ifconfig lo up

Ich beendete den Bitcoin-Daemon mit kill $PID, startete ihn erneut und innerhalb einer Minute konnte ich es tun bitcoind getbalance.

Mein „Intel(R) Core(TM)2 Duo CPU T6600 @ 2,20 GHz“-Laptop brauchte nur 80 Sekunden, um 1000 neue Adressen zu erstellen, also bin ich überrascht, dass Sie über 2 Stunden für das 10-fache sehen.

Eine Sache, die mir aufgefallen ist, ist, dass die Adresserstellung jetzt schneller merkbar ist, als ich mich erinnere - also wird ein Upgrade auf eine neuere Version des Clients die Dinge vielleicht für Sie beschleunigen.

Führen Sie "tail -f ~/.bitcoin/debug.log" aus, um ein Protokoll mit der aktuell erstellten Schlüsselnummer anzuzeigen.

In jedem Fall sollte der Start nur beim ersten Mal, wenn der Pool erstellt wird, merklich langsamer sein.

Bearbeiten: (als Antwort auf Mierniks Kommentar)

Die Ausgabe von debug.log endet mit Zeilen wie den folgenden, während der Schlüsselpool gefüllt wird:

keypool added key 41, size=41
keypool added key 42, size=42
keypool added key 43, size=43
keypool added key 44, size=44
keypool added key 45, size=45
keypool added key 46, size=46
keypool added key 47, size=47
keypool added key 48, size=48
keypool added key 49, size=49
keypool added key 50, size=50

Was Sie sehen, passiert, während Bitcoin normal läuft. Es empfängt und antwortet auf Nachrichten im P2P-Netzwerk. Ich weiß nicht, was ich vorschlagen soll, warum es keine RPC-Verbindungen akzeptiert. Könnte es sich um ein Firewall-Problem oder ein anderes Konfigurationsproblem handeln, das nichts mit dem Keypool-Argument zu tun hat?

Ich habe die letzten 200 Zeilen aus debug.log hier eingefügt: dpaste.com/748342/plain Können Sie mir sagen, wie die Schlüsselnummer lautet? Wie sieht eine solche Zeile aus, damit ich danach greifen kann? Übrigens: Es ist bereits 18 Stunden alt und läuft immer noch.

Für andere, die möglicherweise auf ein ähnliches Problem stoßen, hier sind einige andere Probleme, auf die ich gestoßen bin:

1) IP-Ports werden nicht geöffnet:

/sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

2) Stellen Sie sicher, dass die Sicherheitseinstellungen Ihrer Cloud-Instanz TCP-Verbindungen an den entsprechenden Ports zulassen.

3) Wenn Sie SSL auf dem Server aktiviert haben, stellen Sie sicher, dass Sie ein SSL-Zertifikat erstellt haben:

https://en.bitcoin.it/wiki/Enabling_SSL_on_original_client_daemon

4) Stellen Sie sicher, dass Prozesse wie von anderen beschrieben beendet werden:

ps -A | grep bitcoind
kill [PID]