probleme mit bitcoin cli regtest

Dies sind die Befehle, die ich ausführe, nachdem ich ein sauberes Ubuntu-Docker-Image mit allen Abhängigkeiten erstellt habe:

./src/bitcoin-cli -regtest &

Es liefert den Fehler:

error: too few parameters (need at least command)

Als nächstes lief ich:

./src/bitcoin-cli -regtest -daemon

Was dazu geführt hat:

error: too few parameters (need at least command)

endlich:

./src/bitcoin-cli -regtest 101 & 

Erträge:

error: Could not locate RPC credentials. No authentication cookie could be found, and no rpcpassword is set in the configuration file (/root/.bitcoin/bitcoin.conf)

Diese Befehle wurden der folgenden Ressource entnommen:

https://bitcoin.org/en/developer-examples#regtest-mode

Hier gibt es eine Frage und eine entsprechende Antwort, die ein Skript zum Starten von Regtest bereitstellt. Ist das eine gute Lösung?

Verwenden Sie zum Stoppen des Daemons die Schnittstelle oder führen Sie bitcoin-cli stop.


Nächster Schritt

Also lief ich zuerst:

bitcoind -regtest -daemon

und ich bekam die Ausgabe:

Bitcoin server starting

dann habe ich versucht:

bitcoin-cli -regtest getinfo

Was dazu geführt hat:

error: Could not locate RPC credentials. No authentication cookie could be found, and no rpcpassword is set in the configuration file (/root/.bitcoin/bitcoin.conf)

Diese Befehle erzeugten auch die gleiche Ausgabe wie oben:

./src/bitcoin-cli -regtest help  
./src/bitcoin-cli -regtest 101

Also habe ich folgende Datei erstellt:

vim /root/.bitcoin/bitcoin.conf

es ist buchstäblich nur das:

rpcpassword=123

*auch damit probiert:

server=1
rpcuser=root
rpcpassword=password
rpcconnect=127.0.0.1
rpcport=8332

und habe nun den Befehl gegeben:

bitcoin-cli -regtest getinfo

was zu folgendem führte:

error: couldn't connect to server: unknown (code -1)
(make sure server is running and you are connecting to the correct RPC port)

Antworten (1)

Anscheinend verwechselst du bitcoindund bitcoin-cli.

bitcoindist der Bitcoin Core-Daemon. Es muss zuerst ausgeführt werden, bevor Sie etwas tun können. bitcoin-cliist ein Tool zum Senden von RPC-Befehlen an eine laufende bitcoindInstanz.

Von der verlinkten Dokumentationsseite:

bitcoind-regtest-daemon

Es ist nicht erforderlich, ein &nach dem Befehl einzufügen, wenn Sie mit ausführen -daemon.

Sobald es ausgeführt wird, können Sie den Befehl bitcoindbeispielsweise mit senden :getinfobitcoin-cli

bitcoin-cli -regtest getinfo

Oder senden Sie generate 101, um 101-Blöcke zu generieren:

bitcoin-cli -regtest generiert 101

Um mehr über andere Befehle zu erfahren, die Sie senden können:

bitcoin-cli -regtest Hilfe

So könnten Sie zum Beispiel etwas über den pingBefehl erfahren. Um mehr darüber zu erfahren, können Sie Folgendes senden:

bitcoin-cli -regtest Hilfe-Ping

Sie müssen -regtestfür jeden Befehl angeben, da Sie einen Daemon für jedes Netzwerk ausführen können (einen für mainnet, einen für testnet, einen für regtest) oder mehr, wenn Sie jeden für die Ausführung in separaten Verzeichnissen und Netzwerkports konfigurieren.

Beachten Sie, dass bitcoin-clidies nur ein Programm ist, das JSON-RPC (ein standardisiertes Protokoll) spricht, wenn auch etwas spezialisiert für die Verwendung mit bitcoind. Sie können eine Verbindung bitcoindmit einem beliebigen JSON-RPC-Client herstellen (für den Bibliotheken in allen gängigen Sprachen vorhanden sind). Dazu müssen Sie einen Benutzernamen/ein Passwort für die Verbindung mit konfigurieren bitcoind.

Um zu erklären, was Sie sehen:

  • ./src/bitcoin-cli -regtest &funktioniert nicht, da bitcoindes noch nicht ausgeführt wird, und Sie geben keinen zu sendenden Befehl an.
  • ./src/bitcoin-cli -regtest -daemongleichfalls.
  • ./src/bitcoin-cli -regtest 101 &sieht fast richtig aus, außer dass Sie das verpasst generatehaben, also versuchen Sie, den nicht vorhandenen Befehl 101an einen Daemon zu senden, der noch nicht läuft.
Sie haben genau recht, dass ich verwirrt war idund cli. Im nächsten Schritt im OP habe ich versucht, Ihrer Anleitung zu folgen, aber ich scheine es auch vermasselt zu haben, oder es hat sonst nicht funktioniert, ich habe versucht, genau das zu schreiben, was ich wollte. habe getan, siehst du was ich falsch gemacht habe?
Sie können bitcoin.conf nicht ändern, während bitcoind läuft. Entweder ist beim Start von bitcoind kein rpcuser/rpcpassport gesetzt und es wird die Cookie-Authentifizierung verwendet, oder es ist gesetzt und sowohl bitcoind als auch bitcoin-rpc werden es verwenden.
Aha ok. Außerdem habe ich das Netzwerk so gestartet: bitcoin.stackexchange.com/questions/45881/… was besser zu sein schien – aber jetzt stürzt es ab, weil die Größe meines Docker-Containers zu klein ist: / Ich muss herausfinden, wie ich die Größe ändern kann