Wie ändere ich den RPC-Port für Bitcoin? (rpcport=xxx in bitcoin.conf funktioniert nicht)

Ich betreibe einen Testnet-Bitcoind-Knoten und habe RPC-Aufrufe auf dem Standardport 18332 durchgeführt.

Ich habe diese Zeile zu ~/.bitcoin/bitcoin.conf hinzugefügt:

rpcport=19832

Und den Bitcoin-Dienst neu gestartet. Ich habe sogar die ganze Maschine neu gestartet.

Aber aus irgendeinem Grund akzeptiert es immer noch RPC-Aufrufe auf Port 18332, und der Versuch, dasselbe auf Port 19832 zu versuchen, gibt "Verbindung abgelehnt".

Es verwendet definitiv die Einstellungen in bitcoin.conf, zum Beispiel wenn ich ändere rpcuseroder rpcpassword(und neu starte) muss ich den neuen Benutzer + Passwort in RPC-Aufrufen verwenden, die alten funktionieren nicht mehr.

Aber irgendwie ändert sich der Port.

Mache ich etwas falsch? Heißt die Einstellung anders als rpcport=xxx?

Ich weiß, dass ich den Port wahrscheinlich auch manuell in der cmd-Zeile definieren kann (mit bitcoind -rpcport=xxxoder so), wenn ich Bitcoin starte, aber ich möchte alles in bitcoin.conf konfiguriert haben (wo es hingehört) und alles automatisch gestartet haben.

PS Ich verbinde mich auf localhost, dh auf der Maschine selbst. Ich verwende auch die ufw-Firewall und sie ist so konfiguriert, dass sie Verbindungen sowohl auf 19832 als auch auf 18832 akzeptiert (es ist also definitiv nicht die Firewall, die hier Dinge blockiert).

(bearbeiten) Zu Ihrer Information, hier ist die vollständige bitcoin.conf-Datei:

testnet=1
server=1
daemon=1
txindex=1
rpcuser=XXXXXXXXXXXXXXXXXXXXXXX
rpcpassword=XXXXXXXXXXXXXXXXXXX
rpcallowip=127.0.0.1
rpcport=19832
onlynet=ipv4
zmqpubrawblock=tcp://127.0.0.1:28332
zmqpubrawtx=tcp://127.0.0.1:28333

Und so führe ich RPC-Befehle aus:

curl http://XXXXXXXXX:XXXXXXXXX@localhost:18332 -H 'content-type:text/plain;' --data-binary '{"jsonrpc":"1.0","id":"curltext","method":"getwalletinfo","params":[]}'

Dies funktioniert OK, obwohl es eine Verbindung zu 18332 herstellt. Wenn ich hineinwechsel, localhost:18332funktioniert localhost:19832es nicht mehr (Verbindung abgelehnt).

Falls meine Version relevant ist, getwalletinfoenthält das Ergebnis von "walletversion": 169900.

