Ist es möglich, ein Bitcoin-Regtest-Netzwerk auf Ubuntu (das sich selbst auf Virtualbox befindet) zu erstellen?

Ich steige in die Bitcoin-Entwicklung ein und es scheint, dass der Bitcoin -Regtest-Modus perfekt zum Testen unserer Anwendungen ist.

Ich versuche, ein Netzwerk zu erstellen, indem ich der Antwort von Fred Tingey folge, aber leider funktioniert es nicht.

Ich brauche Anregungen, welche Informationen kann ich geben? Ich versuche, Docker zu verwenden, aber ich muss zuerst eine 64-Bit-Ubuntu-Maschine erstellen. Vielen Dank

Klar: verlinken
Ich glaube, ich erstelle zusätzliche Datenverzeichnisse nicht richtig. Ich kann keine Verbindung zum Netzwerk herstellen, die Verbindung ist abgelaufen. @ShaunWilson
Nun, die Anweisungen in Freds Antwort scheinen größtenteils korrekt zu sein, er scheint inkonsistente Portnummern aufzulisten. Ich schaue mal, ob ich es reinigen kann.
Danke vielmals. Womit ich zu kämpfen habe, ist, wie ich testen kann, ob das Netzwerk ordnungsgemäß funktioniert. Um zusätzliche Verzeichnisse zu erstellen, ist es auch nur Kopieren und Einfügen? @ShaunWilson
Ich habe seine Antwort bereinigt, aber es wird eine Weile dauern, bis die Peer-Review sie eingeholt hat. Ja, Sie können Ordner einfach kopieren/einfügen, um weitere Knoten zu erstellen. Sobald sie ausgeführt und verbunden sind, können Sie die Befehlszeilenschnittstelle verwenden, um Befehle wie getpeerinfobeispielsweise sourceforge.net/p/bitcoin/mailman/message/32012030 auszugeben
Können Sie bitte auch Ihre bearbeitete Antwort hier posten? @ShaunWilson

Antworten (1)

Es scheint, dass Fred Tingeys Antwort größtenteils richtig war, aber falsche Portnummern in den von ihm bereitgestellten Beispielen enthielt. Wenn jemand alles kopieren und einfügen würde, hätte es nicht richtig funktioniert.

Ich habe seine Antwort geändert, sie wartet auf eine Peer-Review.

Die Verwendung von Ubuntu, Docker und VirtualBox sollte Ihre Fähigkeit zur Konfiguration von Regtest nicht beeinträchtigen.

Möglicherweise haben Sie Probleme, sich vom Host zum Gast zu verbinden. Wenn Sie dies tun, schlage ich vor, stattdessen Fragen zum Superuser- oder Ubuntu-Austausch zu stellen.

Ich hoffe, das hilft!

=== Hier ist die bearbeitete Version:

Um mehrere Knoten im Regtest-Modus auf einem einzelnen Computer auszuführen, müssen Sie jeden Knoten in einer Sandbox ausführen.

In diesem Beispiel habe ich drei Knoten, sie heißen Alice, Bob und Cory. Da Bitcoin ein Peer/Mesh-Netzwerk ist, ist es mein Ziel, jeden Knoten so zu verbinden, dass Änderungen, die an Cory vorgenommen werden, letztendlich für Bob sichtbar sind (ohne dass unbedingt eine direkte Verbindung zwischen den beiden erforderlich ist).

Schritt 1: Erstellen Sie Ordner für jeden Knoten.

Diese Ordner enthalten unsere Daten und Konfigurationen für jeden Knoten. Die Namen sind nicht wichtig, sie können später umbenannt werden, also können Sie sie vorerst "Alice", "Bob" und "Cory" nennen. Denken Sie daran, wo Sie sie erstellen, Sie benötigen ihre Pfade für Schritt 3 unten.

Schritt 2: Erstellen Sie in jedem Ordner eine bitcoin.conf -Datei

In den Konfigurationsdateien wird Alice so konfiguriert, dass sie sich mit Cory verbindet, und Bob wird so konfiguriert, dass sie sich mit Alice verbindet. Neben der Konfiguration ausgehender Verbindungen legen wir hier auch regtest=1Einstellungen server=1fest.

bitcoin.conf für Alice

regtest=1 server=1 # Alice connects to Cory connect=localhost:18333

bitcoin.con für Bob

regtest=1 server=1 # Bob connects to Alice connect=localhost:18444

bitcoin.conf für Cory

regtest=1 server=1 # Cory connects to nobody

Schritt 3: Starten Sie jeden Knoten.

Beachten Sie, dass jeder Knoten eine andere Portnummer haben muss, da immer nur ein Knoten an eine Portnummer gebunden werden kann.

  • Alice auf Port 18444
  • Bob auf Port 18555
  • Cory an Port 18333

Sie können natürlich Ihre eigenen Portnummern wählen, aber achten Sie darauf, keine Portnummer zu verwenden, die bereits von etwas anderem verwendet wird.

Die Befehlszeilenoptionen teilen Bitcoin mit, welche Portnummer verwendet werden soll, wo Daten gespeichert werden sollen und wo die Konfigurationsdatei zu finden ist:

Kory:

"C:\Program Files\Bitcoin\bitcoin-qt.exe" -conf="C:\Cory\bitcoin.conf" -datadir="C:\Cory" -port=18333 -rpcport=8333

Bob:

"C:\Program Files\Bitcoin\bitcoin-qt.exe" -conf="C:\Bob\bitcoin.conf" -datadir="C:\Bob" -port=18555 -rpcport=8555

Alice:

"C:\Program Files\Bitcoin\bitcoin-qt.exe" -conf="C:\Alice\bitcoin.conf" -datadir="C:\Alice" -port=18444 -rpcport=8444

Dadurch werden drei Instanzen des Bitcoin-Clients gestartet, und die Ordner für jeden Knoten beginnen mit der Initialisierung von Regtest-Daten.

Schritt 4: Testen

Sie können die Help->Debug Window->ConsoleOption verwenden, um Befehle auf jedem der Knoten interaktiv auszuführen. Beispielsweise können Sie 101 Blöcke mit dem folgenden Bitcoin-Konsolenbefehl abbauen:

setgenerate true 101

Sie sollten (nach einigen Sekunden) dann Münzen erhalten haben.

Diese Mining-Aktivitäten führen zu Coinbase-Transaktionen – und nur die letzte von 50 BTC steht zur Verfügung. Jetzt können Sie einige BTC an einen der anderen Knoten senden. Nach etwas mehr Mining wird eine solche Transaktion bestätigt .

Sie können auch die Konsolenbefehle getpeerinfound verwenden getinfo, um zu überprüfen, ob das Netzwerk korrekt eingerichtet ist. Einer von ihnen (Core mit Port=18333) sollte „sync=true“ in seiner Peerinfo-Ausgabe haben, und alle Knoten sollten die gleiche „Blockhöhe“ haben, unabhängig davon, welcher Knoten für das Mining verwendet wird.

Sie brauchen die -conf-Argumente übrigens nicht ... zumindest unter Linux. Und Sie müssen -rpcport=XXX hinzufügen, um die RPC-Ports zu entkonflikten
Sie müssen verwenden, -listen=1wenn Sie Einstellungen vornehmen, -connectda sonst keine eingehenden Verbindungen akzeptiert werden.
Sie haben 2 Bobs in Befehlszeilenbeispielen