Wie werden Bitcoin Core GUI-Knoten im Regtest-Modus richtig verbunden und getrennt?

Ich versuche, ein privates Bitcoin-Netzwerk mit Bitcoin Core im Regtest-Modus einzurichten. Es gibt jedoch zwei Probleme:

  1. der von der Bitcoin Core-GUI gemeldete Port stimmt nicht mit dem überein, auf dem der Knoten läuft; Und
  2. Wenn ein Peer getrennt (oder sogar gesperrt) wird, verbindet er sich automatisch wieder.

Folgendes habe ich getan. Ich erstelle zwei Ordner aliceund bob. Ich starte dann die GUI vom OSX-Terminal:

# start Alice node
$ open -n /Applications/Bitcoin-Qt.app --args -regtest -datadir=/Users/{username}/Desktop/alice/ -port=18444

# start Bob node
$ open -n /Applications/Bitcoin-Qt.app --args -regtest -datadir=/Users/{username}/Desktop/bob/ -port=18445

Von Alice's Console aus mache ich:

addnode 127.0.0.1:18445 add

Dadurch wird eine Verbindung zu beiden Knoten hergestellt.

Ich möchte beide Knoten voneinander trennen.

Von Alice's Console verwende ich:

addnode 127.0.0.1:18445 remove

Auf Alices Knoten ist der Peer:

127.0.0.1:18445

Auf Bobs Knoten befindet sich jedoch der Peer

127.0.0.1:57594

aber ich erwarte es:

127.0.0.1:18444

Ich versuche, Bobs Knoten von Alice zu entfernen mit:

addnode 127.0.0.1:18445 remove

Die Konsole kehrt zurück, nullentfernt den Knoten jedoch nicht.

Wenn ich das von Alices Knoten versuche:

addnode 127.0.0.1:57549 remove

Ich bekommeError: Node has not been added. (code -24)

Ich versuche dann, Bobs Knoten von Alices Knoten zu trennen, indem ich die Registerkarte "Peers" verwende. Klicken Sie mit der rechten Maustaste auf den Peer (Bob) und wählen Sie „Trennen“.

Der Knoten wird etwa 45 Sekunden lang getrennt und dann wieder verbunden.

Zusammenfassend habe ich zwei Fragen:

  1. Warum stimmt die Portnummer auf Bobs Knoten nicht mit der Portnummer überein, die ich ihm gegeben habe?
  2. Wie kann ich Regtest-Knoten für beliebige Zeiträume dauerhaft getrennt halten und sie dann wieder verbinden?

Antworten (3)

Ich möchte beide Knoten voneinander trennen.

Von Alice's Console verwende ich:

addnode 127.0.0.1:18445 remove

Das ist falsch. Dieser Befehl entfernt nur Bobs Knoten aus der Liste der hinzugefügten Knoten. Der richtige Befehl, um Bobs Knoten tatsächlich zu trennen, lautet

disconnectnode "127.0.0.1:18445"

Auf Alices Knoten ist der Peer:

127.0.0.1:18445

Auf Bobs Knoten befindet sich jedoch der Peer

127.0.0.1:57594

aber ich erwarte es:

127.0.0.1:18444

Ausgehende Verbindungen werden nicht vom P2P-Port hergestellt. Vielmehr wird ein zufälliger Port mit hoher Nummer für die Bindung ausgewählt und die ausgehende Verbindung von dort aus hergestellt. IIRC dies geschieht durch den Kernel und nicht durch die Software selbst. Dieses Verhalten ist Standard für die meiste Software, die ausgehende Verbindungen herstellt.

Ich versuche dann, Bobs Knoten von Alices Knoten zu trennen, indem ich die Registerkarte "Peers" verwende. Klicken Sie mit der rechten Maustaste auf den Peer (Bob) und wählen Sie „Trennen“.

Der Knoten wird etwa 45 Sekunden lang getrennt und dann wieder verbunden.

Es wird immer noch eine Verbindung hergestellt, weil Sie den anderen Knoten nicht von beiden Knoten entfernt haben (dh ein Knoten hat den anderen immer noch in seiner Peer-Datenbank).

Der richtige Weg, dies zu tun, wäre die Verwendung der onetryOption, da dies bedeutet, dass der Knoten nicht tatsächlich zur Peer-Datenbank hinzugefügt, sondern nur einmal ausprobiert wird. Um die Verbindung zu trennen, sollten Sie den disconnectnodeBefehl verwenden.

0.15.1 hat keinen disconnectpeerBefehl. Es hat einen disconnectnodeBefehl. Die Verwendung zusammen mit der onetryVerbindungsoption hat den Zweck erfüllt.
Oh, das ist ein Fehler, ich wollte schreiben disconnectnode.

Nun, ich denke, ein großes Problem könnte im Mangel an Details liegen:

addnode 127.0.0;1:18445 add

Versuchen Sie 127.0.0.1:18445, stattdessen haben Sie ein Semikolon vor der letzten 1.

Haben Sie auch versucht, dies in bitcoin.conf zu bearbeiten? Versuchen Sie, die Knoten in conf hinzuzufügen.

Tippfehler im Beitrag korrigiert. Nein, ich habe nicht versucht, Knoten in bitcoin.conf hinzuzufügen. Warum sollte dies das Ergebnis ändern?
Außerdem wurden Knoten in bitcoin.conf hinzugefügt, indem sowohl addnode als auch connect verwendet wurden. Kein Unterschied im Verhalten.

https://github.com/bitcoin/bitcoin/issues/6901

Ich habe dieses Problem gefunden, könnte hilfreich sein, wenn Sie die Adresse nicht entfernen können. Was ist mit "setban {bob's ip} add {bantime}"

Das Problem habe ich auch gefunden. Es war insofern hilfreich, als es zeigte, wie man die Verbindung über die GUI trennt/sperrt. Der Peer verbindet sich jedoch immer wieder, wenn ich dies tue.
Da dies ein Regtest ist, können Sie den Alice- und Bob-Knoten löschen und erneut erstellen