Wie läuft das bitcoindbei dir? Könnten Sie auch versuchen, nur diese conf-Datei auszuführen? pastebin.com/mKWmKs00 , versuchen Sie es auch mit 127.0.0.1statt localhostim curlBefehl.
@Зелёный Ich starte Bitcoin mit sudo systemctl start bitcoindoder sudo systemctl restart bitcoind. Versuchte Ihre bitcoin.conf-Datei (und änderte den Benutzernamen und das Passwort in etwas Neues, also bin ich sicher, dass diese .conf-Datei verwendet wird) und startete den Dienst neu, aber leider das gleiche Ergebnis: Es erlaubt die Verbindung auf 18332 (mit neuem Benutzer & pasw), aber nicht auf 19832. Auch versucht 127.0.0.1statt localhostmit curl, aber wieder kein Unterschied. Seltsam oder?
Ich kann Ihr Problem nicht reproduzieren, da bei mir dieselbe Konfiguration funktioniert. Vielleicht stimmt etwas mit Ihrem systemctl-Dienst nicht, führen Sie den Befehl aus und zeigen Sie das Ergebnis an systemctl cat bitcoind.service.
@Зелёный Ergebnis von systemctl cat bitcoind.service: pastebin.com/raw/JQS0yuJH Vielen Dank für Ihre Hilfeversuche. Nur um sicherzugehen, Sie testen auch mit testnet? (kein Mainnet?)
Ja, ich habe es mit Testnet und Mainnet getestet. Um ehrlich zu sein, IDK, warum es bei Ihnen nicht funktioniert. Hier ist mein Service pastebin.com/raw/r4hrPkvt und meine Bitcoin-Konfiguration genau so pastebin.com/raw/mKWmKs00 .
@Зелёный Hmm sehr seltsam. Und Ihre Brieftaschenversion von getwalletinfoist auch 169900?
Ja ist es. Probieren Sie meine Service- und Bitcoin-Konfiguration aus.
@Зелёный Hab das gemacht, aber leider kein Unterschied. Sehr seltsam :( Nun, danke für all die Hilfeversuche. Sehr geschätzt. Ich werde vorerst einfach den regulären Port verwenden und vielleicht zu einem späteren Zeitpunkt meinen gesamten Computer neu installieren.
Könnten Sie: das Ergebnis der Ausführung von „sudo lsof -i | grep bitcoind | grep LISTEN“ drucken (Sie müssen das Root-Passwort angeben) Und können Sie uns auch das Ergebnis der manuellen Ausführung mitteilen: „sudo systemctl start bitcoind; " dann "/path/to/bitcoind -conf=/home/[your homedir]/.bitcoin/bitcoin.conf". Berücksichtigt es den richtigen Port, wenn es manuell ausgeführt wird?
Hoppla - das sollte "sudo systemctl stop bitcoind" sein
@AlistairMann Hier ist das Ergebnis: pastebin.com/raw/MVcuVnWd Wenn Sie den Dienst stoppen (und mit sudo systemctl status bitcoind100% sicher sein, dass er gestoppt wurde) und dann manuell starten, lsofist die Ausgabe dieselbe (gut, andere Prozess-IDs, aber die drei Listen-Ports sind gleich.
Ich habe meine letzte Anfrage gelöscht, weil ich es geschafft habe, Ihr Problem auf meinem eigenen Computer zu replizieren. Werde in Kürze berichten.

Antworten (2)

Lösung gefunden: rpcport muss sich im Abschnitt [test] befinden

Bitte aktualisieren Sie Ihre ursprüngliche Konfigurationsdatei wie folgt:

testnetz=1
server=1
Dämon=1
txindex=1
rpcuser=XXXXXXXXXXXXXXXXXXXXXXX
rpcpassword=XXXXXXXXXXXXXXXXXXX
rpcallowip=127.0.0.1
onlynet=ipv4
zmqpubrawblock=tcp://127.0.0.1:28332
zmqpubrawtx=tcp://127.0.0.1:28333
[prüfen]
rpcport=19832

Und starten Sie den Daemon neu. Werfen Sie auch einen Blick auf Rpcport kann nicht für Testnet angegeben werden, um verwandte Änderungen an anderen Optionen zu erfahren. Wir wurden in der Protokolldatei gewarnt, was zu tun ist. ~/.bitcoin/testnet3/debug.logbeinhaltet die LinieWarning: Config setting for -rpcport only applied on test network when in [test] section.

Wir hätten dies schneller aufgreifen können, wenn (wir haben die Protokolldatei gelesen! Und wenn) das Beispiel bitcoin.conf erwähnt hätte, dass jetzt Abschnitte erforderlich sind.

Wäre toll, wenn Sie dies stattdessen zur angekreuzten Lösung machen könnten!

Es sieht nach einem Fehler aus: Ich habe das gleiche Verhalten auch auf meinem Computer mit der aktuellen Version repliziert, die Bitcoin Core Daemon version v0.17.99.0-g2945492424934fa360f86b116184ee8e34f19d0afrisch von github heruntergeladen wurde. Ich stelle jedoch fest, dass @Зелёный oben nicht in der Lage war, es zu replizieren, also befindet sich der Fehler vielleicht in einer Bibliothek, die Sie und ich teilen, und er tut es nicht, anstatt in Bitcoin. Sicherlich gibt es dort keine offenen Fragen, die relevant erscheinen.

Ich werde die Quelle durchsuchen, um zu sehen, ob ich erkennen kann, was passiert. Je nachdem, was ich finde, könnte ich ein Problem mit ihnen eröffnen. Lassen Sie es mich hier wissen und ich werde Sie auf dem Laufenden halten.

In der Zwischenzeit würde ich vorschlagen, -rpcport=19832 zu Ihrer Befehlszeile hinzuzufügen - es wurde hier immer beachtet!

Danke! -rpcport=19832Ich habe es auf der Befehlszeile zum Laufen gebracht (ich habe es hinzugefügt /etc/systemd/system/bitcoind.service) 👍