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)
Anscheinend verwechselst du bitcoind
und bitcoin-cli
.
bitcoind
ist der Bitcoin Core-Daemon. Es muss zuerst ausgeführt werden, bevor Sie etwas tun können. bitcoin-cli
ist ein Tool zum Senden von RPC-Befehlen an eine laufende bitcoind
Instanz.
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 bitcoind
beispielsweise mit senden :getinfo
bitcoin-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 ping
Befehl erfahren. Um mehr darüber zu erfahren, können Sie Folgendes senden:
bitcoin-cli -regtest Hilfe-Ping
Sie müssen -regtest
fü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-cli
dies 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 bitcoind
mit 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 bitcoind
es noch nicht ausgeführt wird, und Sie geben keinen zu sendenden Befehl an../src/bitcoin-cli -regtest -daemon
gleichfalls../src/bitcoin-cli -regtest 101 &
sieht fast richtig aus, außer dass Sie das verpasst generate
haben, also versuchen Sie, den nicht vorhandenen Befehl 101
an einen Daemon zu senden, der noch nicht läuft.
smatthewenglisch
id
undcli
. 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?Pieter Wuille
smatthewenglisch