Erhalten Sie Geld im Regtest-Modus

Ich arbeite an einer App, in der mein Projekt mit dem Bitcoin-Server kommuniziert, um die Details einer Transaktion mit der Transaktions-ID als Parameter abzurufen. Ich habe bitcoind, bitcoin-cli und bitcoin-qt auf meinem System installiert. Wenn ich bitcoin-qt im Regtest-Modus ausführe, kann ich Testtransaktionen erstellen, bei denen ich Geld an eine Adresse senden und die Transaktions-ID dafür erhalten kann. Ich verwende diese Transaktions-ID in meiner App, ich kann die Transaktionsdetails von bitcoin-qt abrufen. Das Problem ist, dass sich meine Tests jetzt nur noch auf Transaktionen nach außen beschränken, bei denen ich Bitcoins auf ein anderes Konto überweise. Wie kann ich einige Testtransaktionen erstellen, bei denen Bitcoins meinem Wallet gutgeschrieben werden?

Antworten (1)

Wahrscheinlich möchten Sie mehrere bitcoindInstanzen ausführen regtest, um mehrere Knoten zu simulieren. Das ist ziemlich einfach. Sie können eine zweite Instanz ausführen, indem Sie Bitcoin mit einem sauberen Datenverzeichnis und einem anderen RPC- und P2P-Port starten.

Dazu könnten Sie ein zweites Datenverzeichnis erstellen (Beispiel: /tmp/datadir2). Erstellen /tmp/datadir2/bitcoin.conf.

Verwenden Sie etwas Ähnliches als:

regtest=1
rpcuser=rt
rpcuser=rt
port=12340
rpcport=10340
discover=0

Jetzt müssen Sie Ihren ersten Knoten mit Ihrem zweiten Knoten verbinden, indem Sie eine addnodeüber die RPC-Schnittstelle senden.

bitcoin-cli addnode 127.0.0.1:10340 onetry

-datadirSie können dann mit dem Argument beim Aufruf zwischen beiden Knoten unterscheiden bitcoin-cli.

bitcoin-cli -datadir=/tmp/datadir2/ getinfo

Einige Beispiele:

Münzen im ersten Knoten generieren (50 BTC verfügbar)

bitcoin-cli generate 101

Adresse vom 2. Knoten erhalten

bitcoin-cli -datadir=/tmp/datadir2/ getnewaddress

Senden Sie Münzen an den 2. Knoten

bitcoin-cli sendtoaddress <address> 10.0
Danke für die Antwort. Ich hatte genau das gleiche getan und es zum Laufen gebracht. Ich habe das Datadir auf meinem Hostsystem beim Starten von bitcoin-qt auf ein separates Verzeichnis gesetzt. Dies hat meine App irgendwie daran gehindert, mit Bitcoin-qt zu sprechen.
Nachdem ich das oben Gesagte getan habe, zeigt es immer noch 0 an, wenn ich es getmempoolinfofür den Knoten tue, der die Transaktion empfängt. Wie sende ich die Transaktion?
Möglicherweise sind die erhaltenen Gelder noch nicht bestätigt, ... rufen Sie erneut ein generate(1) auf oder versuchen Sie, den unbestätigten Kontostand aufzulisten
Ich versuche, das gleiche obige Skript zu verwenden, aber es fügt dem Protokoll 2019-01-10T12:35:51Z den folgenden Fehler hinzu. Die Bindung von RPC an Adresse :: 1 Port 18443 ist fehlgeschlagen. 2019-01-10T12:35:51Z Binding RPC auf Adresse 127.0.0.1 Port 18443 fehlgeschlagen. 2019-01-10T12:35:51Z Kann keinen Endpunkt für RPC-Server binden 2019-01-10T12:35:51Z Fehler: HTTP-Server kann nicht gestartet werden. Einzelheiten finden Sie im Debug-Protokoll. 10.01.2019T12:35:51Z Herunterfahren: In Bearbeitung...
Fürs Protokoll, ab 0.18 generateist der Befehl veraltet und in 0.19 wird er vollständig entfernt. Verwenden Sie generatetoaddressstattdessen.