Was bedeutet das? RPC_CLIENT_NOT_CONNECTED = -9, // Bitcoin ist nicht verbunden

Ich baue einen Dienst auf, der einige automatische Bitcoin-Transaktionen und Kontostandsprüfungen durchführt. Im System habe ich nun ein Logging erstellt, das mir mitteilte, dass mein Bitcoind-Daemon (der auf Ubuntu 14.04 Server läuft) beim Ausführen des folgenden Befehls einen Fehlercode -9 ausgab bitcoind getbalance. In der Bitcoin-Quelle fand ich Fehlercode 9 beschrieben als:

RPC_CLIENT_NOT_CONNECTED = -9, // Bitcoin is not connected

Dazu habe ich 3 einfache Fragen:

  1. Erstens: Was bedeutet das? Ich führe den Befehl auf demselben Computer aus, auf dem der Daemon ausgeführt wird, sodass keine Remoteverbindung erforderlich ist.
  2. Zweitens; wie kann das passieren? Warum wird ein stabil laufender Bitcoin-Daemon plötzlich getrennt?
  3. Und am wichtigsten; wie kann ich das verhindern?

Alle Tipps sind willkommen!

Ausführen getconnectioncount, wenn dieser Fehler auftritt, er sollte Null zurückgeben. Ein Client kann getrennt werden, wenn der Knoten, mit dem er verbunden ist, nicht mehr verfügbar ist. Versuchen Sie, sich manuell mit einem oder mehreren Fallback-/vertrauenswürdigen Knoten zu verbinden.
@GeorgeKimionis - Danke für deine Antwort. Meinen Sie damit, dass mein Bitcoin-Daemon nicht mehr mit anderen Knoten im Bitcoin-Netzwerk verbunden ist? Ich habe gerade nachgesehen und bin jetzt mit 87 anderen Knoten verbunden. Wie kann es sein, dass der Verbindungszähler auf 0 gefallen ist? Gibt es eine Möglichkeit, dies zu verhindern? Weitere Verbindungen erzwingen, wenn es unter einen bestimmten Schwellenwert fällt oder so? Alle Tipps sind willkommen!
Es wäre hilfreich, wenn Sie getconnectioncountin diesem Fall ausführen könnten, damit wir sicher wissen, dass Ihr Client vom Bitcoin-Netzwerk getrennt wird. Von 87 auf 0 zu kommen, ist jedoch weder üblich noch erwartet. Ich würde vorschlagen, dass Sie die Konnektivität Ihres Servers überprüfen, da auf dieser Ebene viele Dinge schief gehen können.
Übrigens ist dies der Code, der steuert, wie Bitcoin neue Verbindungen akzeptiert: github.com/bitcoin/bitcoin/blob/master/src/net.cpp#L927

Antworten (1)

Was bedeutet das? Ich führe den Befehl auf demselben Computer aus, auf dem der Daemon ausgeführt wird, sodass keine Remoteverbindung erforderlich ist.

Es geht nicht um die Verbindung zwischen Ihrer Befehlszeile und dem Bitcoin-Daemon, sondern um die Verbindung zwischen Ihrem Bitcoin-Daemon und anderen Bitcoin-Daemons.

Wie kann das passieren? Warum wird ein stabil laufender Bitcoin-Daemon plötzlich getrennt?

Möglicherweise verwenden Sie eine sehr alte Version von Bitcoin, die mit anderen Clients nicht kompatibel ist. Ihr ISP filtert möglicherweise den Bitcoin-Verkehr. Ihr Betriebssystem hat möglicherweise keine Dateideskriptoren mehr. Es gibt eine Vielzahl möglicher Gründe.

Um es einzugrenzen, haben Sie versucht, sich das debug.log Ihres Bitcoin-Clients anzusehen? Sie können auch versuchen, den TCP-Verkehr auf Port 8333 mit Wireshark zu untersuchen.